單片微型計(jì)算機(jī)原理胡乾斌課后習(xí)題答案_第1頁
單片微型計(jì)算機(jī)原理胡乾斌課后習(xí)題答案_第2頁
單片微型計(jì)算機(jī)原理胡乾斌課后習(xí)題答案_第3頁
單片微型計(jì)算機(jī)原理胡乾斌課后習(xí)題答案_第4頁
單片微型計(jì)算機(jī)原理胡乾斌課后習(xí)題答案_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、習(xí)題11.1什么是單片微型計(jì)算機(jī)?答:單片微型計(jì)算機(jī)是將計(jì)算機(jī)的基本部件微型化并集成到一塊芯片上的微型計(jì)算機(jī),是計(jì)算機(jī)微型化的典型代表之一,通常片內(nèi)都含有CPU、ROM、RAM、并行I/O、串行I/O、定時(shí)器/計(jì)數(shù)器、中斷控制、系統(tǒng)時(shí)鐘及系統(tǒng)總線等。1.2單片機(jī)的發(fā)展經(jīng)歷了哪幾個(gè)階段?在哪一階段確立了單片機(jī)在嵌入式應(yīng)用中的地位。答:單片機(jī)初級階段(19741976年),芯片化探索階段(19761978年),8位單片機(jī)成熟階段(19781982年),從SCM向MCU過渡階段(19831990年),MCU百花齊放階段(1990年至今)。其中,芯片化探索階段(19761978年)確立了單片機(jī)在嵌入式

2、應(yīng)用中的地位。1.3 單片機(jī)可分為幾個(gè)系列?簡述每個(gè)系列的主要特性。答:單片機(jī)按系列可分為80C51系列、PIC系列和AVR系列等。PIC系列單片機(jī)是Micro Chip公司的產(chǎn)品,與51系列單片機(jī)不兼容。1) PIC系列單片機(jī)最大的特點(diǎn)是從實(shí)際出發(fā),重視產(chǎn)品的性能與價(jià)格比,發(fā)展多種型號來滿足不同層次的應(yīng)用要求。2) 精簡指令使其執(zhí)行效率大為提高。3) 產(chǎn)品上市零等待(Zero time to market)。4) PIC有優(yōu)越開發(fā)環(huán)境。5) 其引腳具有防瞬態(tài)能力,通過限流電阻可以接至220V交流電源,可直接與繼電器控制電路相連,無須光電耦合器隔離,給應(yīng)用帶來極大方便。6) 徹底的保密性。7)

3、 自帶看門狗定時(shí)器,可以用來提高程序運(yùn)行的可靠性。8) 睡眠和低功耗模式。AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機(jī)。AVR單片機(jī)的主要特性1) AVR單片機(jī)以字作為指令長度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令都是如此),取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。2) AVR單片機(jī)硬件結(jié)構(gòu)采取8位機(jī)與16位機(jī)的折中策略,即采用局部寄存器堆(32個(gè)寄存器文件)和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器

4、及相應(yīng)控制邏輯)。提高了指令執(zhí)行速度(1MIPS/MHz),克服了瓶頸現(xiàn)象;同時(shí)又減少了對外設(shè)管理的開銷,相對簡化了硬件結(jié)構(gòu),降低了成本。3) AVR單片機(jī)內(nèi)嵌高質(zhì)量的Flash程序存儲器,擦寫方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開發(fā)、生產(chǎn)、更新。4) AVR單片機(jī)的I/O線全部帶可設(shè)置的上拉電阻、可單獨(dú)設(shè)定為輸入/輸出、可設(shè)定(初始)高阻輸入、驅(qū)動能力強(qiáng)(可省去功率驅(qū)動器件)等特性,使得I/O口資源靈活、功能強(qiáng)大、可充分利用。5) AVR單片機(jī)片內(nèi)具備多種獨(dú)立的時(shí)鐘分頻器,分別供URAT、I2C、SPI使用。6) 增強(qiáng)性的高速同/異步串口,具有硬件產(chǎn)生校驗(yàn)碼、硬件檢測和校驗(yàn)幀錯(cuò)、兩級接

5、收緩沖、波特率自動調(diào)整定位(接收時(shí))、屏蔽數(shù)據(jù)幀等功能,提高了通信的可靠性,方便程序編寫,更便于組成分布式網(wǎng)絡(luò)和實(shí)現(xiàn)多機(jī)通信系統(tǒng)的復(fù)雜應(yīng)用,串口功能大大超過MCS-51/96單片機(jī)的串口,加之AVR單片機(jī)高速,中斷服務(wù)時(shí)間短,故可實(shí)現(xiàn)高波特率通訊。 7) 面向字節(jié)的高速硬件串行接口TWI、SPI。TWI與I2C接口兼容,具備ACK信號硬件發(fā)送與識別、地址識別、總線仲裁等功能,能實(shí)現(xiàn)主/從機(jī)的收/發(fā)全部4種組合的多機(jī)通信。SPI支持主/從機(jī)等4種組合的多機(jī)通信。8) AVR單片機(jī)有自動上電復(fù)位電路、獨(dú)立的看門狗電路、低電壓檢測電路BOD,多個(gè)復(fù)位源(自動上電復(fù)位、外部復(fù)位、看門狗復(fù)位、BOD復(fù)位

6、),可設(shè)置的啟動后延時(shí)運(yùn)行程序,增強(qiáng)了嵌入式系統(tǒng)的可靠性。9) AVR單片機(jī)具有多種省電休眠模式,且可寬電壓運(yùn)行(52.7V),抗干擾能力強(qiáng),可降低一般8位機(jī)中的軟件抗干擾設(shè)計(jì)工作量和硬件的使用量。10) AVR單片機(jī)技術(shù)體現(xiàn)了單片機(jī)集多種器件(包括FLASH程序存儲器、看門狗、EEPROM、同/異步串行口、 TWI、SPI、A/D模數(shù)轉(zhuǎn)換器、定時(shí)器/計(jì)數(shù)器等)和多種功能(增強(qiáng)可靠性的復(fù)位系統(tǒng)、降低功耗抗干擾的休眠模式、品種多門類全的中斷系統(tǒng)、具有輸入捕獲和比較匹配輸出等多樣化功能的定時(shí)器/計(jì)數(shù)器、具有替換功能的I/O端口等)于一身,充分體現(xiàn)了單片機(jī)技術(shù)的從“片自為戰(zhàn)”向“片上系統(tǒng)SOC”過渡

7、的發(fā)展方向1.4 簡述單片機(jī)技術(shù)發(fā)展的趨勢。答:(1)單片機(jī)的大容量化單片機(jī)內(nèi)存儲器容量進(jìn)一步擴(kuò)大。以往片內(nèi)ROM為1KB8KB,RAM為64字節(jié)256字節(jié)?,F(xiàn)在片內(nèi)ROM可達(dá)40KB,片內(nèi)RAM可達(dá)4KB,I/O也不需再外加擴(kuò)展芯片。OTPROM、Flash ROM成為主流供應(yīng)狀態(tài)。而隨著單片機(jī)程序空間的擴(kuò)大,在空余空間可嵌入實(shí)時(shí)操作系統(tǒng)RTOS等軟件。這將大大提高產(chǎn)品的開發(fā)效率和單片機(jī)的性能。(2)單片機(jī)的高性能化高性能化主要是指進(jìn)一步改進(jìn)CPU的性能,加快指令運(yùn)算的速度和提高系統(tǒng)控制的可靠性。采用精簡指令集(RISC)結(jié)構(gòu),可以大幅度提高運(yùn)行速度。并加強(qiáng)位處理功能、中斷和定時(shí)控制功能;采

8、用流水線結(jié)構(gòu),指令以隊(duì)列形式出現(xiàn)在CPU中,因而具有很高的運(yùn)算速度,有的甚至采用多級流水線結(jié)構(gòu)。單片機(jī)的擴(kuò)展方式從并行總線到發(fā)展出各種串行總線,并被工業(yè)界接受,形成一些工業(yè)標(biāo)準(zhǔn)。如I2C、SPI串行總線等。它們采用3條數(shù)據(jù)總線代替現(xiàn)行的8條數(shù)據(jù)總線,從而減少了單片機(jī)引線,降低了成本。單片機(jī)系統(tǒng)結(jié)構(gòu)更加簡化及規(guī)范化。(3)單片機(jī)的小容量低廉化小容量低廉的4位、8位機(jī)也是單片機(jī)發(fā)展方向之一。其用途是把以往用數(shù)字邏輯電路組成的控制電路單片化。專用型的單片機(jī)將得到大力發(fā)展。使用專用單片機(jī)可最大限度地簡化系統(tǒng)結(jié)構(gòu),提高可靠性,使資源利用率最高。在大批量使用時(shí)有可觀的經(jīng)濟(jì)效益。(4)單片機(jī)的外圍電路內(nèi)裝化

9、隨著集成度的不斷提高,可以把眾多的外圍功能器件集成到單片機(jī)內(nèi)。除了CPU、ROM、RAM外,還可把A/D、D/A轉(zhuǎn)換器、DMA控制器、聲音發(fā)生器、監(jiān)視定時(shí)器、液晶驅(qū)動電路、鎖相電路等一并集成在芯片內(nèi)。為了減少外部的驅(qū)動芯片,進(jìn)一步增強(qiáng)單片機(jī)的并行驅(qū)動能力。有的單片機(jī)可直接輸出大電流和高電壓,以便直接驅(qū)動顯示器。為進(jìn)一步加快I/O口的傳輸速度,有的單片機(jī)還設(shè)置了高速I/O口,可用最快的速度驅(qū)動外部設(shè)備,也可以用最快的速度響應(yīng)外部事件。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,把所需要的外圍電路全部集成在單片機(jī)內(nèi),制造出具有自己特色的單片機(jī)。(5)單片機(jī)的全面CMOS化單片機(jī)的全面CMOS化,將

10、給單片機(jī)技術(shù)發(fā)展帶來廣闊的天地。CMOS芯片除了低功耗特性之外,還具有功耗的可控性,使單片機(jī)可以工作在功耗精細(xì)管理狀態(tài)。低功耗的技術(shù)措施可提高可靠性,降低工作電壓,可使抗噪聲和抗干擾等各方面性能全面提高。單片機(jī)的全盤CMOS化的效應(yīng)不僅是功耗低,而且?guī)砹水a(chǎn)品的高可靠性、高抗干擾能力以及產(chǎn)品的便攜化。(6)單片機(jī)的應(yīng)用系統(tǒng)化單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,單片機(jī)向MCU發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決。因此,專用單片機(jī)的發(fā)展自然形成了SOC(System on Chip)化趨勢。隨著微電子技術(shù)、IC設(shè)計(jì)、EDA工具的發(fā)展,基于SOC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會有較大的發(fā)展。因此

11、,隨著集成電路技術(shù)及工藝的快速發(fā)展,對單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。1.5 單片機(jī)具有哪些突出優(yōu)點(diǎn)?舉例說明單片機(jī)的應(yīng)用領(lǐng)域。答:1單片機(jī)壽命長所謂壽命長,一方面指用單片機(jī)開發(fā)的產(chǎn)品可以穩(wěn)定可靠地工作十年、二十年,另一方面是指與微處理器相比生存周期長。MPU更新?lián)Q代的速度越來越快,以386、486、586為代表的MPU,幾年內(nèi)就被淘汰出局。而傳統(tǒng)的單片機(jī)如 8051、68HC05等年齡已有二十多歲,產(chǎn)量仍是上升的。一些成功上市的相對年輕的CPU核心,也會隨著I/O功能模塊的不斷豐富,有著相當(dāng)長的生存周期。28位、32位單片機(jī)共同發(fā)展這是當(dāng)前單片機(jī)技術(shù)發(fā)展的另

12、一動向。長期以來,單片機(jī)技術(shù)的發(fā)展是以8位機(jī)為主的。隨著移動通訊、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)等高科技產(chǎn)品進(jìn)入家庭,32位單片機(jī)應(yīng)用得到了長足、迅猛的發(fā)展。3低噪聲與高速度為提高單片機(jī)抗干擾能力,降低噪聲,降低時(shí)鐘頻率而不犧牲運(yùn)算速度是單片機(jī)技術(shù)發(fā)展之追求。一些8051單片機(jī)兼容廠商改善了單片機(jī)的內(nèi)部時(shí)序,在不提高時(shí)鐘頻率的條件下,使運(yùn)算速度提高了很多。Motorola單片機(jī)使用了瑣相環(huán)技術(shù)或內(nèi)部倍頻技術(shù)使內(nèi)部總線速度大大高于時(shí)鐘產(chǎn)生器的頻率。68HC08單片機(jī)使用4.9MHz外部振蕩器而內(nèi)部時(shí)鐘達(dá)32MHz。三星電子新近推出了1.2GHz的ARM處理器內(nèi)核。4低電壓與低功耗幾乎所有的單片機(jī)都有Wai

13、t、Stop等省電運(yùn)行方式。允許使用的電源電壓范圍也越來越寬。一般單片機(jī)都能在36V范圍內(nèi)工作,對電池供電的單片機(jī)不再需要對電源采取穩(wěn)壓措施。低電壓供電的單片機(jī)電源下限已由2.7V降至2.2V、1.8V。0.9V供電的單片機(jī)已經(jīng)問世。5低噪聲與高可靠性為提高單片機(jī)系統(tǒng)的抗電磁干擾能力,使產(chǎn)品能適應(yīng)惡劣的工作環(huán)境,滿足電磁兼容性方面更高標(biāo)準(zhǔn)的要求,各單片機(jī)商家在單片機(jī)內(nèi)部電路中采取了一些新的技術(shù)措施。如ST公司的由標(biāo)準(zhǔn)8032核和PSD(可編程系統(tǒng)器件)構(gòu)成的PSD系列單片機(jī)片內(nèi)增加了看門狗定時(shí)器,NS公司的COP8單片機(jī)內(nèi)部增加了抗EMI電路,增強(qiáng)了“看門狗”的性能。Motorola推出了低噪

14、聲的LN系列單片機(jī)。6ISP與IAPISP(In-System Programming)技術(shù)的優(yōu)勢是不需要編程器就可以進(jìn)行單片機(jī)的實(shí)驗(yàn)和開發(fā),單片機(jī)芯片可以直接焊接到電路板上,調(diào)試結(jié)束即成成品,免去了調(diào)試時(shí)由于頻繁地插入取出芯片對芯片和電路板帶來的不便。IAP(In-Application Programming)技術(shù)是從結(jié)構(gòu)上將Flash存儲器映射為兩個(gè)存儲體,當(dāng)運(yùn)行一個(gè)存儲體上的用戶程序時(shí),可對另一個(gè)存儲體重新編程,之后將程序從一個(gè)存儲體轉(zhuǎn)向另一個(gè)。ISP的實(shí)現(xiàn)一般需要很少的外部電路輔助實(shí)現(xiàn),而IAP的實(shí)現(xiàn)更加靈活,通??衫脝纹瑱C(jī)的串行口接到計(jì)算機(jī)的RS232口,通過專門設(shè)計(jì)的固件程序來

15、編程內(nèi)部存儲器,可以通過現(xiàn)有的INTERNET或其它通訊方式很方便地實(shí)現(xiàn)遠(yuǎn)程升級和維護(hù)。單片機(jī)的應(yīng)用領(lǐng)域:1)智能化家用電器:各種家用電器普遍采用單片機(jī)智能化控制代替?zhèn)鹘y(tǒng)的電子線路控制,升級換代,提高檔次。如洗衣機(jī)、空調(diào)、電視機(jī)、錄像機(jī)、微波爐、電冰箱、電飯煲以及各種視聽設(shè)備等。2)辦公自動化設(shè)備:現(xiàn)代辦公室使用的大量通信和辦公設(shè)備多數(shù)嵌入了單片機(jī)。如打印機(jī)、復(fù)印機(jī)、傳真機(jī)、繪圖機(jī)、考勤機(jī)、電話以及通用計(jì)算機(jī)中的鍵盤譯碼、磁盤驅(qū)動等。3)商業(yè)營銷設(shè)備:在商業(yè)營銷系統(tǒng)中已廣泛使用的電子稱、收款機(jī)、條形碼閱讀器、IC卡刷卡機(jī)、出租車計(jì)價(jià)器以及倉儲安全監(jiān)測系統(tǒng)、商場保安系統(tǒng)、空氣調(diào)節(jié)系統(tǒng)、冷凍保險(xiǎn)系

16、統(tǒng)等都采用了單片機(jī)控制。4)工業(yè)自動化控制:工業(yè)自動化控制是最早采用單片機(jī)控制的領(lǐng)域之一。如各種測控系統(tǒng)、過程控制、機(jī)電一體化、PLC等。在化工、建筑、冶金等各種工業(yè)領(lǐng)域都要用到單片機(jī)控制。5)智能儀器儀表:采用單片機(jī)的智能化儀表大大提升了儀表的檔次,強(qiáng)化了功能。如數(shù)據(jù)處理和存儲、故障診斷、聯(lián)網(wǎng)集控等。6)智能化通信產(chǎn)品:最突出的是手機(jī),當(dāng)然手機(jī)內(nèi)的芯片屬專用型單片機(jī)。7)汽車電子產(chǎn)品:現(xiàn)代汽車的集中顯示系統(tǒng)、動力監(jiān)測控制系統(tǒng)、自動駕駛系統(tǒng)、通信系統(tǒng)和運(yùn)行監(jiān)視器(黑匣子)等都離不開單片機(jī)。8)航空航天系統(tǒng)和國防軍事、尖端武器等領(lǐng)域:單片機(jī)的應(yīng)用更是不言而喻。習(xí)題22.1 MCS-51單片機(jī)內(nèi)部

17、包含哪些主要邏輯功能部件?答:微處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM/EPROM)、特殊功能寄存器(SFR)、并行I/O口、串行通信口、定時(shí)器/計(jì)數(shù)器及中斷系統(tǒng)。2.2 說明程序計(jì)數(shù)器PC和堆棧指針SP的作用。復(fù)位后PC和SP各為何值?答:程序計(jì)數(shù)器PC中存放將要執(zhí)行的指令地址,PC有自動加1功能,以實(shí)現(xiàn)程序的順序執(zhí)行。它是SFR中唯一隱含地址的,因此,用戶無法對它進(jìn)行讀寫。但在執(zhí)行轉(zhuǎn)移、調(diào)用、返回等指令時(shí)能自動改變其內(nèi)容,以實(shí)現(xiàn)改變程序的執(zhí)行順序。程序計(jì)數(shù)器PC中內(nèi)容的變化決定程序的流程,在執(zhí)行程序的工作過程中,由PC輸出將要執(zhí)行的指令的程序存儲器地址,CPU讀取該地址

18、單元中存儲的指令并進(jìn)行指令譯碼等操作,PC則自動指向下一條將要執(zhí)行的指令的程序存儲器地址。SP是一個(gè)8位的SFR,它用來指示堆棧頂部在內(nèi)部RAM中的位置。系統(tǒng)復(fù)位后SP為07H,若不對SP設(shè)置初值,則堆棧在08H開始的區(qū)域,為了不占用工作寄存器R0R7的地址,一般在編程時(shí)應(yīng)設(shè)置SP的初值(最好在30H7FH區(qū)域)。2.3 程序狀態(tài)字寄存器PSW的作用是什么?其中狀態(tài)標(biāo)志有哪幾位?它們的含義是什么?答:PSW是保存數(shù)據(jù)操作的結(jié)果標(biāo)志,其中狀態(tài)標(biāo)志有CY(PSW.7):進(jìn)位標(biāo)志,AC(PSW.6):輔助進(jìn)位標(biāo)志,又稱半進(jìn)位標(biāo)志,F(xiàn)0、F1(PSW.5、PSW.1):用戶標(biāo)志;OV(PSW.2):溢

19、出標(biāo)志;P(PSW.0):奇偶標(biāo)志。2.4 什么是堆棧? 堆棧有何作用? 為什么要對堆棧指針SP重新賦值? SP的初值應(yīng)如何設(shè)定?答:堆棧是一種數(shù)據(jù)結(jié)構(gòu),所謂堆棧就是只允許在其一端進(jìn)行數(shù)據(jù)寫入和數(shù)據(jù)讀出的線性表。其主要作用有兩個(gè):保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場。堆棧區(qū)的設(shè)置原則上可以在內(nèi)部RAM的任意區(qū)域,但由于MCS-51單片機(jī)內(nèi)部RAM的00H1FH地址單元已被工作寄存器R0R7占用,20H2FH為位尋址區(qū),故堆棧一般設(shè)在30H7FH(對于8032系列芯片可為30H0FFH)的區(qū)域內(nèi)。單片機(jī)復(fù)位后,SP的內(nèi)容為07H,堆棧事實(shí)上由08H單元開始,考慮到08H1FH單元分別屬于13組的工作寄存器區(qū),則最

20、好把SP值改置為1FH或更大的值。2.5 開機(jī)復(fù)位后,CPU使用的是哪組工作寄存器? 它們的地址如何? CPU如何指定和改變當(dāng)前工作寄存器組?答:開機(jī)復(fù)位后使用的是0組工作寄存器,它們的地址是00H07H,對程序狀態(tài)字PSW中的RS1和RS0兩位進(jìn)行編程設(shè)置,可指定和改變當(dāng)前工作寄存器組。RS1、RS0=00H時(shí),當(dāng)前工作寄存器被指定為0組;RS1、RS0=01H時(shí),當(dāng)前工作寄存器被指定為1組;RS1、RS0=10H時(shí),當(dāng)前工作寄存器被指定為2組;RS1、RS0=11H時(shí),當(dāng)前工作寄存器被指定為3組。2.6 MCS-51的時(shí)鐘周期、機(jī)器周期、指令周期是如何定義的?當(dāng)振蕩頻率為12MHz時(shí),一個(gè)

21、機(jī)器周期為多少微秒?答: 時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘脈沖的倒數(shù),是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。 CPU取出一條指令至該指令執(zhí)行完所需的時(shí)間稱為指令周期,因不同的指令執(zhí)行所需的時(shí)間可能不同,故不同的指令可能有不同的指令周期。 機(jī)器周期是用來衡量指令或程序執(zhí)行速度的最小單位。它的確定原則是以最小指令周期為基準(zhǔn)的,即一個(gè)最小指令周期為一個(gè)機(jī)器周期。當(dāng)振蕩頻率為12MHz時(shí),一個(gè)機(jī)器周期1微秒2.7 MCS-51單片機(jī)的控制信號、有哪些功能?答:是訪問程序存儲器控制信號。當(dāng)端接低電平時(shí),則不管芯片內(nèi)部是否有程序存儲器,CPU只訪問外部程序存儲器。對8031來說,因其內(nèi)部無程序存儲器,所以

22、該引腳必須接地。當(dāng)端接高電平時(shí),CPU訪問內(nèi)部程序存儲器,但當(dāng)PC(程序計(jì)數(shù)器)值超過某一值時(shí),將自動轉(zhuǎn)向片外程序存儲器1000H地址繼續(xù)執(zhí)行程序。是地址鎖存允許信號。當(dāng)CPU訪問外部存儲器或I/O接口時(shí),ALE輸出脈沖的下降沿用于鎖存16位地址的低8位。在不訪問外部存儲器或I/O接口時(shí),ALE端有周期性正脈沖輸出,其頻率為振蕩頻率的1/6。但是,每當(dāng)訪問外部數(shù)據(jù)存儲器或I/O接口時(shí),在第二個(gè)機(jī)器周期中ALE只出現(xiàn)一次,即丟失一個(gè)ALE脈沖。片外程序存儲器讀選通信號。在CPU從外部程序存儲器讀取指令(或常數(shù))期間,每個(gè)機(jī)器周期兩次有效,但在訪問外部數(shù)據(jù)存儲器或I/O接口時(shí),信號將不出現(xiàn)。端可以

23、驅(qū)動8個(gè)TTL負(fù)載。2.8 MCS-51的片外程序存儲器和片外數(shù)據(jù)存儲器共處同一地址空間為什么不會發(fā)生總線沖突?答:MCS-51的片外程序存儲器和片外數(shù)據(jù)存儲器共處同一地址空間,地址范圍都是0000HFFFFH(64 KB),但不會發(fā)生總線沖突。因片外程序存儲器和片外數(shù)據(jù)存儲器的讀寫控制信號不同,片外程序存儲器的讀信號是,而片外數(shù)據(jù)存儲器的讀信號為、寫信號為,訪問片外程序存儲器和片外數(shù)據(jù)存儲器的指令也不同,所以它們不會發(fā)生總線沖突。2.9 簡述MCS-51內(nèi)部數(shù)據(jù)存儲器的存儲空間分配。答:內(nèi)部數(shù)據(jù)存儲器分為3個(gè)區(qū)域:1. 工作寄存器區(qū)(00H1FH); 2. 位尋址區(qū)(20H2FH); 3.

24、堆棧和數(shù)據(jù)緩沖器區(qū)(30H7FH或30H0FFH)。2.10 位地址和字節(jié)地址有何區(qū)別? 位地址20H具體在內(nèi)存中什么位置?答:MCS-51的位存儲器由以內(nèi)部RAM中20H2FH單元和特殊功能寄存器中地址為8的倍數(shù)的特殊功能寄存器兩部分組成。其中每個(gè)單元的每一位都有一個(gè)位地址映像,它們既可以像普通內(nèi)部RAM單元一樣按字節(jié)存取,也可以對單元中的任何一位單獨(dú)存取。字節(jié)地址是內(nèi)部RAM中和特殊功能寄存器中每個(gè)存儲單元的地址。位地址20H是內(nèi)部RAM24H中的D0位。2.11 8051的4個(gè)IO口作用是什么? 8051的片外三總線是如何分配的?答:MCS-51單片機(jī)有4個(gè)8位并行I/O端口,分別記作P

25、0、P1、P2、P3口。 在訪問片外擴(kuò)展存儲器時(shí), P0口分時(shí)傳送低8位地址和數(shù)據(jù), P2口傳送高8位地址。P1口通常作為通用I/O口供用戶使用。P3口具有第二功能,為系統(tǒng)提供一些控制信號。在無片外擴(kuò)展存儲器的系統(tǒng)中,這4個(gè)口均可作為通用I/O端口使用。在作為通用I/O端口使用時(shí),這4個(gè)口都是準(zhǔn)雙向口。 在訪問片外擴(kuò)展存儲器時(shí),片外三總線的構(gòu)成:P0口傳送低8位地址經(jīng)鎖存器所存構(gòu)成低8位地址總線,高8位地址總線由P2口構(gòu)成。P0口作為單片機(jī)系統(tǒng)的低8位地址/數(shù)據(jù)線分時(shí)復(fù)用,在低8位地址鎖存后,P0口作為雙向數(shù)據(jù)總線。由P3口的第二功能輸出數(shù)據(jù)存儲器的讀、寫控制信號與片外程序存儲器讀選通信號,訪

26、問程序存儲器控制信號,地址鎖存允許信號構(gòu)成控制總線。習(xí)題33.1 匯編語句是由4個(gè)部分(字段)構(gòu)成的,簡述各部分的含義。答:匯編語句的4個(gè)部分為:標(biāo)號: 操作碼 操作數(shù);注釋標(biāo)號是用戶設(shè)定的一個(gè)符號,表示存放指令或數(shù)據(jù)的存儲單元地址。標(biāo)號由以字母開始的18個(gè)字母或數(shù)字串組成,以冒號結(jié)尾。不能用指令助記符、偽指令或寄存器名來作標(biāo)號。標(biāo)號是任選的,并不是每條指令或數(shù)據(jù)存儲單元都要標(biāo)號,只在需要時(shí)才設(shè)標(biāo)號。如轉(zhuǎn)移指令所要訪問的存儲單元前面一般要設(shè)置標(biāo)號。一旦使用了某標(biāo)號定義一個(gè)地址單元,在程序的其它地方就不能隨意修改這個(gè)定義,也不能重復(fù)定義。操作碼是指令或偽指令的助記符,用來表示指令的性質(zhì)或功能。對

27、于一條匯編語言指令,這個(gè)字段是必不可少的。操作數(shù)給出參加運(yùn)算(或其它操作)的數(shù)據(jù)或數(shù)據(jù)的地址。操作數(shù)可以表示為工作寄存器名、特殊功能寄存器名、標(biāo)號名、常數(shù)、表達(dá)式等。這一字段可能有,也可能沒有。若有兩個(gè)或三個(gè)操作數(shù),它們之間應(yīng)以逗號分開。注釋字段不是匯編語言的功能部分,只是增加程序的可讀性。言簡意賅的注釋是匯編語言程序編寫中的重要組成部分。3.2舉例說明MCS-51單片機(jī)的7種尋址方式,各尋址方式的尋址空間。1. 立即尋址 立即尋址方式的尋址空間為程序存儲器。 例如: MOV A,#3FH ;3FHA1. 直接尋址 直接尋址方式中操作數(shù)存儲的空間有三種: 1. 內(nèi)部數(shù)據(jù)存儲器的低128個(gè)字節(jié)單

28、元(00H7FH) 例如: MOV A,30H ;(30H)A指令功能是把內(nèi)部RAM 30H單元中的內(nèi)容送入累加器A。 位地址空間例如: MOV C,00H ;直接位00H內(nèi)容進(jìn)位位 特殊功能寄存器例如: MOV IE,#85H ;立即數(shù)85H中斷允許寄存器IE。1. 寄存器尋址 寄存器尋址方式的尋址空間為工作寄存器和特殊功能寄存器等。 例如: MOV A,R6 ;(R6)A1. 寄存器間接尋址 寄存器間接尋址空間為內(nèi)部RAM 128字節(jié),外部RAM 例如: MOV A,R0 ;((R0))A1. 變址尋址 變址尋址空間為程序存儲器。 例如: MOVC A,ADPTR ;(DPTR)()AMO

29、VC A,APC ;(PC)()A1. 相對尋址 相對尋址空間為程序存儲器。 2. 當(dāng)前PC值是指相對轉(zhuǎn)移指令所在地址(源地址)加轉(zhuǎn)移指令字節(jié)數(shù)。即:當(dāng)前PC值 = 源地址 + 轉(zhuǎn)移指令字節(jié)數(shù)1. 偏移量rel 是有符號的單字節(jié)數(shù),以補(bǔ)碼表示,相對值在-128+127范圍內(nèi),負(fù)數(shù)表示從當(dāng)前地址向上轉(zhuǎn)移,正數(shù)表示從當(dāng)前地址向下轉(zhuǎn)移。所以轉(zhuǎn)移的目的地址為:目的地址 = 當(dāng)前PC值 + rel = 源地址 + 轉(zhuǎn)移指令字節(jié)數(shù) + rel例如: JNC 2AH , JZ F8H1. 位尋址 位尋址空間為內(nèi)部RAM 20H2FH的128位和SFR中的83位。 例如: MOV C,30H, MOV P1.

30、0, C3.3指出下列指令的尋址方式和操作功能:INC 40H ;直接尋址 (40H)+140HINC A ;寄存器尋址 (A)+1AINC R2 ;寄存器間接尋址 (R2)+1(R2)MOVC A, A+DPTR ;基址加變址寄存器尋址 (A)+(DPTR) AMOV A, #6EH ;立即尋址 6EHASETB P1.0 ;位尋址 P1.0置13.4 設(shè)內(nèi)部RAM中3AH單元的內(nèi)容為50H,寫出當(dāng)執(zhí)行下列程序段后寄存器A、R0和內(nèi)部RAM 50H,51H單元的內(nèi)容為何值?MOV A,3AH ;(A)=50HMOV R0,A ;(R0)=50HMOV A,#00H ;(A)=00HMOV R

31、0,A ;(50H)=00HMOV A,#25H ;(A)=25HMOV 51H,A ;(51H)=25H答:(A)=25H, (3AH)=50H, (R0)=50H, (50H)=00H, (51H)=25H3.5 設(shè)堆棧指針SP中的內(nèi)容為60H,內(nèi)部RAM 30H和31H單元的內(nèi)容分別為27H和1AH,執(zhí)行下列程序段后,61H,62H,30H,31H,DPTR及SP中的內(nèi)容將有何變化?PUSH 30H ;(SP)+1SP, (30H) 61HPUSH 31H ;(SP)+1SP, (31H) 62HPOP DPL ; (62) DPL, (SP)-1SPPOP DPH ; (61) DPH

32、, (SP)-1SPMOV 30H,#00H ; 00H30HMOV 31H,#0FFH ; FFH31H答:(61H)=27H, (62H)=1AH, (30H)=00H, (31H)=FFH, (DPTR)=271AH, (SP)=60H3.6 設(shè)(A)=30H,(R1)=23H,(30H)=05H。執(zhí)行下列兩條指令后,累加器A和R1以及內(nèi)部RAM 30H單元的內(nèi)容各為何值?XCH A,R1XCHD A,R1答:(A)=25H, (R1)=30H, (30H)=03H3.7 設(shè)(A)=01010101B,(R5)=10101010B,分別寫出執(zhí)行下列指令后的結(jié)果ANL A, R5 ; (A

33、)=0000 0000B, (R5)=10101010BORL A, R5 ; (A)= 10101010B, (R5)=10101010BXRL A, R5 ; (A)=00000000B3.8 設(shè)指令SJMP rel=7FH,并假設(shè)該指令存放在2113H和2114H單元中。當(dāng)該條指令執(zhí)行后,程序?qū)⑻D(zhuǎn)到何地址?答:程序?qū)⑻D(zhuǎn)到2194H地址3.9 簡述轉(zhuǎn)移指令A(yù)JMP addr11,SJMP rel, LJMP addr16及JMP A+DPTR的應(yīng)用場合。答:AJMP addr11這是在當(dāng)前PC的2K字節(jié)范圍內(nèi)的無條件轉(zhuǎn)移指令,把程序的執(zhí)行轉(zhuǎn)移到指定的地址。SJMP rel 這是相對跳轉(zhuǎn)

34、指令,其中rel為相對偏移量。轉(zhuǎn)向的目標(biāo)地址是在當(dāng)前PC的前128字節(jié)到后127字節(jié)之間。LJMP addR16 執(zhí)行這條指令時(shí)把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無條件地轉(zhuǎn)向指定地址。轉(zhuǎn)移的目標(biāo)地址可以在64KB程序存儲器地址空間的任何地方,不影響任何標(biāo)志。JMP A+DPTR 把累加器A中8位無符號數(shù)與數(shù)據(jù)指針DPTR中的16位數(shù)相加,將結(jié)果作為轉(zhuǎn)移的目標(biāo)地址送入PC,不改變累加器A和數(shù)據(jù)指針DPTR內(nèi)容,也不影響標(biāo)志。本指令以DPTR內(nèi)容作為基址,A的內(nèi)容作為變址。只要把DPTR的值固定,而給A賦予不同的值,即可實(shí)現(xiàn)程序的多分支轉(zhuǎn)移。3.10 查指令表,寫出下列兩條指令

35、的機(jī)器碼,并比較一下機(jī)器碼中操作數(shù)排列次序的特點(diǎn)。MOV 78H,80H ;85 80 78MOV 78H,#80H ;75 78 80答:直接尋址單元傳送到直接尋址單元的機(jī)器碼是第二個(gè)操作數(shù)在前,而立即數(shù)傳送到直接地址單元是第一個(gè)操作數(shù)在前,次序正好相反。3.11 試編寫程序,查找在內(nèi)部RAM 30H50H單元中1AH這一數(shù)據(jù)。若找到1AH則將51H單元置為01H;沒找到則將51H單元置為00H。答:參考程序如下MOV R1, #2FHLOOP1: INC R1CJNE R1, #1AH, LOOP2SJMP LOOP3LOOP2: CJNE R1, #51, LOOP1MOV 51H, #

36、00HSJMP ENDLOOP3: MOV 51H, #01HEND: RET3.12 若SP=60H,子程序標(biāo)號MULT所在的地址為3A40H。執(zhí)行LCALL MULT指令后,堆棧指針SP和堆棧內(nèi)容發(fā)生了什么變化?答:(SP)=62H, (61H)=40H, (62H)=3AH3.13 假設(shè)外部存儲器215AH單元的內(nèi)容為3DH,執(zhí)行下列指令后,累加器A中的內(nèi)容為何值?MOV P2,#21HMOV R0,#5AHMOVX A,R0答:(A) = 3DH習(xí)題44.1 編程將數(shù)據(jù)存儲器中以2A00H為首地址的100個(gè)連續(xù)單元清零。CLR A MOV R0, #64H MOV DPTR, #2A0

37、0H LOOP: MOVX DPTR,A INC DPTR DJNZ R0, LOOP END4.2 編程將片內(nèi)50H70H單元中的內(nèi)容傳送到以5C00H為起始地址的存儲區(qū)中。MOV DPTR, #5C00HMOV R0, #50HLOOP: MOV A,R0MOVX DPTR,AINC R0INC DPTRCJNE R0,#70H,LOOPEND4.3 片外RAM區(qū)從1000H單元開始存有100個(gè)單字節(jié)無符號數(shù),找出最大值并存入1100H單元中,試編寫程序。MOV DPTR, #1000H ;置片外RAM區(qū)首地址MOV R0,#00H ;清 R0MOV R1,64H ;置計(jì)數(shù)初值100LOO

38、P: MOVX A, DPTR ;取片外RAM區(qū)的某個(gè)數(shù)送ACJNZ A,R0,NT1 ;與R0中的數(shù)比較NT1: JC NT2 ;(A)<(R0)跳轉(zhuǎn)到NT2MOV RO,A ;若(A)(R0),則大數(shù)送RONT2: INC DPTR ;修改數(shù)據(jù)塊指針DJNZ R1,LOOP ;未完,循環(huán)RET4.4 設(shè)有100個(gè)單字節(jié)有符號數(shù),連續(xù)存放在以2100H為首地址的存儲區(qū)中,試編程統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)、零的個(gè)數(shù)。MOV R0, #00H ; 置負(fù)數(shù)的計(jì)數(shù)初值MOV R1, #00H ; 置正數(shù)的計(jì)數(shù)初值MOV R2, #00H ; 置0的計(jì)數(shù)初值MOV R4, #64H ; 置循環(huán)計(jì)數(shù)初值M

39、OV DPTR, #2100H ; 置數(shù)據(jù)區(qū)首地址START:MOVX A, DPTR ; 取某一數(shù)據(jù)送入AJZ EQUAL ;為0轉(zhuǎn)EQUALJNB ACC.7, POSI ;為正數(shù)轉(zhuǎn)POSIINC R0 ; 負(fù)數(shù)計(jì)數(shù)值加1INC DPTR ; 修改數(shù)據(jù)塊指針 DJNZ R4, START ; 未完,返回POSI: INC R1 ; 正數(shù)計(jì)數(shù)值加1INC DPTR ; 修改數(shù)據(jù)塊指針 DJNZ R4, START EQUAL:INC R2 ; 0計(jì)數(shù)值加1INC DPTR DJNZ R4, STARTEND4.5 從2030H單元開始,存有100個(gè)有符號數(shù),要求把它傳送到從20BOH開始的存

40、儲區(qū)中,但負(fù)數(shù)不傳送,試編寫程序。MOV R1, #64H ;置計(jì)數(shù)初值MOV R0, #B0H ;目標(biāo)數(shù)據(jù)區(qū)首地址低8位,高8位為20HMOV DPTR, #2030H ;源數(shù)據(jù)區(qū)首地址START:MOVX A, DPTR ;取源數(shù)據(jù)區(qū)某數(shù)據(jù)送入AJB ACC.7, D1 ;負(fù)數(shù),轉(zhuǎn)D1MOVX R0,A ;正數(shù),送入目標(biāo)數(shù)據(jù)區(qū)INC DPTR ; 修改源數(shù)據(jù)塊指針I(yè)NC R0 ; 修改目標(biāo)數(shù)據(jù)塊指針DJNZ R1, START ;未完,繼續(xù)RET ;返回D1: INC DPTR ;修改源數(shù)據(jù)塊指針I(yè)NC R0 ;修改目標(biāo)數(shù)據(jù)塊指針DJNZ R1, START ;未完,繼續(xù)RET ;返回4.

41、6 若從30H單元開始有100個(gè)數(shù),編一個(gè)程序檢查這些數(shù),正數(shù)保持不變,負(fù)數(shù)取補(bǔ)后送回。MOV R0, #30H ;數(shù)據(jù)區(qū)首地址MOV R1, #64H ;計(jì)數(shù)初值START: MOVX A, R0 ;取某個(gè)數(shù)JNB ACC.7, POSI ;正數(shù),轉(zhuǎn)POSICPL A ;負(fù)數(shù),取補(bǔ)ADD A, #01H MOVX R0, A ;送回原地址INC R0 ;修改數(shù)據(jù)塊指針DJNZ R1, START ;未完,繼續(xù)RETPOSI: INC R0 ;修改數(shù)據(jù)塊指針DJNZ R1, START ;未完,繼續(xù)RET4.7 試編程把以2040H為首地址的連續(xù)10個(gè)單元的內(nèi)容按升序排列,存到原來的存儲區(qū)中。

42、SORT: MOV DPTR, #2040H;MOV R3, #09H;CLR F0;D1: MOVX A,DPTR ;MOV R2, A ;前一個(gè)數(shù)送R2INC DPTRMOVX A, DPTR ;MOV R4, A ;后一個(gè)數(shù)送R4MOV A, R2 ;前一個(gè)數(shù)送ACLR CSUBB A, R4 ;前一個(gè)數(shù)減后一個(gè)數(shù)JC NEXT ;MOV A, R2 ;相鄰數(shù)互換MOVX DPTR,AMOV R0,DPL ;數(shù)據(jù)指針低8位減1DEC R0MOV DPL,R0MOV A, R4 ;MOVX DPTR,AINC DPTR;SETB F0NEXT: DJNZ R3, D1;JB F0,SORT

43、RET4.8 設(shè)在2000H2004H單元中存放有5個(gè)壓縮BCD碼,編程將它們轉(zhuǎn)換成ASCII碼,存放到以2005H為首地址的存儲區(qū)中。MOV DPTR,#2000H;MOV R0, #05H;MOV R1, #04H;D1: MOVX A, DPTR;ANL A, #0FHCLR C;ADD A,#30H;MOV P2,#20HMOVX R0,AINC DPTR;INC R0DJNZ R1, D1;RET1. 在以2000H為首地址的存儲區(qū)中,存放著20個(gè)用ASCII碼表示的O9之間的數(shù),試編程,將它們轉(zhuǎn)換成BCD碼,并以壓縮BCD碼的形式存放在3000H3009H單元中。MOV DPTR,

44、 2000H;MOV R0, #20H;MOV R1, #00H;ASCBIN: MOVX A, DPTR;CLR CSUBB A, #30H;MOV P2, 30H;MOVX R1,A;INC R1;INC DPTR;DJNZ R0, ASCBIN;RET4.10 試編寫多字節(jié)BCD碼數(shù)加法、減法子程序。4.11 若晶振為6MHz,試編寫延時(shí)100ms、1s的子程序。ORG 2000H 周期數(shù)MOV R0, #0AH ;毫秒數(shù)R0 1DL2: MOV R1, #MT ;1ms延時(shí)值R1 1DL1: NOP 1NOP 1DJNZ R1,DL1 ;1ms延時(shí)循環(huán) 2DJNZ R0,DL2 ;10

45、ms延時(shí)循環(huán) 2END4.12 試設(shè)計(jì)一個(gè)子程序,其功能為將片內(nèi)RAM 20H21H中的壓縮BCD碼轉(zhuǎn)換為二進(jìn)制數(shù),并存于以30H開始的單元。BCDB: MOV A,20H MOV R2,A ;取千位、百位BCD碼ACALL BCDB1 ;調(diào)用子程序MOV B,#0AHMUL AB ;乘以10MOV R6,A ;乘積低8位送R6XCH A,B ;交換乘積高、低位MOV R5,A ;乘積高位送R5MOV A,21H ;取十位、個(gè)位BCD碼MOV R2,A ;送入R2ACALL BCDB1 ;調(diào)用子程序ADD A,R6 ;加千位、百位乘積低8位MOV 31H,A ;低8位送入31HMOV A,R5

46、 ;乘積高8位送AADDC A,#00H ;加進(jìn)位位MOV 30H,A ;結(jié)果高8位送入30HHERE: SJMP HERE子程序清單:BCDB1: MOV A,R2 ;取壓縮BCD碼ANL A,#0F0H ;屏蔽低4位SWAP AMOV B,#0AHMUL AB ;高位BCD碼乘以10MOV R3,A ;乘積送R3MOV A,R2 ;取壓縮BCD碼ANL A,#0FH ;屏蔽高4位ADD A,R3 ;高位BCD碼乘以10后加低位BCD碼MOV R2,A ;送R2RET 習(xí)題55.1 什么是中斷系統(tǒng)?中斷系統(tǒng)的功能是什么?答:當(dāng)CPU正在處理某件事情(例如,正在執(zhí)行主程序)的時(shí)候,外部或內(nèi)部發(fā)

47、生的某一事件(如某個(gè)引腳上電平的變化,一個(gè)脈沖沿的發(fā)生或計(jì)數(shù)器的計(jì)數(shù)溢出等)請求CPU迅速去處理,于是,CPU暫時(shí)終止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件。中斷服務(wù)程序處理完該事件后,再回到原來被終止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng)。中斷系統(tǒng)的功能:(1)實(shí)現(xiàn)中斷及中斷返回,(2)實(shí)現(xiàn)優(yōu)先級排隊(duì),(3)實(shí)現(xiàn)優(yōu)先級控制。5.2 什么是中斷嵌套?答:當(dāng)CPU響應(yīng)某一中斷源的請求而進(jìn)行中斷處理時(shí),若有優(yōu)先級更高的中斷源發(fā)出中斷請求,則CPU中斷正在執(zhí)行的中斷服務(wù)程序,保留程序的斷點(diǎn)和現(xiàn)場,響應(yīng)更高一級的中斷,即是中斷嵌套。5.3 什么是中斷源?MCS-51有哪些

48、中斷源?各有什么特點(diǎn)?答:向CPU發(fā)出中斷請求的來源稱為中斷源。MC5-51單片機(jī)的中斷系統(tǒng)有5個(gè)中斷請求源:外部中斷0請求,由引腳輸入,中斷請求標(biāo)志為IE0。外部中斷l(xiāng)請求,由引腳輸入,中斷請求標(biāo)志為IEl。定時(shí)器/計(jì)數(shù)器T0溢出中斷請求,中斷請求標(biāo)志為TF0。定時(shí)器/計(jì)數(shù)器T1 溢出中斷請求,中斷請求標(biāo)志為TF1。串行口中斷請求,中斷請求標(biāo)志為TI或RI。外部中斷0:它的觸發(fā)方式選擇位為IT0。IT0=0,為電平觸發(fā)方式,引腳上低電平有效IT0=1,為脈沖觸發(fā)方式,引腳上的電平從高到低的負(fù)跳變有效。IT0位可由軟件置“1”或清“0”。外部中斷0請求標(biāo)志位IE0。當(dāng)IT0=0,即電平觸發(fā)方式

49、時(shí),每個(gè)機(jī)器周期的S5P2采樣引腳,若腳為低電平,則置“1” IE0,否則清“0” IE0。當(dāng)IT0=1,即跳沿觸發(fā)方式時(shí),在第一個(gè)機(jī)器周期采樣為低電平,則置“1” IE0。IE0=1,表示外部中斷0正在向CPU申請中斷。當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件清“0” IE0。外部中斷1中斷原是與此相同。定時(shí)器/計(jì)數(shù)器0:被啟動計(jì)數(shù)后,從初值開始加1計(jì)數(shù),當(dāng)定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)滿而產(chǎn)生溢出時(shí),由硬件自動使TF0置 1,并向CPU申請中斷。該標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動清0。也可用軟件查詢該標(biāo)志,并由軟件清0。定時(shí)器/計(jì)數(shù)器1中斷原理與此相同。串行中斷請求由TI、RI的邏輯

50、“或”得到。即不論是發(fā)送標(biāo)志還是接收標(biāo)志,都將發(fā)生串行中斷請求。5.4 MCS-51單片機(jī)響應(yīng)外部中斷的典型時(shí)間是多少?在哪些情況下,CPU將推遲對中斷請求的響應(yīng)?答:38個(gè)機(jī)器周期。(1) CPU正在處理相同的或更高優(yōu)先級的中斷。因?yàn)楫?dāng)一個(gè)中斷被響應(yīng)時(shí),要把對應(yīng)的中斷優(yōu)先級狀態(tài)觸發(fā)器置“1”(該觸發(fā)器指出CPU所處理的中斷優(yōu)先級別),從而封鎖了低級中斷和同級中斷。(2) 所查詢的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。作這個(gè)限制的目的是使當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng),以確保當(dāng)前指令完整的執(zhí)行。(3) 正在執(zhí)行的指令是RET1或是訪問IE或IP的指令。因?yàn)榘碝CS-51中斷系統(tǒng)特性的

51、規(guī)定,在執(zhí)行完這些指令后,需要再執(zhí)行一條指令才能響應(yīng)新的中斷請求。如果存在上述三種情況之一,CPU將推遲對中斷請求的響應(yīng)。5.5 中斷查詢確認(rèn)后,在下列各種運(yùn)行情況中,能立即進(jìn)行響應(yīng)的是:(1)當(dāng)前正在進(jìn)行高優(yōu)先級中斷處理(2)當(dāng)前正在執(zhí)行RETI指令(3)當(dāng)前指令是DIV指令,且正處于取指令的機(jī)器周期(4)當(dāng)前指令是MOV A, R3答:(4)能立即進(jìn)行響應(yīng)5.6 試編寫出外部中斷1為跳沿觸發(fā)方式的中斷初始化程序。答:SETB EASETB EX1SETB IT15.7 在MCS-51中,需要外加電路實(shí)現(xiàn)中斷撤除的是:(1)定時(shí)中斷(2)脈沖方式的外部中斷(3)串行中斷(4)電平方式的外部中

52、斷答:(4)需要外加電路5.8 MCS-51有哪幾種擴(kuò)展外部中斷源的方法?各有什么特點(diǎn)?答:(1)定時(shí)器/計(jì)數(shù)器作為外部中斷源的使用方法當(dāng)它們選擇為計(jì)數(shù)器工作模式,T0或T1引腳上發(fā)生負(fù)跳變時(shí),T0或T1計(jì)數(shù)器加1,利用這個(gè)特性,可以把T0、T1引腳作為外部中斷請求輸入引腳,而定時(shí)器/計(jì)數(shù)器的溢出中斷TF1或TF0作為外部中斷請求標(biāo)志。(2)中斷和查詢結(jié)合的方法若系統(tǒng)中有多個(gè)外部中斷請求源,可以按它們的輕重緩急進(jìn)行排隊(duì),把其中最高級別的中斷源IR0直接接到MCS-51的一個(gè)外部中斷輸入端,其余的中斷源IR1IR4用“線或”的辦法連到另一個(gè)外部中斷輸入端,同時(shí)還連到P1口,中斷源的中斷請求由外設(shè)

53、的硬件電路產(chǎn)生,這種方法原則上可處理任意多個(gè)外部中斷。查詢法擴(kuò)展外部中斷源比較簡單,但是擴(kuò)展的外部中斷源個(gè)數(shù)較多時(shí),查詢時(shí)間較長。(3)用優(yōu)先權(quán)編碼器擴(kuò)展外部中斷源采用74LS148優(yōu)先權(quán)編碼器在硬件上對外部中斷源進(jìn)行排隊(duì),可以避免響應(yīng)優(yōu)先級最高的中斷和響應(yīng)優(yōu)先級最低的中斷所需的時(shí)間可能相差很大這樣的問題。該方法的最大特點(diǎn)是結(jié)構(gòu)簡單,價(jià)格低廉,但該電路無法實(shí)現(xiàn)中斷服務(wù)子程序的嵌套。5.9 中斷服務(wù)子程序和普通子程序有什么區(qū)別?答: 1,中斷服務(wù)子程序的入口地址由中斷向量表確定,而普通子程序的入口地址在中斷向量表以外的程序存儲空間內(nèi)任意設(shè)定。2,中斷服務(wù)子程序的返回指令是RETI, 而普通子程序

54、的返回指令是RET5.10 試編寫一段對中斷系統(tǒng)初始化的程序,允許INT0,INT1,T0,串行口中斷,且使T0中斷為高優(yōu)先級。答:SETB EASETB EX0SETB EX1SETB ET0SETB ESSETB PT05.11在MCS-51單片機(jī)中,外部中斷有哪兩種觸發(fā)方式?如何加以區(qū)別?答:電平觸發(fā)方式和跳沿觸發(fā)方式。IT0=0時(shí), 為電平觸發(fā)方式,引腳低電平有效。IT0=1時(shí), 為跳沿觸發(fā)方式,引腳負(fù)跳變有效。IT1=0時(shí),為電平觸發(fā)方式,引腳低電平有效。IT1=1時(shí),為跳沿觸發(fā)方式,引腳負(fù)跳變有效。5.12 單片機(jī)在什么條件下可響應(yīng)INT0中斷?簡要說明中斷響應(yīng)的過程。答:1,中斷

55、允許寄存器IE中的EA=1,且EX1=1,同時(shí)沒有其它優(yōu)先于外部中斷0的中斷,若IT0=0,引腳上低電平有效;若IT0=1,引腳上的電平從高到低的負(fù)跳變有效。2,當(dāng)CPU正在處理某件事情(例如,正在執(zhí)行主程序)的時(shí)候,外部發(fā)生的某一事件(如某個(gè)引腳上電平的變化,一個(gè)脈沖沿的發(fā)生)請求CPU迅速去處理,于是,CPU暫時(shí)終止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件。中斷服務(wù)程序處理完該事件后,再回到原來被終止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。處理事件請求的過程,稱為CPU的中斷響應(yīng)過程。5.13 當(dāng)正在執(zhí)行某一中斷源的中斷服務(wù)程序時(shí),如果有新的中斷請求出現(xiàn),問在什么情況下可響應(yīng)新的中斷請求?在什

56、么情況下不能響應(yīng)新的中斷請求?答:1,一個(gè)中斷源的中斷請求被響應(yīng),需滿足以下條件: 該中斷源發(fā)出中斷請求。 CPU開中斷,即中斷總允許位EA=1。 申請中斷的中斷源的中斷允許位=1,即該中斷沒有被屏蔽。 無同級或更高級中斷正在被服務(wù)。2,中斷響應(yīng)是有條件的,并不是查詢到的所有中斷請求都能被立即響應(yīng),當(dāng)遇到下列三種情況之一時(shí),中斷響應(yīng)被封鎖:(1) CPU正在處理相同的或更高優(yōu)先級的中斷。因?yàn)楫?dāng)一個(gè)中斷被響應(yīng)時(shí),要把對應(yīng)的中斷優(yōu)先級狀態(tài)觸發(fā)器置“1”(該觸發(fā)器指出CPU所處理的中斷優(yōu)先級別),從而封鎖了低級中斷和同級中斷。(2) 所查詢的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。作這個(gè)限制的目的是使當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng),以確保當(dāng)前指令完整的執(zhí)行。(3) 正在執(zhí)行的指令是RETI或是訪問IE或IP的指令。因?yàn)榘碝CS-51中斷系統(tǒng)特性的規(guī)定,在執(zhí)行完這些指令后,需要再執(zhí)行一條指令才能響應(yīng)新的中斷請求。如果存在上述三種情況之一,CPU

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論