文档详情

定时器计数器及应用课件.ppt

发布:2025-02-15约2.52千字共26页下载文档
文本预览下载声明

定時器/計數器及應用退出6.1定時器/計數器的結構6.1.1定時器/計數器的結構定時器/計數器的結構如圖6-1所示。 6.1.2定時器/計數器的工作方式寄存器TMOD 定時器/計數器是一種可編程部件,在工作之前必須通過軟體設定它的工作方式,即對工作方式寄存器TMOD中每位進行設定。下麵介紹每位的含義: TMOD(89H) 其中,低4位用於決定T0的工作方式,高4位用於決定T1的工作方式。 1、M1和M0工作方式控制位 M0和M1為工作方式控制位,確定4種工作方式,如表7-1所示。 2、C/T定時器/計數器方式選擇位 C/T=0,設置為定時方式,對機器週期進行計數; C/T=1,設定為計數方式,對外部信號進行計數, 外部信號接至T0(P3.4)或T1(P3.5)引腳。 3、GATE門控位 GATE=0時,只要用軟體使TR0(或TR1)置1就能啟動定時器T0(或T1); GATE=1時,只有在INT0(或INT1)引腳為高電平的情況下,且由軟體使TR0(或TR1)置1時,才能啟動定時器T0(或T1)工作。 6.1.3定時器/計數器的控制寄存器TCON 設定好了定時器/計數器的工作方式後,它還不能進入工作狀態,必須通過設置控制寄存器TCON中的某些位來啟動它工。要使定時器/計數器停止運行,也必須通過設置TCON中的某些位來實現。當定時器/計數器計滿溢出,或有外部中斷請求時,TCON能標明溢出和中斷情況。下麵介紹控制寄存器TCON每位的含義: TF1:定時器T1溢出標誌位。當定時器T1溢出時,由硬體自動使TF1置1,並向CPU申請中斷。CPU回應中斷後,自動對TF1清零。TF1也可以用軟體清零。 TR1:定時器T 1運行控制位。可由軟體置1(或清零)來啟動(或關閉)定時器T1,使定時器T1開始計數。用指令SETBTR1(或CLRTR1)使TR1置1(或清零)。TF0:定時器T0溢出標誌位。其功能與TF1相同。TR0:定時器T0運行控制位。其功能與TR1相同。IE1:外部中斷1請求標誌位。IT1:外部中斷1觸發方式控制位。IE0:外部中斷0請求標誌位。IT0:外部中斷0觸發方式控制位。IE1、IT1、IE0、IT0這4位將在第3節講述。控制寄存器TCON的位地址是88H,可以對它進行位尋址。6.2定時器/計數器的工作方式 6.2.1工作方式0 定時器/計數器T0工作在方式0時,16位計數器只用了13位,即TH0的高8位和TL0的低5位,組成一個13位定時器/計數器。 1、工作在定時方式 2、工作在計數方式 【例6-1】利用定時器T0產生定時脈衝。每隔2ms產生寬度為2個機器週期的正脈衝,由P1.0輸出此定時序列脈衝信號(設時鐘頻率為6MHZ)。解:首先求出定時器T0初值。由於時鐘頻率為6MHZ,所以,機器週期為2μs。因為:t=(213-T0初值)?機器週期所以,當t=2ms時,則:(213-T0初值)?2?10-6=2?10-3 解得:T0初值=709611000B,其中將高8B=DDH賦給TH0,低5位11000B=18H賦給TL0。 方法一: 採用查詢工作方式,編程如下: ORG0000H AJMPMAIN ORG0100HMAIN: CLRP1.0 MOVTMOD,#00H ;設定T0的工作方式 MOVTH0,#0DDH ;給定時器T0送初值 MOVTL0,#18HSETBTR0 ;啟動T0工作LOOP: JNBTF0,$ ;$為當前指令指針地址 CLRTF0 SETBP1.0 ;產生2μs正脈衝 CLRP1.0 MOVTH0,#0DDH ;重裝載TH0和TL0 MOVTL0,#18H SJMPLOOP END方法二:採用中斷工作方式,編程如下: ORG0000H AJMPMAIN ORG000BH AJMPT0INT ORG0100HMAIN: CLRP1.0 MOVTH0,#0DDH ;給定時器T0送初值 MOVTL0,#18H MOVIE,#82H ;允許T0中斷 SETBTR0 ;啟動T0 SJMP$中斷服務程式: ORG0300HT0INT: SETBP1.0 CLRP1.0 MOVTH

显示全部
相似文档