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

用定時器進行計數的一個簡單例子

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

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

#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
}

發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

相關文章

专注江西快三走势分析 南粤36选7开奖号码 为什么要投资股票 伊利股票k线图 海南环岛赛体彩规则 天津11选五走势图基本走势 通化大嘴棋牌手机版本 微信捕鱼游戏二维码图片 麻将来了腾讯 平特一肖500赔多少钱 深度网赚论坛