BASIC4MCU | 질문게시판 | 마이크로 전자회로 질문
페이지 정보
작성자 킹익 작성일2019-04-08 19:35 조회13,442회 댓글5건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8177
작성일
작성일
작성일
본문
마이크로 전자회로 공부중에 예제에 PORTD에 숫자0에서 15까지(16진수로)로 표시하는 프로그램을 작성하려하는데
#define F_CPU 16000000UL#include#includeint main(void) {uint8_t seg[4]={0x01,0x4f,0x12,0x06};DDRD=0xff;DDRB=0xff;while (1) {for(int i=0;i<4;i++){PORTD = seg[i];_delay_ms(1000);}}return0;}여기까지가 제가 작성한건데 이게 0,1,2,3까지 작성하는걸로 알고있습니다. 여기서 제가 추가로 15까지 작성하고 싶은데 seg[16]으로 변환하고 i<16놓고 하는건 알겠는데 더이상 추가 작성을 하려해도 책을 뒤져봐도 안나오네요.. 0부터 9까지 작성하고 사진처럼 추가로 A,b,c,d,E,F 만드려고 하는데 도와주십시오..항상 감사합니다.
댓글 5
조회수 13,442master님의 댓글
master 작성일https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo10&wr_id=191
킹익님의 댓글
킹익
아직 여기까지는 공부안해서 .. 무슨 뜻인지 잘 모르겠네요 ㅜㅜㅜ
킹익님의 댓글
킹익
이건 타이머 설정이라 16진수 숫자표시랑은 다른거 아닌가요???
master님의 댓글
master 작성일
세그먼트 a를 비트0에 연결하고
세그먼트 dp를 비트7에 연결하도록 순서를 맞추세요
char seg[]={ //애노드
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
};
애노드 타입이므로 이 선언을 사용합니다.
for(int i=0;i<16;i++){ PORTD = seg[i]; _delay_ms(1000); }
for()문은 4대신 16을 넣으면 됩니다.
킹익님의 댓글
킹익
사랑해요♥