單片機(jī)原理及其應(yīng)用2-涂海燕_第1頁
單片機(jī)原理及其應(yīng)用2-涂海燕_第2頁
單片機(jī)原理及其應(yīng)用2-涂海燕_第3頁
單片機(jī)原理及其應(yīng)用2-涂海燕_第4頁
單片機(jī)原理及其應(yīng)用2-涂海燕_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 MC68HC08單片機(jī)基本組成原理2.1 MC68HC08單片機(jī)的基本組成2.2 MC68HC08單片機(jī)的工作方式1 第二章 MC68HC08單片機(jī)基本組成原理 2.1 MC68HC08單片機(jī)的基本組成2.1.1 基本組成 所有MC68HC08的基本組成結(jié)構(gòu)都相同。 都由CPU、存儲器和I/O接口電路組成。 MC68HC08 系列中以帶有Flash的 MC68HC908具有更高的性價比。 MC68HC08硬件結(jié)構(gòu)框圖(見下頁) 概述 高性能、低功耗 8bit MCU23 CPU08 控制與狀態(tài)寄存器 64B時鐘發(fā)生模塊系統(tǒng)集成模塊Power*RST*IRQVDDPTA0/KBD0PTA

2、7/KBD7寄存器組控制單元ALU用戶Flash 32256B用戶RAM 512B監(jiān)控ROM 307B用戶Flash矢量區(qū) 36B32kHz晶振鎖相環(huán)(PLL)OSC1OSC2CGMXFCVDDAD/VREFH外部中斷模塊安全性模塊上電復(fù)位模塊VSSAD/VREFLVSSVDDAVSSA串行通信接口模塊串行外設(shè)接口模塊2Ch Timer12Ch Timer28位鍵盤中斷模塊低電壓禁止模塊看門狗模塊斷點模塊監(jiān)控模塊時基模塊數(shù)據(jù)總線控制存儲器映象模塊屏蔽選擇寄存器1屏蔽選擇寄存器2DDRAPORTADDRBPORTBPTB0/AD0PTB7/AD7監(jiān)控方式進(jìn)入模塊8位A/D變換模塊DDRCDDRD

3、PORTCPORTDPTC1PTC2PTD0/SSPTC3PTC4PTC5PTC6PTC0PTD1/ MISOPTD2/ MOSIPTD3/SPSCKPTD4/T1CH0PTD5/ T1CH1PTD6/ T2CH0PTD7/ T2CH1PTE0/ TXDPTE1/ RXDDDREPORTE4 所有MC68HC08的CPU08結(jié)構(gòu)都相同。都由ALU、CPU寄存器組、CPU控制電路組成。(以下均以MC68HC908GP32為參考)2.1.2.1 MC68HC908GP32 CPU寄存器(共5個) 累加器A:通用寄存器,存放算術(shù)、邏輯運算中的第一操作 數(shù)和結(jié)果等( 8bit) 變址寄存器 H:X 主

4、要用于變址尋址方式,存放基地址; 也可暫存數(shù)據(jù),復(fù)位時清零H。 (8bit/16bit) 程序計數(shù)器 PC : 用于存放將要取出并執(zhí)行的指令的地址 或下一個操作數(shù)的地址。可分為高8位PCH 和低8位PCL。(16bit) 堆棧指針SP :用于存放堆棧棧頂?shù)牡刂?可分為高8位SPH和 低8位SPL。 (16bit) 2.1.2 CPU5條件碼寄存器 CCR(PSW): 用于存放指令執(zhí)行后的結(jié)果的狀態(tài)、特征,而中斷屏蔽I位用于禁止/允許中斷 ( 8bit) 條件碼寄存器CCR內(nèi)容格式 V 1 1 H I N Z C進(jìn)位/借位標(biāo)志零標(biāo)志負(fù)標(biāo)志中斷屏蔽標(biāo)志半進(jìn)位標(biāo)志溢出標(biāo)志位 1 1 1 復(fù)位時狀態(tài)

5、P.106PCPC+1PC+2Flash低高PC:CCRACCXPCHPCLSP-2SP-1RAM低高SP:SP$00FF(初值)SP復(fù)位時為$00FF;RSP指令SP為$*FF。程序調(diào)用子程序:JSR、BSR 。 PC進(jìn)棧(16位) SP-2子程序返回: RTS (SP)+1SP (SP)- PCH (SP)+1-SP (SP)- PCL 中斷響應(yīng):SP-5; 中斷返回:SP+5。H沒有自動入棧7特殊的第0頁: 事實:CPU08內(nèi)部寄存器較少。優(yōu)點:中斷響應(yīng)速度高。缺點:數(shù)據(jù)傳遞較麻煩。彌補:第0頁存儲單元都可以用直接尋址方式實現(xiàn)數(shù)據(jù)從存儲 器到存儲器的直接傳送,即不必經(jīng)過累加器A,即都可

6、以當(dāng)作寄存器用。(提高了代碼效率)這樣的機(jī)制更適合用于控制系統(tǒng)設(shè)計! 堆棧特點: 采用棧頂空形式; 壓棧向棧地址減小的方向生長,即壓棧后(SP)-1SP,彈 出前(SP)+1SP; MCU復(fù)位, SP置為00FF;執(zhí)行復(fù)位堆棧指令(RSP)時, SP置為*FF;8一般RAM區(qū)累加器A2.1.2.2 算術(shù)/邏輯單元和CPU控制電路片內(nèi)存儲器第0頁含: 64B I0寄存器 $00 $3F 192B RAM $40 $FFRAM第0頁92.1.3 Memory 存儲器組織的特點:統(tǒng)一編址。 所有數(shù)據(jù)存儲器、程序存儲器和I/O寄存器均處于一個統(tǒng)一 編址的地址空間。 存儲器組成: I/O寄存器空間; 內(nèi)

7、部RAM空間; ROM空間,即監(jiān)控ROM,實際上即系統(tǒng)ROM ; Flash空間。 也可以只劃為RAM區(qū)、ROM區(qū)和Flash區(qū),在這里RAM區(qū)則包括I/O寄存器空間和內(nèi)部RAM空間。RAM區(qū)102.1.3.1 存儲空間分配 (1)內(nèi)部I/O寄存器空間 $OO00 $OO3F 64B 包括:所有的并行 I/O口 串行口 定時器 A/DC 鍵盤中斷 中斷控制邏輯 單片機(jī)工作狀態(tài)監(jiān)視 系統(tǒng)設(shè)置 (注意:還有第二段I/O寄存器空間) 數(shù)據(jù)寄存器狀態(tài)寄存器控制寄存器等11(2)內(nèi)部RAM空間 $OO40 $O23F 512B 特殊區(qū):RAM第0頁192B 用戶RAM區(qū)。 其中一部分作為堆棧區(qū)。 如何充

8、分應(yīng)用第0頁用戶RAM區(qū)? 將堆棧區(qū)移出第0頁用戶RAM區(qū)。 由于SP可編程,可使SP從復(fù)位時指向的0頁移出。 這樣只適用于0頁的直接尋址指令可以快速而有效地在第 0頁RAM空間存取。 0頁即成為用戶儲存那些訪問頻率較高的全局變量的理想 空間。(3)監(jiān)控ROM空間 $FE20 $FF52 307B 監(jiān)控ROM區(qū)可為監(jiān)控方式和用戶方式服務(wù)。12 (4)Flash空間 $8000 $FDFF 32256B; $FFDC $FFFF 36B 第一段:為用戶程序區(qū),用于存放用戶程序 第二段:作為矢量表, 其中$FFF6 $FFFD是預(yù)留的8個保 密字節(jié)。 (5)第二段I0寄存器區(qū) $FE00$FEOC

9、 12B 分別是系統(tǒng)集成模塊的斷點狀態(tài)寄存器、復(fù)位狀態(tài)寄存器、斷點標(biāo)志控制寄存器,中斷1、2、3狀態(tài)寄存器,F(xiàn)lash控制寄存器,斷點地址寄存器高位/低位,斷點狀態(tài)和控制寄存器,低電壓禁止?fàn)顟B(tài)寄存器等。 (6)Flash塊保護(hù)寄存器 FLBPR $FF7E 1B (7)不存在的存儲區(qū) $0240 $7FFF 32192B; $FEOD $FElF,19B; $FF53 $FF7D,43B; $FF7F $FFDB 93B132.1.3.2 I0寄存器和部分功能模塊寄存器的地址寄存器地址寄存器地址寄存器地址寄存器地址PTA$0000SPCR$0010T1SC$0020T2SC0$0030PTB$

10、0001SPSCR$0011T1CNTH$0021T2CH0H$0031PTC$0002SPDR$0012T1CNTL$0022T2CH0L$0032PTD$0003SCC1$0013T1MODH$0023T2SC1$0033DDRA$0004SCC2$0014T1MODL$0024T2CH1H$0034DDRB$0005SCC3$0015T1SC0$0025T2CH1L$0035DDRC$0006SCS1$0016T1CH0H$0026PCTL$0036DDRD$0007SCS2$0017T1CH0L$0027PBWC$0037PTE$0008SCDR$0018T1SC1$0028PMSH$

11、0038-$0009SCBR$0019T1CH1H$0029PMS L$0039-$000AINTKBSCR$001AT1CH1L$002APMRS$003A-$000BINTKBIER$001BT2SC$002BPMDS$003BDDRE$000CTBCR$001CT2CNTH$002CADSCR$003CPTAPUE$000DINTSCR$001DT2CNTL$002DADR$003DPTCPUE$000ECONFIG2$001ET2MODH$002EADCLK$003EPTDPUE$000FCONFIG1$001FT2MODL$002F-$003F142.1.3.3 RAM存儲器 MCU

12、型號不同其RAM容量也不同。 GP32有512B RAM $OO40 $O23F。其中0頁 192B $0040 $00FF 0頁的尋址方式多,操作速度快,可用作數(shù)據(jù)緩沖器和程序的工作標(biāo)志單元。 堆棧區(qū)也設(shè)在RAM中,復(fù)位后,堆棧指針為$OOFF,使堆棧區(qū)位于RAM的第0頁。GP32的堆棧區(qū)的位置是可編程的,一般將堆棧區(qū)設(shè)在$023F$01FF。2.1.3.4 監(jiān)控ROM 監(jiān)控ROM固化了系統(tǒng)檢測、Flash編程以及串行通信等功能的程序。使MCU可以工作于兩種方式:監(jiān)控方式和用戶方式。 在特定條件下,MCU可進(jìn)入監(jiān)控方式。監(jiān)控ROM可以通過單一的一條信號線與主機(jī)進(jìn)行串行通信,接收和執(zhí)行預(yù)先定義

13、的主機(jī)命令,如讀寫存儲器、執(zhí)行程序等,并返回結(jié)果。監(jiān)控方式能夠完成一些特殊功能,例如: (1)下裝代碼到 RAM 或 Flash 存儲器中; (2)執(zhí)行 RAM 或 Flash 存儲器中的程序代碼; (3)Flash 存儲器的加密; 15 (4)Flash存儲器擦除、寫入、校驗; (5)與主計算機(jī)進(jìn)行標(biāo)準(zhǔn)的不歸零傳號空號串行通信,其波特率可以為4.8k 28.8kbaud; (6)在線編程; (7)用戶方式Flash編程。2.1.3.5 Flash存儲器 Flash 快速、非易失、可在高壓(GP32片內(nèi)的電荷泵產(chǎn)生,單一外部5V電源)下進(jìn)行讀、寫、擦除的全部操作的存儲器。 Flash存儲器用于

14、存放用戶程序和復(fù)位向量與中斷向量。其中: $8000 $FDFF 存放用戶程序; $FFDC $FFFF 存放復(fù)位向量與中斷向量(即用來存放用戶定義的復(fù)位和中斷服務(wù)程序的入口地址) Flash寫入與擦除主要由FLCR寄存器($FE08)控制。16FLCR寄存器的格式如下: (P.12) D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 HVENMASSERASE PGM Flash中還可以使用保護(hù)區(qū),保護(hù)區(qū)即只讀存儲區(qū),不能在該區(qū)中進(jìn)行擦、寫操作。保護(hù)區(qū)用保護(hù)寄存器FLBPR($FF7E)指定保護(hù)區(qū)的首址,保護(hù)區(qū)的末地址一律為$FFFF。 FLBPR保護(hù)值及保護(hù)區(qū)對照: FLBP

15、R=$00 保護(hù)全部Flash存儲器; FLBPR=$01 保護(hù)區(qū)為$8080 $FFFF; FLBPR=$02 保護(hù)區(qū)為$8100 $FFFF; FLBPR=$FE 保護(hù)區(qū)為$FF00 $FFFF; FLBPR=$FF 不保護(hù)。172.1.3.6 第二段I/O寄存器區(qū) (P.13) $FE00 SBSR 系統(tǒng)集成模塊斷點狀態(tài)寄存器 $FE01 SRSR 系統(tǒng)集成模塊復(fù)位狀態(tài)寄存器 $FE02 SUBAR 保留 $FE03 SBFCR 系統(tǒng)集成模塊斷點標(biāo)志控制寄存器 $FE04 INTl 中斷狀態(tài)寄存器l $FE05 INT2 中斷狀態(tài)寄存器2 $FE06 INT3 中斷狀態(tài)寄存器3 $FE0

16、8 FLCR Flash控制寄存器 $FE09 BRKH 斷點地址寄存器高位 $FE0A BRKL 斷點地址寄存器低位 $FE0B BRKSCR 斷點狀態(tài)和控制寄存器 $FE0C LVISR 低電壓禁止?fàn)顟B(tài)寄存器 $FF7E FLBPR Flash塊保護(hù)寄存器18I/O 寄存器(64B)RAM數(shù)據(jù)寄存器 (512B)不存在的單元(32192B)Flash存儲器 (32256B)(用戶程序存儲器)控制狀態(tài)寄存器不存在的單元(19B)監(jiān)控ROM(307B)不存在的單元(43B)Flash塊保護(hù)寄存器(FLBPR)不存在的單元(93B)0000004002407FFF8000FDFFFE00FE0D

17、FE20FE52FE53FF7E系統(tǒng)集成模塊斷點狀態(tài)寄存器(SBSR)003F023FFlash存儲器 (36B)(復(fù)位和中斷向量區(qū))系統(tǒng)集成模塊復(fù)位狀態(tài)寄存器(SRSR)保留(SUBAR)系統(tǒng)集成模塊斷點標(biāo)志控制寄存器(SBFCR)中斷狀態(tài)寄存器(INT1)中斷狀態(tài)寄存器(INT2)中斷狀態(tài)寄存器(INT3)保留Flash控制寄存器(FLCR)斷點地址寄存器高字節(jié)(BRKH)斷點地址寄存器低字節(jié)(BRKL斷點狀態(tài)和控制寄存器(BRKSCR)低電壓禁止?fàn)顟B(tài)寄存器(LVISR)FE0CFE1FFE7DFF7FFFDBFFDCFFFFFE00FE01FE02FE03FE04FE05FE06FE07

18、FE08FE09FE0AFE0BFE0C192.1.4 時鐘發(fā)生器模塊CGM 時鐘發(fā)生器模塊CGM由晶體振蕩器CGMC、鎖相環(huán)PLL和時鐘選擇電路三部分組成,其功能是產(chǎn)生系統(tǒng)的工作時鐘。晶振電路直接分頻鎖相環(huán)頻率發(fā)生器時鐘選擇電路外部晶體系統(tǒng)時鐘MC68HC908GP32OSC1 OSC2 CGMXFC VSSA VDDARbRsX1C1C210k0.47F0.01FCBYP0. 1FVDD202.1.4.1 晶體振蕩器參數(shù)名 符號最小值典型值最大值單位晶體頻率 X1 3032.768100kHzCL-pF負(fù)載電容固定電容C162 * CL40pFC262 * CL40pF微調(diào)電容反饋電阻Rb

19、101022MRs330330470k串聯(lián)電阻2.1.4.2 鎖相環(huán)頻率發(fā)生器 (1)鎖相環(huán)PLL控制寄存器PCTL(地址:0036) (2)鎖相環(huán)PLL帶寬控制寄存器PBWC (地址:0037) (3)鎖相環(huán)PLL反饋分頻器高字節(jié)寄存器和低字節(jié)寄存器PMSH、PMSL(地址:$0038,$0039) (4)鎖相環(huán)PLL壓控振蕩器范圍選擇寄存器PMS(地址:$003A)2.1.4.3 鎖相環(huán)電路參數(shù)計算及編程方法212.1.5 系統(tǒng)操作正常監(jiān)視模塊 系統(tǒng)操作正常監(jiān)視模塊(computer operating properly, COP)俗稱看門狗電路(Watchdog)。 COP內(nèi)部有一個自由

20、運行的計數(shù)器,若計數(shù)溢出時便產(chǎn)生復(fù)位信號,使系統(tǒng)復(fù)位。 目的:防止程序“跑飛”。 過程:COP被允許后,為了使系統(tǒng)正常工作,應(yīng)用軟件必須周期性地 向$FFFF(COP控制寄存器)寫入任意值,以清除COP計數(shù)器。 寫入周期應(yīng)小于COP的溢出周期,使COP在正常工作時不致于產(chǎn) 生復(fù)位信號。 若系統(tǒng)工作不正常而“跑飛” 時,COP計數(shù)器就得不到清零, 那么它將溢出而產(chǎn)生復(fù)位信號,以便將“跑飛”程序拉回。 設(shè)置:在系統(tǒng)設(shè)置寄存器CONFIG1 (地址:$001F)中可以設(shè)置COP的 溢出周期及允許、禁止COP。22 COPD =1,禁止COP產(chǎn)生復(fù)位信號 COPD=0,允許COP產(chǎn)生復(fù)位信號 COPR

21、S=1,溢出周期 = (213 - 24)個晶振時鐘周期 COPRS=0,溢出周期 = (218 - 24)個晶振時鐘周期2.1.6 低電壓禁止模塊 低電壓禁止模塊(low voltage inhibition,LVI) 作用:監(jiān)測加在VDD上的電源電壓,當(dāng)VDD低于某個預(yù)定電壓值LVI Tmp 時,認(rèn)為發(fā)生電源故障,產(chǎn)生中斷信號并強(qiáng)制系統(tǒng)復(fù)位。CONFIG1的D0位COPD規(guī)定 COP是否允許產(chǎn)生復(fù)位信號,D7位COPRS用于設(shè)置COP的溢出周期。(P.28)COPD COPRS CONFIG1$001F復(fù)位 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 023低耗能工作方式兩

22、種低耗能工作方式:WAlT方式和STOP方式 1.WAIT (等待)方式進(jìn)入方式:CPU執(zhí)行WAIT指令工作狀態(tài):停止CPU時鐘使CPU停止工作 總線時鐘繼續(xù)工作使其他功能模塊可以繼續(xù)工作。工作電流:降為12mA 。(若禁止時基TBM和低電壓禁止LVI等模塊,電流可進(jìn)一步減小)退出方式:內(nèi)部和外部的復(fù)位 允許的中斷請求信號242.STOP (停止)方式進(jìn)入方式:執(zhí)行STOP指令工作狀態(tài):IRQ、KBI、LVI可工作 其他模塊都停止工作 (當(dāng)結(jié)構(gòu)寄存器CONFIG2的OSCSTOPENB位=0。將禁止振蕩器工作)工作電流:5A500A(與溫度和LVI、KBI等模塊是否停 止工作有關(guān))。退出方式:

23、外部中斷 鍵盤中斷信號 外部或LVI復(fù)位信號,25 結(jié)構(gòu)寄存器CONFIGX 結(jié)構(gòu)寄存器主要用于MCU的功能選擇: CONFIG2($001E)000000OSCSTOPENBSCIBDSRCRWCONFIG2$001E復(fù)位 0 0 0 0 0 0 0 0OSCSTOPENB:STOP方式下晶體振蕩器工作允許位 OSCSTOPENB=1,在STOP方式下允許晶體振蕩器工作; OSCSTOPENB=0,在STOP方式下禁止晶體振蕩器工作。SCIBDSRC:串行通信SCI時鐘源選擇位: SCIBDSRC=1,內(nèi)部總線時鐘為SCI時鐘; SCIBDSRC=0,外部振蕩器時鐘CGMXCLK作為SCI時

24、鐘。26 CONFIGl ($001E)STOPCOPDLVI5OR3SSRECLVIRSTDLVIPWRDCOPRSLVISTOPRW復(fù)位 0 0 0 0 0 0 0 0CONFIG1$001FCOPRS:COP計數(shù)器溢出周期選擇位: COPRS=1,COP溢出周期為(213 - 24)個CGMXCLK時鐘周期; COPRS=0,COP溢出周期為(218 - 24)個CGMXCLK時鐘周期。 LVISTOP:STOP方式下的LVI允許位:(LVI:低電壓禁止模塊) LVISTOP=1,在STOP方式下允許LVI工作; LVISTOP=0,在STOP方式下禁止LVI工作。 LVIRSTD:LV

25、I復(fù)位禁止位: LVIRSTD=1,禁止LVI復(fù)位; LVIRSTD=0,允許LVI復(fù)位。 27LVIPWRD:LVI電源禁止位: LVIPWRD=1,禁止LVI電源檢測控制; LVIPWRD=0,允許LVI電源檢測控制。LVI5OR3:LVI電源選擇位: LVI5OR3=1,LVI工作于5V方式; LVI5OR3=0,LVI工作于3V方式。SSREC:退出STOP方式時恢復(fù)時間選擇位: SSREC=1,恢復(fù)時間為32個CGMXCLK時鐘周期; SSREC=0,恢復(fù)時間為4096個CGMXCLK時鐘周期。STOP:STOP指令允許位:STOP=1,STOP指令為合法指令;STOP=0,STOP

26、指令為非法指令,執(zhí)行STOP指令,將產(chǎn)生非法指令碼復(fù)位操作。28COPD:COP禁止位: COPD=1,禁止COP工作; COPD=0,允許COP工作。292. MC68HC08單片機(jī)的工作方式2. 復(fù)位2.2.1.1復(fù)位信號源2.2.1.1.1 外部復(fù)位 條件: RST腳持續(xù)一段時間低電平 功能:產(chǎn)生外部復(fù)位并延時,再采樣RST腳,以確定是否退出復(fù)位 標(biāo)志:復(fù)位狀態(tài)寄存器SRSR中的PIN位置為“1”2.2.1.1.2 內(nèi)部上電復(fù)位 條件: VDD腳上正跳變 功能: 復(fù)位 標(biāo)志: SRSR.POR = 12.2.1.1.3 低電壓復(fù)位 條件: VDD輸入電壓低于設(shè)定電壓時復(fù)位 功能:復(fù)位 標(biāo)

27、志:SRSR.LVI = 1302.2.1.1.4 COP監(jiān)視復(fù)位 條件:Watchdog計數(shù)器溢出時復(fù)位 功能:COP定時器溢出,復(fù)位MCU,常用于防軟件“跑飛” 標(biāo)志:SRSR.COP = 1 處理:定時復(fù)位COP(向地址為FFFF的COP 控制寄存器 寫任意數(shù)) 注意:$FFFF 讀與寫不同2.2.1.1.5 非法地址復(fù)位 功能:當(dāng)從非法地址內(nèi)存取時自動復(fù)位 標(biāo)志:SRSR.ILAD = 12.2.1.1.6 非法取指復(fù)位 功能:當(dāng)取出非法指令時自動復(fù)位 標(biāo)志:SRSR.ILOP = 12.2.1.2 復(fù)位狀態(tài)寄存器SRSR($FE01) SRSR為系統(tǒng)集成模塊SIM中的一個狀態(tài)寄存器,

28、記錄發(fā)生復(fù)位操作的原因。31特點:它是只讀寄存器,對它進(jìn)行讀操作后,各標(biāo)志位被自動清零。POR:上電復(fù)位標(biāo)志;PIN:外部復(fù)位標(biāo)志;COP:看門狗復(fù)位標(biāo)志;ILOP:非法操作碼復(fù)位標(biāo)志;ILAD:非法地址復(fù)位標(biāo)志;LVI:低電壓復(fù)位標(biāo)志。PORPINCOPILOPILAD0LVI0復(fù)位 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0322.2.1.3 復(fù)位的狀態(tài) MCU立即停止正在執(zhí)行的操作; MCU內(nèi)各種控制狀態(tài)寄存器置為確定的初始值; 堆棧指針SP裝入00FF 置位CCR的I標(biāo)志,禁止中斷 變址寄存器H清零 PC裝入復(fù)位向量FFFE和FFFF單元中的地址 清所有口的數(shù)據(jù)方向

29、寄存器,I/O口均為輸入 選CGMXCLK(晶體振蕩器輸出時鐘) 4作為內(nèi)部總線時鐘; 從FFFE和FFFF單元取出用戶定義的復(fù)位中斷向量地址送程序 計數(shù)器PC,MCU從此復(fù)位中斷入口執(zhí)行程序。33MC68HC908GP32 時序圖342.2 中斷2.2.2.1 中斷的種類(08系列) 4種可屏蔽的硬件中斷:即外部中斷IRQ 定時器中斷 SCI中斷 SPI中斷 (有的系列還有其它一些中斷,如ADC中斷、鍵盤中斷等)。 1種不可屏蔽的軟件中斷SWI。 屏蔽:置位CCR的 I 標(biāo)志位將屏蔽所有的硬件中斷。 GP32中斷系統(tǒng)有24個中斷源, 17個中斷向量,每個中斷源都有一個中斷標(biāo)志位、中斷允許位。

30、2.2.2.2 中斷響應(yīng)的條件 CCR中的中斷屏蔽位 I = 0; 已有硬件中斷已在CPU登記,如多個中斷源同時向 CPU 請求中斷,按中斷優(yōu)先級次序響應(yīng)優(yōu)先級最高的中斷請求。352.2.2.3 中斷的過程 中斷過程包括: 中斷請求 中斷判優(yōu) 中斷響應(yīng) 中斷處理 中斷返回 共5 個步驟。 重點:中斷響應(yīng)。 中斷響應(yīng)過程: CPU寄存器PCL、PCH、X、A、CCR依次入棧保護(hù); 1 CCR的 I(關(guān)中斷); 從所響應(yīng)的中斷請求源相對應(yīng)的中斷向量地址中取出中斷服務(wù)程序 入口地址送入PC寄存器,CPU即從中斷入口地址開始執(zhí)行中斷服務(wù) 程序。 36 CPU從中斷入口地址開始執(zhí)行中斷服務(wù)程序。 中斷服

31、務(wù)程序的最后一條指令是RTI,RTI指令從堆棧中依次彈出CCR、 A、X、PCH、PCL,使CPU回到原來被中斷地方繼續(xù)執(zhí)行原來的程序; CPU響應(yīng)中斷執(zhí)行中斷服務(wù)程序時,I = 1,因此不能響應(yīng)其他中斷請求。 如果允許中斷嵌套,需要在中斷服務(wù)程序的適當(dāng)位置放一條CLI指令,清 零I,就可以響應(yīng)其他中斷請求以實現(xiàn)中斷嵌套。37外部中斷IRQCH0IECH0FTOIETOFCH1IECH1FCH0IECH0FPLLIEPLLFIMASK1IRQFNoneNone屏蔽標(biāo)志$FFF0 $FFF1$FFF2 $FFF3$FFF4 $FFF5$FFF6 $FFF7$FFF8 $FFF9$FFFA $FF

32、FB0$FFFC $FFFD中斷優(yōu)先級中斷向量地址25NoneIF5IF6IF4IF3TIM1通道0軟件中斷SWI復(fù)位/中斷源INT寄存器標(biāo)志1634IF1IF2CGM中斷TIM1通道1TIM1溢出TIM2通道0NEIENFORIEORSPTIESPIEERRIE MODFERRIEOVRFSPRIESPRFTOIETOFCH1IECH1F$FFE6 $FFE7$FFE8 $FFE9$FFEA $FFEB8$FFEC $FFED7$FFEE $FFEFIF8IF11IF10IF9SPI方式錯TIM2溢出IF711910SPI溢出SPI發(fā)送器空SCI接收器溢出SCI噪聲標(biāo)志TIM2通道1SPI接

33、收器滿AIENCOCOIMASKKKEYFTCIETCSCTIESCTEILIEIDLESCRIESCRFPEIEPEFEIEFE$FFDE $FFDF$FFE0 $FFE1$FFE2 $FFE3$FFE4 $FFE514IF14IF15IF13SCI發(fā)送器空SCI接收器滿SCI奇偶錯SCI格式錯121513IF12SCI輸出空閑SCI發(fā)送完成鍵盤輸入中斷ADC轉(zhuǎn)換完成時基中斷TBIFTBIEIF16$FFDC $FFDD16382.2.2.4 外部中斷IRQ 外部中斷請求信號是可屏蔽的中斷請求信號。(P.25)IRQF0IMASKACKMODEINTSCR$001DRW復(fù)位 0 0 0 0

34、0 0 0 0IRQF: 中斷標(biāo)志位。IRQF=1,中斷請求發(fā)生; IRQF=0,無中斷請求。ACK:中斷請求響應(yīng)位。用軟件將ACK置“1”時將清零IRQF。 * 在外部中斷服務(wù)程序中必須有置“1”ACK的指令,以清零IRQF。IMASK:中斷屏蔽位,IMASK=1,禁止IRQ中斷, IMASK=0,允許 IRQ中斷。MODE: 中斷觸發(fā)方式選擇位, MODE=1,輸入負(fù)跳變或低電平時產(chǎn)生中斷; MPDE=0,輸入僅為負(fù)跳變時產(chǎn)生中斷。392.2.2.5 鍵盤中斷KBI 鍵盤中斷提供多個可屏蔽的外部中斷。 GP32的PTA0 PTA7既可作通用雙向I0口使用,也可作鍵盤輸入線(或附加外部中斷輸入線)按鍵時產(chǎn)生鍵盤中斷。 鍵盤中斷可喚醒CPU退出節(jié)電方式(WAIT或STOP)回到正常的運行狀態(tài),對鍵盤輸入信息進(jìn)行處理。 鍵盤中斷狀態(tài)和控制寄存器INTKBSCR( $001A)MODEK:鍵盤中斷觸發(fā)方式位: MODEK=1, 鍵輸入線發(fā)生負(fù)跳變或為低電平時產(chǎn)生中斷請求(1KEYF); MODEK=0, 僅當(dāng)鍵輸入線發(fā)生負(fù)跳變時產(chǎn)生中斷請求(1KEYF); KEYF:鍵盤中斷標(biāo)志位:KEYF=1, 鍵盤正在請求中斷; KEYF=0, 無鍵盤中斷請求。KEYF0IMASKKACKKMODEKRWINTKBSC

溫馨提示

  • 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

提交評論