*키트는 Atmega128A를 사용하였습니다*
FND란 7 세그먼트(7 Segment)는 7개의 획으로 숫자나 문자를 나타낼수 있는 표시장치입니다.
일반적으로 작고 단순한 구조를 가지기 때문에 전자시계, 게이지 또는 전자회로의 내부수치를 보여주는 곳에 주로 사용됩니다.
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
int main(void)
{
/* Replace with your application code */
DDRC = 0xFF; //fnd 사용
DDRG = 0x0F; //fnd 자리 4개 사용
unsigned char fnd[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x27, 0x7f, 0x6f}; //fnd 0~9 까지 표현할 값
unsigned char fnd_pos = 0x01; //자리수를 해줄 변수
while (1)
{
for ( int i = 0; i < 10 ; i++) //i = 0 부터 9까지
{
PORTG = fnd_pos; //PORTG에 fnd_pos 값 저장
PORTC = fnd[i]; //PORTC에 fnd[i]값 저장
_delay_ms(1000); //딜레이 약 1초
fnd_pos <<= 1; //자리 한자리씩 쉬프트
if (fnd_pos == 0x10) //fnd_pos값이 0x10이라면
{
fnd_pos = 0x01; //fnd_pos의 값 0x01로..
}
}
}
}
'AVR 기초 > FND 제어하기' 카테고리의 다른 글
[AVR 기초] FND 4자리를 한번에 나타내기 (0) | 2020.07.12 |
---|---|
[AVR 기초] FND 0~9까지 나타낸 후 한칸씩 옮겨가기 (0) | 2020.07.12 |