原创 AVR+TIMER0 查询方式的应用

2011-11-24 22:31 1234 8 8 分类: MCU/ 嵌入式

//-----------------------------------------------------------------
//说明:定时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 = temp<<i;

 }  
    }
}


 /**************每天成长一点点,一棵小草也能长成参天大树*******************/

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条