#include <iom16v.h> #include <macros.h> unsigned char const NUM[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay_ms(unsigned int k) { unsigned int i,j; for (i=0;i<k;i++) for (j=0;j<1140;j++); } unsigned long power(unsigned char times) { unsigned long num=10; unsigned char i; if (times==0) return 1; else { for (i=1;i<times;i++) num*=10; return num; } } void main() { unsigned char i; unsigned long num=0; //數碼管上顯示的數字 DDRA=0xff; PORTA=0xff; DDRC=0xff; PORTC=0xff; while (1) { for (i=0;i<8;i++) //i+1為從右數的位數 { PORTC=~BIT(7-i); PORTA=NUM[num%power(i+1)/power(i)]; delay_ms(1); PORTC=0xff; PORTA=0xff; } num++; if (num>99999999) num=0; } }
|