반응형
FND
- 7-Segment LED
- 7-Segment Display
- 숫자표시기, 줄여서 FND라고 부른다
FND로 숫자를 만들때 아래의 표를 참고해서 만들면 됩니다. 예를 들어 0을 만들고 싶다면 2진수로
0b01111111을 입력해주면 0이 출력이 됩니다.
이를 10진수로 나타내면 0부터 9까지 순서대로
[63,6,91,79,102,109,125,39,127,103]가 됩니다.
FND 구성이 이렇게 되어있기 때문에 아래 표의 순서가 나오는 것입니다.
제가 사용하는 아트메가 보드에서는 PORT A와C를 사용해서 보드에 있는 FND를 제어할 수 있습니다.
PORT A가 숫자를 PORT C가 FND 점등 위치를 나타내 줍니다.
FND 제어
- 7-Segment는
on시 점등, digit은 off시 점등
다음 소스코드는 0부터 99까지 FND를 카운트하는 소스입니다.
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 | #include <avr/io.h> #define F_CPU 16000000UL #include <util/delay.h> int main() { int seg_data[10]={63,6,91,79,102, 109,125,39,127,103}; unsigned int one, two, count=0; unsigned int i, speed=10; DDRA=0xff; DDRC=0xff; while(1) { two = (count%100)/10; one = (count%10); for(i=1;i<speed;i++) { _delay_ms(5); PORTA=seg_data[two]; PORTC=0x0b; _delay_ms(5); PORTA=seg_data[one]; PORTC=0x07; } count++; if(count>=100) count=0; } } | cs |
반응형
최근댓글