热度 8
2011-11-24 22:31
1234 次阅读|
0 个评论
//----------------------------------------------------------------- //说明:定时1秒轮循数码管的七段 定时器0查询方式 //time:2011-11-24 22:19 //********************************************************************/ #define F_CPU 4000000UL #include #include #define INT8U unsigned char #define INT16U unsigned int INT8U i,j,temp; void Timer_Init() { DDRC = 0Xff; TCCR0 = 0X05; //预分频1024 TCNT0 = 256-F_CPU/1024.0*0.05; //0.05秒定时 } //主函数 int main(void) { DDRC=0xff; PORTC = 0X01; //初始使a段数码管亮 temp = PORTC; Timer_Init(); while(1) { while(!(TIFR_BV(TOV0))); //等待标志位置位 TIFR = _BV(TOV0); //软件对TOV0进行写1 清除标志位 TCNT0 = 256-F_CPU/1024.0*0.05; //重装定时器初值 j++; if(j==20) { j=0; i++; if(i==7) i=0; PORTC = tempi; } } } /**************每天成长一点点,一棵小草也能长成参天大树*******************/