Chapter4 定時器、中斷和串口_第1頁
Chapter4 定時器、中斷和串口_第2頁
Chapter4 定時器、中斷和串口_第3頁
Chapter4 定時器、中斷和串口_第4頁
Chapter4 定時器、中斷和串口_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章第四章 MCS-51單單片機的定時器、中斷片機的定時器、中斷和串口和串口主要內(nèi)容主要內(nèi)容定時器/計數(shù)器的相關(guān)寄存器1定時器/計數(shù)器的四種工作方式2串口的四種工作方式5串口相關(guān)的寄存器4中斷系統(tǒng)的結(jié)構(gòu)和相關(guān)寄存器6中斷的響應(yīng)過程7串行通信的一些概念3學(xué)習(xí)目標學(xué)習(xí)目標了解MCS-51單片機的定時器/計數(shù)器的工作模式1能夠根據(jù)指定的定時間隔,編寫MCS-51單片機定時程序2了解MCS-51單片機串口結(jié)構(gòu)和串口的使用方法3能夠搭建80C51單片機的多機串行通信電路,同時編寫相應(yīng)的串行通信程序。4了解中斷系統(tǒng)的概念、結(jié)構(gòu)和相關(guān)寄存器5掌握80C51單片機中斷系統(tǒng)的響應(yīng)過程,能夠設(shè)計一個中斷系統(tǒng)。6

2、MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器基本情況基本情況v 2個16位的定時/計數(shù)器,有四種工作方式,簡稱定時器0、定時器1,分別用T0、T1表示。v 定時/計數(shù)器工作在定時模式定時模式時,計數(shù)脈沖信號來自單片機的內(nèi)部單片機的內(nèi)部,計數(shù)速率是晶振頻率的晶振頻率的1/12,當(dāng)計數(shù)器啟動后,每個機器周期計數(shù)器自動加1。v 定時/計數(shù)器工作在計數(shù)模式計數(shù)模式時,計數(shù)器對外部脈沖外部脈沖進行計數(shù),計數(shù)器計P3.4(T0腳)腳)P3.5(T1腳)負跳變次數(shù)腳)負跳變次數(shù)。每產(chǎn)生一次負跳變,計數(shù)器自動加1。計數(shù)器最高計數(shù)頻率為振蕩頻率的最高計數(shù)頻率為振蕩頻率的1/24。定時器

3、計數(shù)器定時/計數(shù)器 內(nèi)部計數(shù)器內(nèi)部計數(shù)器外部計數(shù)器vCPU可以用軟件設(shè)定定時器/計數(shù)器的工作方式,定時器/計數(shù)器工作時,會按照設(shè)定的工作方式獨立運行,不占用CPU的操作時間,一旦定時器/計數(shù)器計滿溢出,將向CPU提出中斷申請,中斷CPU當(dāng)前操作。v還有2個8位的專用寄存器TMOD(88H)和TCON (89H) 。其中TMOD是定時器的工作方式和工作模式寄存器,TCON是控制寄存器,主要用于定時/計數(shù)器管理與控制。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器基本情況基本情況v定時器/計數(shù)器的核心部件是二進制加1計數(shù)器(TH0、TL0或TH1、TL1) 。v當(dāng)加到計數(shù)器

4、為全“1”時,再輸入一個脈沖,就使計數(shù)器回零,同時產(chǎn)生溢出脈沖使TCON中溢出中斷標志TF0或TF1置1,并可向CPU申請中斷。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器基本情況基本情況MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器基本情況基本情況3bit計數(shù)器 (a) 原理圖. (b) 時序圖MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器基本情況基本情況vT0和T1 8051單片機有2個16位的定時/計數(shù)器,即定時器0(T0)和定時器1(T1)。 T0由2個特殊功能寄存器TH0(高字節(jié),地址8CH)和TL0(低字節(jié),

5、地址8AH)構(gòu)成,T1則由TH1(高字節(jié),地址8DH)和TL1(低字節(jié),地址8BH)構(gòu)成。 MOV TL0, #9CHMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器v定時器/計數(shù)器工作方式控制寄存器:TMOD 8bit寄存器,地址89H 工作模式寄存器TMOD每一位都定義了不同的功能,但只能字節(jié)尋址,即要配置其中某一位信息,必須對TMOD整體賦值。 低四位用來設(shè)置T0的工作方式,高四位用來設(shè)置T1的工作方式。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器GATEC/TM1M0GATEC/TM1M0Timer 1Timer

6、0(MSB)(LSB)工作工作模式寄存器的格式模式寄存器的格式()()GATEGATE門控位門控位 門控位用來確定定時器門控位用來確定定時器/ /計數(shù)器的啟動除了受計數(shù)器的啟動除了受TR0TR0(TR1TR1)的影響,是否還要)的影響,是否還要受外部中斷輸入引腳受外部中斷輸入引腳 ( )( )的信號控制。的信號控制。 GATE=1GATE=1:當(dāng)外部中斷輸入引腳當(dāng)外部中斷輸入引腳 ( )為高電平時,)為高電平時,TR0TR0(TR1TR1)設(shè)置為)設(shè)置為1 1,啟動定時器,啟動定時器/ /計數(shù)器計數(shù)器T0T0(T1T1);當(dāng)外部中斷輸入引腳);當(dāng)外部中斷輸入引腳 ( )為低電平時,不能啟動)為

7、低電平時,不能啟動T0T0(T1T1)。)。 GATE=0GATE=0:只要將只要將TR0TR0(TR1TR1)設(shè)置為)設(shè)置為1 1,即可啟動定時器,即可啟動定時器/ /計數(shù)器計數(shù)器T0T0(T1T1)。)。D7D6D5D4D3D2D1D0GATE M1M0GATE M1M0T1T0MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器(2) 定時器定時器/計數(shù)器功能模式選擇位計數(shù)器功能模式選擇位 C/T=1:T0(T1)用作計數(shù)器。)用作計數(shù)器。 C/T=0:T0(T1)用作定時器。)用作定時器。v 作計數(shù)器用時,對作計數(shù)器用時,對單片機引腳單片機引腳P3.4(T

8、0)或)或P3.5(T1)上的)上的輸入信號進行計數(shù)輸入信號進行計數(shù)。在每個機器周期的。在每個機器周期的S5P2期間,期間,CPU采樣采樣引腳的輸入電平。若前一周期采樣值為引腳的輸入電平。若前一周期采樣值為1,下一周期的采樣值,下一周期的采樣值為為0,則計數(shù)單元加,則計數(shù)單元加1,加滿后溢出引發(fā)定時器,加滿后溢出引發(fā)定時器/計數(shù)器中斷。計數(shù)器中斷。v 作定時器用時,對作定時器用時,對內(nèi)部時鐘脈沖信號計數(shù)內(nèi)部時鐘脈沖信號計數(shù)。希望定時多長時。希望定時多長時間就間就給計數(shù)單元賦相應(yīng)的初始值給計數(shù)單元賦相應(yīng)的初始值,啟動定時器后,每過一個,啟動定時器后,每過一個機器周期機器周期計數(shù)單元加計數(shù)單元加1

9、,加滿后溢出引發(fā)定時器,加滿后溢出引發(fā)定時器/計數(shù)器中斷。計數(shù)器中斷。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器(3 3)M1M1、M0M0工作方式選擇位工作方式選擇位 由由M1M1、M0M0兩位的組合可以確定兩位的組合可以確定4 4種工作方式,如種工作方式,如表表4 42 2所示。所示。這這4 4種工作方式在定時時間長度、計數(shù)單元賦值等方面存在種工作方式在定時時間長度、計數(shù)單元賦值等方面存在較大差異,下一節(jié)將舉例說明其應(yīng)用特點。較大差異,下一節(jié)將舉例說明其應(yīng)用特點。 M1 M0 工作方式工作方式 功功 能能 描描 述述 0 0方式方式0 13位定時位定

10、時/計數(shù)器計數(shù)器 0 1方式方式1 16位定時位定時/計數(shù)器計數(shù)器 1 0方式方式2 8位定時位定時/計數(shù)器,自動重裝初始值計數(shù)器,自動重裝初始值 1 1方式方式3 T0分為兩個分為兩個8位計數(shù)器,位計數(shù)器,T1無此項無此項定時器定時器/計數(shù)器工作方式計數(shù)器工作方式MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器v控制控制寄存器寄存器TCON 控制控制寄存器寄存器TCON每一位都定義了不同的功能,既可以字節(jié)尋每一位都定義了不同的功能,既可以字節(jié)尋址,也可以位尋址,址,也可以位尋址,即即,如果要如果要配置其中某一位信息,可以對該配置其中某一位信息,可以對該位單獨

11、賦值。位單獨賦值。TCON格式如格式如表所表所示。示。 控制控制寄存器寄存器各位定義各位定義 TCON的高的高4位用來定義定時器位用來定義定時器/計數(shù)器中斷控制信息計數(shù)器中斷控制信息,低,低4位用位用來定義外部中斷控制信息。下面分別介紹關(guān)于定時器來定義外部中斷控制信息。下面分別介紹關(guān)于定時器/計數(shù)器中計數(shù)器中斷控制的各位的具體含義。斷控制的各位的具體含義。D7D6D5D4D3D2D1D0TF1 TR1TF0TR0IE1 IT1IE0IT0T1T0外部中斷MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器 TF1(TF0):中斷標志位。):中斷標志位。計數(shù)單元溢出

12、時,硬件置位。若計數(shù)單元溢出時,硬件置位。若開啟了定時器開啟了定時器/計數(shù)器中斷,則中斷響應(yīng)后硬件自動清除該標志計數(shù)器中斷,則中斷響應(yīng)后硬件自動清除該標志位;若沒有開啟中斷,則由軟件清零位;若沒有開啟中斷,則由軟件清零。 TR1(TR0):定時器):定時器/計數(shù)器啟動控制位計數(shù)器啟動控制位。 若若門門控控GATE=0,則軟件設(shè)置,則軟件設(shè)置TR1(TR0)為)為1時,啟動定時器時,啟動定時器/計計數(shù)器數(shù)器T1(T0)開始工作;軟件清除)開始工作;軟件清除TR1(TR0)為)為0時,定時器時,定時器/計數(shù)器計數(shù)器T1(T0)停止工作)停止工作。 復(fù)位后復(fù)位后TCON中的所有位都清零,定時器中的所

13、有位都清零,定時器/計數(shù)器計數(shù)器T1(T0)均沒有工作。均沒有工作。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器n單片機復(fù)位時,特殊功能寄存器TCON被清0nTFx(x=0,1)和TRx(x=0,1)由軟件方法置1或清0。n既可按單元操作的方式,也可以按位操作方式。如啟動定時/計數(shù)器T0和T1,清除溢出標志位TF0和TF1操作如下: SETB TR0 SETB TR1 CLR TF0 CLR TF1 或: MOV TCON, #01010000Bv定時/計數(shù)器控制寄存器(TCON)MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器

14、寄存器v注意:使用定時器/計數(shù)器時應(yīng)注意以下幾個方面:v(1)MCS51的定時器/計數(shù)器為加1計數(shù)器。v(2)定時器/計數(shù)器T1的工作方式?jīng)]有方式3,如果設(shè)置它為方式3(M1M0=11),定時器/計數(shù)器T1停止工作。v(3)一般情況下,定時器/計數(shù)器T1溢出后,TF1自動置1,可以以此為判斷標志,檢測定時或計數(shù)是否完成,但在定時器/計數(shù)器T0設(shè)置為方式3時, TF1為1時意味著8位計數(shù)器TH0溢出,TF0為1表示8位計數(shù)器TL0溢出。v(4)在計數(shù)器模式時,計數(shù)脈沖的頻率不高于振蕩器頻率的1/24. MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器寄存器寄存器v方式方式0

15、 方式方式0:13位位定時器定時器/計數(shù)器。計數(shù)器。 設(shè)置設(shè)置TMOD的的M1=0、M0=0時,定時器時,定時器/計數(shù)器以方式計數(shù)器以方式0工作,此時計數(shù)單元由工作,此時計數(shù)單元由13位組成,即位組成,即TLx的低的低5位位(D0D4)和)和THx的的8位位,TLx的高的高3位沒有使用。位沒有使用。 這一方式主要是為了和早期這一方式主要是為了和早期4位單片機兼容,因此現(xiàn)在位單片機兼容,因此現(xiàn)在的單片機應(yīng)用設(shè)計中很少將定時器的單片機應(yīng)用設(shè)計中很少將定時器/計數(shù)器設(shè)為方式計數(shù)器設(shè)為方式0,大家對方式大家對方式0的結(jié)構(gòu)和工作特點有基本了解就足夠了。的結(jié)構(gòu)和工作特點有基本了解就足夠了。 MCS-51M

16、CS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式如如圖所圖所示,以定時器示,以定時器/計數(shù)器計數(shù)器T0為例,為例,當(dāng)當(dāng)GATE=0時,時,TR0控制定時器控制定時器/計計數(shù)器工作狀態(tài),只要設(shè)置數(shù)器工作狀態(tài),只要設(shè)置TR0=1,定時器,定時器/計數(shù)器就開始工作,計數(shù)器就開始工作,TL0和和TH0組成的組成的13位計數(shù)單元開始計數(shù);位計數(shù)單元開始計數(shù);當(dāng)當(dāng)GATE=1時,時,TR0與與 引腳信號引腳信號共同確定定時器共同確定定時器/計數(shù)器工作狀態(tài)計數(shù)器工作狀態(tài)。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 當(dāng)當(dāng) =0時,時,MUX開

17、關(guān)接通內(nèi)部振蕩器的開關(guān)接通內(nèi)部振蕩器的12分頻輸出,此時分頻輸出,此時T0就是對就是對機器周期機器周期進行計數(shù),即進行計數(shù),即T0作為定時器使用,作為定時器使用,定時時定時時間為:間為: t:定時時間。:定時時間。 TC:機器周期。:機器周期。 X:定時器:定時器/計數(shù)器初始值。計數(shù)器初始值。 fOSC:晶體振蕩器頻率。:晶體振蕩器頻率。 L:計數(shù)單元的長度。:計數(shù)單元的長度。cTt XXMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式v 當(dāng)當(dāng) =1時,時,MUX開關(guān)接通計數(shù)引腳(開關(guān)接通計數(shù)引腳(P3.4),此時),此時T0對外部引腳對外部引腳P3.4上

18、的脈沖信號進行計數(shù),即上的脈沖信號進行計數(shù),即T0作為計數(shù)器使用,作為計數(shù)器使用,計數(shù)個數(shù)為:計數(shù)個數(shù)為: S = 2LX S:脈沖信號計數(shù)值。:脈沖信號計數(shù)值。 L:計數(shù)單元的長度。:計數(shù)單元的長度。 X:計數(shù)單元初始值。:計數(shù)單元初始值。v 當(dāng)當(dāng)TL0的低的低5位計滿溢出時,向位計滿溢出時,向TH0進位,當(dāng)計數(shù)單元的值為進位,當(dāng)計數(shù)單元的值為全全“1”時時,再再來一個有效信號來一個有效信號將使將使計數(shù)單元溢出復(fù)位為全計數(shù)單元溢出復(fù)位為全“0”,同時使,同時使中斷標志位中斷標志位TF0置位置位,申請中斷。如果程序中沒有開啟定時器,申請中斷。如果程序中沒有開啟定時器/計數(shù)器中斷,則可以通過計數(shù)

19、器中斷,則可以通過軟件查詢標志位軟件查詢標志位TF0是否為是否為“1”來判斷定時來判斷定時/計數(shù)是否結(jié)束計數(shù)是否結(jié)束。v 在方式在方式0下,計數(shù)器計數(shù)范圍是下,計數(shù)器計數(shù)范圍是18192(213)。定時時間范圍為)。定時時間范圍為18192個機器周期。個機器周期。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式【例例】設(shè)系統(tǒng)晶振為設(shè)系統(tǒng)晶振為12 MHz,試編程實現(xiàn)在,試編程實現(xiàn)在P1.0管腳輸出周期管腳輸出周期為為10 ms的方波。的方波。 分析:分析:定時器定時器/計數(shù)器應(yīng)用要考慮選擇計數(shù)器應(yīng)用要考慮選擇T0還是還是T1、工作在定時、工作在定時模式還是

20、計數(shù)器模式、采用哪種工作方式、計數(shù)單元初始值模式還是計數(shù)器模式、采用哪種工作方式、計數(shù)單元初始值計算等問題。計算等問題。因此對應(yīng)程序設(shè)計中定時器初始化步驟通常有因此對應(yīng)程序設(shè)計中定時器初始化步驟通常有如下幾步:如下幾步: 配置配置TMOD(寫入工作方式控制字);(寫入工作方式控制字); 計數(shù)單元計數(shù)單元THx、TLx賦初值;賦初值; 啟動定時器啟動定時器/計數(shù)器(設(shè)置計數(shù)器(設(shè)置TRx);); 開中斷(如采用查詢方式可省略這一步)。開中斷(如采用查詢方式可省略這一步)。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 根據(jù)題意,定時器根據(jù)題意,定時器/計數(shù)

21、器應(yīng)工作在定時模式,且定時時間為計數(shù)器應(yīng)工作在定時模式,且定時時間為周期的一半,即周期的一半,即5 ms,假設(shè)選擇,假設(shè)選擇T0,確定工作方式,確定工作方式0,套用,套用前面的公式計算計數(shù)單元初始值。前面的公式計算計數(shù)單元初始值。 X = 2LtfOSC/12 = 213 510-312106/12 = 819250003192 = 0C78H = 110001111000B 由于方式由于方式0的計數(shù)單元由的計數(shù)單元由TL0的低的低5位和位和TH0的的8位共同組成,位共同組成,因此將上述計算結(jié)果拆分成低因此將上述計算結(jié)果拆分成低5位和高位和高8位的組合,則初始值位的組合,則初始值賦值為:賦值為

22、: TL0=11000B=18H, TH0=1100011B = 63H。 MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式如果用查詢方式,程序代碼如下:如果用查詢方式,程序代碼如下:ORG 0000HAJMP START ;跳轉(zhuǎn)到主程序開始處;跳轉(zhuǎn)到主程序開始處 ORG 0030HSTART:MOV SP, #68H ;堆棧指針上移;堆棧指針上移SETB P1.0 ;初始化初始化P1.0MOV TMOD,#00H ;設(shè)置;設(shè)置T0工作在定時模式,方式工作在定時模式,方式0MOV TH0, #63H ;定時器計數(shù)單元賦初值;定時器計數(shù)單元賦初值MOV TL

23、0, #18HSETB TR0 ;啟動定時器;啟動定時器T0LED_LOOP:JNB TF0, $ ;定時時間沒有到,繼續(xù)等待定時時間沒有到,繼續(xù)等待CLR TF0 ;手動清除中斷標志位;手動清除中斷標志位CPL P1.0 ;改變改變P1.0狀態(tài)使之輸出方波狀態(tài)使之輸出方波MOV TH0, #63H;重新賦初值重新賦初值MOV TL0, #18HSJMP LED_LOOPENDMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式如果用中斷方式,程序代碼如下:如果用中斷方式,程序代碼如下:ORG 0000HAJMP START ;跳轉(zhuǎn)到主程序開始處;跳轉(zhuǎn)到主程序

24、開始處ORG 000BH ;定時器定時器/計數(shù)器計數(shù)器T0中斷入口中斷入口AJMP INT_T0 ;跳轉(zhuǎn)到;跳轉(zhuǎn)到T0中斷服務(wù)程序處中斷服務(wù)程序處ORG 0030HSTART:MOV SP, #68H ;堆棧指針上移;堆棧指針上移SETB P1.0 ;初始化初始化P1.0MOV TMOD, #00H ;設(shè)置;設(shè)置T0工作在定時模式,方式工作在定時模式,方式0MOV TH0,#63H ;定時器計數(shù)單元賦初值;定時器計數(shù)單元賦初值MOV TL0 #18HSETB TR0 ;啟動定時器;啟動定時器SETB EA ;開總中斷;開總中斷SETB ET0 ;開定時中斷;開定時中斷T0SJMP $ ;等待中

25、斷;等待中斷MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式INT_T0:;中斷服務(wù)程序;中斷服務(wù)程序PUSH ACCPUSH PSWMOV TH0, #63H ;重新賦初值重新賦初值MOV TL0, #18HCPL P1.0 ;改變;改變P1.0狀態(tài)使之輸出方波狀態(tài)使之輸出方波POP PSW POP ACCRETIENDMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 例:例:設(shè)定時器設(shè)定時器T0選擇工作模式選擇工作模式0,定時時間為,定時時間為1ms,fOSC=6MHz。試確定。試確定T0初值,計算最大定時時間初值

26、,計算最大定時時間T。 解解:當(dāng):當(dāng)T0處于工作模式處于工作模式0時,加時,加1計數(shù)器為計數(shù)器為13位。設(shè)位。設(shè)T0的初的初值為值為X。則。則 ssX31613101121061)2(1000612)2(13 X X=7692 轉(zhuǎn)換為二進制數(shù)轉(zhuǎn)換為二進制數(shù)X=1111000001100B=1E0CH T0的低的低5位:位:01100B=0CH T0的高的高8位:位:11110000B=F0H T0最大定時時間對應(yīng)于最大定時時間對應(yīng)于13位計數(shù)器位計數(shù)器T0的各位全為的各位全為1,即,即( TH0)=FFH,(,(TL0)=1FH。 則則msMHzT384.16612213MCS-51MCS-5

27、1單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 例:例:設(shè)設(shè)T0工作在模式工作在模式0,定時時間為,定時時間為1ms,fOSC =6MHz。編。編程實現(xiàn)其定時功能。程實現(xiàn)其定時功能。 MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式解解: (1)計算)計算T0初值初值X 結(jié)果為(結(jié)果為(TH0)=0F0H,(,(TL0)=0CH。 (2)程序清單)程序清單 ORG 0000H RESET:AJMP MAIN ; ;跳過中斷服務(wù)程序區(qū)跳過中斷服務(wù)程序區(qū) ORG 000BH ; ;中斷服務(wù)程序固定入口中斷服務(wù)程序固定入口 AJMP ITOP

28、主程序主程序 ORG 0100H MAIN: MOV SP,#60H ;設(shè)堆棧指針;設(shè)堆棧指針 ACALL PTOMD HERE: AJMP HERE ; ; 等待時間到,轉(zhuǎn)入中斷等待時間到,轉(zhuǎn)入中斷 PTOMD:MOV TL0,#0CH ;裝入初值裝入初值 MOV TH0,#0F0H SETB TR0 ;啟動定時啟動定時 SETB ET0 ;開中斷開中斷 SETB EA RET ;子程序返回子程序返回中斷服務(wù)程序中斷服務(wù)程序 ORG 0120H ITOP:MOV TL0,#0CH ;重裝入初值重裝入初值 MOV TH0,#0F0H CPL P1.0 ;P1.0輸出取反輸出取反 ;產(chǎn)生產(chǎn)生 周

29、期周期2ms的方波的方波 RETI ;中斷返回中斷返回MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 例:例:利用利用T0的工作模式的工作模式0產(chǎn)生產(chǎn)生1ms的定時,在的定時,在P1.0引腳上輸出引腳上輸出2ms的方波。設(shè)單片機晶振的方波。設(shè)單片機晶振 =12MHz。 解:解: 要在要在P1.0引腳輸出周期為引腳輸出周期為2ms方波,只要使方波,只要使P1.0每隔每隔1ms取取反一次即可。反一次即可。T0 的模式字節(jié)的模式字節(jié)TMOD=00H,即,即 TMOD.1TMOD.0 M1M0=00,T0為模式為模式0; TMOD.2 C/T=0,T0為定時狀態(tài)

30、;為定時狀態(tài); TMOD.3 GATE=0,表示計數(shù)不受表示計數(shù)不受INT0控制控制; TMOD.4TMOD.7 可為任意值。因可為任意值。因T1不用,這里取不用,這里取0 oscfMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 機器周期機器周期 設(shè)設(shè)T0 的計數(shù)初值為的計數(shù)初值為X,則,則 =8192-1000 =7192D =11100000 11000B TH0初值為初值為E0H,TL0初值為初值為18H??刹樵儭?刹樵僒F0的狀態(tài)來控的狀態(tài)來控制制P1.0輸出輸出。 sHzfTsoccy1121012112/ 16ssX3613101101)2(

31、6313101/1012X7192 32商為高商為高8位,位,余數(shù)為低余數(shù)為低5位位MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 采用查詢方式的程序很簡單,但在定時器計數(shù)過程中,采用查詢方式的程序很簡單,但在定時器計數(shù)過程中,CPU要不斷查詢溢出標志位要不斷查詢溢出標志位TF0的狀態(tài)。這就占用了很多的狀態(tài)。這就占用了很多CPU的工作時間,使的工作時間,使CPU的效率下降。的效率下降。 程序清單:程序清單: MOV TMOD,#00H ; ;設(shè)置設(shè)置T0T0為模式為模式0 0 MOV TL0,#18H ;送初值;送初值 MOV TH0,#0E0H SET

32、B TR0 ;啟動;啟動T0T0 LOOP:JBC TF0,NEXT ;查詢定時時間到否?;查詢定時時間到否? SJMP LOOP NEXT:MOV TL0,#18H ;重裝計數(shù)初值;重裝計數(shù)初值 MOV TH0,#0E0H CPL P1.0 ;輸出取反;輸出取反 SJMP LOOP ;重復(fù)循環(huán);重復(fù)循環(huán)MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式主程序主程序 MAIN:MOV TMOD,#00H ;設(shè)置設(shè)置T0T0為模式為模式0 0 MOV TL0,#18H ;送初值送初值 MOV TH0,#0E0H SETB EA ;CPUCPU開中斷開中斷 SE

33、TB ET0 ;T0T0中斷允許中斷允許 SETB TR0 ;啟動啟動T0T0 HERE:SJMP HERE ;等待中斷等待中斷中斷服務(wù)程序中斷服務(wù)程序 ORG 000BH ;T0T0入口入口 AJMP CTC0 ;轉(zhuǎn)中斷服務(wù)程序轉(zhuǎn)中斷服務(wù)程序 CTC0:MOV TL0,#18H ;重裝初值;重裝初值 MOV TH0, #0E0H CPL P1.0 ;輸出方波;輸出方波 RETI ;中斷返回;中斷返回MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式v 方式方式1 方式方式1:16位定時器位定時器/計數(shù)器計數(shù)器。 設(shè)置設(shè)置TMOD的的M1=0、M0=1時,定

34、時器時,定時器/計數(shù)器以計數(shù)器以方式方式1工工作,此時計數(shù)單元由兩個完整的作,此時計數(shù)單元由兩個完整的8位寄存器位寄存器TLx、THx共共同組成。定時器同組成。定時器/計數(shù)器對應(yīng)方式計數(shù)器對應(yīng)方式1的結(jié)構(gòu)的結(jié)構(gòu)框圖框圖如下所如下所示。示。 MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式v 啟動啟動定時器定時器/計數(shù)器后,計數(shù)單元開始計數(shù),計數(shù)器后,計數(shù)單元開始計數(shù),TLx加滿后溢出加滿后溢出向向THx進位,進位,THx加加滿(全滿(全1)后再計一次后溢出)后再計一次后溢出,此時,此時TLx、THx自動清零自動清零,同時,同時系統(tǒng)將定時器系統(tǒng)將定時器/計數(shù)

35、器中斷標志位計數(shù)器中斷標志位TFx置置位位,表明定時時間到或外部信號計數(shù)達到目標,表明定時時間到或外部信號計數(shù)達到目標。v 如果如果允許中斷,那么允許中斷,那么CPU自動響應(yīng)中斷并轉(zhuǎn)入中斷處理程序,自動響應(yīng)中斷并轉(zhuǎn)入中斷處理程序,此時此時TLx、THx已經(jīng)恢復(fù)為全已經(jīng)恢復(fù)為全0,中斷處理程序中必須重新給中斷處理程序中必須重新給TLx、THx賦初始值賦初始值。中斷返回時系統(tǒng)自動將標志位中斷返回時系統(tǒng)自動將標志位TFx清清零零。v 方式方式1通常應(yīng)用于需要實現(xiàn)較長時間定時的場合。下面我們通通常應(yīng)用于需要實現(xiàn)較長時間定時的場合。下面我們通過一個簡單的例子來說明方式過一個簡單的例子來說明方式1的使用特

36、點。的使用特點。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 【例例】 電路如電路如圖所圖所示。試編程實現(xiàn)單片機控制示。試編程實現(xiàn)單片機控制8盞燈循環(huán)點亮,盞燈循環(huán)點亮,每盞燈點亮?xí)r間為每盞燈點亮?xí)r間為50 ms,系統(tǒng)晶振為,系統(tǒng)晶振為12 MHz。 MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式分析:根據(jù)題意,確定定時時間為分析:根據(jù)題意,確定定時時間為50 ms,每次定時時間到,即,每次定時時間到,即控制相鄰的下一盞燈點亮,采用定時器控制相鄰的下一盞燈點亮,采用定時器T1,工作方式,工作方式1,計數(shù),計數(shù)單元

37、初始值計算如下:單元初始值計算如下: X = 2L - t fOSC/12 = 2165010-312106/12 = 15536 = 3CB0H 則則TH1=3CH,TL1=B0H。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式ORG 0000HAJMP START ;跳轉(zhuǎn)到程序開始處;跳轉(zhuǎn)到程序開始處 ORG 0030HSTART:MOV SP,#68H ;堆棧指針上移;堆棧指針上移MOV P2,#0FFH ;初始化,;初始化,LED全滅全滅MOV A, #0FEH ;初始化,累加器;初始化,累加器A保存保存;LED控制位狀態(tài)信息控制位狀態(tài)信息MOV

38、 TMOD, #10H ;設(shè)置;設(shè)置T1工作在定時模式,方式工作在定時模式,方式1MOV TH1, #3CH ;定時器計數(shù)單元賦初值;定時器計數(shù)單元賦初值MOV TL1, #0B0HSETB TR1 ;啟動定時器;啟動定時器LED_LOOP: JNB TF1,$ ;定時時間沒有到,繼續(xù)等待;定時時間沒有到,繼續(xù)等待CLR TF1 ;手動清除中斷標志位;手動清除中斷標志位MOV P2, A ;改變;改變LED狀態(tài)狀態(tài)RL A ;循環(huán)左移一位;循環(huán)左移一位MOV TH1,#3CHMOV TL1,#0B0HSJMP LED_LOOPENDMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)

39、器計數(shù)器工作方式工作方式中斷方式、程序代碼如下:中斷方式、程序代碼如下: ORG 0000HAJMP START ;跳轉(zhuǎn)到程序開始處;跳轉(zhuǎn)到程序開始處ORG 001BHAJMP INT_T1 ;跳轉(zhuǎn)到定時中斷;跳轉(zhuǎn)到定時中斷1處理程序處處理程序處ORG 0030HSTART:MOV SP, #68H ;堆棧指針上移;堆棧指針上移MOV P2,#0FFH ;初始化,;初始化,LED全滅全滅MOV A,#0FEH ;初始化,累加器;初始化,累加器A保存保存LED狀態(tài)信息狀態(tài)信息MOV TMOD,#10H ;設(shè)置;設(shè)置T1工作在定時模式,方式工作在定時模式,方式1MOV TH1, #3CH ;定時器

40、計數(shù)單元賦初值;定時器計數(shù)單元賦初值MOV TL1, #0B0HSETB TR1 ;啟動定時器;啟動定時器SETB EA ;開總中斷;開總中斷SETB ET1 ;開定時中斷;開定時中斷T1SJMP $ ;等待中斷;等待中斷MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式INT_T0:PUSH PSW;本次需要利用累加器本次需要利用累加器A傳遞傳遞LED狀態(tài),狀態(tài),;故不必將故不必將A的內(nèi)容壓入堆棧的內(nèi)容壓入堆棧MOV TH1, #3CH ;重新賦初值;重新賦初值MOV TL1, #0B0HMOV P2, A ;改變;改變LED狀態(tài)狀態(tài)RL A ;循環(huán)左移一

41、位循環(huán)左移一位POP PSWRETIENDMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式【例例】 系統(tǒng)晶振為系統(tǒng)晶振為12 MHz,利用定時器,利用定時器T0的工作方的工作方式式1實現(xiàn)實現(xiàn)P1.0管腳輸出周期為管腳輸出周期為2 s的方波。的方波。 分析分析:在晶振為:在晶振為12 MHz時,方式時,方式1最大能實現(xiàn)的定最大能實現(xiàn)的定時時間為時時間為2161s=65536 s,要使,要使P1.0輸出周期為輸出周期為2 s的方波,定時時間為的方波,定時時間為1 s。對于類似的長時間定時要。對于類似的長時間定時要求,可以采用基準定時加循環(huán)的方法。比如要求定求,

42、可以采用基準定時加循環(huán)的方法。比如要求定時時1 s,選擇,選擇T0的方式的方式1,基準定時,基準定時50 ms,循環(huán),循環(huán)20次次即為即為1 s。程序流程圖如。程序流程圖如圖所圖所示。示。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式程序代碼如下:程序代碼如下:ORG 0000HAJMP START ;跳轉(zhuǎn)到程序開始處;跳轉(zhuǎn)到程序開始處ORG 000BHAJMP INT_T0 ;跳轉(zhuǎn)到定時中斷跳轉(zhuǎn)到定時中斷0處理程序處處理程序處ORG 0030HSTART:MOV SP

43、, #68H SETB P1.0 ;初始化初始化P10MOV R7, #20 ;循環(huán)次數(shù)賦初值循環(huán)次數(shù)賦初值MOV TMOD, #01H ;設(shè)置;設(shè)置T0工作在定時模式,方式工作在定時模式,方式1MOV TH0, #3CH ;定時器計數(shù)單元賦初值;定時器計數(shù)單元賦初值MOV TL0,#0B0HSETB TR0 ;啟動定時器;啟動定時器SETB EA ;開總中斷;開總中斷SETB ET0 ;開定時中斷;開定時中斷T0SJMP $ MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式;*中斷服務(wù)程序中斷服務(wù)程序 *INT_T0: PUSH ACC PUSH PSW

44、 MOV TH0,#3CH ;重新賦初值重新賦初值 MOV TL0,#0B0H DJNZ R7, EXIT ;循環(huán)次數(shù)未到,循環(huán)次數(shù)未到,;即未到;即未到1 s,退出中斷,退出中斷 MOV R7, #20 ;循環(huán)次數(shù)重新賦初值;循環(huán)次數(shù)重新賦初值 CPL P1.0 ;1 s定時時間到,改變定時時間到,改變P1.0狀態(tài)狀態(tài)EXIT: POP PSW POP ACC RETI ENDMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式v 方式方式2 方式方式2:8位位自動重裝初始值自動重裝初始值的定時器的定時器/計數(shù)器計數(shù)器。 設(shè)置設(shè)置TMOD的的M1=1、M0=

45、0時,定時器時,定時器/計數(shù)器以計數(shù)器以方式方式2工工作,此時計數(shù)單元作,此時計數(shù)單元THx作為備分寄存器保存和作為備分寄存器保存和TLx同樣的同樣的初始值。初始值。定時器定時器/計數(shù)器對應(yīng)方式計數(shù)器對應(yīng)方式2的結(jié)構(gòu)框圖如的結(jié)構(gòu)框圖如圖所圖所示。示。 MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式v 啟動啟動定時器定時器/計數(shù)器后,計數(shù)單元開始計數(shù),計數(shù)器后,計數(shù)單元開始計數(shù),TLx加加滿(全滿(全1)后再加后再加1溢出溢出,此時,此時TLx自動清零,同時系統(tǒng)將定時器自動清零,同時系統(tǒng)將定時器/計數(shù)計數(shù)器中斷標志位器中斷標志位TFx置位,表明定時時間到或

46、外部信號計數(shù)達置位,表明定時時間到或外部信號計數(shù)達到目標到目標。v 如果如果允許中斷,允許中斷,CPU自動響應(yīng)中斷并轉(zhuǎn)入中斷處理程序自動響應(yīng)中斷并轉(zhuǎn)入中斷處理程序。v 在在方式方式2中,系統(tǒng)會自動從備分寄存器中,系統(tǒng)會自動從備分寄存器THx取得初始值賦給取得初始值賦給TLx,因此不需要在中斷處理程序中重新給,因此不需要在中斷處理程序中重新給TLx、THx賦初始賦初始值值。v 中斷中斷返回時系統(tǒng)自動將標志位返回時系統(tǒng)自動將標志位TFx清零。方式清零。方式2通常應(yīng)用于短通常應(yīng)用于短時間定時的場合。時間定時的場合。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式

47、【例例】 電路如電路如圖所圖所示,系統(tǒng)晶振為示,系統(tǒng)晶振為12 MHz,程序控制,程序控制8盞燈輪盞燈輪流點亮,但要求看起來流點亮,但要求看起來8盞燈同時點亮。盞燈同時點亮。 分析:人眼的視覺停留時間大約為分析:人眼的視覺停留時間大約為20 ms,要想,要想8盞燈輪流點盞燈輪流點亮而看起來一齊亮,則每盞燈第一次點亮和第二次點亮的時亮而看起來一齊亮,則每盞燈第一次點亮和第二次點亮的時間間隔不能超過間間隔不能超過20 ms。不妨設(shè)計為每盞燈點亮。不妨設(shè)計為每盞燈點亮200 s。然。然后依次循環(huán),則每盞燈中途熄滅的后依次循環(huán),則每盞燈中途熄滅的時間間隔可以定為大約時間間隔可以定為大約為為14 ms,

48、遠遠小于人眼視覺停留時間,這樣人眼將不會分辨,遠遠小于人眼視覺停留時間,這樣人眼將不會分辨出燈曾經(jīng)熄滅過,從而達到看起來一齊亮的效果。這一設(shè)計出燈曾經(jīng)熄滅過,從而達到看起來一齊亮的效果。這一設(shè)計思路在數(shù)碼管動態(tài)掃描顯示中常常用到。思路在數(shù)碼管動態(tài)掃描顯示中常常用到。 選擇定時器選擇定時器T1,短時間定時采用方式,短時間定時采用方式2,定時,定時200 s,初始,初始值計算如下:值計算如下: X = 2L - t fOSC/12 = 2820010-612106/12 =56=38H MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式ORG 0000HAJMP

49、 START ;跳轉(zhuǎn)到程序開始處;跳轉(zhuǎn)到程序開始處ORG 001BHAJMP INT_T1 ;跳轉(zhuǎn)到定時中斷;跳轉(zhuǎn)到定時中斷1處理程序處處理程序處ORG 0030HSTART:MOV SP, #68H ;堆棧指針上移;堆棧指針上移MOV P2, #0FFH ;初始化,;初始化,LED全滅全滅MOV A, #0FEH ;初始化,累加器;初始化,累加器A保存保存LED狀態(tài)信息狀態(tài)信息MOV TMOD, #20H ;設(shè)置;設(shè)置T1工作在定時模式,方工作在定時模式,方式式2MOV TH1, #38H ;定時器計數(shù)單元賦初值;定時器計數(shù)單元賦初值MOV TL1, #38HSETB TR1 ;啟動定時器;

50、啟動定時器SETB EA ;開總中斷;開總中斷SETB ET1 ;開定時中斷;開定時中斷T1SJMP $ ;等待中斷;等待中斷MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式INT_T0:PUSH PSWMOV P2,A ;改變;改變LED狀態(tài)狀態(tài)RL A ;循環(huán)左移一位;循環(huán)左移一位POP PSWRETIEND MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式v 方式方式3 方式方式3:T0分解為分解為2個獨立的個獨立的8位定時器位定時器/計數(shù)器計數(shù)器。 設(shè)置設(shè)置TMOD的的M1=1、M0=1時,定時器時,定時器/計

51、數(shù)器以方式計數(shù)器以方式3工作,只有工作,只有T0可以設(shè)置為方式可以設(shè)置為方式3,此時,此時T0分解為分解為2個獨立個獨立的的8位定時器位定時器/計數(shù)器計數(shù)器TL0和和TH0。 其中其中TL0占用原占用原T0的相關(guān)資源,包括的相關(guān)資源,包括T0控制位控制位 、GATE、TR0、TF0,外部信號輸入引腳,外部信號輸入引腳P3.4(T0)、)、P3.2( ),),T0中斷入口地址。除了計數(shù)單元只有中斷入口地址。除了計數(shù)單元只有8位寄存器位寄存器TL0外,其余功能和用法與方式外,其余功能和用法與方式1完全相同,可完全相同,可用作用作8位定時器,也可用作位定時器,也可用作8位計數(shù)器模式位計數(shù)器模式。 此

52、時此時TH0使用原使用原T1的部分資源,包括的部分資源,包括T1控制位控制位TR1、TF1,T1中斷入口地址。中斷入口地址。TH0只用作只用作8位定時器模式。位定時器模式。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式 當(dāng)定時器當(dāng)定時器/計數(shù)器計數(shù)器T0用作方式用作方式3時,時,T1仍然可以設(shè)置為方式仍然可以設(shè)置為方式02。由于當(dāng)前。由于當(dāng)前T1的控制位和中斷源都被的控制位和中斷源都被TH0占用,此時占用,此時T1一般用作不需要中斷的串口波特率發(fā)生器,定時控制串一般用作

53、不需要中斷的串口波特率發(fā)生器,定時控制串口數(shù)據(jù)傳輸速率,詳細說明可口數(shù)據(jù)傳輸速率,詳細說明可參見本章串口部分。參見本章串口部分。 前面列舉了很多定時器應(yīng)用的例子,接下來看一個計數(shù)器前面列舉了很多定時器應(yīng)用的例子,接下來看一個計數(shù)器應(yīng)用的例子。應(yīng)用的例子。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式【例例】 假設(shè)某生產(chǎn)線的一個流程有假設(shè)某生產(chǎn)線的一個流程有5套工序,套工序,5套工序全部結(jié)套工序全部結(jié)束后工作人員應(yīng)停止其他工作,來檢測束后工作人員應(yīng)停止其他工作,來檢測5套工序后的產(chǎn)品。套工序后的產(chǎn)品。電路設(shè)計人員將電路設(shè)計人員將5套工序?qū)?yīng)傳感器的輸出信號

54、(低有效)套工序?qū)?yīng)傳感器的輸出信號(低有效)相與后接入到單片機引腳相與后接入到單片機引腳P3.4,蜂鳴器接,蜂鳴器接P1.0(低電平有(低電平有效),手動按鍵接效),手動按鍵接P1.7,要求,要求5套工序結(jié)束后蜂鳴器鳴叫套工序結(jié)束后蜂鳴器鳴叫提醒工作人員,直到工作人員按下按鍵(給提醒工作人員,直到工作人員按下按鍵(給P1.7一個低電一個低電平信號)為止。平信號)為止。 分析:根據(jù)題意,可以設(shè)置分析:根據(jù)題意,可以設(shè)置T0工作在方式工作在方式3,利用,利用TL0作作8位計數(shù)器,位計數(shù)器,P3.4管腳收到管腳收到5次有效信號后引發(fā)次有效信號后引發(fā)T0中斷,則中斷,則計數(shù)單元賦初值為計數(shù)單元賦初值

55、為TL0=285 = 250 = FAH。MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式ORG 0000HAJMP START ;跳轉(zhuǎn)到程序開始處;跳轉(zhuǎn)到程序開始處ORG 000BHAJMP INT_T0 ;跳轉(zhuǎn)到定時中斷;跳轉(zhuǎn)到定時中斷0處理程序處處理程序處ORG 0030HSTART:MOV SP, #68H SETB P1.0 ;初始化蜂鳴器;初始化蜂鳴器SETB P1.7 ;初始化按鍵;初始化按鍵MOV TMOD,#07H ;設(shè)置;設(shè)置T0工作在計數(shù)模式,方式工作在計數(shù)模式,方式3MOV TL0, #0FAH ;計數(shù)器計數(shù)單元賦初值;計數(shù)器計數(shù)單

56、元賦初值SETB TR0 ;啟動計數(shù)器;啟動計數(shù)器SETB EA ;開總中斷;開總中斷SETB ET0 ;開中斷;開中斷T0SJMP $ MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式INT_T0:PUSH ACCPUSH PSWMOV TL0,#0FAH ;重新賦初值;重新賦初值CLR P1.0 ;5套工序結(jié)束,控制蜂鳴器鳴叫套工序結(jié)束,控制蜂鳴器鳴叫JB P1.7,$;工作人員沒有按鍵,蜂鳴器繼續(xù)鳴;工作人員沒有按鍵,蜂鳴器繼續(xù)鳴叫叫SETB P1.0 ;工作人員按下停止鍵,蜂鳴器停止;工作人員按下停止鍵,蜂鳴器停止鳴叫鳴叫POP PSWPOP AC

57、CRETIENDMCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器工作方式工作方式思考與思考與練習(xí)練習(xí)1.定時器定時器/計數(shù)器有幾種工作方式?各有何特點?計數(shù)器有幾種工作方式?各有何特點?2.與定時器與定時器/計數(shù)器相關(guān)的寄存器有哪些?計數(shù)器相關(guān)的寄存器有哪些?3.定時器定時器/計數(shù)器初始化包括哪些步驟?計數(shù)器初始化包括哪些步驟?4.已知系統(tǒng)晶振為已知系統(tǒng)晶振為12 MHz,編程實現(xiàn),編程實現(xiàn)P1.0輸出輸出50 ms的方波。的方波。5.設(shè)計一個設(shè)計一個8燈閃爍的控制電路,系統(tǒng)晶振為燈閃爍的控制電路,系統(tǒng)晶振為12 MHz,編程實現(xiàn),編程實現(xiàn)8燈輪流閃燈輪流閃爍,其中每盞燈

58、點亮?xí)r間為爍,其中每盞燈點亮?xí)r間為3 ms。6.設(shè)計一個設(shè)計一個8燈閃爍的控制電路,系統(tǒng)晶振為燈閃爍的控制電路,系統(tǒng)晶振為12 MHz,編程實現(xiàn),編程實現(xiàn)8燈輪流閃燈輪流閃爍,其中每盞燈點亮?xí)r間為爍,其中每盞燈點亮?xí)r間為2 s。有。有條件的在條件的在硬件電路板上硬件電路板上運行查看效果。運行查看效果。7. 設(shè)計設(shè)計一個流水燈控制電路,系統(tǒng)晶振為一個流水燈控制電路,系統(tǒng)晶振為12 MHz,編程實現(xiàn)第,編程實現(xiàn)第1 min 8燈從燈從左至右輪流閃爍,每盞點亮?xí)r間為左至右輪流閃爍,每盞點亮?xí)r間為1 s,第,第2 min 8燈從右至左閃爍,第燈從右至左閃爍,第3 min再從左至右,周期交替再從左至右,

59、周期交替。8. 利用利用T0測量外部信號的正脈沖寬度,已知系統(tǒng)的晶振頻率為測量外部信號的正脈沖寬度,已知系統(tǒng)的晶振頻率為12MHz,將,將所測得值高位存入片內(nèi)所測得值高位存入片內(nèi)71H,低位存入片內(nèi),低位存入片內(nèi)70H。 v定時器計數(shù)器初始化 定時/計數(shù)器的初始化包括設(shè)置工作方式、計數(shù)器或定時器模式、計算計數(shù)初始值、啟動定時/計數(shù)器、設(shè)置中斷控制位等。 定時和計數(shù)可以采用查詢方式和中斷方式實現(xiàn)。 MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器使用總結(jié)使用總結(jié)v (一)采用查詢方式實現(xiàn)定時和計數(shù) (1)確定工作方式、計數(shù)器或定時器模式及啟動控制方式,構(gòu)造方式控制碼并寫入特

60、殊功能寄存器TMOD:MOV TMOD, #控制碼。 (2)計算定時器或計數(shù)器的計數(shù)初始值,根據(jù)工作方式把初始值送人TH0、TL0或TH1、TL1。 (3)啟動定時/計數(shù)器:SETB TRx,x=0,1。 定時/計數(shù)器開始工作,通過查詢TFx是否為1來判斷定時或計數(shù)是否達到要求。v定時器計數(shù)器設(shè)置MCS-51MCS-51單片機的定時器單片機的定時器/ /計數(shù)器計數(shù)器使用總結(jié)使用總結(jié)v(二)采用中斷方式實現(xiàn)定時和計數(shù) (1)確定工作方式、計數(shù)器或定時器模式及啟動控制方式,構(gòu)造控制碼并寫入特殊功能寄存器TMOD。 (2)計算定時器或計數(shù)器的計數(shù)初始值,根據(jù)工作方式把初始值送人TH0、TL0或TH1

溫馨提示

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

最新文檔

評論

0/150

提交評論