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


+ Recent posts