BASIC4MCU | 질문게시판 | atmega128 FND 유아트 4자리 입력
페이지 정보
작성자 weaszx 작성일2018-12-14 08:43 조회6,186회 댓글0건본문
코드 비전 사용 중이고
4자리의 수를 입력하면 4자리수가 유아트를 통해서 FND로 나와야하는데
한자리 수 만 표현이 됩니다 무엇이 문제일까요 ??
참고로 0~99 까진 유아트로 출력이되는데
100부터는 유아트 출력이 안되네요 .,, 이건또 왜 ,,
unsigned RXD(void)
{
while(!(UCSR0A & 0x80)); // RXC0=1? (수신완료)
return UDR0;
}void TXD(char ch)
{
while(!(UCSR0A & 0x20)); // UDRE0=1?
UDR0=ch;
}
void main()
{
unsigned char CAL[]={0x39,0x77,0x38,0x3e,0x78,0x3f,0x70} ;
unsigned char FND[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7d,0X07,0X7F,0X6f}; // 0~9
unsigned char ch;
DDRA=0xff; // port A 출력 -> FND 숫자
DDRC=0xff; // port C 출력 -> FND 자리 선택
UCSR0A=0x00;
UCSR0B=0x18; // 수신단자,송신단자 ON
UCSR0C=0x86; //비동기통신, NO패리티 , 데이트비트 8비트
UBRR0H=0;
UBRR0L=103; // 16MHZ 103(보레이트 9600)
while(1) // UART - 컴퓨터 송수신
{
ch=RXD();
TXD(ch);
delay_ms(1);
PORTC=0x0e;
PORTA=FND[ch/1000];
delay_ms(1);
PORTC=0x0d;
PORTA=FND[(ch%1000)/100] ;
delay_ms(1);
PORTA=FND[((ch%1000)%100)/10];
PORTC=0x0b;
delay_ms(10);
PORTA=FND[((ch%1000)%100)%10];
PORTC=0x07;
delay_ms(10);
}
댓글 0
조회수 6,186등록된 댓글이 없습니다.