日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机定时器(T0/T1)的使用与配置流程

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机定时器(T0/T1)的使用与配置流程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一步:配置工作方式寄存器—TMOD

TMOD寄存器的字節(jié)地址為89H,不能位尋址。一般采用整體賦值的方式進(jìn)行配置;如:TMOD=0x01 // 0000 0001   GATE=0,定時(shí)器僅受TCON寄存器中TRx(x=0,1)來控制
  GATE=1,定時(shí)器TCON寄存器中TRx(x=0,1)和外部中斷引(INT0或INT1)上的電平狀態(tài)來共同控制。
  C/T=1,為計(jì)數(shù)器模式;
  C/T=0,為定時(shí)器模式。
  M1M0一工作方式選擇位;一共有4種工作方式,通常選擇 方式1 和 方式2;即M1M0 = 0 1 或M1M0 = 1 0

第二步:賦初值 —— THx、TLx

注意:
(1) 51單片機(jī)定時(shí)器常常方式1或者方式2
(2)方式1可以裝入的總數(shù)是65536
(3)方式2可以轉(zhuǎn)入的總數(shù)是256
賦值舉例(以方式1和方式2):
 1、采用方式1
 使用定時(shí)器0的方式1,定時(shí)1ms。因?yàn)?ms = 1000us。故,65536 - 1000=64536 。即為16進(jìn)制的0xfc18。
 方法一:

TH0 = (65536 - 1000) / 256 TL0 = (65536 - 1000) % 256

方法二

TH0 = 0xfc TL0 = 0x18

2、采用方式2定時(shí)
  使用定時(shí)器0的方式2,定時(shí)0.1ms。因?yàn)?.1ms = 100us。故,256 - 100 = 246 。即為16進(jìn)制的 0xf6 。

TH0 = TL0 = 0xf6 或者: TH0 = 0xf6 TL0 = 0xf6

第三步:配置控制寄存器——TCON

控制寄存器(TCON)在特殊功能寄存器中,字節(jié)地址為88H,位地址(由低位到高位)分別是88H~8FH,該寄存器可進(jìn)行位尋址。可采用TRO=1,IT0=1的方式進(jìn)行配置啟動(dòng)
  

TF1一定時(shí)器1溢出標(biāo)志位。
  當(dāng)定時(shí)器1計(jì)滿溢出時(shí),由硬件使TF1置1,并且申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0。需要注意的是,如果使用定時(shí)器的中斷,那么該位完全不用人為去操作,但是如果使用軟件查詢方式的話,當(dāng)查詢到該位置1后,就需要用軟件清0。
TR1-定時(shí)器1運(yùn)行控制位。
  由軟件清0關(guān)閉定時(shí)器1。當(dāng)GATE=1,且INT1為高電平時(shí),TR1置1啟動(dòng)定時(shí)器1;當(dāng)GATE=0時(shí),TR1置1啟動(dòng)定時(shí)器1。
TFO-定時(shí)器0溢出標(biāo)志,其功能及操作方法同TF1。
TRO-定時(shí)器0運(yùn)行控制位,其功能及操作方法同TR1.
IE1-外部中斷1請(qǐng)求標(biāo)志
  當(dāng)IT1=0時(shí),為電平觸發(fā)方式,每個(gè)機(jī)器周期的S5P2采樣lNT1引腳,若INT1腳為低電平,則置1,否則IE1清0。
  當(dāng)IT1=1時(shí),INT1為跳變沿觸發(fā)方式,當(dāng)?shù)谝粋€(gè)機(jī)器周期采樣到INT1為低電平時(shí),則IE1置1。IE1=1,表示外部中斷1正在向CPU申請(qǐng)中斷。當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),該位由硬件清0。
IT1-外部中斷1觸發(fā)方式選擇位。
IT1=0,為電平觸發(fā)方式,引腳INT1.上低電平有效。
IT1=1,為跳變沿觸發(fā)方式,引腳INT1.上的電平從高到低的負(fù)跳變有效。
IE0一外部中斷0請(qǐng)求標(biāo)志,其功能及操作方法同IE1。
IT0–外部中斷0觸發(fā)方式選擇位,其功能及操作方法同IT1。

第四步:開總中斷——EA = 1;

定時(shí)器0方式1的邏輯框圖

程序示例

(1)使用定時(shí)器0、方式1
  定時(shí) 1ms(500HZ),使LED閃爍
  1ms = 1000us ;65536 - 1000 = 64536。 64536的十六進(jìn)制為 0xfc18

#include<reg51.h> sbit LED = P1^0;int main(void) {TMOD = 0x01; //第一步:配置TMOD // 0000 0001 ; 選擇方式1TH0 = 0xfc;TL0 = 0x18; // 第二步:賦初值 // 0xfc18 = 64536. 定時(shí)1000us = 1ms (500HZ)TR0 = 1; //第三步:配置TCON // 定時(shí)方式,選擇定時(shí)器 T0ET0 = 1; // 定時(shí)器/計(jì)數(shù)器0中斷允許位,打開T0中斷EA = 1; //第四步:開總中斷 while(1); }void timer0() interrupt 1 {TH0 = 0xfc;TL0 = 0x18; // 方式1 在中斷中需要重新賦初值LED = ~LED;}

(1)使用定時(shí)器0、方式2
  定時(shí) 0.1ms(5000HZ),使LED閃爍
  0.1ms = 100us ; 256 - 100 = 156; 十六進(jìn)制為0x9c

#include<reg51.h> sbit LED = P1^0;int main(void) {TMOD = 0x02; //第一步:配置TMOD // 0000 0002 ; 選擇方式2TH0=TL0=0x9c; // 第二步:賦初值 // 0x9c = 156. 定時(shí)100us = 0.1ms (5000HZ)TR0 = 1; //第三步:配置TCON // 定時(shí)方式,選擇定時(shí)器 T0ET0 = 1; // 定時(shí)器/計(jì)數(shù)器0中斷允許位,打開T0中斷EA = 1; //第四步:開總中斷 while(1); }void timer0() interrupt 1 {LED = ~LED; //方式2不需要重新賦初值 }

【參考文檔】
《51單片機(jī)C語言教程(郭天祥)》

總結(jié)

以上是生活随笔為你收集整理的51单片机定时器(T0/T1)的使用与配置流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。