




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、原 14-18題目有問題,換了一個(gè)題目第 7章7-1 8086/8088 CPU有哪幾種中斷?1外設(shè)中斷源。一般有鍵盤、打印機(jī)、磁盤、磁帶等,工作中要求 CPU 為它服務(wù)時(shí),會(huì)向 CPU 發(fā)送中斷請(qǐng)求。2故障中斷源。當(dāng)系統(tǒng)出現(xiàn)某些故障時(shí) (如存儲(chǔ)器出錯(cuò)、運(yùn)算溢出等 ,相關(guān)部件會(huì)向 CPU 發(fā) 出中斷請(qǐng)求,以便使 CPU 轉(zhuǎn)去執(zhí)行故障處理程序來解決故障。3軟件中斷源。在程序中向 CPU 發(fā)出中斷指令 (8086為 INT 指令 ,可迫使 CPU 轉(zhuǎn)去執(zhí)行某個(gè)特 定的中斷服務(wù)程序, 而中斷服務(wù)程序執(zhí)行完后, CPU 又回到原程序中繼續(xù)執(zhí)行 INT 指令后面的指令。4為調(diào)試而設(shè)置的中斷源。系統(tǒng)提供的
2、單步中斷和斷點(diǎn)中斷, 可以使被調(diào)試程序在執(zhí)行一條指令或執(zhí)行 到某個(gè)特定位置處時(shí)自動(dòng)產(chǎn)生中斷, 從而便于程序員檢查中間結(jié)果, 尋找錯(cuò)誤所 在。7-2 軟件中斷和硬件中斷有何特點(diǎn),如何區(qū)別?外部中斷源即硬件中斷源,來自 CPU 外部。 8086 CPU提供了兩個(gè)引腳來接收 外部中斷源的中斷請(qǐng)求信號(hào):可屏蔽中斷請(qǐng)求引腳和不可屏蔽中斷請(qǐng)求引腳。 通 過可屏蔽中斷請(qǐng)求引腳輸入的中斷請(qǐng)求信號(hào)稱作可屏蔽中斷請(qǐng)求, 對(duì)這種中斷請(qǐng) 求 CPU 可響應(yīng),也可不響應(yīng),具體取決于標(biāo)志寄存器中 IF 標(biāo)志位的狀態(tài)。通過不 可屏蔽中斷請(qǐng)求引腳輸入的中斷請(qǐng)求信號(hào)稱作不可屏蔽中斷請(qǐng)求, 這種中斷請(qǐng)求 CPU 必須響應(yīng)。軟件中
3、斷執(zhí)行軟件中斷指令時(shí), 會(huì)產(chǎn)生軟件中斷。 8086系統(tǒng)中, 設(shè)置了三條中斷指令, 分別是:<1>中斷指令 INT n :用戶可以用 INT n 指令來產(chǎn)生一個(gè)類型為 n 的中斷,以便 讓 CPU 執(zhí)行 n 號(hào)中斷的中斷服務(wù)程序。<2>斷點(diǎn)中斷 INT 3:執(zhí)行斷點(diǎn)指令 INT 3,將引起類型為 3的斷點(diǎn)中斷,這是 調(diào)試程序?qū)S玫闹袛唷?lt;3>溢出中斷 INTO :如果標(biāo)志寄存器中溢出標(biāo)志位 OF 為 1, 在執(zhí)行了 INTO 指令 后,產(chǎn)生類型為 4的溢出中斷。7-3 中斷排隊(duì)方法有哪些方法?1. 軟件查詢確定中斷優(yōu)先級(jí)。2. 硬件查詢確定優(yōu)先級(jí)。3. 中斷優(yōu)
4、先級(jí)編碼電路。7-4 簡(jiǎn)述微機(jī)處理中斷的過程中斷請(qǐng)求、中斷響應(yīng)、中斷處理、中斷返回7-5 簡(jiǎn)要說明 8086/8088中斷的特點(diǎn)。中斷請(qǐng)求:1外部中斷源的中斷請(qǐng)求8086 CPU有兩根外部中斷請(qǐng)求引腳 INTR 和 NMI 供外設(shè)向其發(fā)送中斷請(qǐng)求信號(hào)用。 根據(jù)優(yōu)先級(jí), CPU 先檢查 NMI 引腳再檢查 INTR 引腳。 INTR 引腳上的中斷請(qǐng)求稱為可 屏蔽中斷請(qǐng)求, CPU 是否響應(yīng)這種請(qǐng)求取決于標(biāo)志寄存器的 IF 標(biāo)志位的值。 2內(nèi)部中斷源的中斷請(qǐng)求CPU 的中斷源除了外部硬件中斷源外,還有內(nèi)部中斷源。內(nèi)部中斷請(qǐng)求不需 要使用 CPU 的引腳, 它由 CPU 在下列兩種情況下自動(dòng)觸發(fā):其
5、一是在系統(tǒng)運(yùn)行程序 時(shí),內(nèi)部某些特殊事件發(fā)生 (如除數(shù)為 0,運(yùn)算溢出或單步跟蹤及斷點(diǎn)設(shè)置等 ; 其二是 CPU 執(zhí)行了軟件中斷指令 INT n。所有的內(nèi)部中斷都是不可屏蔽的,即 CPU 總是響應(yīng) (不受 IF 限制 。7-6 簡(jiǎn)述 8086/8088可屏蔽中斷的響應(yīng)過程。1可屏蔽外部中斷請(qǐng)求的中斷響應(yīng)<1>連續(xù)發(fā)出兩個(gè)中斷響應(yīng)信號(hào) INTA ,完成一個(gè)中斷響應(yīng)周期。<2>關(guān)中斷, 即將 IF 標(biāo)志位置 0, 以避免在中斷過程中或進(jìn)入中斷服務(wù)程序后, 再次被其他可屏蔽中斷源中斷。<3>保護(hù)處理機(jī)的現(xiàn)行狀態(tài), 即保護(hù)現(xiàn)場(chǎng)。 包括將斷點(diǎn)地址 (即下條要取出指 令
6、的段基址和偏移量,在 CS 和 IP 內(nèi) 及標(biāo)志寄存器 FLAGS 內(nèi)容壓入堆棧。<4>在中斷響應(yīng)周期的第二個(gè)總線周期中,中斷控制器已將發(fā)出中斷請(qǐng)求外 設(shè)的中斷類型號(hào)送到了系統(tǒng)數(shù)據(jù)總線上, CPU 讀取此中斷類型號(hào),并根據(jù)此中斷 類型號(hào)查找中斷矢量表, 找到中斷服務(wù)程序的入口地址, 將入口地址中的段基址 及偏移量分別裝入 CS 及 IP ,一旦裝入完畢,中斷服務(wù)程序就開始執(zhí)行。2不可屏蔽外部中斷請(qǐng)求的中斷響應(yīng)NMI 上中斷請(qǐng)求的響應(yīng)過程要簡(jiǎn)單一些。只要 NMI 上有中斷請(qǐng)求信號(hào) (由低向高的 正跳變,兩個(gè)以上時(shí)鐘周期 , CPU 就會(huì)自動(dòng)產(chǎn)生類型號(hào)為 2的中斷,并準(zhǔn)備轉(zhuǎn)入 相應(yīng)的中
7、斷服務(wù)程序。3內(nèi)部中斷的中斷響應(yīng)除不用檢測(cè) NMI 引腳外,其余與不可屏蔽外部中斷請(qǐng)求的中斷響應(yīng)相同。 7-7 何為中斷矢量表?它有何作用?位于內(nèi)存的什么位置?中斷服務(wù)程序的地址叫做中斷矢量,將全部中斷矢量集中在一張表中,即中 斷矢量表。中斷矢量表的位置固定在內(nèi)存的最低 1K 字節(jié)中,即 00000H 003FFH 處。7-8 30H號(hào)中斷的中斷服務(wù)程序地址存放在中斷矢量表的什么位置處?30H*4=1927-9 8259A對(duì)中斷優(yōu)先管理權(quán)和中斷結(jié)束有哪幾種方式,各自應(yīng)用在什么場(chǎng)合? 全嵌套方式全嵌套方式是最常用的和最基本的一種工作方式。 8259A 是初始化后默認(rèn)的工作 方式。特殊全嵌套方式在
8、這種方式下, 當(dāng)一個(gè)中斷被響應(yīng)后, 只屏蔽掉低級(jí)的中斷請(qǐng)求, 而允許同 級(jí)及高級(jí)的中斷請(qǐng)求。該方式一般用于多片 8259A 級(jí)聯(lián)的系統(tǒng)中,主片采用此方 式,而從片采用一般全嵌套方式。優(yōu)先級(jí)自動(dòng)循環(huán)方式在這種方式下, 某個(gè)中斷源被服務(wù)后, 其優(yōu)先級(jí)自動(dòng)降為最低, 它后面的中 斷源按順序遞升一級(jí)。 如 IR3剛被服務(wù)完, 則各中斷源的優(yōu)先級(jí)次序?yàn)?IR4、 IR5、 IR6、 IR7、 IR0、 IR1、 IR2、 IR3。這種方式中,剛開始時(shí)優(yōu)先級(jí)仍是固定的,即 IR0最高, IR7最低。這種方式適合于各個(gè)中斷源的重要性等同的情況。優(yōu)先級(jí)特殊循環(huán)方式同優(yōu)先級(jí)自動(dòng)循環(huán)方式,但一開始時(shí)的優(yōu)先級(jí)可以設(shè)
9、定。如一開始設(shè)定 IR3最低,則 IR4的優(yōu)先級(jí)最高,其他依次類推。8259A 中斷結(jié)束共有 3種。自動(dòng)結(jié)束方式 (AEOI方式 普通結(jié)束方式 (普通 EOI 方式 特殊中斷結(jié)束方式 (特殊 EOI 方式 7-10 8259A中斷控制器的作用是什么?8259A 能與 8080/8085、 8086/8088等多種微處理器芯片組成中斷控制系統(tǒng)。 它有 8個(gè)外部中斷請(qǐng)求輸入引腳, 可直接管理 8級(jí)中斷。 若系統(tǒng)中中斷源多于 8個(gè), 8259A 還可以實(shí)行兩級(jí)級(jí)聯(lián)工作,最多可用 9片 8259A 級(jí)聯(lián)管理 64級(jí)中斷。7-11 簡(jiǎn)述多個(gè)中斷源、單一中斷請(qǐng)求線的中斷處理過程。1. 當(dāng) IR7IR0中有
10、一個(gè)或幾個(gè)中斷源變成高電平時(shí),使相應(yīng)的 IRR 位置位。2.8259A 對(duì) IRR 和 IMR 提供的情況進(jìn)行分析處理, 當(dāng)請(qǐng)求的中斷源未被 IMR 屏蔽 時(shí), 如果這個(gè)中斷請(qǐng)求是唯一的, 或請(qǐng)求的中斷比正在處理的中斷優(yōu)先級(jí)高, 就 從 INT 端輸出一個(gè)高電平,向 CPU 發(fā)出中斷請(qǐng)求。3.CPU 在每個(gè)指令的最后一個(gè)時(shí)鐘周期檢查 INT 輸入端的狀態(tài)。當(dāng) IF 為“ 1”且無其他高優(yōu)先級(jí)的中斷 (如 NMI 時(shí),就響應(yīng)這個(gè)中斷, CPU 進(jìn)入兩個(gè)中斷響應(yīng) (INTA 周期。4. 在 CPU 第一個(gè) INTA 周期中, 8259A 接收第一個(gè) INTA 信號(hào)時(shí), 將 ISR 中當(dāng)前請(qǐng) 求中斷
11、中優(yōu)先級(jí)最高的相應(yīng)位置位,而對(duì)應(yīng)的 IRR 位則復(fù)位為“ 0”。5. 在 CPU 第二個(gè) INTA 周期中, 8259A 收到第二個(gè) INTA 信號(hào)時(shí),送出中斷類型 號(hào)。整個(gè)過程的時(shí)序如 錯(cuò)誤!未找到引用源。 所示。7-12 8259A的中斷自動(dòng)結(jié)束方式與非自動(dòng)結(jié)束方式對(duì)中斷服務(wù)程序的編寫有何 影響?自動(dòng)結(jié)束方式 (AEOI方式 當(dāng)一個(gè)中斷請(qǐng)求被響應(yīng)后,在收到第一個(gè) INTA 信號(hào)后, 8259A 將 ISR 中的對(duì) 應(yīng)位置“ 1”,在收到第二個(gè) INTA 信號(hào)后, 8259A 將 ISR 中的對(duì)應(yīng)位置“0”。此刻,中斷服務(wù)程序并沒有結(jié)束 (其實(shí)才剛開始運(yùn)行 ,而在 8259A 中就認(rèn)為其已結(jié)
12、 束。 此時(shí)若有更低級(jí)的中斷請(qǐng)求信號(hào), 8259A 仍可向 CPU 發(fā)送中斷請(qǐng)求, 從而會(huì)造 成低級(jí)中斷打斷高級(jí)中斷的情況。這種方式一般用于單片 8259A 而且不會(huì)產(chǎn)生嵌 套的情況。普通結(jié)束方式 (普通 EOI 方式 這種方式是在中斷服務(wù)程序結(jié)束前 (即 CPU 執(zhí)行 IRET 指令 ,用 OUT 指令向 8259A 發(fā)一個(gè)中斷結(jié)束命令字, 8259A 收到此結(jié)束命令后,就會(huì)把 ISR 中優(yōu)先級(jí)別 最高的置 “ 1” 位清 0, 表示當(dāng)前正在處理的中斷已結(jié)束。 這種中斷結(jié)束方式比較 適合于全嵌套工作方式。7-13 某 8259A 初始化時(shí), ICW1=1BH , ICW2=30H , ICW
13、4=01H , 試說明 8259A 的工 作情況。ICW1=1BH :LTIM=1,設(shè)定為電平觸發(fā)方式; SNGL=1,系統(tǒng)中只有一片 8259AICW2=30H中斷請(qǐng)求類型碼設(shè)置為 30HICW4=01H8259A 用于 8086/8088系統(tǒng); 8259A 工作在非自動(dòng)結(jié)束方式;非緩沖方式下工作; 全嵌套方式。7-14 某系統(tǒng)中有三片 8259A 接成主 /從方式, 二從片接在主片的 IR3、 IR5引腳上, 試畫出硬件接線圖,并給出主片與二從片的初始化命令字 ICW3。 ICW3:MOV AL, 03H ; ICW3的內(nèi)容 IR3OUT 21H, AL ;寫入奇地址端口MOV AL, 0
14、4H ; ICW3的內(nèi)容 IR5OUT 21H, AL ;寫入奇地址端口7-15 當(dāng) 8259A 需要級(jí)聯(lián)使用時(shí),在緩沖方式與非緩沖方式下分別如何設(shè)置主 /從 片?ICW4 D2位 當(dāng) BUF=1, 且 M/S=1時(shí), 此 8259為主片; 當(dāng) BUF=1, 但 M/S=0時(shí), 此 8259為從片。7-16 簡(jiǎn)要說明 8259A 的 5種中斷優(yōu)先權(quán)管理方式的特點(diǎn)。參見題 7-97-17 8259A僅有兩個(gè)端口地址,如何識(shí)別 ICW 命令和 OCW 命令?初始化命令在一開始初始化 8259A 時(shí)使用, 只能使用一次, 一旦發(fā)出就不能改變, 且 4個(gè)命令字有固定的寫入順序,一般將其放在主程序的開頭
15、。操作命令字用來 設(shè)置可在程序中動(dòng)態(tài)改變的功能,可多次使用,也沒有固定的使用順序。7-18 中斷服務(wù)程序應(yīng)包含哪幾部分?保存和恢復(fù)現(xiàn)場(chǎng)有何意義?中斷服務(wù)程序一般由 4部分組成:保護(hù)現(xiàn)場(chǎng)、中斷服務(wù)、恢復(fù)現(xiàn)場(chǎng)、中斷返回。 所謂保護(hù)現(xiàn)場(chǎng), 是因?yàn)橛行┘拇嫫骺赡茉谥鞒绦虮淮驍鄷r(shí)存放有用的內(nèi)容, 為了 保證返回后不破壞主程序在斷點(diǎn)處的狀態(tài),應(yīng)將有關(guān)寄存器的內(nèi)容壓入堆棧保 存。中斷服務(wù)部分是整個(gè)中斷服務(wù)程序的核心,其代碼完成與外設(shè)的數(shù)據(jù)交換。 恢復(fù)現(xiàn)場(chǎng)是指中斷服務(wù)程序完成后,把原先壓入堆棧的寄存器內(nèi)容再彈回到 CPU 相應(yīng)的寄存器中。 有了保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的操作, 就可保證在返回?cái)帱c(diǎn)后, 正 確無誤地繼
16、續(xù)執(zhí)行原先被打斷的程序。 中斷服務(wù)程序的最后部分是一條中斷返回 指令 IRET 。7-19 如何安裝中斷服務(wù)程序 ?程序在運(yùn)行后, 主模塊要完成中斷服務(wù)程序的安裝, 即將中斷服務(wù)程序的地 址設(shè)置到中斷矢量表的相應(yīng)項(xiàng)目中。設(shè)置工作既可以用 MOV 指令直接寫中斷矢量 表,也可以用相關(guān) DOS 功能調(diào)用,最好是用后者,因?yàn)檫@樣更安全一些。7-20 中斷硬件服務(wù)程序駐內(nèi)存應(yīng)該注意什么問題 ?當(dāng)程序結(jié)束后其所占內(nèi)存被 DOS 收回,中斷服務(wù)程序變?yōu)椴豢捎谩H粝胱尦?序退出后中斷服務(wù)程序所占內(nèi)存仍然保留, 以便為后續(xù)程序提供中斷服務(wù), 則必 須讓中斷服務(wù)程序駐留內(nèi)存。第 13章13-1單片機(jī)有哪些主要特
17、點(diǎn)?1體積小、價(jià)格低廉、面向控制。2便于產(chǎn)品小型化、智能化。3研制周期短、可靠性高。13-2單片機(jī)主要應(yīng)用在哪些領(lǐng)域?廣泛應(yīng)用于電子儀器儀表、家用電器、自動(dòng)控制設(shè)備、節(jié)能裝備、軍事裝備、計(jì) 算機(jī)外設(shè)、機(jī)器人、工業(yè)控制等諸方面。13-3說明以下指令執(zhí)行操作的異同。 MOV R0,#11H 和 MOV R0, 11H MOV A,R0 和 MOV A,R0 ORL 20H,A 和 ORL A,20H MOV B,20H 和 MOV C,20H1 MOV R0,#11H #11H R0; MOV R0, 11H 11H中的內(nèi)容送人 R02 MOV A,R0 將寄存器的內(nèi)容存入累加器中; MOV A,
18、R0:將間接地址的內(nèi)容存入 累加器中;3 ORL 20H,A 將直接地址 20H 的內(nèi)容與累加器的值做邏輯或運(yùn)算,結(jié)果存回直接地 址 20H 中 ; ORL A,20H:將累加器的值與直接地址 20H 的內(nèi)容做邏輯或運(yùn)算,結(jié)果存回累 加器中13-4MOV , MOVC , MOVX 指令的區(qū)別。MOV :內(nèi)部 RAM 數(shù)據(jù)傳送MOVC :外部 ROM 數(shù)據(jù)傳送MOVX: 外部 RAM 數(shù)據(jù)傳送13-5單片機(jī)內(nèi)部 RAM 訪問指令有哪幾種?MOV, XCH13-6執(zhí)行下列指令序列后,將會(huì)實(shí)現(xiàn)什么功能? MOV R0, #20HMOV R1, #30HMOV P2, #90HMOVX A, R0M
19、OVX R1, A MOV DPTR, #9010HMOV A, #10HMOVC A, A+DPTRMOVX DPTR, A MOV SP, #0AHPOP 09HPOP 08HPOP 07H MOV PSW, #20HMOV 00H, #20HMOV 10H, #30HMOV A, R0MOV PSW, #10HMOV R0, A MOV R0, #30HMOV R1, #20HXCH A, R0XCH A, R1XCH A, R01. R0 R1; 29020H-9010H3. 0AH-09H 中, 09H-08H 中, 08H-07H 中。4. PSW=#20H, R0=#20H;10
20、H單元中內(nèi)容為 #30H, A=20H5. 交換 R0與 A ;交換 R1與 A ;交換 R0與 A13-7執(zhí)行下列指令序列后, 累加器 A 與各標(biāo)志 C 、 AC 、 OV 、 P 及 Z 各等于什么? 并說明標(biāo)志變化的理由。 MOV A,#99HMOV R7,#77HADD A,R7DA A MOV A,#77HMOV R7,#AAHSUBB A,R7(討論 C 的內(nèi)容 1. ADD 結(jié)果是 A:10H, PSW 中 C AC OV位為 1, DA 調(diào)整后為 0AH , P 位 0, O 為 12. A 為 #CDH PSW中 C 、 AC 、 OV 、 P 為 113-8執(zhí)行下列指令序列
21、后,相關(guān)寄存器、存儲(chǔ)單元及標(biāo)志如何變化? MOV A,#98HMOV R4,#11HANL A,R4 MOV A,#89HMOV 32H,#98HORL 32H,A CLR ACPL AXRL A,#77H MOV A,#89HSWAP ARLC A(討論 C 的內(nèi)容 1.A :10H C :02 A :89H C :03 A :88H C :04 A :30H C :113-9執(zhí)行下列指令序列后,相關(guān)位及標(biāo)志如何變化? MOV 20H,#92HMOV C,02HCPL CMOV 02H,C MOV 2FH,#7FHCLR CORL C,/7FH1. acc :0, c :02. acc :0
22、, c :113-10 CLR A 和 MOV A , #00H兩條指令都可能完成 (A=00H 功能,分別從字節(jié) 數(shù)和執(zhí)行指令所需的機(jī)器周期數(shù)角度,說明兩條指令的優(yōu)劣。CLR A 單周期指令,雙字節(jié); MOV 雙周期指令,雙字節(jié)。 CLR 時(shí)間快 13-11設(shè)兩個(gè)無符號(hào)二進(jìn)制整數(shù)的加數(shù)各長(zhǎng) 2個(gè)字節(jié),分別存于寄存器 R0、 R1和 R2、 R3(高位在前 ,結(jié)果存于寄存器 R4、 R5中。試編寫求和程序,并問和是 幾位的?MOV R0,#01HMOV R1,#01HMOV R2,#10HMOV R3,#10Hmov a,R0add A,R1MOV R4,AMOV A,R2ADDC A,R3M
23、OV R5,A和是 16位的13-12將上題改為無符號(hào)十進(jìn)制整數(shù) (BCD碼 ,其它要求同上。MOV R0,#01HMOV R1,#01HMOV R2,#10HMOV R3,#10Hmov a,R0add A,R1DAMOV R4,AMOV A,R2ADDC A,R3DAMOV R5,A和是 16位的13-13設(shè)兩個(gè)字節(jié)無符號(hào)二進(jìn)制整數(shù)減一個(gè)字節(jié)無符號(hào)二進(jìn)制整數(shù),被減數(shù)存 于 R2、 R3中,減數(shù)存于 R4,并將差存于 R5、 R6中。試編出程序。MOV R2,#01HMOV R3,#01HMOV R4,#10Hmov a,R2subb A,R4MOV R5,AMOV A,R3SUBB A,0
24、MOV R6,A13-14試編寫一段程序,將片內(nèi) RAM 20H單元與片內(nèi) RAM 30H單元交換數(shù)據(jù)。 MOV A,20HXCH A,30HMOV A,30HXCH A,20H13-15在上題基礎(chǔ)上,將程序功能擴(kuò)展到片內(nèi) RAM 20H2FH 與片內(nèi) RAM 30H 3FH 各自對(duì)應(yīng)單元 (20H與 30H , 21H 與 31H , 2FH 與 3FH 交換數(shù)據(jù)參照 13-1413-16編寫一段能實(shí)現(xiàn)約 1秒鐘延時(shí)的軟件延時(shí)程序。DM: MOV R5,#10 ;TMDM0: MOV R6,#200 ;TMDM1: MOV R7,#50 ;TMNOP ;TMNOP ;TMNOP ;TMDJN
25、Z R7,$ ;2TMDJNZ R6,DM1 ;2TMDJNZ R5,DM0 ;2TMRET ;2TMEND13-17試用流程圖說明下段程序?qū)崿F(xiàn)的功能。ORG 9000HLP0: MOV R0, #35HMOV R1,#3AHMOV R3,#05HCLR CLP1: MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R3,LP1LP2: SJMP LP2END 13-18將片內(nèi) RAM 22H單元存放的以 ASC 碼表示的數(shù),轉(zhuǎn)換為十六進(jìn)制數(shù)后, 存于片內(nèi) RAM 21H單元中。ORG 0000HAJMP LM0ORG 0030HLM0:MOV A, 22HC
26、JNE A, #41H, LM3LM3:JNC LM1SUBB A, #30HSJMP LM2LM1:SUBB A, #37HLM2:MOV 21H, ARETEND13-19設(shè)被減數(shù)存于 (R2、減數(shù)存于 (R3中,結(jié)果存于累加器 (A。試通過具體 指令分析程序所實(shí)現(xiàn)功能。BCDSUB :MOV A,#9AHCLR CSUBB A,R3 ;減數(shù) 求補(bǔ)ADD A,R2DA ARETEND13-20編程求和:-65+36=?設(shè)加數(shù)和被加數(shù)分別存于片內(nèi) RAM 的 30H 、 31H 地址中和數(shù)存于片內(nèi) RAM 的 41H 、40H 地址中。因?yàn)樵瓟?shù) x=-65=-41H , X補(bǔ)碼 =28-|x
27、|=100H-|-41H|=BFH所以擴(kuò)成 16 位后變?yōu)?FFBFH ;因?yàn)樵瓟?shù) y=36=24H, Y補(bǔ)碼 =24HORG 0900HMOV R0,#30H ;加數(shù)存放單元MOV R1,#40H ;和數(shù)存放單元ACALL SQADD ;轉(zhuǎn)加法子程序SJMP $ORG 0950HSQADD :MOV R2,#00H ;高位先全令其為 00HMOV R3,#00HMOV A,R0 ;取加數(shù)JNB ACC.7,POS1 ;若正數(shù) , 則轉(zhuǎn) POS1, 確認(rèn) (R2=00HMOV R2,#0FFH ;若負(fù)數(shù), (R2=FFH(即全 1POS1:INC R0MOV B,R0JNB B.7,POS2
28、;若正數(shù) , 則轉(zhuǎn) POS2, 確認(rèn) (R3=00HMOV R3,#0FFH ;若負(fù)數(shù) ,(R3=FFH(即全 1POS2:ADD A,B ;加低 8位MOV R1,A ;存入和的低 8位,在片內(nèi) RAM 的 40H 地址中INC R1 ;(R1=(R1+1=41HMOV A,R2ADDC A,R3 ;再加進(jìn)位MOV R1,A ;存入和的高 8位,在片內(nèi) RAM 的 41H 地址中RETEND第 14章14-1 8051單片機(jī) P0P3口結(jié)構(gòu)有何不同?作通用 I/O口輸入數(shù)據(jù)使用時(shí),應(yīng) 注意什么?P1口、 P2口、 P3口為準(zhǔn)雙向口, P0口為三態(tài)雙向口。 P0口在需要進(jìn)行外部 ROM 、 R
29、AM 等擴(kuò)展時(shí),采用分時(shí)復(fù)用的方式; P1口是一個(gè)準(zhǔn)雙向口,只作通用的 I/O口使用; P2口也是一個(gè)準(zhǔn)雙向口, 可作為 IO 口和地址數(shù)據(jù)總線; P3口是一個(gè)多 功能的準(zhǔn)雙向口。 第一功能是作通用的 I/O口使用, 其功能和原理與 P1口相同。 第二功能是作控制和特殊功能口使用。14-2 什么是對(duì) I/O口的“讀 -修改 -寫”操作?“讀 -修改 -寫”類指令的端口輸出:如 CPL P0.0指令執(zhí)行時(shí),單片機(jī)內(nèi)部產(chǎn)生 “讀鎖存器”操作信號(hào),使鎖存器 Q 端的數(shù)據(jù)送到內(nèi)部總線,在對(duì)該位取反后, 結(jié)果又送回 P0.0的端口鎖存器并從引腳輸出。之所以是“讀鎖存器”而不是 “讀引腳”, 是因?yàn)檫@樣可
30、以避免因引腳外部電路的原因而使引腳的狀態(tài)發(fā)生改 變而造成的誤讀。如外部接一個(gè)驅(qū)動(dòng)晶體管的情況。14-3 8051單片機(jī)內(nèi)部設(shè)有幾個(gè)定時(shí) /計(jì)數(shù)器?它們是由哪些特殊功能寄存器組 成?兩個(gè)定時(shí) /計(jì)數(shù)器。定時(shí) /計(jì)數(shù)器 T0由特殊功能寄存器 TH0、 TL0(字節(jié)地址分別 為 8CH 和 8AH 構(gòu)成, 定時(shí) /計(jì)數(shù)器 T1由特殊功能寄存器 TH1、 TL1(字節(jié)地址分別 為 8DH 和 8BH 構(gòu)成。 其內(nèi)部還有一個(gè) 8位的定時(shí)器方式寄存器 TMOD 和一個(gè) 8位 的定時(shí)器控制寄存器 TCON 。這些寄存器之間是通過內(nèi)部總線和控制邏輯電路連 接起來的。 TMOD 主要是用于選定定時(shí)器的工作方式,
31、 TCON 主要是用于控制定時(shí) 器的啟動(dòng)和停止。14-4 定時(shí) /計(jì)數(shù)器用作定時(shí)器時(shí), 其定時(shí)時(shí)間與哪些因素有關(guān)?作計(jì)數(shù)器時(shí), 對(duì) 外界計(jì)數(shù)頻率有何限制?定時(shí)與時(shí)鐘頻率, 定時(shí)器的控制器的工作方式相關(guān)。 計(jì)數(shù)器則要求輸入信號(hào)的電 平應(yīng)在跳變后至少一個(gè)機(jī)器周期內(nèi)保持不變, 以保證在給定的電平再次變化前至 少被采樣一次,那么外界計(jì)數(shù)頻率不能超過系統(tǒng)時(shí)鐘頻率。14-5 簡(jiǎn)述定時(shí)器四種工作方式的特點(diǎn),如何選擇和設(shè)定?表 14-1 工作方式選擇M1M0 方式說明最大計(jì)數(shù)次數(shù)最大定時(shí)時(shí)間 fosc=6MHz00 0 13位定時(shí) /計(jì)數(shù)器 213=8192 8192×2s=16.384ms 01
32、1 16位定時(shí) /計(jì)數(shù)器 216=65536 65536×2s=131.072ms10 2 自動(dòng)裝入時(shí)間常數(shù)的 8位定時(shí) /計(jì)數(shù)器 28=256 256×2s=0.512ms11 3 對(duì) T0分為兩個(gè) 8位計(jì)數(shù)器;對(duì)T1在方式 3時(shí)停止工作 28=256 256×2s=0.512ms14-6 當(dāng)定時(shí)器 T0用作模式 3時(shí),由于 TRl 位已被 T0占用,如何控制定時(shí)器 T1的開啟和關(guān)閉?當(dāng)定時(shí)器 T0處于工作方式 3時(shí), 定時(shí) /計(jì)數(shù)器 Tl 可定為方式 0、 方式 l 和方式 2。 可以在 TOMD 中設(shè)置開啟和關(guān)閉。14-7 使用一個(gè)定時(shí)器,如何通過軟、硬件結(jié)
33、合的方法,實(shí)現(xiàn)較長(zhǎng)時(shí)間的定時(shí)? 定時(shí)器實(shí)現(xiàn)最大時(shí)間定時(shí),再由軟件計(jì)數(shù)。14-8 8051單片機(jī)定時(shí) /計(jì)數(shù)器作定時(shí)和計(jì)數(shù)時(shí),其計(jì)數(shù)脈沖分別由誰提供? 定時(shí)器的脈沖由系統(tǒng)時(shí)間給,計(jì)數(shù)脈沖由外部計(jì)數(shù)器給 .14-9 8051單片機(jī)定時(shí)器的門控制信號(hào) GATE 設(shè)置為 1時(shí),定時(shí)器如何啟動(dòng)?(GATE=1時(shí),用外部中斷引腳 (INT1或 INT0 上的高電平來啟動(dòng)定時(shí) /計(jì)數(shù)器運(yùn) 行。14-10 設(shè) 8051單片機(jī)的 fosc=12MHz,要求用 T0定時(shí) 150s ,分別計(jì)算采用定 時(shí)方式 l 和方式 2時(shí)的定時(shí)初值。方式 1 的初值 (216-X×1×10-6s=150
34、15;10-6s則 (TH1=0FFH, (TL1=6AH。方式 2 的初值 (28-X×1×10-6s=150×10-6s則 (TL1=6AH。14-11 設(shè) 8051單片機(jī)的 fosc =6MHz ,問定時(shí)器處于不同工作方式時(shí),最大定時(shí) 范圍分別是多少?方式 0 16.384ms方式 1 131.07ms方式 2 0.512ms方式 3 0.512ms14-12 以定時(shí) /計(jì)數(shù)器 1進(jìn)行外部事件計(jì)數(shù)。每計(jì)數(shù) 1000個(gè)脈沖后,定時(shí) /計(jì)數(shù) 器 1轉(zhuǎn)為定時(shí)工作方式。定時(shí) 10ms 后,又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。假定 單片機(jī)晶振頻率為 6MHz ,請(qǐng)使用方式
35、l 編程實(shí)現(xiàn)。JISHU: MOV TMOD #D0HMOV TH1,#03H ;寫入初值MOV TL1,#E8HSETB TR1LOOP: JNB TF1,LOOP ;(TF1=1,定時(shí)器溢出,程序跳轉(zhuǎn)LP: CLR TF1 ;清溢出標(biāo)志位DINGSHI: MOV TMOD #10HMOV TH1,# 0ECH ;寫入初值MOV TL1,# 7HSETB TR1LOOP1: JNB TF1,LOOP1 ;(TF1=1,定時(shí)器溢出,程序跳轉(zhuǎn)LP: CLR TF1 ;清溢出標(biāo)志位JMP JISHI14-13 8051單片機(jī) P1口上,經(jīng)驅(qū)動(dòng)器接有 8個(gè)發(fā)光二極管,若 fosc =6MHz ,試
36、編寫程序,使這 8個(gè)發(fā)光管每隔 2s 循環(huán)發(fā)光 (要求用 T1定時(shí) 。ORG 2000HMOV TMOD,#01H ;采用定時(shí)器 T0,工作方式 1MOV R7,#14HMOV R0,#FEH 點(diǎn)燈LOOP1:MOV TH0,#3CH ;寫入初值MOV TL0,#0B0HSETB TR0 ;啟動(dòng) T0LOOP: JNB TF0,LOOP ;(TF0=1,定時(shí)器溢出,程序跳轉(zhuǎn)CLR TF0MOV A,R0MOV P2,ARL AMOV R0,ADJNZ R7,LOOP1RETEND14-14 8051單片機(jī)的 P1口接 8個(gè)發(fā)光二極管 (正極通過電阻接 +5V,根據(jù) P3.0和 P3.1的電平編
37、程,且滿足下列要求:(1 當(dāng) P3.0為低電平時(shí),點(diǎn)亮其中的一個(gè)發(fā)光二極管;(2 當(dāng) P3.0為高電平、 P3.1 為低電平時(shí),點(diǎn)亮全部發(fā)光二極管;(3 當(dāng) P3.0、 P3.1都為高電平時(shí), 發(fā)光二極管按 4個(gè)一組, 每隔 50ms 輪流 反復(fù)點(diǎn)亮 (由 T0定時(shí), fosc =6MHz 。1. L1:MOV A,P3ANL A,#01HJNZ A,L1MOV P3,#FEH2. L1:MOV A,P3ANL A,#03HSUBB A,#01HJNZ A,L1MOV P3,#FFH3 L1:MOV A,P3ANL A,#03HSUBB A,#03HJNZ A,L1延時(shí)程序可參照 14-131
38、4-15 已知 8051單片機(jī)的 fosc=6MHz,請(qǐng)利用 T0和 P1.0輸出矩形波。矩形波 高電平寬 50s ,低電平寬度 300s 。參照例 14.1 高電平的初值為 FFE7,低電平初值為 FF6AORG 2000HMOV TMOD,#10H ;采用定時(shí)器 T1,工作方式 1MOV TH1,#0FFH ;寫入初值MOV TL1,#6AHSETB TR1 ;啟動(dòng) T1LOOP: JNB TF1,LOOP ;(TF1=1,定時(shí)器溢出,程序跳轉(zhuǎn)LP: CLR TF1 ;清溢出標(biāo)志位MOV TH1,#0FFH ;重新裝入初值MOV TL1,#E7HCPL P1.0 ;P1.0取反SJMP L
39、OOPEND14-16 已知 8051單片機(jī)的 fosc =12MHz ,用 T1定時(shí)。試編程由 P1.0和 P1.1引 腳分別輸出周期為 2ms 和 500s 的方波。參照例 14.1 500us初值為 FE0C 先輸出 500us 方波,然后用軟件計(jì)數(shù)輸出 2ms 的方波ORG 2000HMOV TMOD,#10H ;采用定時(shí)器 T1,工作方式 1MOV TH1,#0FEH ;寫入初值MOV TL1,#0CHMOV R1,#02HSETB TR1 ;啟動(dòng) T1LOOP: JNB TF1,LOOP ;(TF1=1,定時(shí)器溢出,程序跳轉(zhuǎn)LP: CLR TF1 ;清溢出標(biāo)志位MOV TH1,#0FEH ;重新裝入初值MOV TL1,#0CHCPL P1.1 ;P1.0取反DEC R1JNZ LOOPCPL P1.0SJMP LOOP END 14-17 8051 單片機(jī)的定時(shí)器在何種設(shè)置下可提供三個(gè) 8 位定時(shí)/計(jì)數(shù)器?這時(shí), 定時(shí)器 1 可作為串行口波特率發(fā)生器。 若波特率按 9600bps, 4800bps, 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宣傳活動(dòng)總結(jié)13篇
- 會(huì)議進(jìn)度管理制度
- 汽修廠客戶滿意度調(diào)查數(shù)據(jù)分析制度
- 黑龍江雞西圖書館招聘試題帶答案分析2024年
- 2024珠海城市職業(yè)技術(shù)學(xué)院?jiǎn)握小段锢怼纺M試題及完整答案詳解
- 2023年度“安全生產(chǎn)事故隱患排查”知識(shí)競(jìng)賽通關(guān)題庫一套附答案詳解
- 2024年“安全生產(chǎn)事故隱患排查”知識(shí)競(jìng)賽預(yù)測(cè)復(fù)習(xí)附答案詳解
- Module 4 Unit 1Thanksgiving is my favourite festival 教案外研版英語六年級(jí)上冊(cè)
- 高教版中職數(shù)學(xué)拓展模塊一下冊(cè)8.3.2 二項(xiàng)式系數(shù)的性質(zhì)課件
- 建筑公司設(shè)備物聯(lián)網(wǎng)數(shù)據(jù)采集管理制度
- 人因工程學(xué)課后習(xí)題及解答
- 供應(yīng)商管理培訓(xùn) 課件
- J波與J波綜合征課件
- 微整面部美學(xué)設(shè)計(jì)面部風(fēng)水設(shè)計(jì)課件
- 5噸龍門吊安裝與拆除專項(xiàng)施工方案
- 康復(fù)科護(hù)理質(zhì)量監(jiān)測(cè)指標(biāo)
- 農(nóng)藥基本常識(shí)課件
- 新教材 人教版高中英語必修第一冊(cè)全冊(cè)各單元知識(shí)點(diǎn)提煉匯總(單詞短語語法寫作等)
- 零星工程施工組織設(shè)計(jì)方案
- GM∕T 0031-2014 安全電子簽章密碼應(yīng)用技術(shù)規(guī)范
- 注塑模具皮紋制作知識(shí)簡(jiǎn)介課件
評(píng)論
0/150
提交評(píng)論