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

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

定時器計數LED顯示的簡單程序

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

/*
注:該程序主要是如何運用定時器進行計數
體現模塊化的子函數,是一個比較淺顯的程序
*/

#include<reg52.h> //頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int
uchar count;  //定義全局變量
void display_led() //led顯示子函數
{
 if(count==20) //每隔1S發生變化(晶振為:12MHZ)
 {
  count=0;   //計數清零,以便下次計數
  P2=~P2;   //P2的值取反
  P2=P2<<1; //P2的值左移
  P2=~P2;
  if(P2==0xff) //如果最后一個LED亮后,
  P2=0xfe;  //則第一個LED亮
 } 
}
void init()   //初始化子函數  
{
 EA=1; //打開總中斷
 ET0=1; //打開定時器中斷
 TR0=1;  //啟動定時器
 TMOD=0x01; //T0工作方式1,16位計數
 TH0=(65536-50000)/256;//設置定時器的初始值
 TL0=(65536-50000)%256;
 P2=0xfe;   //給P2口賦初始值
 while(1)
 {
 display_led(); //調用LED顯示子函數
 }
}
void main()  //主函數
{
 init(); //調用初始化子函數
}
void delay() interrupt 1  //定時中斷子函數
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 count++;  //計數變量自加1
}
 

關閉窗口

相關文章