交通信號(hào)燈的設(shè)計(jì)_第1頁(yè)
交通信號(hào)燈的設(shè)計(jì)_第2頁(yè)
交通信號(hào)燈的設(shè)計(jì)_第3頁(yè)
交通信號(hào)燈的設(shè)計(jì)_第4頁(yè)
交通信號(hào)燈的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩123頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 學(xué)習(xí)情景二學(xué)習(xí)情景二 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 學(xué)習(xí)目標(biāo):學(xué)習(xí)目標(biāo):了解中斷的基本概念、中斷的作用及中斷請(qǐng)了解中斷的基本概念、中斷的作用及中斷請(qǐng)求方式求方式掌握掌握AT89S52AT89S52單片機(jī)中斷結(jié)構(gòu),單片機(jī)中斷結(jié)構(gòu),6 6個(gè)中斷個(gè)中斷源的中斷請(qǐng)求、中斷屏蔽、優(yōu)先級(jí)設(shè)置等初始源的中斷請(qǐng)求、中斷屏蔽、優(yōu)先級(jí)設(shè)置等初始化編程方法化編程方法掌握定時(shí)掌握定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器4 4種工作方式的初始化編程種工作方式的初始化編程方法方法學(xué)會(huì)使用定時(shí)器學(xué)會(huì)使用定時(shí)器/ /計(jì)數(shù)器編寫計(jì)數(shù)、定時(shí)應(yīng)計(jì)數(shù)器編寫計(jì)數(shù)、定時(shí)應(yīng)用

2、程序的方法用程序的方法學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 技能目標(biāo):技能目標(biāo):會(huì)編寫中斷和定時(shí)會(huì)編寫中斷和定時(shí)/ /計(jì)數(shù)器初始化程序計(jì)數(shù)器初始化程序 會(huì)計(jì)算定時(shí)會(huì)計(jì)算定時(shí)/計(jì)數(shù)器初值計(jì)數(shù)器初值根據(jù)項(xiàng)目要求,能夠靈活應(yīng)用中斷和定時(shí)根據(jù)項(xiàng)目要求,能夠靈活應(yīng)用中斷和定時(shí)/ /計(jì)數(shù)器的資源計(jì)數(shù)器的資源學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 任務(wù)一任務(wù)一 中斷控制的流水燈中斷控制的流水燈第一部分第一部分 項(xiàng)目要求項(xiàng)目要求 采用中斷方法控制燈的亮滅,由中斷服務(wù)程序控采用中斷方法控制燈的亮滅,由中斷服務(wù)程序控制制I/OI/O口置高,置低,即可控制燈的全亮和全滅??谥酶?,置

3、低,即可控制燈的全亮和全滅。 外部中斷外部中斷INT1INT1接按鍵(接按鍵(KEYKEY),作為中斷申請(qǐng)信號(hào),),作為中斷申請(qǐng)信號(hào),開機(jī)后開機(jī)后8 8個(gè)發(fā)光二極管從左到右流水,產(chǎn)生中斷后,個(gè)發(fā)光二極管從左到右流水,產(chǎn)生中斷后,8 8個(gè)發(fā)光管全亮、全滅,延時(shí)一定時(shí)間后,再循環(huán)。個(gè)發(fā)光管全亮、全滅,延時(shí)一定時(shí)間后,再循環(huán)。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 第二部分第二部分 相關(guān)知識(shí)相關(guān)知識(shí)一、中斷的概念一、中斷的概念中斷的定義中斷的定義: : 當(dāng)中央處理器當(dāng)中央處理器CPUCPU正在處理某事正在處理某事件時(shí)外界發(fā)生了更為緊急的請(qǐng)求,要件時(shí)外界發(fā)生了更為緊急的請(qǐng)求,要求求CP

4、UCPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件,處理完畢后,再回到這個(gè)緊急事件,處理完畢后,再回到原來(lái)被中斷的地方,繼續(xù)原來(lái)的工作,原來(lái)被中斷的地方,繼續(xù)原來(lái)的工作,這樣的過程稱為這樣的過程稱為中斷中斷。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 從中斷的定義我們可從中斷的定義我們可以看到中斷應(yīng)具備以看到中斷應(yīng)具備中斷源、中斷源、中斷響應(yīng)、中斷返回中斷響應(yīng)、中斷返回三個(gè)三個(gè)要素。要素。 中斷源發(fā)出中斷請(qǐng)求,中斷源發(fā)出中斷請(qǐng)求,單片機(jī)對(duì)中斷請(qǐng)求進(jìn)行響單片機(jī)對(duì)中斷請(qǐng)求進(jìn)行響應(yīng),當(dāng)中斷響應(yīng)完成后應(yīng)應(yīng),當(dāng)中斷響應(yīng)完成后應(yīng)進(jìn)行中斷返回,返回被中進(jìn)行中斷返回,返回被中

5、斷的地方繼續(xù)執(zhí)行原來(lái)被斷的地方繼續(xù)執(zhí)行原來(lái)被中斷的程序。中斷的程序。 圖2-1 中斷流程學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 二、AT89S52中斷源與中斷向量地址 中斷源就是向中斷源就是向CPUCPU發(fā)出中斷請(qǐng)求的來(lái)發(fā)出中斷請(qǐng)求的來(lái)源。源。AT89S52AT89S52共共有六個(gè)中斷源:有六個(gè)中斷源:2 2個(gè)外部中斷個(gè)外部中斷(INT0INT0和和INT1INT1)、)、3 3個(gè)定時(shí)器中斷個(gè)定時(shí)器中斷(定時(shí)器(定時(shí)器0 0、1 1和和2 2)和和1 1個(gè)串行中斷。個(gè)串行中斷。如圖所示。如圖所示。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (一)(一) 外部中斷外

6、部中斷外部中斷外部中斷0 0 P3.2P3.2外部中斷外部中斷1 1 P3.3P3.3外部中斷請(qǐng)求有外部中斷請(qǐng)求有兩種兩種信號(hào)方式:電平方式和脈沖方信號(hào)方式:電平方式和脈沖方式。式。電平方式的中斷請(qǐng)求信號(hào)是電平方式的中斷請(qǐng)求信號(hào)是低低電平有效。電平有效。脈沖方式的中斷請(qǐng)求信號(hào)則是脈沖的脈沖方式的中斷請(qǐng)求信號(hào)則是脈沖的負(fù)跳變負(fù)跳變有效。有效。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (二)內(nèi)部定時(shí)和外部計(jì)數(shù)中斷(二)內(nèi)部定時(shí)和外部計(jì)數(shù)中斷定時(shí):對(duì)內(nèi)部振蕩器輸出的脈沖計(jì)數(shù)。計(jì)數(shù)脈沖的定時(shí):對(duì)內(nèi)部振蕩器輸出的脈沖計(jì)數(shù)。計(jì)數(shù)脈沖的個(gè)數(shù)反映了時(shí)間的長(zhǎng)短。個(gè)數(shù)反映了時(shí)間的長(zhǎng)短。 計(jì)數(shù):對(duì)外部

7、脈沖計(jì)數(shù)。計(jì)數(shù)脈沖的個(gè)數(shù)僅僅反映計(jì)數(shù):對(duì)外部脈沖計(jì)數(shù)。計(jì)數(shù)脈沖的個(gè)數(shù)僅僅反映外部脈沖輸入的多少。外部脈沖輸入的多少。 外部脈沖由外部脈沖由T0T0引入引入 P3.4P3.4外部脈沖由外部脈沖由T1T1引入引入 P3.5P3.5外部脈沖由外部脈沖由T2T2引入引入 P1.0P1.0當(dāng)定時(shí)器當(dāng)定時(shí)器/ /計(jì)數(shù)器發(fā)生溢出,便激活中斷。計(jì)數(shù)器發(fā)生溢出,便激活中斷。外部計(jì)數(shù)中斷請(qǐng)求信號(hào)是脈沖的外部計(jì)數(shù)中斷請(qǐng)求信號(hào)是脈沖的負(fù)跳變負(fù)跳變引起。引起。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (三)串行中斷(三)串行中斷 串行中斷是為串行通信的而需要串行中斷是為串行通信的而需要設(shè)置的。當(dāng)串行口發(fā)送

8、完或接收完一設(shè)置的。當(dāng)串行口發(fā)送完或接收完一幀信息時(shí),單片機(jī)內(nèi)部硬件便自動(dòng)串幀信息時(shí),單片機(jī)內(nèi)部硬件便自動(dòng)串行發(fā)送或接收中斷標(biāo)志位置行發(fā)送或接收中斷標(biāo)志位置1 1。當(dāng)。當(dāng)CPUCPU查詢到這些標(biāo)志位為查詢到這些標(biāo)志位為1 1時(shí),便激時(shí),便激活串行中斷。串行中斷是由單片機(jī)內(nèi)活串行中斷。串行中斷是由單片機(jī)內(nèi)部自動(dòng)發(fā)生的,不需要在芯片外設(shè)置部自動(dòng)發(fā)生的,不需要在芯片外設(shè)置引入腳。引入腳。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (四)中斷矢量地址(四)中斷矢量地址0INT1INT中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位中斷矢量地址中斷矢量地址外部中斷外部中斷0 0( )IE0IE00003H

9、0003H定時(shí)器定時(shí)器0 0(T0T0)中斷)中斷TF0TF0000BH000BH外部中斷外部中斷1 1( )IE1IE10013H0013H定時(shí)器定時(shí)器1 1(T1T1)中斷)中斷TF1TF1001BH001BH串行口中斷串行口中斷發(fā)送中斷發(fā)送中斷TITI0023H0023H接收中斷接收中斷RIRI定時(shí)器定時(shí)器2 2(T2T2)中斷)中斷T2T2溢出中斷溢出中斷TF2TF2002BH002BHT2EXT2EX中斷中斷EXF2EXF2學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 三、中斷標(biāo)志與控制三、中斷標(biāo)志與控制 要實(shí)現(xiàn)中斷,首先中斷源要提出要實(shí)現(xiàn)中斷,首先中斷源要提出中斷申請(qǐng),而

10、中斷請(qǐng)求的過程是單片中斷申請(qǐng),而中斷請(qǐng)求的過程是單片機(jī)內(nèi)部特殊功能寄存器機(jī)內(nèi)部特殊功能寄存器TCONTCON和和SCONSCON相關(guān)狀態(tài)位相關(guān)狀態(tài)位中斷請(qǐng)求標(biāo)志位中斷請(qǐng)求標(biāo)志位置置1 1的過程,當(dāng)?shù)倪^程,當(dāng)CPUCPU響應(yīng)中斷時(shí),中響應(yīng)中斷時(shí),中斷請(qǐng)求標(biāo)志位才由硬件或軟件清斷請(qǐng)求標(biāo)志位才由硬件或軟件清0 0。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 圖2-2學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (一)定時(shí)器計(jì)數(shù)器控制寄存器(一)定時(shí)器計(jì)數(shù)器控制寄存器TCONTCON TCON TCON為定時(shí)器為定時(shí)器/ /計(jì)數(shù)器的控制器,它也計(jì)數(shù)器的控制器,它也鎖存外部中斷請(qǐng)

11、求標(biāo)志,其格式如下:鎖存外部中斷請(qǐng)求標(biāo)志,其格式如下:TF1TF1 TR1 TF0TF0 TR0IE1IE1IT1IT1IE0IE0IT0IT0TCONTCON(88H88H) D7 D6 D5 D4 D3 D2 D1 D0位地址位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H與中斷有關(guān)的控制位共與中斷有關(guān)的控制位共6 6位位學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) IE0IE0和和IE1IE1:外部中斷請(qǐng)求標(biāo)志。外部中斷請(qǐng)求標(biāo)志。當(dāng)當(dāng)CPUCPU采樣到采樣到 (或(或 )端出現(xiàn)有效中斷請(qǐng)求(低電平或)端出現(xiàn)有效中斷請(qǐng)求(低電平或脈沖下降沿)時(shí),脈沖下降沿)

12、時(shí),IE0IE0(或(或IE1IE1)位由片內(nèi)硬件自動(dòng)置)位由片內(nèi)硬件自動(dòng)置1 1;當(dāng)中;當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由片內(nèi)硬件自動(dòng)清斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由片內(nèi)硬件自動(dòng)清0 0。IT0IT0和和ITlITl:外部中斷請(qǐng)求信號(hào)觸發(fā)方式控制標(biāo)志。外部中斷請(qǐng)求信號(hào)觸發(fā)方式控制標(biāo)志。IT0IT0(或(或IT1IT1)=1=1, (或(或 )信號(hào)為脈沖觸發(fā)方式,脈沖)信號(hào)為脈沖觸發(fā)方式,脈沖負(fù)跳沿有效;負(fù)跳沿有效;IT0IT0(或(或IT1IT1)=0=0, (或(或 )信號(hào)電平觸發(fā)方式,低電)信號(hào)電平觸發(fā)方式,低電平有效。平有效。IT0IT0(或(或IT1IT1)位可由用戶軟件置)位可

13、由用戶軟件置1 1或清或清0 0 TF0TF0和和TFlTFl:定時(shí)器定時(shí)器/ /計(jì)數(shù)器溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)器計(jì)數(shù)器溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)器0 0(或定時(shí)器(或定時(shí)器1 1)產(chǎn)生計(jì)數(shù)溢出時(shí),)產(chǎn)生計(jì)數(shù)溢出時(shí),TF0TF0(或(或TF1TF1)由片內(nèi)硬件)由片內(nèi)硬件自動(dòng)置自動(dòng)置1 1;當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由片內(nèi)硬件;當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由片內(nèi)硬件自動(dòng)清自動(dòng)清0 0。 計(jì)數(shù)溢出標(biāo)志位的使用有兩種情況:采用中斷方式時(shí),作計(jì)數(shù)溢出標(biāo)志位的使用有兩種情況:采用中斷方式時(shí),作中斷請(qǐng)求標(biāo)志位來(lái)使用;采用查詢方式時(shí),作查詢狀態(tài)位來(lái)使中斷請(qǐng)求標(biāo)志位來(lái)使用;采用查詢方式時(shí),作查詢

14、狀態(tài)位來(lái)使用。用。0INT1INT0INT1INT0INT1INT學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (二)串行口控制寄存器(二)串行口控制寄存器SCONSCONSM0SM0 SM1 SM2SM2 REN TB8TB8 RB8RB8 TITIRIRISCONSCON(98H98H) D7 D6 D5 D4 D3 D2 D1 D0位地址位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H與中斷有關(guān)的控制位共與中斷有關(guān)的控制位共2 2位位TITI:串行口發(fā)送中斷請(qǐng)求標(biāo)志。:串行口發(fā)送中斷請(qǐng)求標(biāo)志。當(dāng)串行口發(fā)送完一幀信號(hào)后,由片內(nèi)硬件當(dāng)串行口發(fā)送完一幀信號(hào)后,由

15、片內(nèi)硬件自動(dòng)置自動(dòng)置1 1。但。但CPUCPU響應(yīng)中斷時(shí),并不清除響應(yīng)中斷時(shí),并不清除TITI,必須在中斷服務(wù)程序中由軟件對(duì),必須在中斷服務(wù)程序中由軟件對(duì)TITI清清0 0。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) RIRI:串行口接收中斷請(qǐng)求標(biāo)志。當(dāng)串行口接串行口接收中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀信號(hào)后,由片內(nèi)硬件自動(dòng)置收完一幀信號(hào)后,由片內(nèi)硬件自動(dòng)置1 1。但。但CPUCPU響應(yīng)中斷時(shí),并不清除響應(yīng)中斷時(shí),并不清除RIRI,必須在中斷,必須在中斷服務(wù)程序中由軟件對(duì)其清服務(wù)程序中由軟件對(duì)其清0 0。 應(yīng)當(dāng)指出,應(yīng)當(dāng)指出,AT89S52AT89S52系統(tǒng)復(fù)位后,系統(tǒng)復(fù)位后,T

16、CONTCON和和SCONSCON中各位被復(fù)位成中各位被復(fù)位成“0”0”狀態(tài),狀態(tài),應(yīng)用時(shí)要注意各位的初始狀態(tài)。應(yīng)用時(shí)要注意各位的初始狀態(tài)。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (三)中斷允許控制寄存器(三)中斷允許控制寄存器IEIEEAEAET2ET2ESET1ET1EX1 EX1 ET0ET0 EX0EX0IEIE(A8HA8H) D7 D6 D5 D4 D3 D2 D1 D0位地址位地址 AFH AEH ADH ACH ABH AAH A9H A8H與中斷有關(guān)的控制位共與中斷有關(guān)的控制位共7 7位位EAEA: 中斷允許總控制位。中斷允許總控制位。EA=0EA=0時(shí),中斷

17、總禁止,禁止一切中斷;時(shí),中斷總禁止,禁止一切中斷;EA=1EA=1時(shí),中斷總允許,而每個(gè)中斷源允時(shí),中斷總允許,而每個(gè)中斷源允許與禁止,分別由各自的允許位確定。許與禁止,分別由各自的允許位確定。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) EX0EX0和和EX1EX1:外部中斷允許控制位。外部中斷允許控制位。EX0EX0(或(或EX1EX1)=0=0,禁止外部中斷;,禁止外部中斷;EX0EX0(或(或EX1EX1)=1=1,允許外部中斷。,允許外部中斷。ET0ET0和和ET1ET1:定時(shí)器中斷允許控制位。定時(shí)器中斷允許控制位。ET0ET0(ET1ET1)=0=0,禁止定時(shí)器,禁止

18、定時(shí)器0 0(或定時(shí)器(或定時(shí)器1 1)中斷;中斷;ET0ET0(ET1ET1)=1=1,允許定時(shí)器,允許定時(shí)器0 0(或定時(shí)器(或定時(shí)器1 1)中斷中斷。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) ESES: 串行中斷允許控制位。串行中斷允許控制位。ES=0ES=0,禁止串行(,禁止串行(TITI或或RIRI)中斷;)中斷;ES=1ES=1,允許串行(,允許串行(TITI或或RIRI)中斷。)中斷。ET2ET2: 定時(shí)器定時(shí)器2 2中斷允許控制位。中斷允許控制位。ET2=0ET2=0,禁止定時(shí)器,禁止定時(shí)器2 2(TF2TF2或或EXF2EXF2)中斷;)中斷;ET2=1ET2=

19、1,允許定時(shí)器,允許定時(shí)器2 2(TF2TF2或或EXF2EXF2)中斷;)中斷; 在單片機(jī)復(fù)位后,在單片機(jī)復(fù)位后,IEIE各位被復(fù)位成各位被復(fù)位成“0”0”狀狀態(tài),態(tài),CPUCPU處于關(guān)閉所有中斷的狀態(tài)。處于關(guān)閉所有中斷的狀態(tài)。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 例如:例如:可以采用如下字節(jié)傳送指令來(lái)開放定可以采用如下字節(jié)傳送指令來(lái)開放定時(shí)器時(shí)器T0T0的溢出中斷:的溢出中斷: MOV IEMOV IE,#82H#82H 也可以用位尋址指令,則需采用如下兩條也可以用位尋址指令,則需采用如下兩條指令實(shí)現(xiàn)同樣功能:指令實(shí)現(xiàn)同樣功能: SETB EASETB EA SETB

20、ET0 SETB ET0 在在89S5289S52復(fù)位后,復(fù)位后,IEIE各位被復(fù)位成各位被復(fù)位成“0”0”狀態(tài),狀態(tài),CPUCPU處于關(guān)閉所有中斷的狀態(tài)。所以,處于關(guān)閉所有中斷的狀態(tài)。所以,在在89S5289S52復(fù)位以后,用戶必須通過程序中的指復(fù)位以后,用戶必須通過程序中的指令來(lái)開放所需中斷。令來(lái)開放所需中斷。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (四)中斷優(yōu)先級(jí)控制寄存器(四)中斷優(yōu)先級(jí)控制寄存器IPIP 89S52 89S52單片機(jī)具有高、低單片機(jī)具有高、低2 2個(gè)中斷優(yōu)先級(jí)。高優(yōu)先級(jí)用個(gè)中斷優(yōu)先級(jí)。高優(yōu)先級(jí)用“1”1”表示,低優(yōu)先級(jí)用表示,低優(yōu)先級(jí)用“0”0”表示。

21、對(duì)于所有的中斷源,均可表示。對(duì)于所有的中斷源,均可由軟件設(shè)置為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷,并可實(shí)現(xiàn)兩級(jí)由軟件設(shè)置為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷,并可實(shí)現(xiàn)兩級(jí)中斷嵌套。中斷嵌套。IPIP寄存器可以位尋址。寄存器可以位尋址。PSPT2PT1PX1PT0PX0 IP IP(B8HB8H) D7 D6 D5 D4 D3 D2 D1 D0 BDH BCH BBH BAH B9H B8H學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 與中斷有關(guān)的控制位共與中斷有關(guān)的控制位共6 6位位 PX0PX0:外部中斷:外部中斷0 0優(yōu)先級(jí)設(shè)定位。優(yōu)先級(jí)設(shè)定位。 PT0PT0:定時(shí)器:定時(shí)器0(T0)0(T0)

22、優(yōu)先級(jí)設(shè)定位。優(yōu)先級(jí)設(shè)定位。 PXlPXl:外部中斷:外部中斷1 1優(yōu)先級(jí)設(shè)定位。優(yōu)先級(jí)設(shè)定位。 PTlPTl:定時(shí)器:定時(shí)器1(T1)1(T1)優(yōu)先級(jí)設(shè)定位。優(yōu)先級(jí)設(shè)定位。 PSPS:為串行口優(yōu)先級(jí)設(shè)定位。:為串行口優(yōu)先級(jí)設(shè)定位。 PT2PT2:為定時(shí)器:為定時(shí)器2 2優(yōu)先級(jí)設(shè)定位。優(yōu)先級(jí)設(shè)定位。 可用軟件對(duì)IP的各位置1或清0 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 例如例如CPUCPU開中斷可由以下兩條指令來(lái)實(shí)現(xiàn):開中斷可由以下兩條指令來(lái)實(shí)現(xiàn): SETB 0AFH SETB 0AFH ;EAEA置置1 1 或或 0RL IE0RL IE,#80H #80H ;按位;按位“

23、或或”,EAEA置置1 1 CPU CPU關(guān)中斷可由以下兩條指令來(lái)實(shí)現(xiàn):關(guān)中斷可由以下兩條指令來(lái)實(shí)現(xiàn): CLR 0AFH CLR 0AFH ;EAEA清清0 0 或或 ANL IEANL IE,#7FH #7FH ;按位;按位“與與”,EAEA清清0 0 又如設(shè)置外部中斷源又如設(shè)置外部中斷源 為高優(yōu)先級(jí),外部中斷源為高優(yōu)先級(jí),外部中斷源 為低優(yōu)先級(jí),可由下面指令來(lái)實(shí)現(xiàn):為低優(yōu)先級(jí),可由下面指令來(lái)實(shí)現(xiàn): SETB 0B8H SETB 0B8H ;PX0PX0置置1 1 CLR 0BAH CLR 0BAH ;PXlPXl清清0 0 或或 MOV IPMOV IP,#000#0000 01B 1B

24、;PX0PX0置置1 1,PXlPXl清清0 0 0INT1INT學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 四、優(yōu)先級(jí)結(jié)構(gòu)四、優(yōu)先級(jí)結(jié)構(gòu) 中斷優(yōu)先級(jí)只有高低兩級(jí)。所以在工作過程中必然會(huì)有兩中斷優(yōu)先級(jí)只有高低兩級(jí)。所以在工作過程中必然會(huì)有兩個(gè)或兩個(gè)以上中斷源處于同一中斷優(yōu)先級(jí)。若出現(xiàn)這種情況,個(gè)或兩個(gè)以上中斷源處于同一中斷優(yōu)先級(jí)。若出現(xiàn)這種情況,內(nèi)部中斷系統(tǒng)對(duì)各中斷源的處理遵循以下兩條基本原則:內(nèi)部中斷系統(tǒng)對(duì)各中斷源的處理遵循以下兩條基本原則: 低優(yōu)先級(jí)中斷可以被高優(yōu)先級(jí)中斷所中斷,反之不能。低優(yōu)先級(jí)中斷可以被高優(yōu)先級(jí)中斷所中斷,反之不能。 一種中斷一種中斷( (不管是什么優(yōu)先級(jí)不

25、管是什么優(yōu)先級(jí)) )一旦得到響應(yīng),與它同級(jí)的一旦得到響應(yīng),與它同級(jí)的中斷不能再中斷它。中斷不能再中斷它。 中斷源中斷源 同級(jí)自然優(yōu)先級(jí)同級(jí)自然優(yōu)先級(jí) 外部中斷外部中斷0 0 最高級(jí)最高級(jí) 定時(shí)器定時(shí)器0 0中斷中斷 外部中斷外部中斷1 1 定時(shí)器定時(shí)器1 1中斷中斷 串行口中斷串行口中斷 最低級(jí)最低級(jí) 定時(shí)器定時(shí)器2 2中斷中斷 最低級(jí)最低級(jí)學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 例:設(shè)例:設(shè)89S5289S52的片外中斷為高優(yōu)先級(jí),片內(nèi)中的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。試設(shè)置斷為低優(yōu)先級(jí)。試設(shè)置IPIP相應(yīng)值。相應(yīng)值。 解:解:(a)(a)用字節(jié)操作指令用字節(jié)操作指

26、令 MOV IPMOV IP, #05H #05H 或或 MOV 0B8HMOV 0B8H,#05H #05H (b) (b)用位操作指令用位操作指令 SETB PX0SETB PX0 SETB PX1 SETB PX1 CLR PS CLR PS CLR PT0 CLR PT0 CLR PT1 CLR PT1 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 五、中斷系統(tǒng)的初始化及應(yīng)用五、中斷系統(tǒng)的初始化及應(yīng)用 (一)中斷系統(tǒng)的初始化(一)中斷系統(tǒng)的初始化 (1) CPU開中斷或關(guān)中斷;開中斷或關(guān)中斷; (2) 某中斷源中斷請(qǐng)求的允許或禁止某中斷源中斷請(qǐng)求的允許或禁止(屏蔽屏蔽); (

27、3) 設(shè)定所用中斷的中斷優(yōu)先級(jí);設(shè)定所用中斷的中斷優(yōu)先級(jí); (4) 若為外部中斷,則應(yīng)規(guī)定低電平還是負(fù)邊沿的中斷觸發(fā)方式。若為外部中斷,則應(yīng)規(guī)定低電平還是負(fù)邊沿的中斷觸發(fā)方式。 例例 請(qǐng)寫出請(qǐng)寫出 為低電平觸發(fā)的中斷系統(tǒng)初始化程序。為低電平觸發(fā)的中斷系統(tǒng)初始化程序。 解:解:(1)采用位操作指令采用位操作指令 SETB EA ;CPU開中斷開中斷 SETB EXl ;開;開 中斷中斷 SETB PXl ;令;令 為高優(yōu)先級(jí)為高優(yōu)先級(jí) CLR ITl ;令;令 為電平觸發(fā)為電平觸發(fā) (2)采用字節(jié)型指令采用字節(jié)型指令 MOV IE,#84H ;開;開 中斷中斷 ORL IP,#04H ;令;令

28、為高優(yōu)先級(jí)為高優(yōu)先級(jí) ANL TCON,#0FBH ;令;令 為電平觸發(fā)為電平觸發(fā)1INT1INT1INT1INT1INT1INT1INT學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (二)中斷系統(tǒng)的應(yīng)用(二)中斷系統(tǒng)的應(yīng)用 中斷管理與控制程序一般包含在主程序中,中斷管理與控制程序一般包含在主程序中,根據(jù)需要通過幾條指令來(lái)實(shí)現(xiàn),例如根據(jù)需要通過幾條指令來(lái)實(shí)現(xiàn),例如CPUCPU開中開中斷,可用指令斷,可用指令“SETB EA”SETB EA”或或“ORL IEORL IE,#80H”#80H”來(lái)實(shí)現(xiàn),關(guān)中斷可用指令來(lái)實(shí)現(xiàn),關(guān)中斷可用指令“CLR EA”CLR EA”,或或“ANL IE

29、ANL IE,#7FH”#7FH”來(lái)實(shí)現(xiàn)。來(lái)實(shí)現(xiàn)。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 中斷服務(wù)程序的一般格式:中斷服務(wù)程序的一般格式: ORG ADDRESSORG ADDRESS AJMP INTVS AJMP INTVS INTVS INTVS : CLR EA CLR EA ;關(guān)中斷;關(guān)中斷 PUSH PSW PUSH PSW ;保護(hù)現(xiàn)場(chǎng);保護(hù)現(xiàn)場(chǎng) PUSH APUSH A SETB EA SETB EA ;開中斷,允許;開中斷,允許CPUCPU響應(yīng)高級(jí)中斷響應(yīng)高級(jí)中斷 中斷服務(wù)中斷服務(wù) CLR EA CLR EA ;關(guān)中斷;關(guān)中斷 POP A POP A ;恢復(fù)現(xiàn)場(chǎng)

30、;恢復(fù)現(xiàn)場(chǎng) POP PSW POP PSW SETB EA SETB EA ;開中斷;開中斷 RETI RETI ;中斷返回;中斷返回 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 編寫此程序應(yīng)注意以下幾點(diǎn):編寫此程序應(yīng)注意以下幾點(diǎn):(1) 為了要跳到用戶設(shè)計(jì)的中斷服務(wù)程序,在相應(yīng)入口地址安為了要跳到用戶設(shè)計(jì)的中斷服務(wù)程序,在相應(yīng)入口地址安排一條跳轉(zhuǎn)指令;排一條跳轉(zhuǎn)指令;(2) 在中斷服務(wù)程序的末尾,安排一條返回指令在中斷服務(wù)程序的末尾,安排一條返回指令RETI;(3) 由于在響應(yīng)中斷時(shí),由于在響應(yīng)中斷時(shí),CPU只自動(dòng)保護(hù)斷點(diǎn),所以只自動(dòng)保護(hù)斷點(diǎn),所以CPU的其的其他現(xiàn)場(chǎng)他現(xiàn)場(chǎng)(如寄

31、存器如寄存器A、B狀態(tài),狀態(tài)字狀態(tài),狀態(tài)字PSW,通用寄存器,通用寄存器R0、R1等等)的保護(hù)和恢復(fù)也必須由用戶在中斷服務(wù)程序中安排;的保護(hù)和恢復(fù)也必須由用戶在中斷服務(wù)程序中安排;(4) 在此多級(jí)中斷的中斷服務(wù)程序中,保護(hù)現(xiàn)場(chǎng)之后的開中斷在此多級(jí)中斷的中斷服務(wù)程序中,保護(hù)現(xiàn)場(chǎng)之后的開中斷(SETB EA)是為了允許有更高級(jí)中斷打斷此中斷服務(wù)程序,恢是為了允許有更高級(jí)中斷打斷此中斷服務(wù)程序,恢復(fù)現(xiàn)場(chǎng)和保護(hù)現(xiàn)場(chǎng)之前的關(guān)中斷復(fù)現(xiàn)場(chǎng)和保護(hù)現(xiàn)場(chǎng)之前的關(guān)中斷(CLR EA)是為了保證在恢復(fù)和是為了保證在恢復(fù)和保護(hù)現(xiàn)場(chǎng)時(shí),保護(hù)現(xiàn)場(chǎng)時(shí),CPU不響應(yīng)新的中斷請(qǐng)求,從而使現(xiàn)場(chǎng)數(shù)據(jù)不受不響應(yīng)新的中斷請(qǐng)求,從而使現(xiàn)場(chǎng)

32、數(shù)據(jù)不受到破壞或者造成混亂;到破壞或者造成混亂;(5) 當(dāng)把程序中保護(hù)現(xiàn)場(chǎng)之后的當(dāng)把程序中保護(hù)現(xiàn)場(chǎng)之后的SETB EA和恢復(fù)現(xiàn)場(chǎng)之前和恢復(fù)現(xiàn)場(chǎng)之前的的CLR EA刪除,就是一個(gè)單級(jí)中斷服務(wù)程序。刪除,就是一個(gè)單級(jí)中斷服務(wù)程序。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) (三)中斷程序舉例(三)中斷程序舉例 【例【例2.12.1】使用一個(gè)按鍵控制圖】使用一個(gè)按鍵控制圖2.32.3所示的所示的流水燈,每按一次按鍵流水燈的流動(dòng)方向改變流水燈,每按一次按鍵流水燈的流動(dòng)方向改變一次,要求使用中斷技術(shù)處理按鍵。一次,要求使用中斷技術(shù)處理按鍵。 解:如圖解:如圖2.32.3所示,按鍵接在所示,按

33、鍵接在P3.3P3.3,因,因此采用外部中斷此采用外部中斷1 1,中斷申請(qǐng)從,中斷申請(qǐng)從 輸入。每輸入。每按一次按鍵,產(chǎn)生一次中斷,流水燈流動(dòng)方向按一次按鍵,產(chǎn)生一次中斷,流水燈流動(dòng)方向便改變一次。當(dāng)開關(guān)便改變一次。當(dāng)開關(guān)SA17SA17閉合時(shí),發(fā)出中斷閉合時(shí),發(fā)出中斷請(qǐng)求。中斷服務(wù)程序的矢量地址為請(qǐng)求。中斷服務(wù)程序的矢量地址為0013H0013H。1INT學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 圖圖2.3 方向可控流水燈方向可控流水燈 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) ORG 0000H ORG 0000H ; ;定義下一條指令的地址定義下一條指令的地址

34、 LJMP START ;LJMP START ;轉(zhuǎn)向主程序轉(zhuǎn)向主程序 ORG 0013HORG 0013H; ;安排外部中斷安排外部中斷1 1處理程序的第一條指令處理程序的第一條指令 LJMP KEYS ;LJMP KEYS ;直接轉(zhuǎn)移到中斷處理程序直接轉(zhuǎn)移到中斷處理程序 ORG 0100H ;ORG 0100H ;主程序起點(diǎn)主程序起點(diǎn) START: MOV SP, #70H ;START: MOV SP, #70H ;設(shè)置堆棧棧底指針設(shè)置堆棧棧底指針 SETB IT1SETB IT1 ; ;設(shè)置外部中斷設(shè)置外部中斷1 1的中斷方式為下降沿中斷的中斷方式為下降沿中斷 SETB EX1SETB

35、 EX1 ; ;開放外部中斷開放外部中斷1 1 SETB EA SETB EA ; ;開放總中斷開放總中斷 MOVMOV A, #01H ;#01H A, #01H ;#01H送累加器送累加器A A L1: MOV L1: MOV P2, A P2, A ; ;累加器累加器A A中內(nèi)容送中內(nèi)容送P2P2口口 MOVMOV R7, #0FFH ; R7, #0FFH ;延時(shí)延時(shí) L3: MOVL3: MOV R6, #0FFH R6, #0FFH L2: DJNZ R6, L2 L2: DJNZ R6, L2 DJNZ R7, L3 DJNZ R7, L3 JNB FX, L4 ;FX=0 JN

36、B FX, L4 ;FX=0時(shí)轉(zhuǎn)移到時(shí)轉(zhuǎn)移到L4L4(FXFX是流水燈流動(dòng)方向標(biāo)志)是流水燈流動(dòng)方向標(biāo)志) RL A ;RL A ;累加器累加器A A中內(nèi)容左移一位中內(nèi)容左移一位 SJMP L5 ;SJMP L5 ;轉(zhuǎn)移至轉(zhuǎn)移至L5L5 L4: RR A ; L4: RR A ;累加器累加器A A中內(nèi)容右移一位中內(nèi)容右移一位 L5: SJMP L1 ;L5: SJMP L1 ;轉(zhuǎn)移至轉(zhuǎn)移至L1L1學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) ; ;按鍵中斷程序按鍵中斷程序 ; ;入口入口: :外部中斷外部中斷1 1 ; ;功能功能: :確認(rèn)按鍵后改變方向標(biāo)志確認(rèn)按鍵后改變方向標(biāo)志FX

37、FX的狀態(tài)的狀態(tài) ORG 0300HORG 0300H ; ;中斷處理程序入口中斷處理程序入口 KEYS: MOV KEYS: MOV R7, #20H R7, #20H ; ;首先延時(shí)去抖首先延時(shí)去抖 K1: MOVK1: MOVR6, #0FFHR6, #0FFH DJNZ R6, $ DJNZ R6, $ DJNZ R7,K1 DJNZ R7,K1 JB KEY ,K2 ; JB KEY ,K2 ;延時(shí)完成后再檢測(cè)按鍵延時(shí)完成后再檢測(cè)按鍵 CPL FX ;CPL FX ;確認(rèn)按鍵按下確認(rèn)按鍵按下, ,改變方向標(biāo)志位狀態(tài)改變方向標(biāo)志位狀態(tài) K2: RETI ;K2: RETI ;中斷結(jié)束返

38、回中斷結(jié)束返回 KEY BIT P3.3KEY BIT P3.3 ; ;定義按鍵變量定義按鍵變量 FXFX BIT 00H ; BIT 00H ;定義位變量定義位變量, ,用于判斷方向用于判斷方向 ENDEND ; ;結(jié)束結(jié)束學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 第三部分第三部分 項(xiàng)目實(shí)施項(xiàng)目實(shí)施一、項(xiàng)目實(shí)施分析一、項(xiàng)目實(shí)施分析(一)硬件電路(一)硬件電路 P1P1口連接口連接8 8個(gè)發(fā)光二極管,外部中斷個(gè)發(fā)光二極管,外部中斷INT1INT1接接KEYKEY(P2.7P2.7接按鍵接按鍵SW8SW8,P3.3P3.3接接KEYKEY),作為中斷申請(qǐng)信號(hào),開機(jī)),作為中斷申請(qǐng)信

39、號(hào),開機(jī)8 8個(gè)發(fā)個(gè)發(fā)光二極管從左到右流水,產(chǎn)生中斷后,光二極管從左到右流水,產(chǎn)生中斷后,8 8個(gè)發(fā)光管全亮、全滅,延時(shí)后,再循環(huán)。個(gè)發(fā)光管全亮、全滅,延時(shí)后,再循環(huán)。如圖如圖2.42.4所示。所示。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 參考程序:參考程序: ORG 0000h ;ORG 0000h ;偽指令偽指令 LJMP START ;LJMP START ;跳轉(zhuǎn)到單片機(jī)的主程序跳轉(zhuǎn)到單片機(jī)的主程序 ORG 0013H ;ORG 0013H ;外部中斷外部中斷1 1的入口地址的入口地址 LJMP EXT1 ;LJMP

40、 EXT1 ;跳轉(zhuǎn)到中斷服務(wù)程序跳轉(zhuǎn)到中斷服務(wù)程序 ORG 0100H ;ORG 0100H ;偽指令,單片機(jī)主程偽指令,單片機(jī)主程序的開始序的開始STARTSTART:MOV IE , #10000100bMOV IE , #10000100b MOV IP , #00000100b MOV IP , #00000100b MOV TCON, #00000000b MOV TCON, #00000000b ;定;定時(shí)器初始化時(shí)器初始化 MOV SP, #40H MOV SP, #40H 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) MOV P1, #0FFH MOV P1, #0F

41、FH MOV P2, #00H MOV P2, #00H MOV P3, #0FFH MOV P3, #0FFH ;設(shè)置;設(shè)置 P1P1、P2P2、P3P3口狀態(tài)口狀態(tài)LOOP: MOV A, #0FFHLOOP: MOV A, #0FFH CLR C CLR C MOV R2, #08H MOV R2, #08H LOOP1: RLC A LOOP1: RLC A MOV P1, A MOV P1, A LCALL DELAY LCALL DELAY DJNZ R2, LOOP1 DJNZ R2, LOOP1 JMP LOOP JMP LOOP ;小燈循環(huán)點(diǎn)亮;小燈循環(huán)點(diǎn)亮EXT1: PUS

42、H ACC EXT1: PUSH ACC ;中斷服務(wù)程序;中斷服務(wù)程序 PUSH PSWPUSH PSW學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) MOV A, #00H MOV A, #00H ;小燈全亮;小燈全亮 MOV R3, #0AHMOV R3, #0AHLOOP2: MOV P1, ALOOP2: MOV P1, A LCALL DELAY LCALL DELAY CPL A CPL A DJNZ R3, LOOP2 DJNZ R3, LOOP2 POP PSW POP PSW POP ACC POP ACC RETI RETI學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通

43、信號(hào)燈的設(shè)計(jì) DELAY: MOV R5, #20 DELAY: MOV R5, #20 ;延時(shí)程序;延時(shí)程序D1: MOV R6, #20D1: MOV R6, #20D2: MOV R7, #248D2: MOV R7, #248 DJNZ R7, $ DJNZ R7, $ DJNZ R6, D2 DJNZ R6, D2 DJNZ R5, D1 DJNZ R5, D1 RET RET END END 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 任務(wù)二任務(wù)二 速度可控流水燈速度可控流水燈第一部分第一部分 項(xiàng)目要求項(xiàng)目要求將將8個(gè)發(fā)光二極管從左到右流水燈循環(huán)顯示,通過按鍵改變循個(gè)發(fā)

44、光二極管從左到右流水燈循環(huán)顯示,通過按鍵改變循環(huán)的速率,最小為環(huán)的速率,最小為0.2秒,最大為秒,最大為2秒,即流水燈的流動(dòng)速度秒,即流水燈的流動(dòng)速度分為分為10級(jí),使用按鍵控制流動(dòng)速度。每按一次按鍵流水燈的級(jí),使用按鍵控制流動(dòng)速度。每按一次按鍵流水燈的流動(dòng)速度改變流動(dòng)速度改變1級(jí)。按一次按鍵,速度增加一級(jí),逐步增加,級(jí)。按一次按鍵,速度增加一級(jí),逐步增加,增加到最高速度后,再循環(huán)。采用定時(shí)器增加到最高速度后,再循環(huán)。采用定時(shí)器T0,方式,方式1,定時(shí)器,定時(shí)器定時(shí)時(shí)基是定時(shí)時(shí)基是0.05秒。秒。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 第二部分第二部分 相關(guān)知識(shí)相關(guān)知識(shí) AT

45、89S52 AT89S52單片機(jī)內(nèi)部有單片機(jī)內(nèi)部有三個(gè)三個(gè)1616位可編程的定位可編程的定時(shí)器時(shí)器/ /計(jì)數(shù)器,計(jì)數(shù)器,T0T0、T1T1和和T2T2。它們既可用作定時(shí)。它們既可用作定時(shí)器方式,又可用作計(jì)數(shù)器方式,且都有器方式,又可用作計(jì)數(shù)器方式,且都有4 4種工作方種工作方式可供選擇。但式可供選擇。但T0T0、T1T1與與T2T2的的4 4種工作方式不同。種工作方式不同。 一、定時(shí)器一、定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)與功能計(jì)數(shù)器結(jié)構(gòu)與功能 定時(shí)器定時(shí)器0 0,定時(shí)器,定時(shí)器1 1是是1616位加法計(jì)數(shù)器,分別位加法計(jì)數(shù)器,分別由兩個(gè)由兩個(gè)8 8位專用寄存器組成:定時(shí)器位專用寄存器組成:定時(shí)器0 0由由T

46、H0TH0和和TL0TL0組成,定時(shí)器組成,定時(shí)器1 1由由TH1TH1和和TL1TL1組成。見圖。組成。見圖。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) CPUTCON (88H)TH1TL1TH0TL0INT1(P3.3)INT0(P3.2)中斷T1 (P3.5)定時(shí)器1定時(shí)器0溢出啟動(dòng)(8DH)(8BH)(8CH)(8AH)啟動(dòng)內(nèi)部總線溢出 工作方式工作方式70T0 (P3.4)70TMOD (89H)7070圖圖2.5 定時(shí)器定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)框圖計(jì)數(shù)器結(jié)構(gòu)框圖 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì)

47、 定時(shí)器的定時(shí)時(shí)間不僅與計(jì)數(shù)器的初值即計(jì)數(shù)定時(shí)器的定時(shí)時(shí)間不僅與計(jì)數(shù)器的初值即計(jì)數(shù)器的長(zhǎng)度有關(guān),而且還與系統(tǒng)的時(shí)鐘頻率有關(guān)。在器的長(zhǎng)度有關(guān),而且還與系統(tǒng)的時(shí)鐘頻率有關(guān)。在機(jī)器周期一定的情況下,初值越大,定時(shí)時(shí)間越短;機(jī)器周期一定的情況下,初值越大,定時(shí)時(shí)間越短;初值越小,定時(shí)時(shí)間越長(zhǎng)。最長(zhǎng)的定時(shí)時(shí)間為初值越小,定時(shí)時(shí)間越長(zhǎng)。最長(zhǎng)的定時(shí)時(shí)間為6553665536(2 21616)個(gè)機(jī)器周期(初值為)個(gè)機(jī)器周期(初值為0 0)。)。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器是一種可編程的部件,在計(jì)數(shù)器是一種可編程的部件,在其工作之前必須將控制字寫入工作方式其

48、工作之前必須將控制字寫入工作方式和控制寄存器,用以確定工作方式,這和控制寄存器,用以確定工作方式,這個(gè)過程稱為定時(shí)器個(gè)過程稱為定時(shí)器/ /計(jì)數(shù)器的初始化。計(jì)數(shù)器的初始化。 對(duì)定時(shí)器對(duì)定時(shí)器/ /計(jì)數(shù)器進(jìn)行控制的寄存器共有計(jì)數(shù)器進(jìn)行控制的寄存器共有2 2個(gè):個(gè): TCONTCON 、 TMODTMOD二、定時(shí)器二、定時(shí)器/ /計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制寄存器學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 1. 1. 定時(shí)控制寄存器定時(shí)控制寄存器TCONTCON(88H88H)工作方式寄存器工作方式寄存器TCONTCON:控制定時(shí)器的啟動(dòng)、控制定時(shí)器的啟動(dòng)、停止,標(biāo)志定時(shí)器的溢出和中斷情況

49、。停止,標(biāo)志定時(shí)器的溢出和中斷情況。TCONTCON的高的高4 4位位: : 定時(shí)器的運(yùn)行控制位和溢出標(biāo)定時(shí)器的運(yùn)行控制位和溢出標(biāo)志位志位; ;低低4 4位位: : 外部中斷觸發(fā)方式控制位和鎖存外部中外部中斷觸發(fā)方式控制位和鎖存外部中斷請(qǐng)求源。斷請(qǐng)求源。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) TF0TF0和和TF1TF1:定時(shí)器定時(shí)器/ /計(jì)數(shù)器溢出標(biāo)志位。計(jì)數(shù)器溢出標(biāo)志位。 當(dāng)定時(shí)器當(dāng)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0(或定時(shí)器(或定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1)溢出時(shí),)溢出時(shí),由硬件自動(dòng)使由硬件自動(dòng)使TF0TF0(或(或TF1TF1)置)置1 1,并向,并向CPUCPU申請(qǐng)

50、中申請(qǐng)中斷。斷。CPUCPU響應(yīng)中斷后,自動(dòng)對(duì)響應(yīng)中斷后,自動(dòng)對(duì)TF1TF1清零。清零。TF1TF1也可以也可以用軟件清零。用軟件清零。 TR0TR0和和TR1TR1:定時(shí)器定時(shí)器/ /計(jì)數(shù)器運(yùn)行控制位。計(jì)數(shù)器運(yùn)行控制位。TR0TR0(或(或TR1TR1)=0=0,停止定時(shí)器,停止定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0(或定時(shí)器(或定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1)工作。)工作。TR0TR0(或(或TR1TR1)=1=1,啟動(dòng)定時(shí)器,啟動(dòng)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0(或定時(shí)器(或定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1)工作。)工作。 用指令用指令SETB TR1SETB TR1(或(或CLR TR1CLR T

51、R1)使)使TR1TR1置置1 1(或清零)。(或清零)。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) GATE C/ T M1 M0GATE C/T M1 M0定時(shí)器定時(shí)器1定時(shí)器定時(shí)器02. 2. 工作方式寄存器工作方式寄存器TMOD (89H)TMOD (89H) M1 M1、M0M0:工作方式控制位:工作方式控制位學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) C/ C/ =0 =0,為定時(shí)方式。,為定時(shí)方式。C/ C/ =1=1,為計(jì)數(shù)方式。,為計(jì)數(shù)方式。GATEGATE0 0時(shí),只要用軟件使時(shí),只要用軟件使TR0(TR0(或或TRl)TRl)置置1 1就可以就可以

52、啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器T0T0(或(或T1T1););GATE=1GATE=1時(shí),只有時(shí),只有/INT0/INT0( (或或/INT1/INT1) )引腳為高電平且引腳為高電平且由軟件使由軟件使TR0TR0( (或或TRlTRl) )置置1 1時(shí),才能啟動(dòng)定時(shí)器工作。時(shí),才能啟動(dòng)定時(shí)器工作。 TMODTMOD不能位尋址,只能用字節(jié)指令設(shè)置高不能位尋址,只能用字節(jié)指令設(shè)置高4 4位位定義定時(shí)器定義定時(shí)器1 1,低,低4 4位定義定時(shí)器位定義定時(shí)器0 0定時(shí)器工作方式。定時(shí)器工作方式。復(fù)位時(shí),復(fù)位時(shí),TMODTMOD所有位均置所有位均置0 0。 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì)

53、 例:設(shè)置定時(shí)器例:設(shè)置定時(shí)器1 1工作于方式工作于方式1 1,定時(shí),定時(shí)工作方式與外部中斷無(wú)關(guān),則工作方式與外部中斷無(wú)關(guān),則M1=0M1=0,M0=1M0=1,GATE=0GATE=0,因此,高,因此,高4 4位應(yīng)為位應(yīng)為00010001;定時(shí)器;定時(shí)器0 0未用,低未用,低4 4位可隨意置數(shù),位可隨意置數(shù),但低兩位不可為但低兩位不可為1111(因方式(因方式3 3時(shí),定時(shí)器時(shí),定時(shí)器1 1停止計(jì)數(shù)),一般將其設(shè)為停止計(jì)數(shù)),一般將其設(shè)為00000000。因。因此,指令形式為:此,指令形式為: MOV TMODMOV TMOD,#10H#10H學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈

54、的設(shè)計(jì) 三、定時(shí)器三、定時(shí)器/ /計(jì)數(shù)器工作方式與程序設(shè)計(jì)計(jì)數(shù)器工作方式與程序設(shè)計(jì)(一)工作方式(一)工作方式0 0圖圖2.6 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0方式方式0的邏輯結(jié)構(gòu)的邏輯結(jié)構(gòu) 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 工作方式寄存器工作方式寄存器TMODTMOD中的中的M1M0M1M0為:為:0000 方式方式0 0為為1313位的計(jì)數(shù)器,位的計(jì)數(shù)器,由由TL0TL0的低的低5 5位位和和TH0TH0的的8 8位組成,位組成,TL0TL0低低5 5位計(jì)數(shù)溢出時(shí)向位計(jì)數(shù)溢出時(shí)向TH0TH0進(jìn)位,進(jìn)位,TH0TH0計(jì)數(shù)溢出時(shí),向中斷標(biāo)志位計(jì)數(shù)溢出時(shí),向中斷標(biāo)志位TF0TF

55、0進(jìn)位(硬件置位進(jìn)位(硬件置位TF0TF0),并申請(qǐng)中斷。),并申請(qǐng)中斷。T0T0是否溢出可查詢是否溢出可查詢TF0TF0是否被置位,以產(chǎn)生是否被置位,以產(chǎn)生T0T0中中斷。斷。工作在定時(shí)方式工作在定時(shí)方式 C/TC/T0 0。定時(shí)器。定時(shí)器T0T0工作在定時(shí)方式。定工作在定時(shí)方式。定時(shí)器時(shí)器T0T0對(duì)機(jī)器周期計(jì)數(shù)。對(duì)機(jī)器周期計(jì)數(shù)。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 定時(shí)器定時(shí)器T0T0在工作前,應(yīng)先對(duì)在工作前,應(yīng)先對(duì)1313位的計(jì)數(shù)器賦位的計(jì)數(shù)器賦值,開始計(jì)數(shù)時(shí),在初值的基礎(chǔ)上進(jìn)行減值,開始計(jì)數(shù)時(shí),在初值的基礎(chǔ)上進(jìn)行減1 1計(jì)數(shù)。計(jì)數(shù)。定時(shí)時(shí)間的計(jì)算公式為:定時(shí)時(shí)間的計(jì)算

56、公式為: 定時(shí)時(shí)間定時(shí)時(shí)間(2 21313 計(jì)數(shù)初值)計(jì)數(shù)初值)晶振周期晶振周期1212或或 定時(shí)時(shí)間定時(shí)時(shí)間(2 213 13 計(jì)數(shù)初值)計(jì)數(shù)初值)機(jī)器周期機(jī)器周期若晶振頻率為若晶振頻率為12MHz12MHz,則,則最短定時(shí)時(shí)間為最短定時(shí)時(shí)間為 221313(2(213131)1)(1/12)(1/12)1010-6-612121 s1 s最長(zhǎng)定時(shí)時(shí)間為最長(zhǎng)定時(shí)時(shí)間為 (2 213130 0)(1/121/12)1010-6-612128 192 s8 192 s學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 工作在計(jì)數(shù)方式工作在計(jì)數(shù)方式 C/TC/T1, 1, 定時(shí)器定時(shí)器T0T0

57、工作在計(jì)數(shù)方式。工作在計(jì)數(shù)方式。1313位計(jì)數(shù)器位計(jì)數(shù)器對(duì)外部輸入信號(hào)進(jìn)行加對(duì)外部輸入信號(hào)進(jìn)行加1 1計(jì)數(shù)。計(jì)數(shù)。 當(dāng)當(dāng)INT0INT0由由0 0變?yōu)樽優(yōu)? 1時(shí),開始計(jì)數(shù);當(dāng)時(shí),開始計(jì)數(shù);當(dāng)INT0INT0由由1 1變?yōu)樽優(yōu)? 0時(shí),停止計(jì)數(shù)。這樣可以測(cè)量在時(shí),停止計(jì)數(shù)。這樣可以測(cè)量在INT0INT0端出現(xiàn)的正脈沖端出現(xiàn)的正脈沖的寬度。的寬度。方式方式0 0計(jì)數(shù)時(shí),計(jì)數(shù)時(shí),最大計(jì)數(shù)值為最大計(jì)數(shù)值為 2 21313=8 192=8 192 ( (個(gè)外部脈沖個(gè)外部脈沖) )。學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) 例例2.22.2:假設(shè):假設(shè)89S5289S52單片機(jī)晶振頻率為單

58、片機(jī)晶振頻率為12MHz12MHz,要求定時(shí)時(shí)間,要求定時(shí)時(shí)間8ms8ms,使用定時(shí)器,使用定時(shí)器T0T0,工作方式工作方式0 0,計(jì)算定時(shí)器初值,計(jì)算定時(shí)器初值X X。解:解: t = t = (2 21313 X X)機(jī)器周期機(jī)器周期 當(dāng)單片機(jī)晶振頻率為當(dāng)單片機(jī)晶振頻率為12MHz12MHz時(shí),時(shí),機(jī)器周期機(jī)器周期=1s=1s 8 810103 3 = = (2 21313 X X)1 1 X = 8192-8000 = 192 X = 8192-8000 = 192 轉(zhuǎn)換成二進(jìn)制數(shù)為:轉(zhuǎn)換成二進(jìn)制數(shù)為:11000000B 11000000B 學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)

59、燈的設(shè)計(jì) 例例2.3 2.3 利用利用T0T0方式方式0 0產(chǎn)生產(chǎn)生1ms1ms的定時(shí),在的定時(shí),在P1.2P1.2引腳上輸出周引腳上輸出周期為期為2ms2ms的方波。設(shè)單片機(jī)晶振頻率的方波。設(shè)單片機(jī)晶振頻率foscfosc12MHz12MHz。解:解:(1 1)解題思路)解題思路 要在要在P1.2P1.2引腳輸出周期為引腳輸出周期為2ms2ms的方波,只要使的方波,只要使P1.2P1.2每隔每隔1ms1ms取反一次即可。執(zhí)行指令為取反一次即可。執(zhí)行指令為CPL P1.2CPL P1.2。 (2 2)確定工作方式)確定工作方式 : : 方式方式0 TMOD=00H 0 TMOD=00H D0D

60、0D1D1D2D2D3D3D4D4D5D5D6D6D7D7定時(shí)器定時(shí)器 / / 計(jì)數(shù)器計(jì)數(shù)器T1T1定時(shí)器定時(shí)器 / / 計(jì)數(shù)器計(jì)數(shù)器T0T0TMODTMOD GATEGATEC/TC/TC/TC/TM0M0M1M1M0M0M1M1GATEGATE(89H)(89H)bitbitC/ C/ 0 0:T0T0為定時(shí)功能;(為定時(shí)功能;(D2D2位)位)GATEGATE0 0,只要用軟件使,只要用軟件使TR0TR0(或(或TR1TR1)置)置1 1就能啟動(dòng)定就能啟動(dòng)定時(shí)器時(shí)器T0T0(或(或T1T1););學(xué)習(xí)情景二學(xué)習(xí)情景二 交通信號(hào)燈的設(shè)計(jì)交通信號(hào)燈的設(shè)計(jì) M1M0 = 00M1M0 = 00

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論