久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

51單片機定時器/計數器提高

作者:程序那些事   來源:程序那些事   點擊數:  更新時間:2014年08月03日   【字體:

定時器方式0的使用

通過設置TMOD寄存器中的M1M0為00選擇定時方式0,方式0的計數位數是13位,對T0來說,有TL0寄存器的低5位,和TH0的8位組成
那么最多能裝入2^13=8192個數,也就是說,經過8192個計數,寄存器就會溢出,向CPU發出中斷請求。
所以計算公式為
       
  
TH0=(8192-X)/32
TL0=(8192-X)2
程序例子:
#include
#define uchar unsigned char
#define uint unsigned int 
sbit led1=P1^0;
uchar num;
void main()
{
TMOD=0X00;  //設置定時器0為工作方式;
TH0=(8192-4607)/32; //裝初值
TL0=(8192-460)2;
EA=1;
ET0=1; //開定時器0;
TR0=1; //啟動定時器0;
while-(1)
{
if(num==200)
{
num=0; //如果到了200次,說明1秒時間到
led1=~led1; //讓發光管狀態反接
}
}
}
void T0_time() interrupt 1
{
TH0=(8192-4607)/32; //重裝初始值
TL0=(8192-4607)2;
num++;
}
 

定時器方式2的使用
方式2被稱為自動重裝的八位定時器/計數器。
 
原理:THX被作為常數緩沖器,當TLX計數器溢出時,在溢出標志TFX置1的同時,還自動地將THX中的常數重新裝入TLX中,使TLX從初始值開始重新計數,這樣就避免了認為的軟件重裝初始值帶來的時間誤差,從而提高定時精度。
適用范圍:方式2特別適用于做較精確的脈沖信號發生器,因為其只有8位計數器。
缺點:當定時較長的時間是同時給編寫程序帶來麻煩,同時還會影響精度
公式:
THX=256-N;
TLX=256-N;
 
程序列子:
#include
#define MOTOR P2^0; //定義電機的輸出口
int PWMcount,PWM;
 
void main()
{
TMOD=0X02; //設置定時器0的工作模式2
TH0=156; //轉載初始值
TL0=156;
EA=0;
ET0=1; //開啟內部定時器中斷0;
TR0=1; //啟動定時器中斷0;
PWM=50; //以50的PWM輸出
while(1){;}
void PWM_output() interrupt 1
{
PWM_count++;
if(PWM_count MOTOR=1;
else MOTOR=0;
if(PWM_count==100) PWM_count=0;
}
關閉窗口

相關文章

主站蜘蛛池模板: 欧美一区二区三区高清视频 | 一区二区三区四区国产 | 国产高清精品一区二区三区 | 剑来高清在线观看 | 亚洲精品日韩在线观看 | 久国产视频 | 色天堂影院 | 欧洲成人免费视频 | 亚洲综合无码一区二区 | 午夜无码国产理论在线 | 请别相信他免费喜剧电影在线观看 | 久久久久久久久99 | 欧美日韩一区二区三区在线观看 | 国产精品亚洲成在人线 | 一级片在线播放 | 亚洲精品国产成人 | 亚洲iv一区二区三区 | 一区二区三区精品在线 | 国产激情一区二区三区 | 成人在线电影在线观看 | 久久国产精品一区 | avmans最新导航地址 | 精品视频免费 | 欧美男人天堂 | 久久久综合 | 91精品一区二区三区久久久久久 | 亚洲一区毛片 | 日韩一区av | 日本久久久久久 | 日本电影网站 | h在线观看 | 天天射影院 | 欧洲亚洲视频 | 国产精品视频免费观看 | 91在线色视频 | 欧美中文一区 | 日本精品在线一区 | 北条麻妃99精品青青久久 | 精品色 | 亚洲高清在线 | 国产一区二区精品在线观看 |