欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

AVR單片機定時器計數

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年06月07日   【字體:

#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
uchar num1;
#pragma interrupt_handler miao:9//它所對應的位置
#pragma data:code//定義程序存在ROM里面
const uchar table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,
0x8e
};
/***********************************************/
/*******************延時子程序******************/
/***********************************************/
void delay(uchar z)
{
   uchar x,y;
  for(x=0;x<255;x++)
  for(y=0;y<z;y++);
}
/***********************************************/
/*******************顯示子程序******************/
/***********************************************/
void xian(uchar num)
{
  PORTA=table[num/10];//十位
  PORTC&=~BIT(1);
  delay(2);
  PORTC|=BIT(1);
  PORTA=table[num%10];//個位
  PORTC&=~BIT(0);
  delay(2);
  PORTC|=BIT(0);
}
/***********************************************/
/*****************中斷服務子程序***************/
/***********************************************/
void miao()
{
    if(num1==60)
 num1=0;
 num1++;//將變量加1
 TCNT1H=0XA4;//賦值高位
 TCNT1L=0X71;//賦值低位
}
/***********************************************/
/*******************主程序*********************/
/***********************************************/
void main()
{
    DDRA=0XFF;//設置PA口為輸出方式
 DDRC|=BIT(0)|BIT(1);//設置兩位為輸出方式
 TCCR1B=0XA4;//設置256分頻 6M晶體=6000000/256分頻-65535化成16進制
 TCNT1H=0X71;//給它高位賦值
 TCNT1L=0XED;//給它低位賦值
 TIMSK|=BIT(2);//打開定時器中斷
 SREG|=BIT(7);//打開總中斷
 while(1)
 {
   xian(num1);
 }
}

關閉窗口

相關文章