項(xiàng)目定時(shí)器與脈沖計(jì)數(shù)器設(shè)計(jì)_第1頁(yè)
項(xiàng)目定時(shí)器與脈沖計(jì)數(shù)器設(shè)計(jì)_第2頁(yè)
項(xiàng)目定時(shí)器與脈沖計(jì)數(shù)器設(shè)計(jì)_第3頁(yè)
項(xiàng)目定時(shí)器與脈沖計(jì)數(shù)器設(shè)計(jì)_第4頁(yè)
項(xiàng)目定時(shí)器與脈沖計(jì)數(shù)器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、項(xiàng)目定時(shí)器與脈沖計(jì)數(shù)器設(shè)計(jì)電子工業(yè)出版社 定時(shí)器與脈 沖計(jì)數(shù)器的設(shè)計(jì)l 能了解單片機(jī)定時(shí)能了解單片機(jī)定時(shí)/ /計(jì)數(shù)器的組成;計(jì)數(shù)器的組成; l 能理解單片機(jī)定時(shí)能理解單片機(jī)定時(shí)/ /計(jì)數(shù)器的工作原理和計(jì)數(shù)器的工作原理和4 4種工作方式;種工作方式; l 能掌握單片機(jī)定時(shí)能掌握單片機(jī)定時(shí)/ /計(jì)數(shù)器的初始化方法;計(jì)數(shù)器的初始化方法;l 能恰當(dāng)運(yùn)用單片機(jī)定時(shí)能恰當(dāng)運(yùn)用單片機(jī)定時(shí)/ /計(jì)數(shù)器的功能;計(jì)數(shù)器的功能;l 能掌握定時(shí)器的設(shè)計(jì)方法;能掌握定時(shí)器的設(shè)計(jì)方法;l 能掌握脈沖計(jì)數(shù)器的硬件電路和軟件設(shè)計(jì)方法;能掌握脈沖計(jì)數(shù)器的硬件電路和軟件設(shè)計(jì)方法;l 能熟練編寫單片機(jī)定時(shí)能熟練編寫單片機(jī)定時(shí)/ /

2、計(jì)數(shù)器工作的程序。計(jì)數(shù)器工作的程序。 學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo) l 敘述單片機(jī)定時(shí)敘述單片機(jī)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器4 4種工作方式的工作原理;種工作方式的工作原理;l 敘述單片機(jī)定時(shí)敘述單片機(jī)定時(shí)/ /計(jì)數(shù)器的初始化方法;計(jì)數(shù)器的初始化方法;l 設(shè)計(jì)定時(shí)器的工作程序;設(shè)計(jì)定時(shí)器的工作程序;l 設(shè)計(jì)脈沖計(jì)數(shù)器的電路和工作程序。設(shè)計(jì)脈沖計(jì)數(shù)器的電路和工作程序。 工作任務(wù)工作任務(wù) 任務(wù)任務(wù)5 5.1 .1 定時(shí)器的設(shè)計(jì)定時(shí)器的設(shè)計(jì)項(xiàng)目項(xiàng)目5 5 定時(shí)器與脈沖計(jì)數(shù)器的設(shè)計(jì)定時(shí)器與脈沖計(jì)數(shù)器的設(shè)計(jì)任務(wù)任務(wù)5 5.2 .2 脈沖計(jì)數(shù)器的設(shè)計(jì)脈沖計(jì)數(shù)器的設(shè)計(jì)項(xiàng)目拓展項(xiàng)目拓展 實(shí)驗(yàn)板分頻器的設(shè)計(jì)實(shí)驗(yàn)板分頻器的設(shè)計(jì)項(xiàng)目

3、小結(jié)項(xiàng)目小結(jié)思考與訓(xùn)練思考與訓(xùn)練5.1.1.1 5.1.1.1 單片機(jī)定單片機(jī)定時(shí)時(shí)/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu) 加1計(jì)數(shù)器(高8位、低8位);5.1.1 MCS-51單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器的原理 工作方式控制寄存器TMOD,工作方式設(shè)置; 定時(shí)器控制寄存器TCON,啟動(dòng)、停止及設(shè)置溢出標(biāo)志。任務(wù)任務(wù)5.1 定時(shí)器的設(shè)計(jì)定時(shí)器的設(shè)計(jì) 5.1.1.2 定時(shí)/計(jì)數(shù)器工作原理計(jì)數(shù)功能計(jì)數(shù)功能-計(jì)數(shù)脈沖來自相應(yīng)的外部輸入引腳,T0為, T1為。定時(shí)功能定時(shí)功能-計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使 寄存器的值加1。所以,計(jì)數(shù)頻率是振蕩頻率的1/12。n 定時(shí)模式,對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)定時(shí)模式,對(duì)

4、內(nèi)部機(jī)器周期計(jì)數(shù)n 定時(shí)時(shí)間定時(shí)時(shí)間 t 計(jì)數(shù)值計(jì)數(shù)值N x Tcy 計(jì)數(shù)模式,對(duì)外部事件脈沖計(jì)數(shù)n 計(jì)數(shù)脈沖周期要大于2 Tcy TMOD中,各有一個(gè)控制位(CT),分別用于控制定時(shí)/計(jì)數(shù)器T0和T1工作在定時(shí)器方式還是計(jì)數(shù)器方式。 計(jì)數(shù)值:溢出時(shí)計(jì)數(shù)器值計(jì)數(shù)初值。 計(jì)數(shù)器全1時(shí),再輸入1個(gè)脈沖就回零,并發(fā)生 溢出(TCON中TF0或TF1置1), 發(fā)中斷請(qǐng)求。 計(jì)數(shù)器脈沖來源: 振蕩器脈沖經(jīng)過振蕩器脈沖經(jīng)過12分頻分頻T0或或T1引腳的外部脈沖引腳的外部脈沖1.工作方式控制寄存器TMOD T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE門

5、控位C/T計(jì)數(shù)/定時(shí)選擇M1 M0工作方式選擇5.1.1.3 5.1.1.3 時(shí)時(shí)/ /計(jì)數(shù)器的初始化計(jì)數(shù)器的初始化注意:不能進(jìn)行位尋址注意:不能進(jìn)行位尋址 定時(shí)定時(shí)/ /計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式 M1 M0工作方式工作方式功能說明功能說明0 0方式方式013位計(jì)數(shù)器位計(jì)數(shù)器0 1方式方式116位計(jì)數(shù)器位計(jì)數(shù)器1 0方式方式2自動(dòng)重裝初值的自動(dòng)重裝初值的8位計(jì)數(shù)器位計(jì)數(shù)器1 1方式方式3方式方式3只針對(duì)只針對(duì)T0,T0分成兩個(gè)分成兩個(gè)獨(dú)立的獨(dú)立的8位定時(shí)計(jì)數(shù)器;位定時(shí)計(jì)數(shù)器;T1無無方方式式32.定時(shí)器控制寄存器TCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0T

6、F1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0中斷請(qǐng)求標(biāo)志中斷請(qǐng)求標(biāo)志觸發(fā)方式選擇啟動(dòng)定時(shí)/計(jì)數(shù)器0 低電平1 下降沿0 停止1 啟動(dòng)3.3.定時(shí)定時(shí)/ /計(jì)數(shù)器的初始化計(jì)數(shù)器的初始化 計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值: 編程時(shí)將計(jì)數(shù)初值送TH0、TL0或TH1、TL1; 可編程器件在使用前需要進(jìn)行初始化: 確定TMOD控制字:編程時(shí)將控制字送TMOD; 開中斷(如果使用中斷方式): 編程實(shí)置位EA、ETi TR0或TR1位置位控制定時(shí)器的啟動(dòng)和停止。【例】【例】若單片機(jī)晶振為12MHz,要求產(chǎn)生5ms的定時(shí),試計(jì)算X的初值。解:采用定時(shí)器采用定時(shí)器0的方式

7、的方式0: 500*10-6=(213-X)*12*1/fosc x=7692=1E0CH=1 1110 000 0 1100 F0H 0CH 即即 TH0=F0H , TL0 =0CH TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 0 0 0 0 00 00H 采用定時(shí)器采用定時(shí)器1方式方式1: 500*10-6=(216-X )*12*1/fosc x=65036=FE0CH 即即TH1=FEH, TL1 =0CH TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 01 0 0 0 0 10Hmain()函數(shù)中:TMOD=0 x01;/設(shè)

8、置定時(shí)器0為工作方式1TH0=0 xFE; /定時(shí)器0高8位給初值TL0=0 xC0; /定時(shí)器0低8位給初值EA=1; /開總中斷ET0=1; /開定時(shí)器0中斷TR0=1; /啟動(dòng)定時(shí)器0初始化程序編寫初始化程序編寫中斷服務(wù)程序中重新裝入定時(shí)初值void timer0() interrupt 1 TH0=0 xFE; /定時(shí)器0高8位給初值 TL0=0 xC0; /定時(shí)器0低8位給初值 計(jì)數(shù)脈沖輸入計(jì)數(shù)脈沖輸入方式013位方式。由由TL0TL0的的低5位和和TH0TH0的的8位組成。組成。TH0TH0溢出時(shí),置位溢出時(shí),置位TF0TF0標(biāo)志,向標(biāo)志,向CPUCPU發(fā)出中斷請(qǐng)求。發(fā)出中斷請(qǐng)求。

9、TF0T0TR0GATEINT011&C/T=1C/T=0振蕩器1/12TL0 TH08位低5位13位計(jì)數(shù)器定時(shí)定時(shí)器器計(jì)數(shù)計(jì)數(shù)器器5.1.2 5.1.2 用單片機(jī)定時(shí)用單片機(jī)定時(shí)/ /計(jì)數(shù)器設(shè)計(jì)計(jì)數(shù)器設(shè)計(jì)定時(shí)器(查詢方式)定時(shí)器(查詢方式)5.1.2.1 用定時(shí)/計(jì)數(shù)器的工作方式0設(shè)計(jì)定時(shí)器定時(shí)=(213X)時(shí)鐘周期12 =(213 X)*12*1/fosc計(jì)數(shù)初值:X 213T(時(shí)鐘周期12)定時(shí)定時(shí)/ /計(jì)數(shù)器工作方式計(jì)數(shù)器工作方式0 0定時(shí)方式:定時(shí)方式:例:8*10-3=(213-X)*12*1/(12*106) X = 213 8000 =192 =0 xC0計(jì)數(shù)方式:計(jì)數(shù)

10、方式:計(jì)數(shù)次數(shù)值213X計(jì)數(shù)初值:X 213計(jì)數(shù)次數(shù)值注意:注意:X X的低的低5 5位送位送TL0TL0(TL1TL1),),TL0TL0(TL1TL1)的高)的高 3 3位數(shù)為任意值,常取位數(shù)為任意值,常取0 0,高,高8 8位送位送TH0TH0(TH1TH1)。)。1 1任務(wù)要求任務(wù)要求 本任務(wù)要求用AT89C51的定時(shí)器1,方式0設(shè)計(jì)一只1 秒的定時(shí)器,用定時(shí)器的查詢方式,使AT89C51控制的一只發(fā)光二極管定時(shí)1秒閃爍。任務(wù)操作任務(wù)操作 2任務(wù)分析任務(wù)分析 確定TMOD控制字:采用AT89C51的定時(shí)器1方式0定時(shí),TMOD = 0 x00 計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值:

11、 : 因?yàn)榉绞揭驗(yàn)榉绞?采用采用13位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:81921 m ms = 8.192 ms,可選擇定時(shí)時(shí)間為,可選擇定時(shí)時(shí)間為5 ms,再循環(huán),再循環(huán)200次就可以定次就可以定時(shí)為時(shí)為1s了。了。X 213T(時(shí)鐘周期12) 所以TH1賦值0 x63 ,TL1賦值0 x18。注意:定時(shí)注意:定時(shí)/ /計(jì)數(shù)器的方式計(jì)數(shù)器的方式0 0為為1313位計(jì)數(shù)器,其不用的是低位計(jì)數(shù)器,其不用的是低8 8位中的高三位,一般補(bǔ)三個(gè)位中的高三位,一般補(bǔ)三個(gè)0 0。3. 任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì) (1)硬件原理圖設(shè)計(jì))硬件原理圖設(shè)計(jì) (2)軟件程序設(shè)計(jì) #includevoid

12、 sTime ( ) /定時(shí)1s子程序 unsigned int i; TMOD=0 x00; /設(shè)定時(shí)器1為方式0 TH1=0 x63; /置定時(shí)器初值 TL1=0 x18; TR1=1; /啟動(dòng)T1 for(i=0; i=200 ; ) if ( TF1 = 1) /查詢計(jì)數(shù)溢出 i+; TF1=0; TH1=0 x63; /重新置定時(shí)器初值 TL1=0 x18; return ;/發(fā)光二極管定時(shí)1s閃爍主程序void main() for( ; ; ) P1_0=!P1_0; /取反P1.0 使發(fā)光二極管閃爍 sTime (); /調(diào)用1s定時(shí) 方式方式1 11616位方式位方式 161

13、6位計(jì)數(shù),由位計(jì)數(shù),由TL0TL0作為低作為低8 8位、位、TH0TH0作為高作為高8 8位。位。1616位計(jì)數(shù),由位計(jì)數(shù),由TL1TL1作為低作為低8 8位、位、TH1TH1作為高作為高8 8位。位。TF0T0TR0GATEINT011&C/T=1C/T=0振蕩器1/12TL0 TH08位低8位16位計(jì)數(shù)器定時(shí)定時(shí)器器計(jì)數(shù)計(jì)數(shù)器器5.1.2.2 用定時(shí)/計(jì)數(shù)器的工作方式1設(shè)計(jì)定時(shí)器定時(shí)=(216X)時(shí)鐘周期12 =(216 X)*12*1/fosc計(jì)數(shù)初值:X 216T(時(shí)鐘周期12)定時(shí)定時(shí)/ /計(jì)數(shù)器工作方式計(jì)數(shù)器工作方式1 1X X的的低低8 8位送位送TL0TL0(TL1TL

14、1),高),高8 8位送位送TH0TH0(TH1TH1)。)。 定時(shí)方式:定時(shí)方式:計(jì)數(shù)方式:計(jì)數(shù)方式:計(jì)數(shù)次數(shù)值216X計(jì)數(shù)初值:X 216計(jì)數(shù)次數(shù)值1 1任務(wù)要求任務(wù)要求本任務(wù)要求用AT89C51的定時(shí)器0方式1設(shè)計(jì)一只1 秒的定時(shí)器,使AT89C51的P0和P2端口控制的2組16只LED流水燈定時(shí)1秒滾動(dòng)點(diǎn)亮。 2 2任務(wù)分析任務(wù)分析 確定TMOD控制字: 采用AT89C51的定時(shí)器0方式1定時(shí), TMOD = 0 x01。 計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值: 因?yàn)榉绞?采用16位計(jì)數(shù)器,其最大定時(shí)時(shí)間為: 655361 ms =65.536ms,可選擇定時(shí)時(shí)間為5 ms,再循環(huán)200次就可以定時(shí)為

15、1s了。X = 216T(時(shí)鐘周期12)= 65536-50000=15536 = 0 x6318 所以TH1賦值0 x63 ,TL1賦值0 x18。TH0 =(65536-40000)/256; TL0 =(65536-40000)%256;3 3. . 任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì) 1571234568910111213141616115214313412511610789XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.

16、01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D1R2280D2R3280D3R4280D4R5280D5R6280D6R7280D7R8280D8R9280R10280R11280R12280R13280R14280R15280R16280

17、R17280C122pFC222pFC310uFX112MR110kD9D10D11D12D13D14D15D16(1 1) 硬件原理圖設(shè)計(jì)硬件原理圖設(shè)計(jì)(2) 軟件程序設(shè)計(jì) #include#include#define uchar unsigned char/流水燈定時(shí)1s滾動(dòng)主程序void main( ) uchar T_Count = 0; /累加計(jì)數(shù)溢出發(fā)生的次數(shù) P0 = 0 xFE; /點(diǎn)亮D1燈 P2 = 0 xFE; /點(diǎn)亮D16燈 TMOD = 0 x01; /定時(shí)器0工作于方式1 TH0 =(65536-50000)/256; /50ms定時(shí)初值 TL0 =(65536-

18、50000)%256; TR0 = 1; /啟動(dòng)定時(shí)器 while(1) if(TF0 = = 1) /定時(shí)溢出標(biāo)志位為1時(shí)表示計(jì)時(shí)溢出 TF0 = 0; /軟件清零 TH0 =(65536-50000)/256; /重置50ms定時(shí) TL0 =(65536-50000)%256; if(+T_Count = 20) /50*20=1000ms后LED滾動(dòng)一次 P0 = _crol_(P0,1); P2 = _crol_(P2,1); T_Count = 0; 方式方式2 28 8位自動(dòng)裝入時(shí)間常數(shù)方式位自動(dòng)裝入時(shí)間常數(shù)方式 TF0振蕩器1/1211&T0TR0GATEINT0C/T=

19、0C/T=1TL0 TH0 自動(dòng)重裝初值的自動(dòng)重裝初值的8 8位計(jì)數(shù)方式位計(jì)數(shù)方式 ,適合于用作較,適合于用作較精確的脈沖信號(hào)發(fā)生器。精確的脈沖信號(hào)發(fā)生器。TH0(TH1)中保留初值5.1.2.3 用定時(shí)/計(jì)數(shù)器的工作方式2設(shè)計(jì)定時(shí)器定時(shí)=(28X)時(shí)鐘周期12 =(28 X)*12*1/fosc計(jì)數(shù)初值:X 28T(時(shí)鐘周期12)定時(shí)定時(shí)/ /計(jì)數(shù)器工作方式計(jì)數(shù)器工作方式1 1初值初值X X分別送給分別送給TL0TL0(TL1TL1)和)和TH0TH0(TH1TH1)。)。 定時(shí)方式:定時(shí)方式:計(jì)數(shù)方式:計(jì)數(shù)方式:計(jì)數(shù)次數(shù)值28X計(jì)數(shù)初值:X 28計(jì)數(shù)次數(shù)值1 1任務(wù)要求任務(wù)要求本任務(wù)要求用

20、AT89C51的定時(shí)器1方式2設(shè)計(jì)一只1 秒的定時(shí)器,用定時(shí)器的查詢方式,使AT89C51控制的一只發(fā)光二極管定時(shí)1秒閃爍。 2 2任務(wù)分析任務(wù)分析 確定TMOD控制字: 采用AT89C51的定時(shí)器1方式2定時(shí), TMOD = 0 x20。 計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值: 方式2采用8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為: 2561 ms =256ms,可選擇定時(shí)時(shí)間為250 ms ,再循環(huán)4000 次就可以定時(shí)為1s。X = 28計(jì)數(shù)值= 256-250=6 = 0 x06 所以TH1賦值0 x06 ,TL1也賦值0 x06。3 3. . 任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì) (1 1)硬件原理圖設(shè)計(jì))硬件原理圖設(shè)計(jì) (2)軟件

21、程序設(shè)計(jì) #includevoid sTime ( ) unsigned int i; TMOD=0 x20; /設(shè)定時(shí)器1為方式2 TH1=0 x06; /置定時(shí)器初值 TL1=0 x06; TR1=1; /啟動(dòng)T0 for(i=0; i=4000; ) if ( TF1 = 1) /查詢計(jì)數(shù)溢出 i+; TF1=0; return ; /發(fā)光二極管定時(shí)1s閃爍主程序 void main() while (1) P1_0=!P1_0; /取反P1.0 使發(fā)光二極管閃爍 sTime ( ); /調(diào)用1s定時(shí) 5.1.2.4 用定時(shí)/計(jì)數(shù)器的工作方式3設(shè)計(jì)定時(shí)器方式方式3 32 2個(gè)個(gè)8 8位方

22、式位方式 T0工作方式3結(jié)構(gòu)圖T0工作方式3時(shí)T1的結(jié)構(gòu)圖 僅僅T0T0可以工作在方式可以工作在方式3 3,T1T1處于方式處于方式3 3時(shí)停止計(jì)數(shù)。此時(shí)停止計(jì)數(shù)。此時(shí)時(shí)T0T0分成分成2 2個(gè)獨(dú)立的計(jì)數(shù)器個(gè)獨(dú)立的計(jì)數(shù)器TL0TL0和和TH0 TH0 ,前者用原來,前者用原來T0T0的的控制信號(hào)(控制信號(hào)(TR0TR0、TF0TF0),后者用原來),后者用原來T1T1的控制信號(hào)(的控制信號(hào)(TR1TR1、TF1TF1)。)。(1 1)TH0TH0由由TR1TR1啟動(dòng)啟動(dòng)/ /停止,停止,TF1TF1標(biāo)志標(biāo)志溢出溢出(2 2)TL0TL0由由TR0TR0啟動(dòng)啟動(dòng)/ /停止,停止,TF0TF0標(biāo)志

23、標(biāo)志溢出溢出(3 3)TH0TH0只能定時(shí),只能定時(shí),TL0TL0可以定時(shí)可以定時(shí)/ /計(jì)數(shù),且都是計(jì)數(shù),且都是8 8位位 定時(shí)定時(shí)T=(T=(2 28 8)* *1212foscfosc TL0 TL0計(jì)數(shù)初值計(jì)數(shù)初值2 28 81任務(wù)要求任務(wù)要求 本任務(wù)要求用AT89C51的定時(shí)器1方式3設(shè)計(jì)一只1 秒的定時(shí)器,用定時(shí)器的查詢方式,使AT89C51控制的一只發(fā)光二極管定時(shí)1秒閃爍。 2任務(wù)分析任務(wù)分析 確定TMOD控制字: 因?yàn)椴捎肁T89C51的定時(shí)器0方式3定時(shí),這里采用TL0和TH0結(jié)合使用的方法,讓TL0工作在計(jì)數(shù)方式,故TMOD = 0 x07。 當(dāng)TH0計(jì)滿溢出后,用軟件復(fù)位的

24、方法使T0()引腳產(chǎn)生負(fù)跳變,TH0每溢出一次,T0引腳便產(chǎn)生一個(gè)負(fù)跳變,TL0便計(jì)數(shù)一次。TL0計(jì)滿溢出時(shí),延時(shí)時(shí)間應(yīng)為50 ms,循環(huán)20次便可得到1s的延時(shí)。 計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值: 方式3中定時(shí)器0中的TH0只能作為定時(shí)器,TH0是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:2561us = 256 s,可選擇定時(shí)時(shí)間為250us。這樣TH0的初值為X =(256-250)= 6 = 0 x06TL0設(shè)置為計(jì)數(shù)器,TL0是8位計(jì)數(shù)器,其最大計(jì)數(shù)值為256,可選擇計(jì)數(shù)值為200。這樣TL0計(jì)數(shù)初值為X = M計(jì)數(shù)值= 256-200 = 56 = 0 x38 所以TL0賦值0 x38,TH0賦值0 x

25、06 。 3 3. . 任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì) (1)1)硬件原理圖設(shè)計(jì)硬件原理圖設(shè)計(jì)(2)軟件程序設(shè)計(jì) #include /定時(shí)1s子程序 void sTime ( ) unsigned int i ; TMOD=0 x07;/置定時(shí)器0為方式3計(jì)數(shù) TH0=0 x06 ; /置TH0初值 TL0=0 x38 ; /置TL0初值 TR0=1 ; /啟動(dòng)TL0 TR1=1 ; /啟動(dòng)TH0 for(i=0; i=20 ; ) if(TF0=0) /在TL0沒有溢出時(shí) if(TF1=1) /查詢TH0計(jì)數(shù)溢出 TF1=0; TH0=0 x06; /重置TH0初值 P3_4=0; /T0引腳產(chǎn)生負(fù)跳變

26、P3_4=0; /負(fù)跳變持續(xù) P3_4=1; /T0引腳恢復(fù)高電平 continue; TF0=0; i+; TL0=0 x38 ;/重置TL0初值 return ;/發(fā)光二極管定時(shí)1s閃爍主程序void main() while (1) P1_0=!P1_0; /取反P1.0 使發(fā)光二極管閃爍 sTime ( ); /調(diào)用1s定時(shí) 設(shè)計(jì)數(shù)器最大計(jì)數(shù)值為M,選擇不同的工作方式最大計(jì)數(shù)值不同。(如12MHZ)方式0:M=213方式1:M=216方式2:M=28=256, 256us方式3:M=28=256, 256us任務(wù)5.2 脈沖計(jì)數(shù)器的設(shè)計(jì)1任務(wù)要求 要求用AT89C51設(shè)計(jì)一個(gè)計(jì)數(shù)范圍為

27、099的脈沖計(jì)數(shù)器,也就是用AT89C51的定時(shí)/計(jì)數(shù)器采樣計(jì)數(shù)外部按鍵輸送的脈沖信號(hào),并用數(shù)碼管將計(jì)數(shù)的數(shù)值顯示出來。2任務(wù)分析設(shè)置T0為計(jì)數(shù)方式,計(jì)數(shù)外部的脈沖,工作在方式2,所以TMOD=0 x06。 確定TMOD控制字:方式2的最大計(jì)數(shù)值為256,如果把初值設(shè)置為255,當(dāng)P3.4管腳接收到一個(gè)由高到低的下跳變時(shí),計(jì)數(shù)值加1溢出,查詢到TF0=1后,就將顯示的計(jì)數(shù)值加1,實(shí)現(xiàn)脈沖計(jì)數(shù)器計(jì)數(shù)。這樣將TL0的初值設(shè)置為X =(256-1)= 255 = 0 xFF 將TL0= 0 xFF,TH0= 0 xFF,每次溢出后TH0自動(dòng)將初值裝入TL0。計(jì)算計(jì)數(shù)器的計(jì)數(shù)初值:3任務(wù)設(shè)計(jì) (1)硬

28、件原理圖設(shè)計(jì)P0.0P0.1P0.2P0.3P0.4P0.5P0.6P2.0P0.0P2.1P0.1P2.2P0.2P2.3P0.3P2.4P0.4P2.5P0.5P2.6P0.6P2.0P2.1P2.2P2.3P2.4P2.5P2.6P0.1P0.2P0.3P0.4P0.5P0.6P0.0XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P

29、3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51SEG71SEG72K1 計(jì)數(shù)K2 清零C122pFC222pFC310uFX112MR110k234567891RP1RESPACK-8(2)軟件程序設(shè)計(jì) #include /數(shù)碼管段碼定義 unsigned char code DSY_CODE =0 x3f,0 x0

30、6, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07, 0 x7f, 0 x6f, 0 x00,; unsigned char count=0;void main() P0=DSY_CODE0; P2=DSY_CODE0; TMOD=0 x06; /置定時(shí)器0為方式2計(jì)數(shù) TH0=0 xFF ; /置TH0初值 TL0=0 xFF ; /置TL0初值 TR0=1 ; /啟動(dòng)TL0計(jì)數(shù) while (1) if(TF0=1) /查詢TF0是否為1 TF0=0; /TF0清零 count = (count +1)%100; /計(jì)數(shù)值控制在100以內(nèi) P0=DSY_CODEcount /10 ; /顯示計(jì)數(shù)值高位 P2=DSY_CODEcount %10 ; /顯示計(jì)數(shù)值低位 if(P3_2=0) /查詢到上有低電平 count = 0; /計(jì)數(shù)值清零 P0=DSY_CODE0; /顯示清零 P2=DSY_CODE0; /顯示清零 項(xiàng)目拓展 實(shí)驗(yàn)板分頻器的設(shè)計(jì) 實(shí)驗(yàn)板采用的是STC89C52單片機(jī),如附錄2中“單片機(jī)與擴(kuò)展插座”電路所示。我們要在P1.0P1.7端口上產(chǎn)生不同頻率的方波,周期分別為1ms、2ms、4ms、8ms、16ms、32ms、64ms、128ms,就相當(dāng)于實(shí)現(xiàn)了不同級(jí)別的分頻。1任務(wù)要求2任務(wù)分析 首先,我們用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論