【正文】
EA=1。 下面分別采用中斷方式和查詢兩種方式編程: 用定時(shí) /計(jì)數(shù)器 0的方式 1編程,采用查詢方式。工作方式 2就針對這個(gè)問題而設(shè)置,它具有自動(dòng)重裝載功能,即自動(dòng)加載計(jì)數(shù)初值,所以也稱為自動(dòng)重加載工作方式。 C/= 1,為計(jì)數(shù)器模式,計(jì)數(shù)器對外部輸入引腳 T0( )或 T1( )的外部脈沖(負(fù)跳變)計(jì)數(shù),允許的最高計(jì)數(shù)頻率為晶振頻率的 1/24。 微處理器T H 1 T L 1 T H 0 T L 0T C O N T M O D內(nèi) 部 總 線P 3 . 5 ( T 1 )P 3 . 4 ( T 0 )T 1T 070707070圖 138 定時(shí)器 /計(jì)數(shù)器結(jié)構(gòu)框圖 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 相關(guān)知識(shí) 與定時(shí) /計(jì)數(shù)器有關(guān)的特殊功能寄存器 計(jì)數(shù)寄存器 TH和 TL 定時(shí)器 /計(jì)數(shù)器 T/C0和 T/C1都是 16位寄存器,由 TH高 8位和 TL低 8位構(gòu)成,在特殊功能寄存器( sfr)中,對應(yīng) T/C0為 TH0和 TL0,對應(yīng) T/C1為 TH1和 TL1,定時(shí)器 /計(jì)數(shù)器 T/C0和 T/C1的初值分別通過 TH0/TL0和 TH1/TL1來設(shè)置,加法計(jì)數(shù)器是計(jì)滿溢出時(shí)才申請中斷 , 所以在給定時(shí)器 /計(jì)數(shù)器賦初值時(shí) , 不能直接輸入所需的計(jì)數(shù)值 , 而應(yīng)輸入的是計(jì)數(shù)器計(jì)數(shù)的最大值與這一計(jì)數(shù)值的差值 , 設(shè)最大值為 M, 計(jì)數(shù)值為 N, 初值為 X, 則 X的計(jì)算方法如下 : 計(jì)數(shù)狀態(tài) : X=M- N 定時(shí)狀態(tài) : X=M-定時(shí)時(shí)間 /T ( T=12247。 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 設(shè)計(jì)案例 軟件設(shè)計(jì) 任務(wù)二:超聲波導(dǎo)航 程序設(shè)計(jì)思路 下面簡要分析以上程序的基本設(shè)計(jì)思路,程序設(shè)計(jì)流程如下: 圖 137主程序流程圖 開 始定 時(shí) 器 初 始 化產(chǎn) 生 5 181。s(1300)。s(1700)。 //后退 Left_Turn()。 //置 P1_4輸出為高電平,其余的輸出低電平 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 P1_3 = 1。s,這樣位差超聲波傳感器就被啟動(dòng),發(fā)出超聲爆裂,與此同時(shí),啟動(dòng)單片機(jī)的定時(shí)器開始計(jì)數(shù),當(dāng)超聲波遇到物體時(shí)會(huì)立即反射回來,位差超聲波傳感器的接收器接到回波時(shí),會(huì)自動(dòng)拉低其信號引腳的電平,單片機(jī)查詢到此引腳的電平下降沿到來時(shí)停止定時(shí)器計(jì)數(shù),此時(shí)定時(shí)器計(jì)數(shù)值就間接反應(yīng)了超聲波從反射到返回所經(jīng)歷的時(shí)間。 //延時(shí) 200ms } } 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 設(shè)計(jì)案例 軟件設(shè)計(jì) 任務(wù)一:超聲波距離測量 本任務(wù)是根據(jù)超聲波傳感器的時(shí)序原理圖,應(yīng)用 c51單片機(jī)定時(shí) /計(jì)數(shù)器實(shí)現(xiàn)對前方物體距離的測量并在 LCD模塊上顯示 源程序 void delay_n181。 L = TL0。 //計(jì)數(shù)器低位賦初值 0 TH0 = 0。通過測量回波脈沖的寬度(即時(shí)間),就能計(jì)算出目標(biāo)的距離,在主機(jī)微控制器發(fā)送的觸發(fā)脈沖的控制下,位差超聲波傳感器發(fā)出一道短 40 kHz的(超聲波)爆裂聲,此爆裂聲在空氣中以約 1130英尺每秒的速度傳播,當(dāng)碰到物體時(shí)便反射回到傳感器,此時(shí)傳感器會(huì)產(chǎn)生一個(gè)輸出脈沖,向主機(jī)微控制器表示回波被探測,這個(gè)脈沖寬度就是對應(yīng)于爆裂回聲返回到傳感器所需時(shí)間。 R S TX T A 1X T A 2A T 8 9 C 5 1V C C5 V91 81 92 0G N DP 1 . 0M22UF/10V+R 11 0 KC 2C 13 0 P F3 0 P F1 2 M H ZP 1 . 1C 3左 輪 驅(qū) 動(dòng) 電 機(jī)超 聲 波 傳 感 器12P 1 . 3M右 輪 驅(qū) 動(dòng) 電 機(jī)G N DG N DG N DG D NV c cVD 0D 1D 2D 3D 4D 5D 6D 7R SR / WEB L AB L K01 6 0 2 L C DP 0 . 0P 0 . 7P 2 . 0P 2 . 1P 2 . 2P 0 . 1P 0 . 2P 0 . 3P 0 . 4P 0 . 5P 0 . 6G N D圖 135 系統(tǒng)原理圖 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 設(shè)計(jì)案例 軟件設(shè)計(jì) 任務(wù)一:超聲波距離測量 本任務(wù)是根據(jù)超聲波傳感器的時(shí)序原理圖,應(yīng)用 c51單片機(jī)定時(shí) /計(jì)數(shù)器實(shí)現(xiàn)對前方物體距離的測量并在 LCD模塊上顯示 源程序 /*========================================================= 程序名: 功 能:利用超聲波傳感器測距,并在 LCD上顯示距離值。 //延時(shí) 5181。x400) 第一章 MCS—51單片機(jī)硬件結(jié)構(gòu)及指令系統(tǒng) 主講:雷道仲 設(shè)計(jì)案例 軟件設(shè)計(jì) 任務(wù)一:超聲波距離測量 本任務(wù)是根據(jù)超聲波傳感器的時(shí)序原理圖,應(yīng)用 c51單片機(jī)定時(shí) /計(jì)數(shù)器實(shí)現(xiàn)對前方物體距離的測量并在 LCD模塊上顯示 源程序 { x=x/2。 while(n) delay_n181。 void delay_nms(uint n)。 delay_n181。s { i=i/10。 //延時(shí) P1_1 = 0。i=4。 At89C 51單片機(jī)內(nèi)部有兩個(gè)可編程的定時(shí)器 /計(jì)數(shù)器,以滿足這方面的需要。 TR TR0: T T0 的運(yùn)行控制位。 圖 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。其中 TL0既可以作計(jì)數(shù)器使用,也可以作為定時(shí)器使用,定時(shí) /計(jì)數(shù)器 0的各控制位和引腳信號全歸它使用。 do{}while(!TF0)。 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的矩形波信號,設(shè)fosc=12MHz。 //P1_3取反 TH0=(655361000)/256。 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ù)器之前,要對它計(jì)數(shù)初始化編程,主要是對寄存器 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í),還必須開 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的方波信號。 16位的初值直接拆成高低字節(jié),分別送入 TH和 TL即可。 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