1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /******************************************************************** 파일명 : FND.c 동 작 : 프로그램이 시작하면 500ms 마다 FND 에 0부터 9 , A ~ F 그리고 '.', '_'을 순차적으로 출력한다. 포트연결 : 포트D 0 ~ 7 을 8핀 케이블로 FND 모듈의 SA_A ~ SA_H 에 연결한다. PD0 ~ PD7 -> SA_A ~ SA_H 소스 설명 : 1) AVR 입출력에 대한 헤더 파일과 delay 함수사용을 위한 헤더파일을 선언한다. 2) 0~9, A~F 그리고 점,밑줄 을 FND에 맞추어 정리해둔 테이블을 선언한다. 3) 포트D 를 출력포트로 설정한다. 3) 포트D에 FND_DATA_TBL배열에 저장된 값을 500ms 단위로 하나씩 출력한다. _delay_us()함수는 104 us 까지 , _delay_ms()함수는 35 ms 까지 지원한다. ********************************************************************/ // 1) #include<avr/io.h> #include<util/delay.h> int main(){ // 2) unsigned char FND_DATA_TBL[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7C,0X07,0X7F,0X67,0X77,0X7C,0X39,0X5E,0X79,0X71,0X08,0X80}; unsigned char cnt=0 , i ; // 3) DDRD = 0xFF; // 4) while(1){ PORTD = FND_DATA_TBL[cnt]; cnt++; if(cnt>17) cnt=0; //테이블 크기를 초과하는 경우 방지. for(i=0;i<50;i++) _delay_ms(10); } return 0; } | cs |
'프로그래밍 > ATMega128' 카테고리의 다른 글
(ATmega128) 타이머로 LED 켜기 (0) | 2016.07.10 |
---|---|
(ATMega128) PWM 사용하기 (0) | 2016.07.10 |
(ATMega128) 인터럽트를 이용한 LED동작 멈춤/재생 (0) | 2016.07.10 |
(ATMega128) Switch 누른데로 LED켜기 (0) | 2016.07.10 |
(ATMega128) LED 켜기 (0) | 2016.07.10 |