【正文】
應(yīng)用 c51單片機(jī)定時(shí) /計(jì)數(shù)器實(shí)現(xiàn)對(duì)前方物體距離的測(cè)量并在 LCD模塊上顯示 源程序 Write_Data_LCM(0x30+x2)。 while(i)。 //停止計(jì)數(shù) } 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 設(shè)計(jì)案例 軟件設(shè)計(jì) 程序運(yùn)行 按圖 135連接硬件電路,參考第 1章介紹的操作步驟編譯以上程序,將產(chǎn)生的可執(zhí)行文件燒寫到輪式教育機(jī)器人控制板上的單片機(jī)程序存儲(chǔ)器,開(kāi)機(jī)運(yùn)行,可以看到 LCD顯示屏上不斷的顯示出前方物體的距離值。 源程序 /*========================================================= 程序名: 功 能:利用超聲波傳感器探測(cè)前方物體并引導(dǎo)輪式教育機(jī)器人避開(kāi)障礙物 =========================================================*/ include define uint unsigned int 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 define uchar unsigned char void delay_n181。 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 int main(void) //主函數(shù),程序從這里開(kāi)始運(yùn)行 { uint count,x,H,L。 //延時(shí) 5181。 //定時(shí)器 1計(jì)時(shí)停止 H = TH0。 //延時(shí) 30ms } } 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 void delay_n181。 //計(jì)數(shù)器選取方式 1 TL0 = 0。 //設(shè)置 P1_1輸出高電平 delay_n181。 //設(shè)置 P1_0輸出高電平 delay_n181。 //延時(shí) 20ms } } 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 void Backward(void) //聲明一個(gè)向后子函數(shù) { uint i。 //設(shè)置 P1_1輸出高電平 delay_n181。調(diào)用 Backward();驅(qū)動(dòng)輪式教育機(jī)器人后退一段距離,接著又調(diào)用 Left_Turn();驅(qū)動(dòng)輪式教育機(jī)器人左拐后程序再返回重復(fù)以上過(guò)程; 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 2 4 5 模塊功能描述 必備知識(shí) 設(shè)計(jì)案例 學(xué)習(xí)內(nèi)容 第 13章 基于 C51單片機(jī)的超聲波導(dǎo)航模塊 1 3 相關(guān)知識(shí) 思考練習(xí)與拓展訓(xùn)練 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 輪單片機(jī)定時(shí)器 /計(jì)數(shù)器概述 在工業(yè)檢測(cè)、控制中,很多場(chǎng)合都要用到計(jì)數(shù)或者定時(shí)功能。當(dāng)采用12MHz晶振時(shí),一個(gè)機(jī)器周期為 1181。 TF0、 TF1分別是定時(shí)器 /計(jì)數(shù)器 T0、 T1 的溢出標(biāo)志位 , 加法計(jì)數(shù)器計(jì)滿溢出時(shí)置 1, 申請(qǐng)中斷 , 在 中斷響應(yīng)后自動(dòng)復(fù) 0。 T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O N第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 與定時(shí) /計(jì)數(shù)器有關(guān)的特殊功能寄存器 INT1引腳控制 T1。 T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O NM1 M0:四種工作方式的選擇位 表 131 定時(shí) /計(jì)數(shù)器工作方式 M1 M0 方 式 說(shuō) 明 0 0 0 13 位定時(shí)器 (TH的 8 位和 TL的低 5 位) 0 1 1 16 位定時(shí)器 /計(jì)數(shù)器 1 0 2 自動(dòng)重裝入初值的 8 位計(jì)數(shù)器 1 1 3 T0 分成兩個(gè)獨(dú)立的 8 位計(jì)數(shù)器, T1 在方式 3 時(shí)停止工作 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 定時(shí)器 /計(jì)數(shù)器的工作方式 方式 0 方式 0下, T0和 T1工作在 13位的定時(shí) /計(jì)數(shù)器方式,由 TH的高 8 位和 TL的低 5 位組成。 16位的初值直接拆成高低字節(jié),分別送入 TH和 TL即可。T M O DT 0控制01247。 1 2T L 0( 8 位 )中斷T C O N控制T F 1T R 1T H 0( 8 位 )中斷T C O Nf o s c / 1 2C / T = 1I N T 0C / T = 0___ _ _ _圖 1312 方式 3(兩個(gè) 8位獨(dú)立計(jì)數(shù)器) 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 定時(shí)器 /計(jì)數(shù)器的應(yīng)用 初始化步驟 在應(yīng)用定時(shí) /計(jì)數(shù)器之前,要對(duì)它計(jì)數(shù)初始化編程,主要是對(duì)寄存器 TCON和TMOD的編程以及計(jì)算和裝載 T/C(定時(shí) /計(jì)數(shù)器)的計(jì)數(shù)初值,一般有一下幾個(gè)步驟: 確定定時(shí) /計(jì)數(shù)器的工作方式 —— 編程 TMOD寄存器; 計(jì)算定時(shí) /計(jì)數(shù)器的計(jì)數(shù)初值,并裝載到 TH和 TL; 定時(shí) /計(jì)數(shù)器在中斷方式工作時(shí),還必須開(kāi) CPU總中斷 EA和相應(yīng)中斷源 —— 編程 IE寄存器 ; 啟動(dòng)定時(shí) /計(jì)數(shù)器 —— 編程 TCON中的 TR1或 TR T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O N第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 定時(shí)器 /計(jì)數(shù)器的應(yīng)用 應(yīng)用舉例 例 已知單片機(jī)的晶振頻率為 fosc=12MHz,應(yīng)用定時(shí) /計(jì)數(shù)器,在單片機(jī)引腳 P1_3產(chǎn)生周期為 2ms的方波信號(hào)。 //啟動(dòng)定時(shí)器 T/C0 while(1){ TH0=(655361000)/256。 //P1_3取反 TH0=(655361000)/256。 //啟動(dòng)定時(shí)器 T/C do{}while(1)。 T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O N第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 2 4 5 模塊功能描述 必備知識(shí) 設(shè)計(jì)案例 學(xué)習(xí)內(nèi)容 第 13章 基于 C51單片機(jī)的超聲波導(dǎo)航模塊 1 3 相關(guān)知識(shí) 思考練習(xí)與拓展訓(xùn)練 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 思考練習(xí)與拓展訓(xùn)練 思考練習(xí) 89C51定時(shí) /計(jì)數(shù)器的定時(shí)方式和計(jì)數(shù)方式的區(qū)別是什么? 設(shè) fosc=12MHz, 89C51定時(shí)器 T0的方式 0、方式 方式 2的最大定時(shí)時(shí)間分別是多少? 編程定時(shí)器 T0,使單片機(jī)產(chǎn)生頻率為 100Hz,占空比為 2:1的矩形波信號(hào),設(shè)fosc=12MHz。 } T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O N第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 定時(shí)器 /計(jì)數(shù)器的應(yīng)用 void main(void) { TMOD=0x01。 do{}while(!TF0)。 因?yàn)?fosc=12MHz,機(jī)器周期 =12/12MHz=1181。其中 TL0既可以作計(jì)數(shù)器使用,也可以作為定時(shí)器使用,定時(shí) /計(jì)數(shù)器 0的各控制位和引腳信號(hào)全歸它使用。) T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O N1M 0M 1C / TG A T E振 蕩 器≥ 1amp。 圖 139 方式 0( 13位計(jì)數(shù)器) T F 1 T R 1 T F 0 T R 0 I E 1 I T 1 I E 0 I T 0D 0D 1D 2D 3D 4D 5D 6D 7T C O N1M 0M 1C / TG A T E振 蕩 器≥ 1amp。若 GATE= 0,即不使能門控功能,定時(shí)計(jì)數(shù)器的運(yùn)行不受外部輸入引腳 INT0、 INT1的控制 C/位:計(jì)數(shù)器模式和定時(shí)器模式的選擇位。 TR TR0: T T0 的運(yùn)行控制位。 當(dāng)設(shè)置為計(jì)數(shù)工作模式時(shí),通過(guò)引腳 T0( )和 T1()對(duì)外部脈沖信號(hào)計(jì)數(shù),當(dāng)輸入脈沖信號(hào)產(chǎn)生由 1到 0的下降沿時(shí),定時(shí)器的值加 1. 不管時(shí)定時(shí)還是計(jì)數(shù)工作模式,定時(shí)器 T0或 T1在對(duì)內(nèi)部時(shí)鐘或外部事件計(jì)數(shù)時(shí),都不占用 CUP時(shí)間,除非定時(shí)器 /計(jì)數(shù)器溢出,才可能中斷