(초보용)led 순차점등에 대해서 질문드립니다 ,,( pic16F877A)
큰재
질문 제목 : led 순차 점등 .......에서 질문드립니다
질문 요약 :1.○○○○○○●● 2.○○○○○●●○ 3.○○○○●●○○ 4.○○○●●○○○
5.○○●●○○○○6.○●●○○○○○ 7.●●○○○○○○ 8.●○○○○○○●
질문 내용 : 위처럼 엘이디를 순차적으로 좌로시프트하면서 불을켜는건데요 ..
#include 16F877A.h
#byte port_d=8
#use delay (clock=11059200)
main () {
int8 led;
set_tris_d(0);
led=0x03;
do {
port_d = ~led;
led=1;
if (led==0) led = 0xc0;
if (led==0) led = 0x81;
delay_ms (1000);
} while(1);
}
이렇게 짜서 해봤더니 마지막에위에7번이 켜진후 ●○○○○○○○ 이렇게만 들어왔다가 ○○○○○○●●다시 1번부터 시작을 하는데 .. 도저히 이유를 모르겠습니다
제가 시작한지 1주일정도밖에 안되서..이렇게 도움의 손길을 구합니다 ..
-
힘차 2024-06-27
아... 제가 아직완전초보라 이해는 잘안되지만 답변 너무 감사합니다 ..
한번 실행해 보겠습니다 ( __) ,감사합니다 수다님. -
바닐라 2024-06-27
아! 죄송합니다. 잘못 답변해드렸네요.
0x03을 왼쪽으로 하나씩 shift하면 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0이 됩니다.
0xC0에서 한번더 왼족으로 shift하면 0x80이 되는데요. (0x180에서 아래쪽의 8비트만 취하게 됩니다)
이렇게 되면 원하던 결과를 얻을 수 없어서
0xC0 다음에는 0x81이 되도록 해야 합니다.
if(led == 0x80) led = 0x81;
0x81을 왼쪽으로 한칸 shift하면 0x0 -
소1유물 2024-06-27
1. 질문게시글을 작성할 때는 긁기방지(오른쪽비허용)을 하지 않는 편이 좋습니다.
2. if(led == 0) led = 0xC0; 때문이네요. 왜인지는 한번 따라가보면 이해가 될겁니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2690517 | cygwin에서요.. (1) | 엘보어 | 2025-04-05 |
2690486 | 문자열과 문자형이요 ~ | 다스리 | 2025-04-05 |
2690344 | 일본어 주석 깨짐 문제 (3) | 연하얀 | 2025-04-04 |
2690314 | 암호문 만들기 -비제네르- | 이퓨리한나 | 2025-04-03 |
2690292 | 왕초보자의 질문!!!!!! 도와주세요 (1) | 하랑 | 2025-04-03 |
2690269 | 정올 문제 인데.. 흠 | 반월 | 2025-04-03 |
2690237 | sizeof에서 short형을 썻는데 왜 4byte가 나올까요? (1) | 바나나 | 2025-04-03 |
2690183 | 문자열과 포인트 비교 (2) | 미즈 | 2025-04-02 |
2690154 | a -48 ? | 희미한눈물 | 2025-04-02 |
2690094 | 테트리스 질문요. | 지후 | 2025-04-01 |
2690066 | 문자열비교!! (1) | 매디 | 2025-04-01 |
2689888 | 좀도와주세요;; ㅠㅠ | 사람 | 2025-03-30 |
2689856 | 메뉴 그리는 거 질문 | 나라빛 | 2025-03-30 |
2689831 | c언어 프로그램 추천 | 하연 | 2025-03-30 |
2689801 | c언어 time.h에서 작동이 중지되었습니다. | 하람 | 2025-03-30 |
2689772 | 2차원 배열의 배열명에 대해서.. | 옆집꼬마야 | 2025-03-29 |
2689740 | 게임 TCP소켓 질문 (2) | 불꾼 | 2025-03-29 |
2689711 | 반복문 모래시계 | 한뎃집 | 2025-03-29 |
2689685 | 경우의 수에 따른 결과 처리 질문드립니다. (2) | 다흰 | 2025-03-29 |
2689655 | .exe에 아이콘 넣는 법좀 알려주세요 | 연하얀 | 2025-03-28 |