PIC單片機(jī)基礎(chǔ)教程課件-第六章_第1頁
PIC單片機(jī)基礎(chǔ)教程課件-第六章_第2頁
PIC單片機(jī)基礎(chǔ)教程課件-第六章_第3頁
PIC單片機(jī)基礎(chǔ)教程課件-第六章_第4頁
PIC單片機(jī)基礎(chǔ)教程課件-第六章_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PIC單片機(jī)基礎(chǔ)教程第六章中斷系統(tǒng)6.1中斷概述

6.2中斷源

6.3中斷控制

6.4中斷響應(yīng)

6.5中斷請求的撤除

6.6中斷控制編程實例

6.1中斷概述6.1.1中斷概念的引入中斷技術(shù)最初是為計算機(jī)處理外界隨機(jī)事件而出現(xiàn)的。通常計算機(jī)中只有一個CPU,但除了運(yùn)行程序之外,CPU還要面臨數(shù)據(jù)輸入輸出以及其它隨機(jī)事件的處理。能夠處理這種隨機(jī)的、突發(fā)的事件就需要中斷技術(shù)。

6.1中斷概述6.1中斷概述

6.1.1中斷概念的引入6.1.2有關(guān)中斷的名詞當(dāng)單片機(jī)的CPU正在處理某事件時,若外部發(fā)生了某一事件(如定時器溢出、引腳上電平變化),請求CPU迅速去處理,于是CPU就暫時中止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件。中斷處理完該事件后,再回到原來被中止的地方,繼續(xù)執(zhí)行原來的工作,實現(xiàn)這種功能的部件稱為中斷系統(tǒng)。產(chǎn)生中斷的請求源稱為中斷源。中斷源向CPU提出的處理請求,稱為中斷請求或中斷申請。CPU暫時中斷自身的事務(wù),轉(zhuǎn)去處理事件的過程,稱為CPU的中斷響應(yīng)過程。對事件的整個處理過程,稱為中斷服務(wù)(或中斷處理)。處理完畢,再回到原來被中止的地方,稱為中斷返回。

6.1中斷概述PIC16F877單片機(jī)具有實時處理功能,能對外界異常發(fā)生的事件由中斷技術(shù)作及時處理。把這種現(xiàn)象上升到計算機(jī)理論,就是一個資源(CPU)面對多項任務(wù),由于資源有限,因此就可能出現(xiàn)資源競爭的局面。而中斷技術(shù)就是解決資源競爭的有效辦法,采用中斷方法可以使多項任務(wù)共享一個資源,所以中斷技術(shù)實質(zhì)上就是一種資源共享技術(shù)。

PIC16F87X系列單片機(jī)是芯片內(nèi)部包含有外圍設(shè)備模塊數(shù)量最多的單片機(jī)品種之一。例如PIC16F874和PIC16F877單片機(jī)的芯片內(nèi)部就集成了15個外圍設(shè)備模塊;這些外圍設(shè)備模塊在啟用時以及在工作過程中,都或多或少地需要CPU參與控制、協(xié)調(diào)或交換數(shù)據(jù)等各種服務(wù)工作。由于CPU的運(yùn)行速度非常高,而各個外圍設(shè)備模塊的工作速度卻非常低,況且這些外圍設(shè)備模塊也不是頻繁地要求CPU對其服務(wù)。因此,采用中斷技術(shù)可以讓眾多外圍設(shè)備模塊共享1個CPU。

6.2中斷源中斷源種類中斷源志位中斷源屏蔽位873/876874/877870871872外部觸發(fā)中斷INTINTFINTE√√√√√TMR0溢出中斷T0IFT0IE√√√√√RB端口電平變化中斷RBIFRBIE√√√√√TMR1溢出中斷TMR1IFTMR1IE√√√√√TMR2中斷TMR2IFTMR2IE√√√√√CCP1中斷CCP1IFCCP1IE√√√√√CCP2中斷CCP2IFCCP2IE√√

6.2中斷源SCI同步發(fā)送中斷TXIFTXIE√√√√

SCI同步接收中斷RCIFRCIE√√√√

SSP中斷SSPIFSSPIE√√

√SSPI2C總線碰撞中斷BCLIFBCLIE√√

√并行端口中斷PSPIFPSPIE

A/D轉(zhuǎn)換中斷ADIFADIE√√√√√E2PROM中斷EEIFEEIE√√√√√

13種14種10種11種10種6.2中斷源6.2.1外部中斷類外中斷是由外部隨機(jī)事件引起的,它通常用于I/O資料傳送以及掉電等外部異常事件的處理。PIC16F87X系列單片共有兩個外中斷源,一個是RBO/INT引腳上的外部中斷,一個是PORTB口引腳電平變化中斷。1.INT中斷

RBO/INT引腳上的外部中斷由邊沿觸發(fā),既可以是上升沿觸發(fā),又可以是下降沿觸發(fā),主要由選擇寄存器OPTION_REG的D6位INTEDG決定。當(dāng)INTEDG位被置1時,選用上升沿觸發(fā),如該位被清零,則由下降沿觸發(fā)。當(dāng)檢測到引腳上有規(guī)定的有效邊沿時,便把INTF位置1。外中斷INT由中斷控制位INTE設(shè)置允許或禁止。外中斷INT可以喚醒在休眠狀態(tài)下的CPU。

6.2中斷源2.PORTB口引腳電平變化中斷在PORTB口的D7~D4引腳上一旦有電平變化,就會把RBIF置1。這個中斷可以通過對RBIE置1或清零來控制該中斷是否開放。6.2.2定時中斷類定時中斷是為滿足定時或計數(shù)的需要而設(shè)置的。為此,在單片機(jī)芯片內(nèi)部有三個定時器/計數(shù)器。以對其中的技術(shù)結(jié)構(gòu)進(jìn)行技術(shù)的方法,實現(xiàn)定時或計數(shù)功能。當(dāng)技術(shù)結(jié)構(gòu)發(fā)生計數(shù)溢出時,既表明定時時間到或計數(shù)值已滿,這時就以計數(shù)溢出信號去置位溢出標(biāo)志位,作為單片機(jī)接受中斷請求的標(biāo)志。這種中斷請求是在單片機(jī)芯片內(nèi)部發(fā)生的,因此無需在芯片上設(shè)置引入端。

6.2中斷源1.TMRO中斷當(dāng)定時器TMRO的計數(shù)器計滿溢出(即由FFH變成00H)時,硬件自動把TOIF置1。TMRO中斷可以通過對TOIE置1或清零來控制該中斷是否開放。2.TMR1中斷當(dāng)定時器TMR1的計數(shù)器計滿溢出(即由FFFFH變成0000H)時,硬件自動把TMR1IF置1。TMR1中斷可以通過對TMR1IE置1或清零來控制該中斷是否開放。3.TMR2中斷當(dāng)定時器TMR2的計數(shù)值與PR2匹配時,硬件自動把TMR2IF置1。TMR2中斷可以通過對TMR2IE置1或清零來控制該中斷是否開放。

6.3中斷控制

中斷控制是指提供給用戶的使用中斷系統(tǒng)的手段。由于中斷系統(tǒng)處于單片機(jī)芯片的內(nèi)部,因此用戶只能以軟件方法,通過設(shè)置狀態(tài)位來使用中斷系統(tǒng)。為此,PIC16F87X系列單片機(jī)設(shè)置了一些控制寄存器。與中斷控制有關(guān)的寄存器共6個,即中斷控制寄存器(INTCON)、選項寄存器(POTION-REG)、外圍接口中斷允許寄存器1(PIE1)、外圍接口中斷標(biāo)志寄存器1(PIR1)、外圍接口中斷標(biāo)志寄存器2(PIR2)、外圍接口中斷允許寄存器2(PIE2)

6.3中斷控制6.3.1中斷控制寄存器

1中斷控制寄存器(INTCON):中斷控制寄存器是一個可讀寫的8位寄存器。

R/W-0R/W-0R/W-0R-1R-1R/W-xR/W-xR/W-xGIEPEIET0IEINTERBIET0IFINTFRBIFD7D6D5D4D3D2D1D00:屏蔽所有的中斷請求;1:允許非屏蔽的中斷。0:屏蔽所有外圍接口的中斷請求;1:允許非屏蔽的中斷。1:允許定時器0溢出時中斷;0:禁止定時器0溢出時中斷。1:允許響應(yīng)由RB0/INT輸入的外中斷;0:禁止響應(yīng)由RB0/INT輸入的外中斷。1:允許端口RB狀態(tài)變化中斷;0:禁止端口RB狀態(tài)變化中斷1:TMR0溢出,

0:TMR0無溢出0:表示RB7:RB4中沒有發(fā)生狀態(tài)變化的。1:表示RB7:RB4中有發(fā)生狀態(tài)變化的。1:有外中斷發(fā)生時,

0:無外中斷發(fā)生時B7B6B5B4B3B2B1B0GIEPEIET0IEINTERBIET0IFINTFRBIF6.3中斷控制2第一外圍接口中斷允許寄存器1(PIE1)第一外圍接口中斷允許寄存器1(PIE1)的內(nèi)容是各個外部接口中斷的允許位。它是一個可讀/寫操作的8位寄存器R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0PSPIEADIERCIETXIESSPIECCP1IETMR2IETMR1IE

B7B6B5B4B3B2B1B01:表示讀或?qū)懖僮饕呀?jīng)發(fā)生;0:沒有讀/寫操作。1:表示A/D轉(zhuǎn)換完成,

0:表示A/D轉(zhuǎn)換正在進(jìn)行,尚未完成。1:表示USART接收緩沖器滿,:,表示接收緩沖器空。1:表示USART發(fā)送緩沖器是空的,0:表示發(fā)送緩沖器滿。1:表示TMR1寄存器溢出;0:沒有產(chǎn)生溢出。1:表示出現(xiàn)了TMR2與PR2匹配;0:表示未出現(xiàn)了TMR2與PR2匹配;1:表示SSP中斷條件已經(jīng)發(fā)生;

0:表示沒有SSP中斷出現(xiàn)。1:表示TMR1寄存器出現(xiàn)捕捉功能,0:表示TMR1寄存器未出現(xiàn)捕捉功能,B7B6B5B4B3B2B1B0PSPIEADIERCIETXIESSPIECCP1IETMR2IETMR1IE6.3中斷控制3第一外圍接口中斷標(biāo)志寄存器1(PIR1)第一外圍接口中斷標(biāo)志寄存器1(PIR1)的內(nèi)容是各個外部接口有中斷時的標(biāo)志位。

R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0PSPIFADIFRCIFTXIFSSPIFCCP1IFTMR2IFTMR1IF

B7B6B5B4B3B2B1B01:表示讀或?qū)懖僮饕呀?jīng)發(fā)生;0:沒有讀/寫操作。1:表示A/D轉(zhuǎn)換完成,

0:表示A/D轉(zhuǎn)換正在進(jìn)行,尚未完成。1:表示USART接收緩沖器滿,:,表示接收緩沖器空。1:表示USART發(fā)送緩沖器是空的,0:表示發(fā)送緩沖器滿。1:表示TMR1寄存器溢出;0:沒有產(chǎn)生溢出。1:表示出現(xiàn)了TMR2與PR2匹配;0:表示未出現(xiàn)了TMR2與PR2匹配;1:表示SSP中斷條件已經(jīng)發(fā)生;

0:表示沒有SSP中斷出現(xiàn)。1:表示TMR1寄存器出現(xiàn)捕捉功能,0:表示TMR1寄存器未出現(xiàn)捕捉功能,B7B6B5B4B3B2B1B0PSPIFADIEFRCIFTXIFSSPIFCCP1IFTMR2IFTMR1IF6.3中斷控制4第二外圍接口中斷允許寄存器2(PIE2)第二外圍接口中斷允許寄存器2(PIE2)的內(nèi)容包括CCP2外部接口中斷允許位、SSP總線碰撞中斷允許位、EEPROM寫操作中斷允許位。

U-0R/W-0U-0R/W-0R/W-0U-0U-0R/W-0—保留—EEIEBCLIE——CCP2IE

B7B6B5B4B3B2B1B01:允許EEPROM寫操作中斷;0:屏蔽EEPROM寫操作中斷。1:允許總線碰撞中斷;0:屏蔽總線碰撞中斷。1:允許CCP2中斷;0:屏蔽CCP2中斷。B7B6B5B4B3B2B1B0—保留—EEIEBCLIE——CCP2IE6.3中斷控制5第二外圍接口中斷標(biāo)志寄存器2(PIR2)第二外圍接口中斷標(biāo)志寄存器2(PIR2)的內(nèi)容為CCP2外部接口中斷、SSP總線碰撞中斷允許位和EEPROM寫操作中斷的標(biāo)志位。

U-0R/W-0U-0R/W-0R/W-0U-0U-0R/W-0—保留—EEIFBCLIF——CCP2IFB7B6B5B4B3B2B1B01:表示EEPROM寫操作完成0,表示0:寫操作沒有完成或沒有寫操作。1:總線發(fā)生碰撞;1:沒有碰撞。1:在捕捉模式,表示TMR1寄存器捕捉出現(xiàn);0:在捕捉模式,表示TMR1寄存器未捕捉出現(xiàn)。B7B6B5B4B3B2B1B0—保留—EEIFBCLIF——CCP2IF6.3中斷控制6.3.2中斷系統(tǒng)的狀態(tài)設(shè)置在PIC16F87X系列單片機(jī)應(yīng)用中,用戶通過上述六個控制寄存器來使用中斷系統(tǒng),因此從使用的角度上看,這六個寄存器就是面向用戶的PIC16F87X系列單片機(jī)中斷系統(tǒng)。對中斷系統(tǒng)的使用是通過設(shè)置有關(guān)寄存器有關(guān)位的狀態(tài)來實現(xiàn)的。外部中斷的狀態(tài)設(shè)置共有三項內(nèi)容,即:中斷總允許、外部中斷允許和中斷請求方式設(shè)定。但定時/計數(shù)中斷沒有中斷請求方式設(shè)定,只有中斷允許的設(shè)定。中斷狀態(tài)設(shè)置通常是在初始化程序段中進(jìn)行。

6.3中斷控制6.3.3中斷系統(tǒng)控制機(jī)構(gòu)6.3中斷控制(1)每一種中斷源對應(yīng)著1個中斷標(biāo)志位和1個中斷屏蔽位:

中斷源產(chǎn)生的中斷標(biāo)志信號是否得以向前傳遞,將受控于對應(yīng)的中斷屏蔽位。每一個中斷標(biāo)志位都對應(yīng)著1個觸發(fā)器。當(dāng)中斷源申請CPU中斷時,與之對應(yīng)的中斷標(biāo)志觸發(fā)器就由硬件自動置位,而該觸發(fā)器的清零是由用戶安排程序來實現(xiàn)的;每一個中斷屏蔽位也對應(yīng)著1個觸發(fā)器。該觸發(fā)器的置位和清零均是由用戶程序完成的。(2)全部14個中斷源按2個梯隊并列排開:

第1梯隊中只安排了3個中斷源,其余的中斷源全部安排到第2梯隊中。這樣做是為了與早期的PIC系列單片機(jī)型號相兼容。

6.3中斷控制(3)所有的中斷源都受全局中斷屏蔽位(也可以稱為總屏蔽位)GIE的控制。:

第1梯隊的中斷源不僅受全局中斷屏蔽位的控制,還要受各自中斷屏蔽位的控制;第2梯隊的中斷源不僅受到全局中斷屏蔽位和各自中斷屏蔽位的控制,還要額外受到1個外設(shè)中斷屏蔽位PEIE的控制。

6.4中斷響應(yīng)

中斷響應(yīng)就是CPU對中斷源提出的中斷請求的承認(rèn)或接受。中斷請求被響應(yīng)后,轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序,完成中斷所要求的處理操作。6.4.1外部中斷請求采樣只有外部中斷才有中斷請求的采樣問題。所謂中斷請求采樣,實際上就是識別有效的外部中斷請求信號,并把它鎖定在控制寄存器的相應(yīng)標(biāo)志位中。

6.4中斷響應(yīng)6.4中斷響應(yīng)6.4.1外部中斷請求采樣對于脈沖方式的RBO/INT外中斷請求,若在兩個相鄰機(jī)器周期采樣得到的是先高后低電平(設(shè)為下降沿觸發(fā)),則中斷請求有效,把INTF置1;否則,INTF繼續(xù)為0??梢娫诿}沖方式下,為保證中斷請求有效,中斷請求脈沖高低電平的持續(xù)時間應(yīng)在4個晶振周期以上。對于電平方式的外中斷請求,若采得電平?jīng)]有變化,表明沒有中斷請求,

INTCON寄存器的外中斷請求標(biāo)志位RBIF繼續(xù)為0;若一旦采得電平有變化,則中斷請求有效,把RBIF置1。對于發(fā)生在單片機(jī)芯片內(nèi)部的中斷請求,并直接置位相應(yīng)的中斷請求標(biāo)志位,因此不存在中斷請求采樣的問題。

6.4中斷響應(yīng)6.4.2中斷查詢采樣解決的是外中斷請求的鎖定問題。即把有效的外中斷請求信號鎖定在各中斷請求標(biāo)志位中。緊接著的問題是CPU如何知道中斷請求的發(fā)生?由于中斷請求已匯集到各中斷請求標(biāo)志位,因此只需通過CPU對中斷請求標(biāo)志位的查詢。通常把這種查詢稱之為中斷請求標(biāo)志位進(jìn)行查詢。如果查詢到有標(biāo)志位為1,則表明有中斷請求發(fā)生,因此從緊接著的一個指令周期內(nèi)開始進(jìn)行中斷響應(yīng)。6.4中斷響應(yīng)6.4.3中斷響應(yīng)1.

中斷響應(yīng)的時間分析所謂中斷響應(yīng)時間是指從中斷請求有效(中斷請求標(biāo)志位置1),到CPU響應(yīng)中斷所需的時間。

6.4中斷響應(yīng)6.4.3中斷響應(yīng)1.

中斷響應(yīng)的時間分析(1)從INT中斷信號上升沿有效到引發(fā)中斷標(biāo)志位INTIF被置位假設(shè)預(yù)先設(shè)定的是INT中斷信號上升沿有效的話,則該信號的上升沿將會在1個時鐘周期后引發(fā)中斷標(biāo)志位INTIF被置位。(2)INT中斷信號被CPU檢測每個指令周期內(nèi)的第2個時鐘脈沖上升沿時,該信號被抽檢1次。(3)CPU清全局中斷屏蔽位GIE

6.4中斷響應(yīng)6.4.3中斷響應(yīng)1.

中斷響應(yīng)的時間分析(4)程序計數(shù)器PC被置入中斷向量0004H,完成跳轉(zhuǎn)。在GIE信號被清零的下一個指令周期內(nèi),程序計數(shù)器PC被置入中斷向量0004H,見圖6-3中第6行。同時在該指令周期內(nèi)完成到中斷服務(wù)程序的跳轉(zhuǎn),并且實現(xiàn)提取該子程序的首條指令,即指令(0004H),見圖6-3中第7行。(5)執(zhí)行中斷服務(wù)程序在其后的1個指令周期內(nèi),正式開始執(zhí)行中斷服務(wù)程序的第1條指令,見圖6-3中第8行。

6.4中斷響應(yīng)2.中斷過程(1)中斷發(fā)出申請,并建相應(yīng)中斷標(biāo)志。(2)CPU停止當(dāng)前工作,響應(yīng)中斷。(3)斷點(diǎn)保存,保護(hù)現(xiàn),信息壓場棧。(4)執(zhí)行中斷服務(wù)程序。(5)恢復(fù)現(xiàn)場,彈棧。(6)中斷返回。6.4中斷響應(yīng)3.中斷的現(xiàn)場保護(hù)問題

中斷現(xiàn)場的保護(hù)是中斷技術(shù)中一個很重要的環(huán)節(jié)。PIC單片機(jī)采用的是硬件堆棧,即在進(jìn)入中斷服務(wù)程序期間,只將程序計數(shù)器PC的值被自動壓入堆棧。若需要保留其他寄存器的內(nèi)容,就得由程序員另想辦法。一般是用一段用戶程序來實現(xiàn)現(xiàn)場保護(hù)的功能?,F(xiàn)場保護(hù)的內(nèi)容隨不同的軟件系統(tǒng)而不同。首先,程序的執(zhí)行有可能會影響到W寄存器和STATUS寄存器,所以,首先應(yīng)該把這2個寄存器保護(hù)起來,然后再去保存其他用戶認(rèn)為有必要保護(hù)的寄存器。

6.4中斷響應(yīng)3.中斷的現(xiàn)場保護(hù)問題在PIC單片機(jī)中,中斷現(xiàn)場數(shù)據(jù)不是保留到芯片的堆棧存儲區(qū)中,而是保留在用戶自己選擇的一些文件寄存器中,當(dāng)然一般應(yīng)該選擇通用寄存器來保護(hù)現(xiàn)場。下面是將W、STATUS和PCLATH寄存器的內(nèi)容保存到臨時備份寄存器中的中斷現(xiàn)場保護(hù)程序。MOVWF W_TEMP ;將W內(nèi)容送暫存器保存SWAPF STATUS,W ;將狀態(tài)寄存器送CLRF STATUS ;選存儲體0MOVWF STATUS_TEMP ;保護(hù)狀態(tài)寄存器內(nèi)容6.4中斷響應(yīng)3.中斷的現(xiàn)場保護(hù)問題MOVF PCLATH,W ;保護(hù)PCLATH內(nèi)容MOVWF PCLATH_TEMP CLRF PCLATH ;選擇程序存儲器0頁… ;中斷服務(wù)程序MOVF PCLATH_TEMP,W ;恢復(fù)PCLATHMOVWF PCLATHSWAPF STATUS_TEMP ;恢復(fù)狀態(tài)寄存器內(nèi)容MOVWF STATUS SWAPF W_TEMP,F(xiàn)SWAPF W_TEMP,W ;恢復(fù)W內(nèi)容 6.4中斷響應(yīng)4.中斷嵌套當(dāng)CPU相應(yīng)的任何一個中斷時,全局中斷屏蔽位GIE將會自動清0;當(dāng)中斷返回時它又會自動恢復(fù)為1。如果在中斷處理期間用軟件將已經(jīng)復(fù)位的GIE重新置位,這時再出現(xiàn)中斷請求,就可以形成中斷嵌套。也就是說,如果在響應(yīng)某一中斷期間又響應(yīng)了其他中斷請求,就形成了中斷嵌套。發(fā)生中斷嵌套時,前一中斷處理過程被暫停而進(jìn)入后一中斷處理,當(dāng)后一中斷過程被處理完畢之后,才會繼續(xù)處理前一中斷。照此方式,還可以形成多級嵌套,甚至自身嵌套。不過嵌套的級數(shù)絕對不能超過硬件堆棧的深度。

6.5中斷請求的撤除

中斷響應(yīng)后,中斷請求應(yīng)及時清除。否則,如果終端請求仍然有效,會造成中斷的重復(fù)響應(yīng)。進(jìn)入中斷服務(wù)程序后,程序中必須安排指令,檢查發(fā)出請求的中斷源(如果同時開放多個中斷源的話)。這可以通過檢查各個中斷源的標(biāo)志位來實現(xiàn)。一旦確定出發(fā)出申請的中斷源,就用軟件把該中斷源的標(biāo)志位人為地清零,否則,執(zhí)行中斷返回指令“RETFIE”。重開中斷后,由于中斷標(biāo)志位仍為“1”而引起CPU重復(fù)響應(yīng)同一個中斷請求。

6.6中斷控制編程實例【6-1】用定時器定時,由RB0輸出2分鐘的方波。已知fOSC=4MHZ

解:要輸出2分鐘的方波,只要每隔1分鐘使RB0求反一次即可。但此例要求RB0輸出方波的周期時間太長,用一個定時器無法實現(xiàn)長時間定時,因此考慮用定時器加軟件計數(shù)的方法來實現(xiàn)。具體做法是:用定時器TMR0定時10ms,用軟件計數(shù)實現(xiàn)定時一分鐘。20H單元作ms的計數(shù)單元:1s/10ms=100(64)次21H單元作s的計數(shù)單元:1min/1s=60(3C)次22H單元的D7位作分的計時的標(biāo)志位。計時時間到后標(biāo)志位置1TMR0的計數(shù)初值為:X=28—t/(T×P)=256-10000/(1×256)=D8H程序清單如下:

LISTP=16F873 INCLUDE"P16F873.INC"MSECONDEQU20H ;毫秒計時寄存器SECONDEQU21H ;秒計時寄存器MINUTEEQU22H ;分標(biāo)志寄存器W_TEMPEQU23H;w臨時寄存器ORG0000H;復(fù)位矢量單元地址NOP ;ICD必需的空操作GOTOMAIN;跳轉(zhuǎn)到主程序ORG0004H;中斷矢量單元地址GOTOZD;跳轉(zhuǎn)到中斷程序START CLRFPORTB ;清輸出B口

BSF STATUS,RP0 ;選擇存儲體1 CLRFTRISB ;設(shè)置B口輸出

MOVLW07H ;設(shè)置分頻器歸TMR0,分頻比256 MOVWFOPTION_REG BCF STATUS,RP0 ;選擇存儲體0 MOVLW 0A0H ;開中斷,開TMR0中斷

MOVWF INTCON MOVLW 0D8H ;賦TMR0初值,并啟動TMR0 MOVWF TMR0 MOVLW 64H ;賦毫秒計數(shù)器初值

MOVWF MSECOND MOVLW 3CH ;設(shè)置秒計數(shù)寄存器數(shù)值; MOVWF SECOND CLRF MINUTE ;清分標(biāo)志位;------------------------主程序--------------------------------------MAIN BTFSS MINUTE,7 ;1分標(biāo)志位置1了嗎?

GOTO LOOP ;1分

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論