久久久久久久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;
}
關閉窗口

相關文章

主站蜘蛛池模板: 91精品国产91久久综合桃花 | 国产日韩欧美精品一区二区 | 欧美a区| 国产日产欧产精品精品推荐蛮挑 | 国产羞羞视频在线观看 | 一级做a爰片久久毛片 | 日韩1区| 亚洲精品日韩精品 | 91久久久久 | 日韩高清中文字幕 | 美女网站视频免费黄 | 久久久久久久一区 | 伊人伊人| 国产成人亚洲精品 | 91一区二区 | 国产极品车模吞精高潮呻吟 | 黄页网址在线观看 | 99免费在线视频 | 国产精品视频免费观看 | 久久精选| 国产欧美在线观看 | 精品欧美一区免费观看α√ | 激情欧美日韩一区二区 | 国产精品一区二区三区99 | 欧美视频1区 | 久久久久久久久国产精品 | 免费a在线| 亚州综合一区 | 国产日韩一区二区 | 天天色天天射天天干 | a在线观看| 亚洲欧美日韩精品久久亚洲区 | 亚洲精品在 | 在线观看中文字幕亚洲 | 99视频精品 | 91亚洲国产精品 | 中文字幕一区二区三区精彩视频 | 91久久精品一区二区二区 | 日韩高清中文字幕 | 91激情视频 | 视频一区二区在线观看 |