카운트 다운을 FND에 출력
9 ~ 0 까지 무한히 반복하는 카운트다운 입니다.
전체 소스 Codevision 용
/********************************************* 9 ~0 까지 무한히 반복 FND 에 출력
Tools : Codevision *********************************************/
#include <mega128.h>
// time delay for us void Delay_us(char time_us) { register char i; for(i = 0; i < time_us; i++) // 4 cycle + { #asm PUSH R0 ; // 2 cycle + POP R0 ; // 2 cycle + PUSH R0 ; // 2 cycle + POP R0 ; // 2 cycle + PUSH R0 ; // 2 cycle + POP R0 ; // 2 cycle = 16 cycle = 1 us for 16MHz #endasm } }
// time delay for ms void Delay_ms(unsigned int time_ms) { register unsigned int i; for(i = 0; i < time_ms; i++) { Delay_us(250); Delay_us(250); Delay_us(250); Delay_us(250); } }
// Display to FND void FndDisplay1(char byteData); void FndDisplay1(char byteData){ switch( byteData){ case 0: PORTA = 0b10001000; break; case 1: PORTA = 0b11101011; break; case 2: PORTA = 0b01001100; break; case 3: PORTA = 0b01001001; break; case 4: PORTA = 0b00101011; break; case 5: PORTA = 0b00011001; break; case 6: PORTA = 0b00011000; break; case 7: PORTA = 0b11001011; break; case 8: PORTA = 0x00| 0x08; break; case 9: PORTA = 0x01|0x08; break; default : PORTA = 0b11111000; break; } }
void main(void) { signed char byteA=9;
PORTA=0x00; DDRA=0xFF; // output
while (1) { FndDisplay1(byteA); Delay_ms(100);
if(--byteA <0) byteA = 9; } }
|
주요 부품
ATMEGA128 |
'CodeVision 용 소스' 카테고리의 다른 글
스위치 누를 때마다 1 증가하는 카운터 (0) | 2011.01.28 |
---|---|
스위치 누르면 ‘2’, 떼면 ‘1’ 을 FND에 표시 (0) | 2011.01.27 |
0000 ~ 9999 까지 FND 4 자리 출력하기 (0) | 2011.01.26 |
000 ~ 999 까지 FND 3개 출력하기 (0) | 2011.01.26 |
00 ~ 99까지 FND 2개에 출력하기 (0) | 2011.01.25 |