freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

中斷控制、定時(shí)計(jì)數(shù)器與串行口【更齊全-文庫吧

2024-12-20 04:16 本頁面


【正文】 最低 )。復(fù)位后, IPH、 IP初值為 00000000,即所有中斷優(yōu)先級(jí)均為 0。 INT029 為此, MCS51約定當(dāng)同一優(yōu)先級(jí)中斷請求有效時(shí),CPU響應(yīng)順序?yàn)椋? 外中斷 定時(shí) /計(jì)數(shù)器 T0溢出中斷 外中斷 定時(shí) /計(jì)數(shù)器 T1溢出中斷 串行口中斷 定時(shí) /計(jì)數(shù)器 T2溢出中斷 INT0INT130 中斷響應(yīng)過程及中斷服務(wù)程序入口地址 對(duì)于外中斷來說, MCS51 CPU在每個(gè)機(jī)器周期的S5P2相鎖存引腳的電平狀態(tài),設(shè)置中斷請求標(biāo)志 (若中斷有效,相應(yīng)中斷標(biāo)志位置 1;若中斷無效,標(biāo)志位置 0,如圖45中的 M1周期 ),并在下一機(jī)器周期 (如圖 45中的 M2周期 )的 S6狀態(tài)按優(yōu)先級(jí)順序查詢所有沒有被禁止的中斷請求標(biāo)志,如果滿足下列中斷響應(yīng)條件,則在下一機(jī)器周期 (如圖45中的 M3周期 )的 S1狀態(tài)響應(yīng)優(yōu)先級(jí)最高的中斷請求,并執(zhí)行相應(yīng)的中斷服務(wù)程序,否則繼續(xù)執(zhí)行當(dāng)前程序。 31 圖 45 中斷響應(yīng)時(shí)序 32 1. 中斷響應(yīng)條件 MCS51中斷響應(yīng)條件為: (1) 當(dāng)前不執(zhí)行同級(jí)或更高優(yōu)先級(jí)中斷服務(wù)程序。 ?這是為了防止同級(jí)或低級(jí)中斷請求中斷同級(jí)或更高優(yōu)先級(jí)中斷。 (2) 當(dāng)前機(jī)器周期必須是當(dāng)前指令的最后一個(gè)機(jī)器周期,否則等待。執(zhí)行某些指令需要兩個(gè)或兩個(gè)以上機(jī)器周期,如果當(dāng)前機(jī)器周期不是指令的最后一個(gè)機(jī)器周期,則不響應(yīng)中斷請求。也就是說,不允許中斷一條指令的執(zhí)行過程,這是為了保證指令執(zhí)行過程的完整性。 33 (3) 如果當(dāng)前指令是中斷返回指令 RETI,或改寫中斷控制寄存器 IE、優(yōu)先級(jí)寄存器 IP或 IPH,則必須再執(zhí)行一條指令后才能響應(yīng)中斷請求。也就是說,中斷控制器各狀態(tài)位尚未穩(wěn)定前,不響應(yīng)中斷,以免出現(xiàn)不確定后果。 由此可見:當(dāng)不處于同級(jí)或更高優(yōu)先中斷響應(yīng)狀態(tài)時(shí),中斷有效到中斷響應(yīng)的最短時(shí)間為 3個(gè)機(jī)器周期 (即中斷在當(dāng)前指令最后一個(gè)機(jī)器周期有效,且下一指令不是 RETI或改寫中斷控制寄存器 IE、 IP、 TPH),最長為 8個(gè)機(jī)器周期(即中斷在乘法、除法指令的第一機(jī)器周期有效,且下一指令為 RETI或改寫中斷控制寄存器 IE、 IP、 TPH),以上時(shí)間未考慮中斷入口處長跳轉(zhuǎn)指令“ LJMP xxxx”執(zhí)行時(shí)間。 34 如果不滿足以上條件,將忽略該機(jī)器周期對(duì)中斷標(biāo)志的查詢結(jié)果,下一機(jī)器周期再繼續(xù)查詢。因此可能存在這樣一種情況:某一中斷發(fā)生了,不滿足響應(yīng)條件, CPU不響應(yīng),又發(fā)出了新的中斷請求,則尚未響應(yīng)的中斷請求將被忽略。 35 例如,低電平觸發(fā)的外中斷 INT0低電平維持時(shí)間為 1個(gè)機(jī)器周期,假設(shè)在 M1機(jī)器周期有效,則 M1機(jī)器周期的S5P2狀態(tài)后,標(biāo)志位 IE0為 1;盡管在 M2機(jī)器周期的 S6狀態(tài),CPU查詢到 IE0有效,但不滿足中斷響應(yīng)條件,即 M3機(jī)器周期不響應(yīng) INT0的中斷請求,繼續(xù)執(zhí)行隨后指令序列。在該中斷請求未被響應(yīng)前,如果 (即出現(xiàn)了新的中斷請求 ),則在 M1機(jī)器周期出現(xiàn)的中斷請求將被忽略。因?yàn)槊恳恢袛嘣串吘怪挥幸粋€(gè)標(biāo)志位,不能分辨中斷標(biāo)志是什么時(shí)候產(chǎn)生的。 另外,在中斷響應(yīng)過程中,如果在 M4周期的 S6狀態(tài)查詢到優(yōu)先級(jí)更高的中斷標(biāo)志為 1(即在 M2~ M3機(jī)器周期內(nèi)優(yōu)先級(jí)更高的中斷請求出現(xiàn) ),則在 M M6機(jī)器周期將響應(yīng)高優(yōu)先級(jí)中斷,而不執(zhí)行低優(yōu)先級(jí)中斷服務(wù)程序。 36 2. 中斷響應(yīng)過程及中斷服務(wù)程序入口地址 如果滿足中斷響應(yīng)條件,將進(jìn)入中斷響應(yīng)過程: (1) ?CPU先將對(duì)應(yīng)中斷的優(yōu)先級(jí)觸發(fā)器置 1(每一中斷源對(duì)應(yīng)一個(gè)中斷優(yōu)先級(jí)觸發(fā)器, 圖 41中并未沒畫出該觸發(fā)器 ),阻止 CPU再響應(yīng)同級(jí)或更低級(jí)的中斷請求。 (2) 將程序計(jì)數(shù)器 PC的當(dāng)前值壓入堆棧,以保證中斷服務(wù)程序執(zhí)行結(jié)束后正確返回;將中斷源入口地址裝入PC,以便執(zhí)行相應(yīng)的中斷服務(wù)程序。這一過程由硬件完成,相當(dāng)于執(zhí)行了一條長調(diào)用指令“ LCALL xxxx”。中斷服務(wù)程序入口地址如表 41所示。 37 表 41 中斷服務(wù)程序入口地址 中斷源 入口地址 ( 即 L CAL L 指令的 xxxx 地址 ) 外中斷0I N T 0003 H 定時(shí) / 計(jì)數(shù)器 T0 溢出中斷 000BH 外中斷 I N T 1 0013 H 定時(shí) / 計(jì)數(shù)器 T1 溢出中斷 001BH 串行口中斷 0023 H 定時(shí) / 計(jì)數(shù)器 T2 溢出中斷 002BH 38 由于各中斷服務(wù)程序入口地址僅相隔 8個(gè)字節(jié),難以容納中斷服務(wù)程序,為此可在中斷程序入口處放置一條長跳轉(zhuǎn)指令,這樣實(shí)際的中斷服務(wù)程序就可以放在存儲(chǔ)器區(qū)內(nèi)的任意位置 (一般放在主程序后 ),程序如下所示: ORG 0003H LJMP INT0 ;在外中斷入口處放一條長跳轉(zhuǎn)指令 ORG 0100H MAIN: ;主程序 … INT0: ;外中斷的中斷服務(wù)程序 39 (3) 清除中斷請求標(biāo)志。進(jìn)入中斷服務(wù)程序后, CPU能自動(dòng)清除的中斷請求標(biāo)志位如下: 定時(shí)器 T0中斷請求標(biāo)志 TF0; 定時(shí)器 T1中斷請求標(biāo)志 TF1; 下降沿觸發(fā)的外中斷 的中斷請求標(biāo)志 IE0; 下降沿觸發(fā)的外中斷 的中斷請求標(biāo)志 IE1。 CPU不能自動(dòng)清除的中斷請求標(biāo)志位如下: 串行發(fā)送結(jié)束中斷標(biāo)志 TI; 串行接收有效中斷標(biāo)志 RI; 定時(shí) /計(jì)數(shù)器 T2溢出中斷標(biāo)志 TF2; 定時(shí) /計(jì)數(shù)器 T2外觸發(fā)標(biāo)志 EXF2; 電平觸發(fā)方式下的外中斷標(biāo)志 IE0和 IE1。 INT0INT140 對(duì)于不能自動(dòng)清除的中斷請求標(biāo)志,需要在中斷服務(wù)程序中用“ CLR 位地址”或“ ANL IE, XXH”指令清除。 值得注意的是某一事件發(fā)生后,相應(yīng)的中斷標(biāo)志必然有效,如果不滿足中斷響應(yīng)條件, CPU不響應(yīng)該中斷請求,但該中斷標(biāo)志不因事件消失而被清零。例如,對(duì)于低電平觸發(fā)的外中斷 ,只要 機(jī)器周期的負(fù)脈沖,中斷標(biāo)志 IE0就有效,雖然不滿足中斷響應(yīng)條件, CPU不響應(yīng) IE0中斷請求,但 IE0標(biāo)志不會(huì)消失,盡管在隨后的機(jī)器周期里 。 INT041 (4) 中斷返回。中斷服務(wù)程序最后一條指令是中斷返回指令“ RETI”,執(zhí)行了中斷返回指令“ RETI”后,先將對(duì)應(yīng)中斷的優(yōu)先級(jí)觸發(fā)器清零 (以便返回后 CPU能夠響應(yīng)同級(jí)或更低級(jí)的中斷請求 ),并將堆棧內(nèi)的兩個(gè)字節(jié)彈到程序計(jì)數(shù)器 PC,以便從斷點(diǎn)處繼續(xù)執(zhí)行被中斷程序的后續(xù)指令。 42 中斷初始化及中斷服務(wù)程序結(jié)構(gòu) 中斷初始化是指通過設(shè)置 TCON、 IP、 IPH及 IE等寄存器內(nèi)容,確定外中斷觸發(fā)方式 (低電平觸發(fā)還是下降沿觸發(fā) )、設(shè)置中斷優(yōu)先級(jí)及開中斷等。例如,可通過如下指令將定義為下降沿觸發(fā),優(yōu)先級(jí)為 3(最高 ),并允許中斷: SETB IT0 ;外中斷采用下降沿觸發(fā) ORL IPH, 01H ;由于 IPH寄存器沒有位尋址功能, 只能通過“或”指令將 IPH的 ; PX0H位置 1 SETB PX0 ; IP寄存器具有位尋址功能,可通過 SETB指令將指定位置 1 SETB EX0 ;允許中斷 SETB EA ;開中斷 43 中斷服務(wù)程序結(jié)構(gòu)與子程序類似,大致包含以下幾部分: ;必要時(shí)保護(hù)現(xiàn)場 PUSH PSW PUSH Acc … SETB RS0 ;切換工作寄存器區(qū),根據(jù)需要可使 用 0~ 3區(qū)中的任一區(qū) CLR RS1 ;由于中斷出現(xiàn)的不確定性,因此只 要中斷服務(wù)程序中使用了寄存器 ;組 R0~ R7,就需要切換工作區(qū) … ;中斷服務(wù)程序體 (略 ) 44 CLR 中斷請求標(biāo)志 ;對(duì)于不能自動(dòng)清除中斷請求標(biāo)志的中斷響應(yīng)過程,需要通過“ CLR ;中斷請求標(biāo)志位”指令清除中 斷請求標(biāo)志,以防止同一請求 被多次 ;響應(yīng) POP Acc POP PSW ;恢復(fù)現(xiàn)場 RETI ;中斷返回指令 45 可見,中斷與子程序調(diào)用的區(qū)別在于: (1) 中斷出現(xiàn)是隨機(jī)的,可能出現(xiàn),也可能不出現(xiàn),中斷出現(xiàn)的時(shí)間也是無法確定的,即無法預(yù)測被中斷程序的斷點(diǎn)。而子程序的執(zhí)行由調(diào)用指令 LCALL或 ACALL實(shí)現(xiàn),只要滿足特定條件,一定會(huì)發(fā)生,斷點(diǎn)由程序員控制。因此只要中斷服務(wù)程序中出現(xiàn)寫寄存器組 R7~ R0之一,就需要切換工作寄存器區(qū)。由于同級(jí)中斷不能嵌套,因此同一優(yōu)先級(jí)中斷服務(wù)程序可使用同一工作寄存器區(qū),但不同優(yōu)先級(jí)中斷服務(wù)程序一般不能使用同一工作寄存器區(qū)。 46 在中斷服務(wù)程序中,只要使用了某一寄存器,如 Acc、B或 DPTR等就需要在中斷服務(wù)程序入口處將這些寄存器壓入堆棧保護(hù);反之,則無需保護(hù),這一點(diǎn)初學(xué)者很容易理解。只有 PSW寄存器例外,除非中斷服務(wù)中沒有出現(xiàn)影響標(biāo)志位的指令,否則一般均需要將 PSW壓入堆棧。 47 (2) 中斷服務(wù)程序入口地址 (也稱為中斷向量 )由硬件決定,與 CPU類型有關(guān),不能更改。而子程序入口地址由用戶安排。 (3) 子程序中可以任意調(diào)用另一子程序,但中斷有優(yōu)先級(jí),同級(jí)或低級(jí)中斷不能打斷正在執(zhí)行的同級(jí)或更高優(yōu)先級(jí)中斷服務(wù)程序。 (4) 盡管子程序返回指令 RET和中斷返回指令 RETI均會(huì)將棧頂兩個(gè)字節(jié)信息裝入 PC,恢復(fù)斷點(diǎn),但 RETI還清除相應(yīng)中斷優(yōu)先級(jí)觸發(fā)器,因此中斷返回指令不可用子程序返回指令 RET代替。 48 對(duì)于采用電平觸發(fā)方式的外中斷 和 來說,如果低電平有效信號(hào)不自動(dòng)消失,或低電平維持時(shí)間大于外中斷服務(wù)程序的執(zhí)行時(shí)間時(shí),在退出中斷服務(wù)程序前,即使通過“ CLR IE0”或“ CLR IE1”指令清除了中斷標(biāo)志 IE0或 IE1,但如果 ,下一機(jī)器周期中斷標(biāo)志又再次被置位,如果滿足中斷響應(yīng)條件,將造成“同一請求,多次響應(yīng)”的現(xiàn)象。為此,盡量避免采用電平觸發(fā)方式。非要用電平觸發(fā)方式 (如干擾大或信號(hào)邊沿過渡時(shí)間長,超出一個(gè)機(jī)器周期等 )時(shí),可通過以下措施克服: INT0 INT149 增加單穩(wěn)態(tài)電路,把電平觸發(fā)改為脈沖觸發(fā); 如果低電平信號(hào)能自動(dòng)消失,但維持時(shí)間可能大于中斷服務(wù)程序的執(zhí)行時(shí)間時(shí),在系統(tǒng)反映速度允許的情況下,為降低成本,可在外中斷服務(wù)程序中加入引腳電平狀態(tài)檢測指令,確保 (對(duì) 來說 )或 (對(duì) 來說 )引腳變高電平后再清除相應(yīng)的外中斷請求標(biāo)志并返回。 INT01INT0 INT150 可見,對(duì)于一個(gè)中斷源來說,我們需要了解下列問題: (1) 中斷源及中斷標(biāo)志。即什么事件發(fā)生時(shí),對(duì)應(yīng)中斷標(biāo)志位置 1。 (2) 如何控制中斷。即中斷允許由中斷控制寄存器 IE的哪一位控制;優(yōu)先級(jí)由 IPH、 IP寄存器的哪一位控制,以及同優(yōu)先級(jí)硬件查詢順序。 (3) 中斷入口地址。即中斷服務(wù)程序放在何處。 (4) ?CPU響應(yīng)中斷請求后,能否自動(dòng)清除對(duì)應(yīng)的中斷標(biāo)志。 (5) 在單片機(jī)中,還要了解該中斷源能否喚醒處于掉電狀態(tài)下的 CPU。 51 在單片機(jī)控制系統(tǒng)中,常需要對(duì)外部脈沖進(jìn)行計(jì)數(shù)或每隔特定時(shí)間執(zhí)行某一操作,因此定時(shí) /計(jì)數(shù)器是單片機(jī)控制系統(tǒng)中重要的外設(shè)部件之一,幾乎所有單片機(jī)芯片均內(nèi)置一個(gè)到數(shù)個(gè)不同長度的定時(shí) /計(jì)數(shù)器。增強(qiáng)型 MCS51系列單片機(jī)芯片內(nèi)置了三個(gè) 16位的定時(shí) /計(jì)數(shù)器,分別稱為 T0、T1和 T2。 增強(qiáng)型 MCS51定時(shí) /計(jì)數(shù)器 52 定時(shí) /計(jì)數(shù)功能概述 定時(shí) /計(jì)數(shù)器的核心部件是一個(gè)加法 (或減法 )計(jì)數(shù)器,可工作在定時(shí)方式和計(jì)數(shù)方式,因此稱為定時(shí) /計(jì)數(shù)器。不過這兩種工作方式并沒有本質(zhì)的區(qū)別,只是計(jì)數(shù)脈沖的來源不同而已。當(dāng)計(jì)數(shù)脈沖來自頻率相對(duì)穩(wěn)定的系統(tǒng)時(shí)鐘信號(hào) (一般是系統(tǒng)時(shí)鐘的分頻信號(hào) )時(shí),稱為定時(shí)方式;當(dāng)計(jì)數(shù)脈沖來自 CPU I/O引腳的外部信號(hào)時(shí),稱為計(jì)數(shù)方式。 單片機(jī)內(nèi)定時(shí) /計(jì)數(shù)器屬于可編程部件,除了加法計(jì)數(shù)器 (部分單片機(jī)芯片采用減法計(jì)數(shù)器 )外,還有工作方式控制寄存器,其特征如下: 53 (1) 定時(shí) /計(jì)數(shù)器有多種定時(shí)或計(jì)數(shù)方式,使用前必須初始化工作方式寄存器,設(shè)置定時(shí) /計(jì)數(shù)器的工作方式 (如定時(shí)還是計(jì)數(shù);硬件啟動(dòng)還是軟件啟動(dòng);計(jì)數(shù)長度,即作為16位計(jì)數(shù)器使用還是作為 8位計(jì)數(shù)器使用;溢出后重裝初值還是從 0開始計(jì)數(shù)等 )。 (2) 計(jì)數(shù)器是一個(gè)可讀 /寫的寄存器,它可以從 0開始計(jì)數(shù),也可以從特定值開始計(jì)數(shù),使用前一般需要設(shè)置定時(shí) /計(jì)數(shù)器的初值。 (3) 每來一個(gè)脈沖,計(jì)數(shù)器加 1(或減
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1