《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx

上傳人:小** 文檔編號(hào):20552173 上傳時(shí)間:2021-03-28 格式:DOCX 頁(yè)數(shù):40 大?。?4.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx_第1頁(yè)
第1頁(yè) / 共40頁(yè)
《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx_第2頁(yè)
第2頁(yè) / 共40頁(yè)
《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx_第3頁(yè)
第3頁(yè) / 共40頁(yè)

下載文檔到電腦,查找使用更方便

8 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx(40頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、《單片機(jī)原理與應(yīng)用》第三版趙德安課后習(xí)題答案.docx 第一章 1.單片機(jī)內(nèi)部至少包含哪些部件? 答:中央處理器CPU、I/O口、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM。 2.根據(jù)程序存儲(chǔ)器的差別,單片機(jī)可以分為哪幾種類型? 答:MCS-51系列單片機(jī)按片內(nèi)不同程序存儲(chǔ)器的配置來(lái)分,可以分為以下3種類型: 1、片內(nèi)帶Mask ROM(掩膜ROM)型:例如8051、80C51、805 2、80C52。此類芯片是由半導(dǎo)體廠家在芯片生產(chǎn)過(guò)程中,將用戶的應(yīng)用程序代碼通過(guò)掩膜工藝制作到ROM中。其應(yīng)用程序只能委托半導(dǎo)體廠家“寫入”,一旦寫入后不能修改。此類單片機(jī)適合大批量使用。 2、片內(nèi)帶E

2、PROM型:例如8751、87C51、8752。此類芯片帶有透明窗口,可通過(guò)紫外線擦除存儲(chǔ)器中的程序代碼,應(yīng)用程序可通過(guò)專門的編程器寫入到單片機(jī)中,需要更改時(shí)可擦除重新寫入。此類單片機(jī)價(jià)格較貴,不宜于大批量使用。 3、片內(nèi)帶EEPROM(電可擦可編程只讀存儲(chǔ)器)型:例如8951、89C51、8952。此類芯片可以在電腦上或?qū)S迷O(shè)備上擦除已有信息,重新編程。此類單片機(jī)目前應(yīng)用很廣。 4、片內(nèi)無(wú)ROM(ROMLess)型:例如8031、80C31、8032。此類芯片的片內(nèi)沒(méi)有程序存儲(chǔ)器,使用時(shí)必須在外部并行擴(kuò)展程序存儲(chǔ)器存儲(chǔ)芯片。此類單片機(jī)由于必須在外部并行擴(kuò)展程序存儲(chǔ)器存儲(chǔ)芯片,造成系統(tǒng)電路

3、復(fù)雜,目前較少使用。 3.單片機(jī)的主要特點(diǎn)是什么?它適宜構(gòu)成通用微機(jī)系統(tǒng)還是專用微機(jī)系統(tǒng)?為什么? 答:?jiǎn)纹瑱C(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。其主要特點(diǎn)如下: 1、價(jià)格便宜。 2、功能不大。只能專用在適用的領(lǐng)域,但在適用的領(lǐng)域中,性價(jià)比卻是最佳。 3、可靠性高,抗干擾能力強(qiáng)。 4、功耗比較低。對(duì)電源要求低,適用面廣。 5、外圍擴(kuò)

4、展能力強(qiáng)。可以應(yīng)用到不同的控制系統(tǒng)中。 根據(jù)其特點(diǎn)可知,單片機(jī)功能不大,不適宜構(gòu)成通用微機(jī)系統(tǒng),只適宜構(gòu)成專用微機(jī)系統(tǒng)。 4.研制微機(jī)應(yīng)用系統(tǒng)時(shí),應(yīng)如何選擇單片機(jī)的型號(hào)? 答:在單片機(jī)應(yīng)用研究系統(tǒng)開(kāi)發(fā)中,單片機(jī)是整個(gè)設(shè)計(jì)的核心。在進(jìn)行正式的單片機(jī)應(yīng)用研究系統(tǒng)開(kāi)發(fā)之前,需要根據(jù)不同單片機(jī)的特性,從中作出合理的選擇。 1.仔細(xì)調(diào)查市場(chǎng),盡量選用主流的、貨源充足的單片機(jī)型號(hào),這些器件使用比較廣泛,有許多設(shè)計(jì)資料供學(xué)習(xí)或參考。 2.盡量選擇所需硬件集成在單片機(jī)內(nèi)部的型號(hào),例如ADC、DAC、I2C、SPI和USB等。這樣便于整個(gè)控制系統(tǒng)的軟件管理,減少外部硬件的投入,縮小整體電路板的面積,從

5、而減少總體投資等。 3.對(duì)于手持設(shè)備,移動(dòng)設(shè)備或者其他需要低功耗的設(shè)備,盡量選擇低電壓、低功耗的單片機(jī)型號(hào),這樣可以減少能量的消耗,延長(zhǎng)設(shè)備的使用壽命。 4.在資金等條件允許的情況下,盡量選擇功能豐富,擴(kuò)展能力強(qiáng)的單片機(jī),這樣便于以 后的功能升級(jí)和擴(kuò)展。 5.對(duì)于體積有限制的產(chǎn)品,盡量選擇貼片封裝的單片機(jī)型號(hào),這樣可以減少電路板面積,從而降低硬件成本,同時(shí)也有助于電磁兼容設(shè)計(jì)。 第二章 1.分別寫出一個(gè)MCS-51中ROM、EPROM、無(wú)ROM型單片機(jī)的型號(hào)和內(nèi)部資源。其中哪個(gè)產(chǎn)品內(nèi)部具有固化的軟件?該軟件能否被所有用戶所使用?怎樣使用該種產(chǎn)品? 答:1、8051、80C51、8

6、052、80C52。此類芯片帶有4K字節(jié)的掩膜ROM,由半導(dǎo)體廠家在芯片生產(chǎn)過(guò)程中,將用戶的應(yīng)用程序代碼通過(guò)掩膜工藝制作到ROM中。其應(yīng)用程序只能委托半導(dǎo)體廠家“寫入”,一旦寫入后不能修改。 2、8751、87C51、8752。此類芯片帶有4K字節(jié)的EPROM,帶有透明窗口,可通過(guò)紫外線擦除存儲(chǔ)器中的程序代碼,應(yīng)用程序可通過(guò)專門的編程器寫入到單片機(jī)中,需要更改時(shí)可擦除重新寫入。 3、8031、80C31、8032。此類芯片片內(nèi)無(wú)ROM,使用時(shí)必須在外部并行擴(kuò)展程序存儲(chǔ)器芯片。 其中8051、80C51、8052、80C52等產(chǎn)品具有固化軟件,該軟件不能被所有用戶所使用,應(yīng)用程序只能委托半

7、導(dǎo)體廠家“寫入”。 2.MCS-51中無(wú)ROM型單片機(jī)在應(yīng)用中P2口和P0口能否直接作為輸入/輸出口連接開(kāi)關(guān)、指示燈之類的外圍設(shè)備?為什么? 答:不能。因?yàn)闊o(wú)ROM型單片機(jī)在應(yīng)用中必須擴(kuò)展程序存儲(chǔ)器,P0口必須作為地址總線的低8位及數(shù)據(jù)總線復(fù)用, P2口必須作為高8位地址總線送出高8位地址,因此P2口和P0口的輸出信號(hào)都是不穩(wěn)定的,不能直接作為輸入/輸出口連接開(kāi)關(guān)、指示燈之類的外圍設(shè)備。 3.什么是堆棧?8032的堆棧區(qū)可以設(shè)在什么地方?一般應(yīng)設(shè)在什么區(qū)域?如何實(shí)現(xiàn)?試舉例說(shuō)明。 答:堆棧是在片內(nèi)RAM中專門開(kāi)辟出來(lái)的一個(gè)區(qū)域,數(shù)據(jù)的存取是以"后進(jìn)先出"的結(jié)構(gòu)方式處理的。實(shí)質(zhì)上,堆棧就

8、是一個(gè)按照"后進(jìn)先出"原則組織的一段內(nèi)存區(qū)域。 堆棧操作指令PUSH direct、POP direct只能采用直接尋址方式,8032的片內(nèi)RAM中只有低128字節(jié)可以采用直接尋址方式訪問(wèn),因此,盡管8032片內(nèi)RAM的地址范圍是00H-0FFH,但堆棧區(qū)只可以設(shè)在內(nèi)部RAM中的00H-7FH的區(qū)域內(nèi),一般應(yīng)設(shè)在30H-7FH的范圍內(nèi)。 可以通過(guò)賦值的方式設(shè)置堆棧區(qū),如:MOV SP,#60H。 4.8031的內(nèi)部RAM中,哪些可以作為數(shù)據(jù)緩沖區(qū)? 答:8031內(nèi)部RAM的128字節(jié)均可以作為數(shù)據(jù)緩沖區(qū),但00H~1FH通常作為工作寄存器區(qū)使用,20H~2FH通常作為位尋址區(qū)使用。

9、5.對(duì)于8052單片機(jī),地址為90H的物理單元有哪些? 答:一個(gè)是P1口,P1口的物理地址就是90H,使用直接尋址方式訪問(wèn);還有一個(gè)是RAM 單元,必須使用寄存器間接尋址方式訪問(wèn)。 6.MCS-51單片機(jī)構(gòu)成系統(tǒng)時(shí),程序存儲(chǔ)器的容量最大是多少? 答:MCS-51單片機(jī)構(gòu)成系統(tǒng)時(shí),程序存儲(chǔ)器的容量最大是64KB。 7.當(dāng)單片機(jī)系統(tǒng)的程序存儲(chǔ)器的容量為8KB時(shí),程序存儲(chǔ)器的開(kāi)始地址為多少? 答:因?yàn)閱纹瑱C(jī)復(fù)位時(shí),PC=0000H,程序都是從0000H開(kāi)始執(zhí)行,所以無(wú)論何種情況,程序存儲(chǔ)器的開(kāi)始地址都必須是0000H。 8.MCS-51單片機(jī)構(gòu)成系統(tǒng)時(shí),外部數(shù)據(jù)存儲(chǔ)器的容量最大是多少?

10、 答:MCS-51單片機(jī)構(gòu)成系統(tǒng)時(shí),外部存儲(chǔ)器的容量最大是64KB。 9.當(dāng)單片機(jī)系統(tǒng)外部數(shù)據(jù)存儲(chǔ)器的容量為8KB時(shí),數(shù)據(jù)存儲(chǔ)器的開(kāi)始地址一定要是0000H嗎? 答:不一定。 10.什么是單片機(jī)的的節(jié)電方式? 答:MCS-51系列運(yùn)行時(shí)耗電小,還提供兩種節(jié)電工作方式——空閑方式和掉電方式。在單片機(jī)空閑時(shí)程序停止運(yùn)行,進(jìn)入待機(jī)狀態(tài),在接收到一個(gè)中斷時(shí)退出空閑方式,處理完后繼續(xù)進(jìn)入空閑方式,就這樣斷斷續(xù)續(xù)的工作以達(dá)到節(jié)電目的。 11.CHMOS型單片機(jī),進(jìn)入掉電方式時(shí),單片機(jī)的振蕩器是否工作?采用什么辦法能使單片機(jī)退出掉電方式? 答:不工作。在掉電方式中,振蕩器停止工作,單片機(jī)內(nèi)部所以

11、功能部件停止工作。在掉電方式期間,內(nèi)部RAM和寄存器的內(nèi)容維持不變。 退出掉電方式的唯一方法是硬件復(fù)位。 12.CHMOS型單片機(jī),進(jìn)入空閑方式時(shí),單片機(jī)的振蕩器是否工作?采用什么辦法能使單片機(jī)退出空閑方式? 答:工作。進(jìn)入空閑方式中,中斷、串行口和定時(shí)器繼續(xù)工作。CPU現(xiàn)場(chǎng)、內(nèi)部RAM和其他特殊功能寄存器內(nèi)容維持不變。 有兩種方法退出空閑方式,一是采用被允許的中斷源請(qǐng)求中斷;二是硬件復(fù)位,因?yàn)榭臻e方式中,振蕩器在工作,所以僅需兩個(gè)機(jī)器周期便完成復(fù)位。 第三章 1.指出下列指令中劃線操作數(shù)的尋址方式和指令的操作功能。 答:MOV A, #78H;立即尋址,將立即數(shù)送入累加器A

12、MOV A, 78H;直接尋址,將內(nèi)部RAM 78H單元內(nèi)容送累加器A MOV A, R6;寄存器尋址,將R6內(nèi)容送累加器A INC @R0;寄存器間接尋址,將指針R0指向的內(nèi)部RAM單元內(nèi)容加1 PUSH ACC;直接尋址,將累加器A的內(nèi)容入棧 RL A;寄存器尋址,將累加器A的內(nèi)容左移1位 CPL 30H;位尋址,將位變量30H的內(nèi)容取反 SJMP $;相對(duì)尋址,原地等待 MOVC A, @A+PC;基寄存器加變址寄存器間接尋址,程序存儲(chǔ)器PC和累加器A中內(nèi) 容相加形成ROM地址,取數(shù)送到累加器A。 2.指出下列指令中哪些是非法的? INC @R1 DEC DPTR

13、MOV A, @R2 MOV R1, @R0 MOV P1.1, 30H MOV #30H, A MOV 20H,21H MOV OV, 30H MOV A, @A+DPTR RRC 30H RL B ANL 20H,#30H XRL C, 30H 答:DEC DPTR DEC DPL MOV A, @R2 MOV A, @R1 MOV R1, @R0 MOV A, @R0 MOV P1.1, 30H MOV C, 30H和MOV P1.1, C MOV #30H, A MOV A, #30H MOV OV, 30H MOV C, 30H和MOV OV,C M

14、OV A, @A+DPTR MOVC A, @A+DPTR RRC 30H RRC A 因?yàn)樗械囊莆恢噶罹菍?duì)累積器A進(jìn)行的 RL B RL A XRL C, 30H 錯(cuò),因?yàn)槲徊僮髦噶钪校瑳](méi)有位的異或運(yùn)算 3.如何將1個(gè)立即數(shù)30H送入內(nèi)部RAM 90H單元?如何將立即數(shù)送特殊功能寄存器P1? 答:(1)MOV R0, #90H MOV @R0, #30H (2)MOV P1, #30H 4.執(zhí)行下列一段程序后,試分析有關(guān)單元內(nèi)容。 答:MOV PSW, #0; (PSW)=00H MOV R0, #30H; (R0)=30H MOV 30H, #40H (30H)=

15、40H MOV 40H, #50 (40H)=32H MOV A, @R0 (A)=40H ADDC A, #0CEH (A)=40H+0CEH+0=0EH PSW=10000001B=81H INC R0 (R0)=31H 最后的執(zhí)行結(jié)果:(R0)=31H, (30H)=40H, (40H)=32H, (A)=0EH, (PSW)=81H 5.試編寫一段程序,將內(nèi)部RAM 40H、41H單元內(nèi)容傳送到外部RAM 2000H、2001H單元中去。 答:MOV DPTR, #2000H MOV R0,#40H MOV A, @R0 MOVX @DPTR, A INC R0

16、 INC DPTR MOV A, @R0 MOVX @DPTR, A 6.試編寫一段程序,根據(jù)累加器A的內(nèi)容,到程序存儲(chǔ)器1000H起始的表格中取一雙字節(jié)數(shù),送內(nèi)部RAM 50H、51H單元。 答:MOV DPTR, #1000H PUSH ACC MOVC A, @A+DPTR MOV 50H, A POP ACC INC DPTR MOVC A, @A+DPTR MOV 51H, A 7.試編寫一段程序,進(jìn)行兩個(gè)16位數(shù)的相減運(yùn)算:6483H-56E2H。結(jié)果高8位存內(nèi)部RAM 40H,低8位存41H。 答:CLR C MOV A, #83H SUBB A,

17、#0E2H MOV 41H, A MOV A, #64H SUBB A, #56H MOV 40H, A 8.試編寫一段程序,將30H、31H單元中存放的BCD數(shù),壓縮成一個(gè)字節(jié)(原30H單元內(nèi)容為高位),并放入30H單元。 答:MOV A, 30H SWAP A ORL A, 31H MOV 30H, A 9.試編寫一段程序,將30H~32H單元中的壓縮BCD拆成6個(gè)單字節(jié)BCD數(shù),并放入33H 到38H單元。 答:MOV A, 30H MOV R0, #33H ACALL LP MOV A, 31H ACALL LP MOV A, 32H ACALL LP

18、 SJMP $ LP: MOV B, A ANL A, #0FH MOV @R0, A INC R0 MOV A, B SWAP A ANL A, #0FH MOV @R0, A INC R0 RET 10.設(shè)晶振頻率為6MHz,試編寫一個(gè)延時(shí)1ms的子程序,并利用該子程序,編寫一段主程序,在P1.0引腳上輸出高電平寬2ms、低電平寬1ms的方波信號(hào)。 答:機(jī)器周期T=2μs, 延時(shí)1ms的子程序應(yīng)運(yùn)行500T, 子程序?yàn)? DELAY: MOV R0, #248; 1T DJNZ R0, $; 2T NOP; 1T RET 2T 子程序運(yùn)行機(jī)器周期數(shù)為:1

19、T+248*2T+1T+2T=500T,500T=1ms 主程序?yàn)? MOV PSW, #00H LOOP: SETB P1.0 ACALL DELAY ACALL DELAY CLR P1.0 ACALL DELAY SJMP LOOP 第四章 1.試根據(jù)P1口和P3口的結(jié)構(gòu)特性,指出它們作為輸入口或第二功能輸入/輸出的條件。 答:P1口作為輸入口時(shí),相應(yīng)的口鎖存器必須先置“1”,使輸出場(chǎng)效應(yīng)管T截止,CPU 讀P1時(shí)才能準(zhǔn)確讀取外部電路的輸入信息。 同理,P3口作為第二功能I/O口時(shí),相應(yīng)的口鎖存器也必須先置“1”。 2.MCS-51中無(wú)ROM型單片機(jī),在應(yīng)用中P

20、0口和P2口能否直接作為輸入/輸出口連接開(kāi)關(guān)、指示燈之類的外圍設(shè)備?為什么? 答:不能。因?yàn)闊o(wú)ROM型單片機(jī)在應(yīng)用中必須擴(kuò)展程序存儲(chǔ)器,P0口必須作為地址總線的低8位及數(shù)據(jù)總線復(fù)用, P2口必須作為高8位地址總線送出高8位地址,因此P2口和P0口的輸出信號(hào)都是不穩(wěn)定的,不能直接作為輸入/輸出口連接開(kāi)關(guān)、指示燈之類的外圍設(shè)備。 3.什么是堆棧?堆棧的作用有哪些? 答:堆棧是在片內(nèi)RAM中專門開(kāi)辟出來(lái)的一個(gè)區(qū)域,數(shù)據(jù)的存取是以"后進(jìn)先出"的結(jié)構(gòu)方式處理的。實(shí)質(zhì)上,堆棧就是一個(gè)按照"后進(jìn)先出"原則組織的一段內(nèi)存區(qū)域。 作用:(1)子程序調(diào)用和中斷服務(wù)時(shí)CPU自動(dòng)將當(dāng)前PC值壓棧保存,返回時(shí)自

21、動(dòng)將PC 值彈出堆棧。 (2)保護(hù)現(xiàn)場(chǎng)/恢復(fù)現(xiàn)場(chǎng) (3)數(shù)據(jù)傳輸 4.MCS-51的T0、T1的定時(shí)器和計(jì)數(shù)器的方式差別是什么?試舉例說(shuō)明這兩種方式的用途。 答:MCS-51的T0、T1的定時(shí)器和計(jì)數(shù)器本質(zhì)上都是計(jì)數(shù)器, 定時(shí)器方式是對(duì)單片機(jī)內(nèi)部的機(jī)器周期數(shù)進(jìn)行計(jì)數(shù), 計(jì)數(shù)器方式是對(duì)T0、T1引腳上輸入的外部脈沖(方波)信號(hào)進(jìn)行計(jì)數(shù)。 定時(shí)器方式用來(lái)產(chǎn)生定時(shí)信號(hào),可用于串行通信,也可以通過(guò)口輸出脈沖和方波信號(hào);計(jì)數(shù)器方式可以用來(lái)檢測(cè)外部信號(hào)的頻率和脈寬。 5.晶振為12MHz,用T0產(chǎn)生1ms的定時(shí),可以選擇哪幾種方式?分別寫出定時(shí)器的方式字和計(jì)數(shù)初值。如需要1s的定時(shí),應(yīng)如何實(shí)現(xiàn)

22、? 答:由于定時(shí)器工作在方式2和方式3下時(shí)的最大定時(shí)時(shí)間只有0.256ms,因此要想獲得1ms的定時(shí)時(shí)間,定時(shí)器必須工作在方式0或方式1。機(jī)器周期T =121/1210-6s=1μs,計(jì)數(shù)值T計(jì)數(shù)=1ms/1μm=1000。 1、采用方式0,定時(shí)器的方式字TMOD=00H,定時(shí)器的計(jì)數(shù)初值為TC= M-T/ T計(jì)數(shù) =213-1*103/1=7192=1C18H,TH0應(yīng)裝#1CH;TL0應(yīng)裝#18H。 2、采用方式1,定時(shí)器的方式字TMOD=01H,定時(shí)器的計(jì)數(shù)初值為TC= M-T/ T計(jì)數(shù) =216-1*103/1=64536=FC18H,TH0應(yīng)裝#0FCH;TL0應(yīng)裝#18H

23、。 如需要1s的定時(shí),可以采用查詢相應(yīng)溢出標(biāo)志位,結(jié)合軟件計(jì)數(shù)100循環(huán),即可實(shí)現(xiàn)1s的定時(shí)。 6.晶振為12MHz,如何用T0來(lái)測(cè)試20Hz~1000Hz之間的方波信號(hào)(設(shè)高低電平寬度相同)的周期?又如何測(cè)試頻率為0.5MHz左右的脈沖頻率? 答:1、使用定時(shí)器方式,利用方波的邊沿觸發(fā)定時(shí)器的開(kāi)始與結(jié)束,比如使用上升沿來(lái)啟動(dòng)定時(shí)器計(jì)數(shù),機(jī)器周期T為1μs,下降沿停止計(jì)數(shù)。依據(jù)計(jì)數(shù)值N計(jì)算周期,周期=2N*T。 2、T0工作在計(jì)數(shù)器方式,待測(cè)試的脈沖信號(hào)引入T0引腳計(jì)數(shù),同時(shí)T1工作在定時(shí)器方式,定時(shí)1ms,1ms定時(shí)結(jié)束時(shí)取T0計(jì)數(shù)值,脈沖頻率=1000* T0計(jì)數(shù)值。 7.若晶振

24、為11.0592MHz,串行口工作于方式1、波特率為4800bit/s,分別寫出用T1、T2作為波特率發(fā)生器的方式字和計(jì)數(shù)初值。 答:T1作為波特率發(fā)生器。 由:波特率=2SMOD*振蕩器頻率/[32*12*(256-X)] 設(shè)SMOD=0,可得,4800=20*11059200/32/12/(256-X),可得的計(jì)數(shù)初值X=250=0FAH,將X值裝入TH1中,TMOD=20H。 MOV TMOD,#20H; T1方式2 MOV TH1,#0FAH T2作為波特率發(fā)生器,需對(duì)T2CON(置“1”TCLK、RCLK)、TH2、TL2、RCAP2H、RCAP2L 初始化編程,再置“1

25、”TR2,具體略。 8.串行口方式0能否外接多個(gè)74LS164?若不可以,說(shuō)明原因;若可以,畫出邏輯框圖并說(shuō)明數(shù)據(jù)輸出方法。 答:串口工作方式0時(shí),可以外接多個(gè)74LS164。此時(shí)TXD用于發(fā)送同步脈沖接74LS164的CLK端,RXD用于發(fā)送數(shù)據(jù)接第一片74LS164的數(shù)據(jù)輸入端DSA和DSB,74LS164的/CR 和Vcc端接+5V,Vss端接地,后一片74LS164的數(shù)據(jù)輸入端DSA和DSB接前一片74LS164的Q7。只要將數(shù)據(jù)載入SUBF之后,時(shí)鐘脈沖和數(shù)據(jù)就會(huì)自動(dòng)出現(xiàn)在單片機(jī)的I/O端口,程序不需要對(duì)I/O口再進(jìn)行干預(yù)。出現(xiàn)在74LS164的數(shù)據(jù)低位在右,高位在左。將數(shù)據(jù)多次

26、載入SUBF,就可以在多個(gè)74LS164的輸出端得到穩(wěn)定的數(shù)據(jù)。 邏輯框圖略,可參考教材的例4-8. 9.MCS-51的中斷處理程序能否存儲(chǔ)在64KB程序存儲(chǔ)器的任意區(qū)域?若可以,如何實(shí)現(xiàn)? 答:可以。因?yàn)槊總€(gè)中斷源的中斷入口地址處均預(yù)留了8個(gè)單元的空間,8個(gè)單元足夠存放一條跳轉(zhuǎn)指令,使程序轉(zhuǎn)向64KB程序存儲(chǔ)區(qū)的任意區(qū)域。 在相應(yīng)的中斷入口使用JMP指令進(jìn)行跳轉(zhuǎn)就可以實(shí)現(xiàn)。 10.在一個(gè)8031系統(tǒng)中,晶振為12MHz,一個(gè)外部中斷請(qǐng)求信號(hào)是一個(gè)寬度為500ms 的負(fù)脈沖,則應(yīng)該采用哪種中斷觸發(fā)方式,如何實(shí)現(xiàn)? 答:應(yīng)該采用邊沿觸發(fā)方式,采用SETB IT0或 SETB IT1即

27、可。若采用電平觸發(fā)方式,由于外部中斷請(qǐng)求信號(hào)長(zhǎng)期存在,可能會(huì)引起重復(fù)中斷。 11.若外部中斷請(qǐng)求信號(hào)是一個(gè)低電平有效的信號(hào),是否一定要選擇電平觸發(fā)方式?為什么? 答:不一定。因?yàn)椴捎眠呇赜|發(fā),能自動(dòng)鎖存中斷信號(hào),是一種可靠的中斷管理方式。 第五章 1.若晶振為6MHz,試編寫一個(gè)2ms延時(shí)子程序。 答:晶振為6MHz,機(jī)器周期T為2μs,應(yīng)計(jì)滿1000個(gè)T。 DELAY: MOV R7, #10 DLY0: MOV R6, #49 DLY1: DJNZ R6, DLY1;2T DJNZ R7, DLY0;2T RET 2.試編制一個(gè)子程序,對(duì)串行口初始化,使串行口以方式1

28、,波特率1200bit/s(晶振 為11.059MHz)發(fā)送字符串“MCS-51”。 答:ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H SETB TR1 MOV SCON,#42H MOV R4,#0 MOV DPTR,#TAB FS1: MOV A,R4 MOVC A,@A+DPTR CJNE R4,#6,FS2 SJMP FSJS FS2: JBC TI,FS3 SJMP FS2 FS3: MOV SBUF,A INC R4 SJMP FS1

29、 FSJS: SJMP $ TAB: ‘M’,‘C’,‘S’,‘-’,‘5’,‘1’ END 3.晶振為11.059MHz,串行口工作與方式3,波特率為2400bit/s,第9位數(shù)據(jù)為奇校驗(yàn)位。編制一個(gè)程序,對(duì)串行口初始化,并用查詢方式接受串行口上輸入的10個(gè)字符存入內(nèi)部RAM中30H開(kāi)始的區(qū)域。 答: RECS: MOV SCON,#0D0H ;串行口方式3允許接收 MOV TMOD,#20H ;T1方式2定時(shí) MOV TL1, #0F4H ;寫入T1時(shí)間常數(shù) MOV TH1, #0F4H ;啟動(dòng)T1 MOV R0, #30H ;設(shè)數(shù)據(jù)指針 MOV R7, #10 ;

30、接收數(shù)據(jù)長(zhǎng)度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;取一個(gè)接收字符 JNB P,COMP ;奇偶校驗(yàn) JNB RB8,ERR ;P≠RB8,數(shù)據(jù)出錯(cuò) SJMP RIGHT ;P=RB8,數(shù)據(jù)正確 COMP: JB RB8,ERR RIGHT: MOV @R0,A ;保存一個(gè)字符 INC R0 ;修改指針 DJNZ R7,WAIT ;全部字符接收完? CLR F0 ;F0 =0,接收數(shù)據(jù)全部正確 ERR: SETB F0 ;F0 =1,接收數(shù)據(jù)出錯(cuò) RET 4.寫一個(gè)子程序,其功能是將(R0)指出

31、的兩個(gè)RAM單元中的數(shù)轉(zhuǎn)化為ASCII字符,并用查詢方式從串行口上發(fā)送出去。 答:設(shè)串行口以方式1工作,波特率為1200bit/s,晶振為11.059MHz。 ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H SETB TR1 MOV SCON,#42H MOV R4,#2 FS1: MOV A,@R0 ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR FS2: JBC TI,FS3 SJMP FS2 FS3: MOV SBUF

32、,A INC R0 DJNZ R4,FS1 FSJS: SJMP $ TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,41H,43H,44H,45H,46H END 5.試編寫一個(gè)子程序?qū)⒆址癕CS-51 Microcomputer”裝入外部RAM 8000H開(kāi)始的顯示緩沖區(qū)。 答:ORG 0000H AJMP 0030H MIAN: MOV DPTR,#8000H MOV R1,#0 MOV R0,#20 LOOP: MOV A,R1 ADD A,#6 MOVC A,@A+PC MOVX @DPTR,A

33、 INC DPTR INC R1 DJNZ R0,LOOP SJMP $ TAB:DB‘MCS-51 Microcomputer’ END 6.試設(shè)計(jì)一個(gè)n字節(jié)的無(wú)符號(hào)十進(jìn)制數(shù)加法子程序,其功能為將(R0)和(R1)指出的內(nèi)部RAM中兩個(gè)n字節(jié)壓縮BCD碼無(wú)符號(hào)十進(jìn)制數(shù)相加,結(jié)果存放于被加數(shù)單元中。子程序入口時(shí),R0,R1分別指向被加數(shù)和加數(shù)的低位字節(jié),字節(jié)數(shù)n存于R2,出口時(shí)R0指向和的最高位字節(jié),CY為進(jìn)位位。 答: LEN EQU n ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SP. #60H MOV R2, #LEN AC

34、ALL ADD_NBYTE SJMP $ ADD_NBYTE: CLR C LOOP: MOV A, @R0 ADDC A, @R1 DA A MOV @R0, A INC R0 INC R1 DJNZ R2, LOOP RET END 7.試設(shè)計(jì)一個(gè)n字節(jié)的無(wú)符號(hào)十進(jìn)制數(shù)減法子程序,其功能是將R0指出的內(nèi)部RAM中n字節(jié)無(wú)符號(hào)壓縮BCD碼減去(R1)指出的內(nèi)部RAM中n字節(jié)無(wú)符號(hào)壓縮BCD碼,結(jié)果存放在被減數(shù)單元中。子程序入口時(shí),R0,R1分別指向被減數(shù)和減數(shù)的低位字節(jié),字節(jié)數(shù)n存于R2,出口R0指向差的高位字節(jié),CY=1為正,CY=0為負(fù),結(jié)果為補(bǔ)碼。 答:以n=

35、2為例。 1.將2字節(jié)無(wú)符號(hào)壓縮BCD碼被減數(shù)轉(zhuǎn)換4位BCD碼,存入60H~63H,再轉(zhuǎn)換為二進(jìn)制數(shù), 存R3R4。 MOV A,@R0 ANL A,#0FH MOV 63H,A MOV A,@R0 SWAP A ANL A,#0FH MOV 62H,A INC R0 MOV A,@R0 ANL A,#0FH MOV 63H,A MOV A,@R0 SWAP A ANL A,#0FH MOV 62H,A DTB:MOV R0,#60H MOV R3,#3 MOV R3,#0 MOV A,@R0 MOV R4,A LOOP:MOV A,R4 MOV

36、 B,#10 MUL AB MOV R4,A MOV A,B XCH A,R3 MOV B,#10 MUL AB ADD A,R3 MOV R3,A INC R0 MOV A,R4 ADD A,@R0 MOV R4,A MOV A,R3 ADDC A,#0 MOV R3,A DJNZ R2,LOOP 2.用相同程序可將2字節(jié)無(wú)符號(hào)壓縮BCD碼減數(shù)轉(zhuǎn)換4位BCD碼,存入60H~63H,再轉(zhuǎn)換 為二進(jìn)制數(shù),存R5R6。 3.雙字節(jié)無(wú)符號(hào)數(shù)減法程序,差存入R7R1 NSUB1:MOV A,R4 CLR C SUBB A,R6 MOV R1,A MOV

37、A,R3 SUBB A,R5 MOV R7,A JBC POUT CMPT:MOV A,R1;負(fù)數(shù)求補(bǔ) CPL A ADD A,#1 MOV R1,A MOV A,R7 CPL A ADDC A,#0 MOV @R0,A DEC R0 MOV @R0,R1 INC R0 RET 8.試設(shè)計(jì)一個(gè)子程序,其功能為判斷R2R3R4R5中的壓縮BCD碼十進(jìn)制數(shù)最高位是否為0,若最高位為0,且該十進(jìn)制數(shù)不為0,則通過(guò)左移使最高位不為0。 略 9.試設(shè)計(jì)一個(gè)雙字節(jié)無(wú)符號(hào)整數(shù)乘法子程序,其功能將R3R2和R5R4相乘,積存于30H-33H單元。 答:MULTB: CLR

38、 A MOV 30H, A MOV 31H, A MOV 32H, A MOV 33H, A MOV R0,#30H MOV A,R2 MOV B,R4 MUL AB ACALL RADD MOV A,R2 MOV B,R5 MUL AB DEC R0 ACALL RADD MOV A,R4 MOV B,R3 MUL AB DEC R0 DEC R0 ACALL RADD MOV A,R5 MOV B,R3 MUL AB DEC R0 ACALL RADD SJMP $ RADD: ADD A,@R0 MOV @R0,A MOV A,B

39、 INC R0 ADDC A,@R0 MOV @R0,A INC R0 MOV A,@R0 ADDC A,#00H MOV @R0,A RET 10.試設(shè)計(jì)一個(gè)子程序,其功能將無(wú)符號(hào)二進(jìn)制整數(shù)R2R3R4R5除以R6R7,其商存放于30H,31H單元,余數(shù)存于R2R3。 略 11.試設(shè)計(jì)一個(gè)子程序,其功能為將R0指出的內(nèi)部RAM中6個(gè)單字節(jié)正整數(shù)按從小到大的次序重新排列。 答: ORG 0200H MOV 30H,#6 SUM1 EQU 30H SUM2 EQU 31H LOOP1: MOV A,R0 INC A MOV R1,A MOV SUM2,SU

40、M1 DJNZ SUM1,LOOP2 SJMP DONE LOOP2: DJNZ SUM2,LOOP3 SJMP LOOP1 LOOP3: MOV A,@R0 CLR C SUBB A,@R1 JC NEXT XCH A,@R1 MOV @R0,A NEXT: INC R0 INC R1 SJMP LOOP2 DONE: END 12.試設(shè)計(jì)一個(gè)子程序,其功能為應(yīng)用查表指令:MOVC A,@A+PC,求累加器A的平方值,結(jié)果送入A,入口時(shí)A答:MEMO:INC A MOVC A,@A+PC RET TAB: DB 0,1,4,9,16,25,36,49 D

41、B 64,81,100,121,144,169,196,225 13.試設(shè)計(jì)一個(gè)子程序,其功能將R0指出的內(nèi)部RAM中雙字節(jié)壓縮BCD碼轉(zhuǎn)化為二進(jìn)制數(shù)存放于R1指出的內(nèi)部RAM中,并將結(jié)果再轉(zhuǎn)化為BCD碼存放于30H開(kāi)始的單元中。 答:先將壓縮BCD碼轉(zhuǎn)化為BCD碼存放于30H開(kāi)始的單元中 MOV R2,R0 MOV A,@R0 PUSH ACC ANL A,#0FH MOV 30H,A POP ACC SWAP A ANL A,#0FH MOV 31H,A INC R0 MOV A,@R0 PUSH ACC ANL A,#0FH MOV 32H,A POP

42、ACC SWAP A ANL A,#0FH MOV 33H,A MOV A,31H; (( R1))=(31H)*10+(30H) MOV B,#10 MUL AB ADD A,30H MOV @R1,A MOV A,32H; ((R1)+1)(( R1))=(32H)*100+(( R1)) MOV B,#100 MUL AB ADD A,@R1 MOV @R1,A INC R1 MOV A,B ADDC A,@R1 MOV @R1,A MOV A,33H; ((R1)+1)(( R1))= (33H)*1000+((R1)+1)(( R1)) MOV

43、B,#232 MUL AB DEC R1 ADD A,@R1 PUSH PSW MOV @R1,A INC R1 MOV @R1,B MOV A,33H MOV B,#3 MUL AB POP PSW ADDC A,@R1 MOV @R1,A 14.若晶振為6MHz,用T0產(chǎn)生500us的定時(shí)中斷,試編寫有關(guān)的初始化程序和對(duì)時(shí)鐘進(jìn)行計(jì)數(shù)的T0中斷服務(wù)程序。時(shí)鐘計(jì)數(shù)單元為:30H,31H,32H,分別存放壓縮BCD碼的時(shí)分秒?yún)?shù)。 答:晶振為6MHz,機(jī)器周期T為2μs,500us=250T,T0可以工作在方式2。有關(guān)的初始化程序和對(duì)時(shí)鐘進(jìn)行計(jì)數(shù)的T0中斷服務(wù)程序如

44、下: ORG 0000H SJMP MAIN ORG 000BH SJMP PT0 ORG 0030H MAIN: MOV TMOD,#02H MOV TH0,#6 MOV IE,82H SETB TR0 CLR A MOV 30H,A MOV 31H,A MOV 32H,A MOV 33H,A MOV 34H,A MOV 35H,A MOV R7,#40 MOV R6,#50 SJMP $ PT0: DJNZ R7,A1 MOV R7,#40 DJNZ R6,A1 MOV R6,#50 INC 33H CJNE 33H,#60,A2 MOV

45、 33H,#0 INC 34H CJNE 34H,#60,A3 MOV 34H,#0 MOV 31H,#0 INC 35H CJNE 35H,#24,A4 MOV 35H,#0 MOV 32H,#0 A1: RETI A2: MOV A,33H MOV B,#10 DIV AB SWAP A MOV 30H,B MOV R0,#30H XCHD A,@R0 MOV 30H,A SJMP A1 A3: MOV A,34H MOV B,#10 DIV AB SWAP A MOV 31H,B MOV R0,#31H XCHD A,@R0 MOV 3

46、1H,A SJMP A1 A4: MOV A,35H MOV B,#10 DIV AB SWAP A MOV 32H,B MOV R0,#32H XCHD A,@R0 MOV 32H,A SJMP A1 15.在一個(gè)8031系統(tǒng)中,晶振為12MHz,P1口上輸入8路脈沖,頻率為0.1-3Hz,現(xiàn)用T0產(chǎn)生1ms定時(shí),由T0中斷服務(wù)程序讀P1口的狀態(tài),若發(fā)生上跳則該路軟件計(jì)數(shù)單元加1,每到1分鐘將各路計(jì)數(shù)值拆分成2位十六進(jìn)制數(shù)送顯示緩沖區(qū)70H-7FH,并清零各計(jì)數(shù)器,試編寫有關(guān)程序。 答:設(shè)置8路脈沖計(jì)數(shù)值緩沖區(qū)60H-67H,機(jī)器周期T=1μs,1ms=1000T,T

47、0工作在方式1, SJMP MAIN ORG 000BH SJMP PT0 ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#0FCH MOV TL0,#18H MOV IE,82H SETB TR0 CLR A MOV 60H,A MOV 61H,A MOV 62H,A MOV 63H,A MOV 64H,A MOV 65H,A MOV 66H,A MOV 67H,A MOV 70H,A MOV 71H,A MOV 72H,A MOV 73H,A MOV 74H,A MOV 75H,A MOV 76H,A MOV 77H

48、,A MOV 78H,A MOV 79H,A MOV 7AH,A MOV 7BH,A MOV 7CH,A MOV 7DH,A MOV 7EH,A MOV 7FH,A MOV R7,#8 MOV R0,#60H MOV R1,#70H MOV 68H,P1 MOV 69H,P1 SJMP $ PT0: MOV 6AH,P1 MOV 6BH,P1 PUSH ACC A3: MOV A,68H RRC A MOV 68H,A JC A0 MOV A,6AH RRC A MOV 6AH,A JNC A1 INC @R0 MOV A,@R0 ANL A

49、,#0FH MOV @R1,A MOV A,@R0 SWAP A ANL A,#0FH INC R1 MOV @R1,A DEC R1 A2: INC R0 INC R1 INC R1 DJNZ R7,A3 MOV 68H,6BH POP ACC RETI A0: MOV A,6AH RRC A MOV 6AH,A A1: SJMP A2 16.在某應(yīng)用系統(tǒng)中,有A-T20個(gè)單字符合法命令,這些命令的處理程序入口地址依次存放在標(biāo)號(hào)為CADR開(kāi)始的地址表中,若輸入的命令字符存放于A,試編寫一個(gè)散轉(zhuǎn)程序,其功能為:若(A)為非法字符,則轉(zhuǎn)CDER;若為合法字符,則轉(zhuǎn)相應(yīng)的入口地址。 答:A-T字符對(duì)應(yīng)的ASC碼16進(jìn)制數(shù)為41H-54H, 散轉(zhuǎn)程序?yàn)椋? PUSH ACC CLR C SUBB A,#55H JNC CDER POP ACC PUSH ACC CLR C SUBB A,#41H JC CDER POP ACC MOV B,#3 MUL AB MOV DPTR,#CADR JMP @A+DPTR CADR:LJMP PGA LJMP PGB … CDER:非法字符處理

展開(kāi)閱讀全文
溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!