單片機(jī)原理及應(yīng)用第三版張毅剛 課后習(xí)題答案完整版_第1頁(yè)
單片機(jī)原理及應(yīng)用第三版張毅剛 課后習(xí)題答案完整版_第2頁(yè)
單片機(jī)原理及應(yīng)用第三版張毅剛 課后習(xí)題答案完整版_第3頁(yè)
單片機(jī)原理及應(yīng)用第三版張毅剛 課后習(xí)題答案完整版_第4頁(yè)
單片機(jī)原理及應(yīng)用第三版張毅剛 課后習(xí)題答案完整版_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)原理及應(yīng)用第三版張毅剛課后習(xí)題答案完整版單片機(jī)原理及應(yīng)用第三版張毅剛課后習(xí)題答案完整版/單片機(jī)原理及應(yīng)用第三版張毅剛課后習(xí)題答案完整版第1章思考題與習(xí)題1參考答案一、填空1.除了單片機(jī)這一名稱之外,單片機(jī)還可稱為或。答:微控制器,嵌入式控制器.2.單片機(jī)與普通微型計(jì)算機(jī)的不同之處在于通過(guò)內(nèi)部連接在一起,集成于一塊芯片上。答:CPU、存儲(chǔ)器、I/O口、總線3.AT89S52單片機(jī)工作頻率上限為MHz。答:33MHz。4.專用單片機(jī)已使系統(tǒng)結(jié)構(gòu)最簡(jiǎn)化、軟硬件資源利用最優(yōu)化,從而大大降低和提高。答:成本,可靠性。二、單選1.單片機(jī)內(nèi)部數(shù)據(jù)之所以用二進(jìn)制形式表示,主要是

A.為了編程方便

B.受器件的物理性能限制

C.為了通用性

D.為了提高運(yùn)算速度

答:B2.在家用電器中使用單片機(jī)應(yīng)屬于微計(jì)算機(jī)的。A.輔助設(shè)計(jì)應(yīng)用 B.測(cè)量、控制應(yīng)用C.?dāng)?shù)值計(jì)算應(yīng)用 D.?dāng)?shù)據(jù)處理應(yīng)用答:B3.下面的哪一項(xiàng)應(yīng)用,不屬于單片機(jī)的應(yīng)用范圍。A.工業(yè)控制B.家用電器的控制C.?dāng)?shù)據(jù)庫(kù)管理D.汽車電子設(shè)備答:C三、判斷對(duì)錯(cuò)1.STC系列單片機(jī)是8051內(nèi)核的單片機(jī)。對(duì)2.AT89S52與AT89S51相比,片內(nèi)多出了4KB的Flash程序存儲(chǔ)器、128B的RAM、1個(gè)中斷源、1個(gè)定時(shí)器(且具有捕捉功能)。對(duì)3.單片機(jī)是一種CPU。錯(cuò)4.AT89S52單片機(jī)是微處理器。錯(cuò)5.AT89C52片內(nèi)的Flash程序存儲(chǔ)器可在線寫入,而AT89S52則不能。錯(cuò)6.為AT89C51單片機(jī)設(shè)計(jì)的應(yīng)用系統(tǒng)板,可將芯片AT89C51直接用芯片AT89S51替換。7.為AT89S51單片機(jī)設(shè)計(jì)的應(yīng)用系統(tǒng)板,可將芯片AT89S51直接用芯片AT89S52替換。對(duì)8.單片機(jī)的功能側(cè)重于測(cè)量和控制,而復(fù)雜的數(shù)字信號(hào)處理運(yùn)算與高速的測(cè)控功能則是DSP的長(zhǎng)處。對(duì)四、簡(jiǎn)答1.微處理器、微計(jì)算機(jī)、微處理機(jī)、CPU、單片機(jī)、嵌入式處理器它們之間有何區(qū)別?答:微處理器、微處理機(jī)和CPU它們都是中央處理器的不同稱謂,微處理器芯片本身不是計(jì)算機(jī)。而微計(jì)算機(jī)、單片機(jī)它們都是一個(gè)完整的計(jì)算機(jī)系統(tǒng),單片機(jī)是集成在一個(gè)芯片上的用于測(cè)控目的的單片微計(jì)算機(jī)。2.AT89S51單片機(jī)相當(dāng)于MCS-51系列單片機(jī)中的哪一型號(hào)的產(chǎn)品?“S”的含義是什么?答:相當(dāng)于MCS-51系列中的87C51,只不過(guò)是AT89S51芯片內(nèi)的4K字節(jié)Flash存儲(chǔ)器取代了87C51片內(nèi)的4K字節(jié)的EPROM。3.單片機(jī)可分為商用、工業(yè)用、汽車用以與軍用產(chǎn)品,它們的使用溫度范圍各為多少?答:商用:溫度范圍為0~+70℃;工業(yè)用:溫度范圍為-40~+85℃;汽車用:溫度范圍為-40~+125℃;軍用:溫度范圍為-55~+150℃。4.解釋什么是單片機(jī)的在系統(tǒng)編程(ISP)與在線應(yīng)用編程(IAP)。答:?jiǎn)纹瑱C(jī)的在系統(tǒng)編程ISP(InSystemProgram),也稱在線編程,只需一條與PC機(jī)USB口或串口相連的ISP下載線,就可把仿真調(diào)試通過(guò)的程序代碼從PC機(jī)在線寫入單片機(jī)的Flash存儲(chǔ)器內(nèi),省去了編程器。在線應(yīng)用編程(IAP)就是可將單片機(jī)的閃存內(nèi)的應(yīng)用程序在線修改升級(jí)。5.什么是“嵌入式系統(tǒng)”?系統(tǒng)中嵌入了單片機(jī)作為控制器,是否可稱其為“嵌入式系統(tǒng)”?答:廣義上講,凡是系統(tǒng)中嵌入了“嵌入式處理器”,如單片機(jī)、DSP、嵌入式微處理器,都稱其為“嵌入式系統(tǒng)”。但多數(shù)人把“嵌入”嵌入式微處理器的系統(tǒng),稱為“嵌入式系統(tǒng)”。目前“嵌入式系統(tǒng)”還沒有一個(gè)嚴(yán)格和權(quán)威的定義。目前人們所說(shuō)的“嵌入式系統(tǒng)”,多指后者。6.嵌入式處理器家族中的單片機(jī)、DSP、嵌入式微處理器各有何特點(diǎn)?它們的應(yīng)用領(lǐng)域有何不同?答:?jiǎn)纹瑱C(jī)體積小、價(jià)格低且易于掌握和普與,很容易嵌入到各種通用目的的系統(tǒng)中,實(shí)現(xiàn)各種方式的檢測(cè)和控制。單片機(jī)在嵌入式處理器市場(chǎng)占有率最高,最大特點(diǎn)是價(jià)格低,體積小,應(yīng)用廣泛。DSP是一種非常擅長(zhǎng)于高速實(shí)現(xiàn)各種數(shù)字信號(hào)處理運(yùn)算(如數(shù)字濾波、FFT、頻譜分析等)的嵌入式處理器。能夠高速完成各種復(fù)雜的數(shù)字信號(hào)處理算法。廣泛地用于通訊、網(wǎng)絡(luò)通信、數(shù)字圖像處理,電機(jī)控制系統(tǒng),生物信息識(shí)別終端,實(shí)時(shí)語(yǔ)音壓解系統(tǒng)等。這類智能化算法一般都是運(yùn)算量較大,特別是向量運(yùn)算、指針線性尋址等較多,而這正是DSP的長(zhǎng)處所在。與單片機(jī)相比,DSP具有的實(shí)現(xiàn)高速運(yùn)算的硬件結(jié)構(gòu)與指令和多總線,DSP處理的算法的復(fù)雜度和大的數(shù)據(jù)處理流量以與片內(nèi)集成的多種功能部件更是單片機(jī)不可企與的。嵌入式微處理器的基礎(chǔ)是通用計(jì)算機(jī)中的CPU,地址總線數(shù)目較多,能擴(kuò)展容量較大的存儲(chǔ)器,所以可配置實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS)。RTOS能夠處理復(fù)雜的系統(tǒng)管理任務(wù)和處理工作。因此,廣泛地應(yīng)用在移動(dòng)計(jì)算平臺(tái)、媒體手機(jī)、工業(yè)控制和商業(yè)領(lǐng)域(例如,智能工控設(shè)備、ATM機(jī)等)、電子商務(wù)平臺(tái)、信息家電(機(jī)頂盒、數(shù)字電視)以與軍事上的應(yīng)用。第2章思考題與習(xí)題2參考答案一、填空1.在AT89S52單片機(jī)中,如果采用6MHz晶振,一個(gè)機(jī)器周期為。答:2μs2.AT89S52單片機(jī)的機(jī)器周期等于個(gè)時(shí)鐘振蕩周期。答:123.內(nèi)部RAM中,位地址為40H、88H的位,該位所在字節(jié)的字節(jié)地址分別為和。答:28H,88H4.片內(nèi)字節(jié)地址為2AH單元最低位的位地址是;片內(nèi)字節(jié)地址為A8H單元的最低位的位地址為。答:50H,A8H5.若A中的內(nèi)容為63H,那么,P標(biāo)志位的值為。答:06.AT89S52單片機(jī)復(fù)位后,R4所對(duì)應(yīng)的存儲(chǔ)單元的地址為,因上電時(shí)PSW=。這時(shí)當(dāng)前的工作寄存器區(qū)是組工作寄存器區(qū)。答:04H,00H,0。7.內(nèi)部RAM中,可作為工作寄存器區(qū)的單元地址為H~H。答:00H,1FH8.通過(guò)堆棧操作實(shí)現(xiàn)子程序調(diào)用時(shí),首先要把的內(nèi)容入棧,以進(jìn)行斷點(diǎn)保護(hù)。調(diào)用子程序返回指令時(shí),再進(jìn)行出棧保護(hù),把保護(hù)的斷點(diǎn)送回到,先彈出的是原來(lái)中的內(nèi)容。答:PC,PC,PCH9.單片機(jī)的PC是16位的,因此其尋址的范圍為KB。答:6410.AT89S52單片機(jī)復(fù)位時(shí),P0~P3口的各引腳為電平。答:高11.AT89S52單片機(jī)使用片外振蕩器作為時(shí)鐘信號(hào)時(shí),引腳XTAL1接,引腳XTAL2的接法是。答:片外振蕩器的輸出信號(hào),懸空12.AT89S52單片機(jī)復(fù)位時(shí),堆棧指針SP中的內(nèi)容為,程序指針PC中的內(nèi)容為。答:07H,0000H二、單選1.程序在運(yùn)行中,當(dāng)前PC的值是。A.當(dāng)前正在執(zhí)行指令的前一條指令的地址B.當(dāng)前正在執(zhí)行指令的地址。C.當(dāng)前正在執(zhí)行指令的下一條指令的首地址D.控制器中指令寄存器的地址。答:C2.判斷下列哪一種說(shuō)法是正確的?A.PC是一個(gè)可尋址的寄存器B.單片機(jī)的主頻越高,其運(yùn)算速度越快。C.AT89S52單片機(jī)中的一個(gè)機(jī)器周期為1μsD.特殊功能寄存器SP內(nèi)存放的是堆棧棧頂單元的內(nèi)容。答:B三、判斷對(duì)錯(cuò)1.使用AT89S52單片機(jī)且引腳=1時(shí),仍可外擴(kuò)64KB的程序存儲(chǔ)器。錯(cuò)2.區(qū)分片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的最可靠的方法是看其位于地址范圍的低端還是高端。錯(cuò)3.在AT89S52單片機(jī)中,為使準(zhǔn)雙向的I/O口工作在輸入方式,必須事先預(yù)置為1。對(duì)4.PC可以看成是程序存儲(chǔ)器的地址指針。對(duì)5.AT89S52單片機(jī)中特殊功能寄存器(SFR)使用片內(nèi)RAM的部份字節(jié)地址。對(duì)6.片內(nèi)RAM的位尋址區(qū),只能供位尋址使用,而不能進(jìn)行字節(jié)尋址。錯(cuò)7.AT89S52單片機(jī)共有32個(gè)特殊功能寄存器,它們的位都是可以用軟件設(shè)置的,因此,都是可以位尋址的。錯(cuò)8.堆棧區(qū)是單片機(jī)內(nèi)部的一個(gè)特殊區(qū)域,與RAM無(wú)關(guān)。錯(cuò)9.AT89S52單片機(jī)進(jìn)入空閑模式,CPU停止工作。片內(nèi)的外圍電路(如中斷系統(tǒng)、串行口和定時(shí)器)仍將繼續(xù)工作。對(duì)10.AT89S52單片機(jī)不論是進(jìn)入空閑模式還是掉電運(yùn)行模式后,片內(nèi)RAM和SFR中的內(nèi)容均保持原來(lái)的狀態(tài)。對(duì)11.AT89S52單片機(jī)進(jìn)入掉電運(yùn)行模式,CPU和片內(nèi)的外圍電路(如中斷系統(tǒng)、串行口和定時(shí)器)均停止工作。對(duì) 12.AT89S52單片機(jī)的掉電運(yùn)行模式可采用響應(yīng)中斷方式來(lái)退出。對(duì)四、簡(jiǎn)答1.AT89S52單片機(jī)片內(nèi)都集成了哪些功能部件?答:集成了如下部件:1個(gè)微處理器(CPU);256個(gè)數(shù)據(jù)存儲(chǔ)器(RAM)單元;8KFlash程序存儲(chǔ)器;4個(gè)8位可編程并行I/O口(P0口、P1口、P2口、P3口);1個(gè)全雙工串行口;3個(gè)16位定時(shí)器/計(jì)數(shù)器;1個(gè)看門狗定時(shí)器;一個(gè)中斷系統(tǒng),6個(gè)中斷源,2個(gè)優(yōu)先級(jí);32個(gè)特殊功能寄存器(SFR)。2.AT89S52的請(qǐng)寫出這些單元的入口地址與對(duì)應(yīng)的中斷源。答:見下表表AT89S52各中斷源的中斷入口地址中斷源入口地址外部中斷00003H定時(shí)器/計(jì)數(shù)器T0000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器T1001BH串行口0023H定時(shí)器/計(jì)數(shù)器T2002BH3.說(shuō)明AT89S52單片機(jī)的引腳接高電平或低電平的區(qū)別。答:當(dāng)腳為高電平時(shí),單片機(jī)讀片內(nèi)程序存儲(chǔ)器(8K字節(jié)Flash)中的內(nèi)容,但在PC值超過(guò)0FFFH(即超出4K字節(jié)地址范圍)時(shí),將自動(dòng)轉(zhuǎn)向讀外部程序存儲(chǔ)器內(nèi)的程序;當(dāng)腳為低電平時(shí),單片機(jī)只對(duì)外部程序存儲(chǔ)器的地址為0000H~FFFFH中的內(nèi)容進(jìn)行讀操作,單片機(jī)不理會(huì)片內(nèi)的8K字節(jié)的Flash程序存儲(chǔ)器。4.AT89S52單片機(jī)有哪兩種低功耗節(jié)電模式?說(shuō)明兩種低功耗節(jié)電模式的異同。答:AT89S52單片機(jī)有兩種低功耗節(jié)電工作模式:空閑模式(idlemode)和掉電模式(powerdownmode)??臻e模式下,雖然振蕩器仍然運(yùn)行,但是CPU進(jìn)入空閑狀態(tài)。此時(shí),片內(nèi)所有外圍電路(中斷系統(tǒng)、串行口和定時(shí)器)仍繼續(xù)工作,SP、PC、PSW、A、P0~P3端口等所有其他寄存器,以與內(nèi)部RAM和SFR中的內(nèi)容均保持進(jìn)入空閑模式前的狀態(tài)。因?yàn)镃PU耗電量通常要占芯片耗電的80%~90%,因此CPU停止工作則會(huì)大大降低功耗。掉電模式下,振蕩器停止工作。由于沒有了時(shí)鐘信號(hào),內(nèi)部的所有部件均停止工作,但片內(nèi)的RAM和SFR的原來(lái)內(nèi)容都被保留,有關(guān)端口的輸出狀態(tài)值都保存在對(duì)應(yīng)的特殊功能寄存器中。5.AT89S52單片機(jī)運(yùn)行時(shí)程序出現(xiàn)“跑飛”或陷入“死循環(huán)’時(shí),說(shuō)明如何利用看門狗來(lái)擺脫困境的工作原理。答:可采用看門狗定時(shí)器。工作原理如下:“看門狗”技術(shù)就是使用一個(gè)“看門狗”定時(shí)器來(lái)對(duì)系統(tǒng)時(shí)鐘不斷計(jì)數(shù),監(jiān)視程序的運(yùn)行。當(dāng)看門狗定時(shí)器啟動(dòng)運(yùn)行后,為防止看門狗定時(shí)器的不必要溢出而引起單片機(jī)的非正常的復(fù)位,應(yīng)定期地把看門狗定時(shí)器清0,以保證看門狗定時(shí)器不溢出。當(dāng)由于干擾,使單片機(jī)程序“跑飛”或陷入“死循環(huán)”時(shí),單片機(jī)也就不能正常運(yùn)行程序來(lái)定時(shí)地把看門狗定時(shí)器清0,當(dāng)看門狗定時(shí)器計(jì)滿溢出時(shí),將在AT89S52的RST引腳上輸出一個(gè)正脈沖(寬度為98個(gè)時(shí)鐘周期),使單片機(jī)復(fù)位,在系統(tǒng)的復(fù)位入口0000H處重新開始執(zhí)行主程序,從而使程序擺脫“跑飛”或“死循環(huán)”狀態(tài),讓單片機(jī)歸復(fù)于正常的工作狀態(tài)。第3章思考題與習(xí)題3參考答案一、填空訪問SFR,只能使用尋址方式。答:直接。指令格式是由和組成,也可僅由組成。答:操作碼,操作數(shù),操作碼。在基址加變址尋址方式中,以作為變址寄存器,以或作為基址寄存器。答:A,PC,DPTR假定累加器A中的內(nèi)容為30H,執(zhí)行指令1000H: MOVCA,@A+PC后,把程序存儲(chǔ)器單元的內(nèi)容送入累加器A中。答:1031H在AT89S52中,PC和DPTR都用于提供地址,但PC是為訪問存儲(chǔ)器提供地址,而DPTR是為訪問存儲(chǔ)器提供地址。答:程序,數(shù)據(jù)在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的。答:地址下列程序段的功能是。答:A的內(nèi)容與B的內(nèi)容互換。PUSH AccPUSH BPOP AccPOP B已知程序執(zhí)行前有(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH。下述程序執(zhí)行后,(A)=,(SP)=,(51H)=,(52H)=,(PC)=。POP DPHPOP DPLMOV DPTR,#4000HRL AMOV B,AMOVC A,@A+DPTRPUSH AccMOV A,BINC AMOVC A,@A+DPTRPUSH AccRETORG 4000HDB 10H,80H,30H,50H,30H,50H答:(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,(PC)=5030H假定(A)=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令后,(A)=。ANL A,#17HORL 17H,AXRL A,@R0CPL A答:(A)=0CBH。假設(shè)(A)=55H,(R3)=0AAH,在執(zhí)行指令“ANLA,R3”后,(A)=,(R3)=。答:(A)=00H,(R3)=0AAH。如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,則執(zhí)行下列指令后,(DPH)=,(DPL)=,(SP)=。POP DPHPOP DPLPOP SP答:(DPH)=3CH,(DPL)=5FH,(SP)=50H假定,(SP)=60H,(A)=30H,(B)=70H,執(zhí)行下列指令后,SP的內(nèi)容為,61H單元的內(nèi)容為,62H單元的內(nèi)容為。PUSH AccPUSH B答:(SP)=62H,(61H)=30H,(62H)=70H。二、判斷對(duì)錯(cuò)1.判斷以下指令的正誤。(1)MOV28H,@R2;(2)DECDPTR

;(3)INCDPTR;(4)CLRR0;(5)CPLR5(6)MOVR0,R1;(7)PHSHDPTR;(8)MOVF0,C;(9)MOVF0,Acc.3;(10)MOVXA,@R1;(11)MOVC,30H;(12)RLCR0答:(1)錯(cuò)(2)錯(cuò)(3)對(duì)(4)錯(cuò)(5)錯(cuò)(6)錯(cuò)(7)錯(cuò)(8)對(duì)(9)錯(cuò)(10)對(duì)(11)對(duì)(12)錯(cuò)。2.判斷下列說(shuō)法是否正確。

A.立即數(shù)尋址方式是被操作的數(shù)據(jù)本身就在指令中,而不是它的地址在指令中。

B.指令周期是執(zhí)行一條指令的時(shí)間。C.指令中直接給出的操作數(shù)稱為直接尋址。

D.內(nèi)部寄存器Rn(n=0~7)可作為間接尋址寄存器。答:A.對(duì);B.對(duì);C.錯(cuò);D.錯(cuò)。3.以下指令中,屬于單純讀引腳的指令是()。

A.MOVP1,A;

B.ORLP1,#0FH;C.MOVC,P1.5;D.ANLP1,#0FH答:C。三、單選1.程序在運(yùn)行中,當(dāng)前PC的值是。A.當(dāng)前正在執(zhí)行指令的前一條指令的地址B.當(dāng)前正在執(zhí)行指令的地址。C.當(dāng)前正在執(zhí)行指令的下一條指令的首地址D.控制器中指令寄存器的地址。答:C2.判斷下列哪一種說(shuō)法是正確的?A.PC是一個(gè)可尋址的寄存器B.單片機(jī)的主頻越高,其運(yùn)算速度越快。C.AT89S52單片機(jī)中的一個(gè)機(jī)器周期為1μsD.特殊功能寄存器SP內(nèi)存放的是堆棧棧頂單元的內(nèi)容。答:B3.對(duì)程序存儲(chǔ)器的讀操作,只能使用()。

A.MOV指令B.PUSH指令

C.MOVX指令D.MOVC指令答:D。四、程序分析與編程1.下列程序段經(jīng)匯編后,從1000H開始的各有關(guān)存儲(chǔ)單元的內(nèi)容是什么?ORG 1000HTAB1 EQU1234HTAB2 EQU3000HDB "MAIN"DW TAB1,TAB2,70H答:從1000H開始的各有關(guān)存儲(chǔ)單元的內(nèi)容(16進(jìn)制)如下:4DH,41H,49H,4EH,12H,34H,30H,00H,00H,70H2.編寫程序,將內(nèi)部RAM中45H單元的高4位清“0”,低4位置“1”。答:參考程序如下:MOV A,45H ANL A,#0FH ORL A,#0FH MOV 45H,A3.已知程序執(zhí)行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序執(zhí)行后,A=();SP=();(41H)=();(42H)=();PC=()。POP DPHPOP DPLMOV DPTR,#3000HRL AMOV B,AMOVC A,@A+DPTRPUSH AccMOV A,BINC AMOVC A,@A+DPTRPUSH AccRETORG 3000HDB 10H,80H,30H,80H,50H,80H答:(A)=80H,(SP)=40H,(41H)=50H,(42H)=80H,(PC)=8050H4.編寫程序,查找在內(nèi)部RAM的30H~50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。答:參考程序如下:START: MOV R0,#30H MOV R2,#20H LOOP: MOV A,@R0 CJNE A,#0AAH,NEXT MOV 51H,#01H LJMP EXIT NEXT: INC R0 DJNZ R2,LOOP MOV 51H,#00H EXIT: RET5.寫出完成如下要求的程序段,但是不能改變未涉與位的內(nèi)容。A.把ACC.3,ACC.4,ACC.5和ACC.6清“0”。B.把累加器A的中間4位清“0”。C.把ACC.2和ACC.3置“1”。答: A. ANLA,#87HB. ANLA,#0C3HC. ORLA,#0CH6.若SP=60H,標(biāo)號(hào)LABEL所在的地址為3456H。LCALL指令的地址為2000H,執(zhí)行如下指令:2000HLCALLLABEL后(1)堆棧指針SP和堆棧內(nèi)容發(fā)生了什么變化?(2)PC的值等于什么?(3)如果將指令LCALL直接換成ACALL是否可以?(4)如果換成ACALL指令,可調(diào)用的地址范圍是什么?答:(1)SP=SP+1=61H (61H)=PC的低字節(jié)=03H SP=SP+1=62H (62H)=PC的高字節(jié)=20H(2)PC=3456H(3)不可以(4)2KB=2048Byte7.試編寫程序,查找在內(nèi)部RAM的20H~40H單元中出現(xiàn)“00H”這一數(shù)據(jù)的次數(shù),并將查找到的結(jié)果存入41H單元。答:參考程序如下:START: MOV 41H,#0 MOV R0,#20H MOV R2,#20H LOOP: MOV A,@R0 JNZ NEXT INC 41H NEXT: INC R0 DJNZ R2,LOOP RET8.對(duì)例3-22中的程序進(jìn)行修改,使其達(dá)到精確的50ms延時(shí)時(shí)間。答:原來(lái)的程序: ORG 0100HD50ms: MOV R7,#200 ;執(zhí)行時(shí)間1μsD1: MOV R6,#125 ;執(zhí)行時(shí)間1μsD2: DJNZ R6,D2 ;指令執(zhí)行1次為2μs,總計(jì)125×2=250μsDJNZ R7,D1 ;指令執(zhí)行時(shí)間2μs,本循環(huán)體執(zhí)行200次RET ;指令執(zhí)行時(shí)間2μs可對(duì)程序做如下修改:ORG 0100HD50ms: MOV R7,#200D1: MOV R6,#123 ;將原來(lái)的立即數(shù)125改為123D2: DJNZ R6,D2 NOP ;增加的指令 DJNZ R7,D1 RET程序修改后的延時(shí)時(shí)間為:1+(1+123*2+1+2)*200+2=50003μs=50.003ms9.借助表3-2,對(duì)如下指令代碼(十六進(jìn)制)進(jìn)行手工反匯編。FFH,C0H,E0H,E5H,F(xiàn)0H,F0H答: MOV R7,APUSH AccMOV A,BMOVX @DPTR,A五、簡(jiǎn)答1.說(shuō)明偽指令的作用?!皞巍钡暮x是什么?常用偽指令有哪些?其功能如何?答:偽指令是程序員發(fā)給匯編程序的命令,只有在匯編前的源程序中才有偽指令,即在匯編過(guò)程中的用來(lái)控制匯編過(guò)程的命令。所謂“偽”是體現(xiàn)在匯編后,偽指令沒有相應(yīng)的機(jī)器代碼產(chǎn)生。常用偽指令與功能如下:ORG(ORiGin)匯編起始地址命令;END(ENDofassembly)匯編終止命令;EQU(EQUate)標(biāo)號(hào)賦值命令;DB(DefineByte)定義數(shù)據(jù)字節(jié)命令;DW(DefineWord)定義數(shù)據(jù)字命令;DS(DefineStorage)定義存儲(chǔ)區(qū)命令;BIT位定義命令2.解釋下列術(shù)語(yǔ):

手工匯編、機(jī)器匯編、反匯編答:手工匯編:通過(guò)查指令的機(jī)器代碼表(表3-2),逐個(gè)把助記符指令“翻譯”成機(jī)器代碼,再進(jìn)行調(diào)試和運(yùn)行。這種人工查表“翻譯”指令的方法稱為“手工匯編”。機(jī)器匯編:借助于微型計(jì)算機(jī)上的軟件(匯編程序)來(lái)代替手工匯編。通過(guò)在微機(jī)上運(yùn)行匯編程序,把匯編語(yǔ)言源程序翻譯成機(jī)器代碼。反匯編:將二進(jìn)制的機(jī)器碼程序翻譯成匯編語(yǔ)言源程序的過(guò)程稱為“反匯編”。3.設(shè)計(jì)子程序時(shí)應(yīng)注意哪些問題?答:編寫子程序時(shí)應(yīng)注意以下問題:子程序的第一條指令前必須有標(biāo)號(hào)。主程序調(diào)用子程序,有如下兩條子程序調(diào)用指令:①絕對(duì)調(diào)用指令A(yù)CALLaddr11。被調(diào)用的子程序的首地址與絕對(duì)調(diào)用指令的下一條指令的高5位地址相同,即只能在同一個(gè)2KB區(qū)內(nèi)。②長(zhǎng)調(diào)用指令LCALLaddr16。addr16為直接調(diào)用的目的地址,被調(diào)用的子程序可放置在64KB程序存儲(chǔ)器區(qū)的任意位置。子程序結(jié)構(gòu)中必須用到堆棧,用來(lái)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)保護(hù)。子程序返回時(shí),必須以RET指令結(jié)束。子程序可以嵌套,但要注意堆棧的沖突。4.為什么對(duì)基本型的8051子系列單片機(jī),其寄存器間接尋址方式(例如MOVA,@R0)中,規(guī)定R0或R1的內(nèi)容不能超過(guò)7FH?而對(duì)增強(qiáng)型的8052子系列單片機(jī),R0或R1的內(nèi)容就不受限制?答:基本型的8051子系列單片機(jī),由于其片內(nèi)RAM的地址范圍為00H~7FH,而80H~FFH為特殊功能寄存器區(qū),而對(duì)特殊功能寄存器尋址,只能使用直接尋址方式。對(duì)片內(nèi)RAM尋址,當(dāng)使用寄存器間接尋址是采用R0或R1作為間接尋址的,因此R0或R1的內(nèi)容不能超過(guò)7FH。增強(qiáng)型的8052子系列單片機(jī),片內(nèi)RAM的地址范圍為00H~FFH,因此作為間接尋址寄存器的R0或R1的內(nèi)容就不受限制。第4章思考題與習(xí)題4參考答案一、填空1.外部中斷1的中斷入口地址為。定時(shí)器T1的中斷入口地址為。答:0013H;001BH2.若(IP=00010100B,則優(yōu)先級(jí)最高者為,最低者為。答:外部中斷1,定時(shí)器T13.AT89S52單片機(jī)響應(yīng)中斷后,產(chǎn)生長(zhǎng)調(diào)用指令LCALL,執(zhí)行該指令的過(guò)程包括:首先把的內(nèi)容壓入堆棧,以進(jìn)行斷點(diǎn)保護(hù),然后把長(zhǎng)調(diào)用指令的16位地址送入,使程序執(zhí)行轉(zhuǎn)向中的中斷地址區(qū)。答:PC、PC、程序存儲(chǔ)器4.AT89S52單片機(jī)復(fù)位后,中斷優(yōu)先級(jí)最高的中斷源是。答:外部中斷05.當(dāng)AT89S52單片機(jī)響應(yīng)中斷后,必須用軟件清除的中斷請(qǐng)求標(biāo)志是。答:串行中斷、定時(shí)器/計(jì)數(shù)器T2中斷二、單選1.下列說(shuō)法錯(cuò)誤的是()。A.同一級(jí)別的中斷請(qǐng)求按時(shí)間的先后順序響應(yīng)B.同一時(shí)間同一級(jí)別的多中斷請(qǐng)求,將形成阻塞,系統(tǒng)無(wú)法響應(yīng)C.低優(yōu)先級(jí)中斷請(qǐng)求不能中斷高優(yōu)先級(jí)中斷請(qǐng)求,但是高優(yōu)先級(jí)中斷請(qǐng)求能中斷低優(yōu)先級(jí)中斷請(qǐng)求D.同級(jí)中斷不能嵌套答:B2.在AT89S52的中斷請(qǐng)求源中,需要外加電路實(shí)現(xiàn)中斷撤銷的是()。A.電平方式的外部中斷請(qǐng)求B.跳沿方式的外部中斷請(qǐng)求C.外部串行中斷D.定時(shí)中斷答:A3.中斷查詢確認(rèn)后,在下列各種AT89S52單片機(jī)運(yùn)行情況下,能立即進(jìn)行響應(yīng)的是()。A.當(dāng)前正在進(jìn)行高優(yōu)先級(jí)中斷處理B.當(dāng)前正在執(zhí)行RETI指令C.當(dāng)前指令是MOVA,R3D.當(dāng)前指令是DIV指令,且正處于取指令的機(jī)器周期答:C4.下列說(shuō)法正確的是()。A.各中斷源發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在AT89S52的IE寄存器中B.各中斷源發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在AT89S52的TMOD寄存器中C.各中斷源發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在AT89S52的IP寄存器中D.各中斷源發(fā)出的中斷請(qǐng)求信號(hào)答:D三、判斷對(duì)錯(cuò)1.定時(shí)器T0中斷可以被外部中斷0中斷。錯(cuò)2.必須有中斷源發(fā)出中斷請(qǐng)求,并且CPU開中斷,CPU才可能響應(yīng)中斷。錯(cuò)3.AT89S52單片機(jī)中的同級(jí)中斷不能嵌套。對(duì)4.同為高中斷優(yōu)先級(jí),外部中斷0能打斷正在執(zhí)行的外部中斷1的中斷服務(wù)程序。錯(cuò)5.中斷服務(wù)子程序可以直接調(diào)用。錯(cuò)6.在開中斷的前提下,只要中斷源發(fā)出中斷請(qǐng)求,CPU就會(huì)立刻響應(yīng)中斷。錯(cuò)四、簡(jiǎn)答1.中斷服務(wù)子程序與普通子程序有哪些相同和不同之處?答:RETI指令在返回的同時(shí)自動(dòng)清除相應(yīng)的不可尋址的優(yōu)先級(jí)觸發(fā)器,以允許下次中斷,而RET指令則沒有這個(gè)操作。除了這一點(diǎn)兩條指令不同外,其它操作都相同。2.AT89S52單片機(jī)響應(yīng)外部中斷的典型時(shí)間是多少?在哪些情況下,CPU將推遲對(duì)外部中斷請(qǐng)求的響應(yīng)?答:在一個(gè)單一中斷的系統(tǒng)里,AT89S51單片機(jī)對(duì)外部中斷請(qǐng)求的響應(yīng)時(shí)間總是在3~8個(gè)機(jī)器周期之間。在下述三種情況下,AT89S51將推遲對(duì)外部中斷請(qǐng)求的響應(yīng):(1)AT89S52正在處理同級(jí)或更高優(yōu)先級(jí)的中斷。(2)所查詢的機(jī)器周期不是當(dāng)前正在執(zhí)行指令的最后一個(gè)機(jī)器周期。(3)正在執(zhí)行的指令是RETI或是訪問IE或IP的指令。如果存在上述三種情況之一,AT89S52將丟棄中斷查詢結(jié)果,將推遲對(duì)外部中斷請(qǐng)求的響應(yīng)。3.中斷響應(yīng)需要滿足哪些條件?答:一個(gè)中斷源的中斷請(qǐng)求被響應(yīng),必須滿足以下條件:(1)總中斷允許開關(guān)接通,即IE寄存器中的中斷總允許位EA=1。(2)該中斷源發(fā)出中斷請(qǐng)求,即該中斷源對(duì)應(yīng)的中斷請(qǐng)求標(biāo)志為“1”。(3)該中斷源的中斷允許位=1,即該中斷被允許。(4)無(wú)同級(jí)或更高級(jí)中斷正在被服務(wù)。4.編寫外部中斷1為跳沿觸發(fā)的中斷初始化程序段。答:參考程序段如下:……SETB IT1 SETB EX1 SETB EA……5.某系統(tǒng)有三個(gè)外部中斷源IR1、IR2和IR3,當(dāng)某一中斷源發(fā)出的中斷請(qǐng)求使引腳變?yōu)榈碗娖綍r(shí)(參見圖4-11),便要求CPU進(jìn)行處理,它們的優(yōu)先處理次序由高到低為IR3、IR2、IR1,中斷處理程序的入口地址分別為1000H,1100H,1200H。試編寫主程序與中斷服務(wù)子程序(轉(zhuǎn)至相應(yīng)的中斷處理程序的入口即可)。答:參見電路如圖4-11,參考程序如下: ORG 0000H LJMP MAIN ORG 0013H LJMP INT_EX1 ORG 0030HMAIN: CLR IT0 ;采用電平觸發(fā),低電平有效中斷 SETB EX1 ;允許外部中斷1 SETB EA ;插入一段用戶程序WAIT: AJMP WAIT ;單片機(jī)等待中斷;以下為外部中斷1服務(wù)子程序INT_EX1: JB P1.2,NEXT1 ;判斷是不是IR3中斷 LJMP INT_IR3 ;跳轉(zhuǎn)到IR3中斷處理程序NEXT1: JB P1.1,NEXT2 ;判斷是不是IR2中斷 LJMP INT_IR2 ;跳轉(zhuǎn)到IR2中斷處理程序NEXT2: LJMP INT_IR1 ;跳轉(zhuǎn)到IR1中斷處理程序 ORG 1000HINT_IR3: 相應(yīng)中斷處理程序 RETI ;中斷返回 ORG 1100HINT_IR2: 相應(yīng)中斷處理程序 RETI ;中斷返回 ORG 1200HINT_IR1: 相應(yīng)中斷處理程序 RETI ;中斷返回第5章思考題與習(xí)題5參考答案一、填空1.如果采用晶振的頻率為3MHz,定時(shí)器/計(jì)數(shù)器Tx(x=0,1)工作在方式0、1、2下,其方式0的最大定時(shí)時(shí)間為,方式1的最大定時(shí)時(shí)間為,方式2的最大定時(shí)時(shí)間為。答:32.768ms,262.144ms,1024μs2.定時(shí)器/計(jì)數(shù)器用作計(jì)數(shù)器模式時(shí),外部輸入的計(jì)數(shù)脈沖的最高頻率為系統(tǒng)時(shí)鐘頻率的。答:1/243.定時(shí)器/計(jì)數(shù)器用作定時(shí)器模式時(shí),其計(jì)數(shù)脈沖由提供,定時(shí)時(shí)間與有關(guān)。答:系統(tǒng)時(shí)鐘信號(hào)12分頻后,定時(shí)器初值4.定時(shí)器/計(jì)數(shù)器T1測(cè)量某正單脈沖的寬度,采用方式可得到最大量程?若時(shí)鐘頻率為6MHz,求允許測(cè)量的最大脈沖寬度為。答:方式1定時(shí),131.072ms。5.定時(shí)器T2有3種工作方式:、和,可通過(guò)對(duì)寄存器中的相關(guān)位進(jìn)行軟件設(shè)置來(lái)選擇。答:捕捉,重新裝載(增計(jì)數(shù)或減計(jì)數(shù)),波特率發(fā)生器,T2CON6.AT89S52單片機(jī)的晶振為6MHz,若利用定時(shí)器T1的方式1定時(shí)2ms,則(TH1)=,(TL1)=。答:FCH,18H。二、單選1.定時(shí)器T0工作在方式3時(shí),定時(shí)器T1有種工作方式。 A.1種 B.2種C.3種 D.4種

答:C2.定時(shí)器T0、T1工作于方式1時(shí),其計(jì)數(shù)器為位。A.8位B.16位C.14位D.13位答:B3.定時(shí)器T0、T1的GATEx=1計(jì)數(shù)器是否計(jì)數(shù)的條件。A.僅取決于TRx狀態(tài)B.僅取決于GATE位狀態(tài)C.是由TRx和兩個(gè)條件來(lái)共同控制D.僅取決于的狀態(tài)答:C4.定時(shí)器T2工作在自動(dòng)重裝載方式時(shí),其計(jì)數(shù)器為位。A.8位B.13位C.14位D.16位答:D5.要想測(cè)量引腳上的正單脈沖的寬度,特殊功能寄存器TMOD的內(nèi)容應(yīng)為。A.87HB.09HC.80HD.00H答:B三、判斷對(duì)錯(cuò)1.下列關(guān)于T0、T1的哪些說(shuō)法是正確的。A.特殊功能寄存器SCON,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。對(duì)B.特殊功能寄存器TCON,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。錯(cuò)C.特殊功能寄存器IE,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。錯(cuò)D.特殊功能寄存器TMOD,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。錯(cuò)2.定時(shí)器T0、T1對(duì)外部脈沖進(jìn)行計(jì)數(shù)時(shí),要求輸入的計(jì)數(shù)脈沖的高電平或低電平的持續(xù)時(shí)間不小于1個(gè)機(jī)器周期。特殊功能寄存器SCON與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。錯(cuò)3.定時(shí)器T0、T1對(duì)外部引腳上的脈沖進(jìn)行計(jì)數(shù)時(shí),要求輸入的計(jì)數(shù)脈沖的高電平和低電平的持續(xù)時(shí)間均不小于2個(gè)機(jī)器周期。對(duì)四、簡(jiǎn)答1.定時(shí)器/計(jì)數(shù)器T1、T0的工作方式2有什么特點(diǎn)?適用于哪些應(yīng)用場(chǎng)合?答:方式2為初值自動(dòng)裝入的8位定時(shí)器/計(jì)數(shù)器,克服了在循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用時(shí)就存在用指令反復(fù)裝入計(jì)數(shù)初值影響定時(shí)精度的問題。2.THx與TLx(x

=0,1)是普通寄存器還是計(jì)數(shù)器?其內(nèi)容可以隨時(shí)用指令更改嗎?更改后的新值是立即刷新還是等當(dāng)前計(jì)數(shù)器計(jì)滿后才能刷新?答:THx與TLx(x

=

0,1)是計(jì)數(shù)器,其內(nèi)容可以隨時(shí)用指令更改,但是更改后的新值要等當(dāng)前計(jì)數(shù)器計(jì)滿后才能刷新。3.如果系統(tǒng)的晶振的頻率為24MHz,定時(shí)器/計(jì)數(shù)器工作在方式0、1、2下,其最大定時(shí)時(shí)間各為多少?答:晶振的頻率為24MHz,機(jī)器周期為0.5方式0最大定時(shí)時(shí)間=0.50.5方式1最大定時(shí)時(shí)間=0.50.5方式2最大定時(shí)時(shí)間=0.50.54.定時(shí)器/計(jì)數(shù)器Tx(x=0,1)的方式2有什么特點(diǎn)?適用于哪些應(yīng)用場(chǎng)合?答:定時(shí)器/計(jì)數(shù)器的工作方式2具有自動(dòng)恢復(fù)初值的特點(diǎn),適用于精確定時(shí),例如波特率的產(chǎn)生。5.一個(gè)定時(shí)器的定時(shí)時(shí)間有限,如何用兩個(gè)定時(shí)器的串行定時(shí)來(lái)實(shí)現(xiàn)較長(zhǎng)時(shí)間的定時(shí)?答:方法1,在第一個(gè)定時(shí)器的中斷程序里關(guān)閉本定時(shí)器的中斷程序,設(shè)置和打開另一個(gè)定時(shí)器;在另一個(gè)定時(shí)器的中斷程序中關(guān)閉本定時(shí)中斷,設(shè)置和打開另一個(gè)定時(shí)器。這種方式的定時(shí)時(shí)間為兩個(gè)定時(shí)器定時(shí)時(shí)間的和。方法2,一個(gè)作為定時(shí)器,在定時(shí)中斷后產(chǎn)生一個(gè)外部計(jì)數(shù)脈沖(比如由P1.0接產(chǎn)生),另一個(gè)定時(shí)器工作在計(jì)數(shù)方式。這樣兩個(gè)定時(shí)器的定時(shí)時(shí)間為一個(gè)定時(shí)器的定時(shí)時(shí)間乘以另一個(gè)定時(shí)器的計(jì)數(shù)值。6.當(dāng)定時(shí)器T0用于方式3時(shí),應(yīng)該如何控制定時(shí)器T1的啟動(dòng)和關(guān)閉?答:由TMOD寄存器的D6位“C/T*”來(lái)控制定時(shí)器T1的啟動(dòng)和關(guān)閉。7.THx與TLx(x=0,1)是普通寄存器還是計(jì)數(shù)器?其內(nèi)容可以隨時(shí)用指令更改嗎?更改后的新值是立即刷新還是等當(dāng)前計(jì)數(shù)器計(jì)滿后才能刷新?答:THx與TLx(x=0,1)是由特殊功能寄存器構(gòu)成的計(jì)數(shù)器,其內(nèi)容可以隨時(shí)用指令更改,更改后的新值是立即刷新。但在讀THx、TLx的值時(shí),應(yīng)該先讀THx值,后讀TLx,再讀THx。若兩次讀得THx相同,則可確定讀得的內(nèi)容正確。若前后兩次讀得的THx有變化,再重復(fù)上述過(guò)程。五、編程1.采用定時(shí)器/計(jì)數(shù)器T0對(duì)外部脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)100個(gè)脈沖后,T0轉(zhuǎn)為定時(shí)工作方式。定時(shí)1ms后,又轉(zhuǎn)為計(jì)數(shù)工作方式,如此循環(huán)不止。假定AT89S51單片機(jī)的晶體振蕩器的頻率為6MHz,請(qǐng)使用方式1實(shí)現(xiàn),要求編寫程序。答:定時(shí)器/計(jì)數(shù)器T0在計(jì)數(shù)和定時(shí)工作完成后,均采用中斷方式工作。除了第一次計(jì)數(shù)工作方式設(shè)置在主程序完成外,后面的定時(shí)或計(jì)數(shù)工作方式分別在中斷程序完成,用一標(biāo)志位識(shí)別下一輪定時(shí)器/計(jì)數(shù)器T0的工作方式。參考程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: MOV TMOD,#06H ;定時(shí)器/計(jì)數(shù)器T0為計(jì)數(shù)方式2 MOV TL0,#156 ;計(jì)數(shù)100個(gè)脈沖的初值賦值 MOV TH0,#156 SETB GATE ;打開計(jì)數(shù)門 SETB TR0 ;啟動(dòng)T0,開始計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷 CLR F0 ;設(shè)置下一輪為定時(shí)方式的標(biāo)志位WAIT: AJMP WAITIT0P: CLR EA ;CPU關(guān)中斷 JB F0,COUNT ;F0=1,轉(zhuǎn)計(jì)數(shù)方式設(shè)置 MOV TMOD,#00H ;定時(shí)器/計(jì)數(shù)器T0為定時(shí)方式0 MOV TH0,#0FEH ;定時(shí)1ms初值賦值 MOV TL0,#0CH SETB EA RETICOUNT: MOV TMOD,#06H MOV TL0,#156 SETB EA RETI2.編寫程序,要求使用T0,采用方式2定時(shí),在P1.0輸出周期為400μs,占空比為10:1的矩形脈沖。答:據(jù)題意,從P1.0輸出的矩形脈沖的高低電平的時(shí)間為10:1,則高低電平的時(shí)間分別為363.63μs和36.37μs。如果系統(tǒng)采用6MHz晶振的話,Tcy=2μs,因此高低電平輸出取整,則約為364μs和36μs。參考程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: MOV TMOD,#02H ;定時(shí)器/計(jì)數(shù)器T0為定時(shí)方式2 MOV TL0,#4AH ;定時(shí)364μs初值賦值 SETB TR0 ;啟動(dòng)T0,開始計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷 SETB P1.0WAIT: AJMP WAITIT0P: CLR EACLR P1.0 ;關(guān)中斷 MOV R0,#9DLY: DJNZ R0,DLY ;延時(shí)36μs MOV TL0,#4AH ;定時(shí)364μs初值賦值 SETB P1.0 SETB EA RETI3.編寫程序要求:當(dāng)P1.0引腳的電平正跳變時(shí),對(duì)P1.1的輸入脈沖進(jìn)行計(jì)數(shù);當(dāng)P1.2引腳的電平負(fù)跳變時(shí),停止計(jì)數(shù),并將計(jì)數(shù)值寫入R0、R1(高位存R1,低位存R0)。答:將P1.1的輸入脈沖接入INT0,即使用T0計(jì)數(shù)器完成對(duì)P1.1口的脈沖計(jì)數(shù)。參考程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: JNB P1.0,MAINMOV TMOD,#05H ;定時(shí)器/計(jì)數(shù)器T0為計(jì)數(shù)方式1 SETB TR0 ;啟動(dòng)T0,開始計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開中斷WAIT: JB P1.2,WAIT CLR EA CLR TR0 MOV R1,TH0 MOV R0,TL0 AJMP $IT0P: INC R2 RETI第6章思考題與習(xí)題6參考答案一、填空1、AT89S51的串行異步通信口為(單工/半雙工/全雙工)。答:全雙工。2.串行通信波特率的單位是。答:bit/s3.AT89S52的串行通信口若傳送速率為每秒120幀,每幀10位,則波特率為答:12004.串行口的方式0的波特率為。答:fosc/125.AT89S51單片機(jī)的通訊接口有和兩種型式。在串行通訊中,發(fā)送時(shí)要把數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)。接收時(shí)又需把數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)。答:并行,串行,并行,串行,串行,并行6.當(dāng)用串行口進(jìn)行串行通信時(shí),為減小波特率誤差,使用的時(shí)鐘頻率為MHz。答:11.05927.AT89S52單片機(jī)串行口的4種工作方式中,和的波特率是可調(diào)的,與定時(shí)器/計(jì)數(shù)器T1的溢出率有關(guān),另外兩種方式的波特率是固定的。答:方式1,方式38.幀格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位和1個(gè)停止位的異步串行通信方式是方式。答:方式1。9.在串行通信中,收發(fā)雙方對(duì)波特率的設(shè)定應(yīng)該是的。答:相同的。10.串行口工作方式1的波特率是。答:方式1波特率=(2SMOD/32)×定時(shí)器T1的溢出率二、單選1.通過(guò)串行口發(fā)送或接收數(shù)據(jù)時(shí),在程序中應(yīng)使用。A.MOVC指令 B.MOVX指令 C.MOV指令 D.XCHD指令答:C2.AT89S52的串行口擴(kuò)展并行I/O口時(shí),串行接口工作方式選擇。A.方式0B.方式1C.方式2D.方式3答:A3.控制串行口工作方式的寄存器是。A.TCONB.PCONC.TMODD.SCON答:D三、判斷對(duì)錯(cuò)1.串行口通信的第9數(shù)據(jù)位的功能可由用戶定義。對(duì)2.發(fā)送數(shù)據(jù)的第9數(shù)據(jù)位的內(nèi)容是在SCON寄存器的TB8位中預(yù)先準(zhǔn)備好的。對(duì)3.串行通信方式2或方式3發(fā)送時(shí),指令把TB8位的狀態(tài)送入發(fā)送SBUF中。錯(cuò)4.串行通信接收到的第9位數(shù)據(jù)送SCON寄存器的RB8中保存。對(duì)5.串行口方式1的波特率是可變的,通過(guò)定時(shí)器/計(jì)數(shù)器T1的溢出率設(shè)定。對(duì)6.串行口工作方式1的波特率是固定的,為fosc/32。錯(cuò)7.AT89S52單片機(jī)進(jìn)行串行通信時(shí),一定要占用一個(gè)定時(shí)器作為波特率發(fā)生器。錯(cuò)8.AT89S52單片機(jī)進(jìn)行串行通訊時(shí),定時(shí)器方式2能產(chǎn)生比方式1更低的波特率。錯(cuò)9.串行口的發(fā)送緩沖器和接收緩沖器只有1個(gè)單元地址,但實(shí)際上它們是兩個(gè)不同的寄存器。對(duì)四、簡(jiǎn)答1.在異步串行通信中,接收方是如何知道發(fā)送方開始發(fā)送數(shù)據(jù)的?答:實(shí)質(zhì)就是如何檢測(cè)起始位的開始。當(dāng)接收方檢測(cè)到RXD端從1到0的負(fù)跳變時(shí)就啟動(dòng)檢測(cè)器,接收的值是3次連續(xù)采樣,取其中2次相同的值,以確認(rèn)是否是真正的起始位的開始,這樣能較好地消除干擾引起的影響,以保證可靠無(wú)誤的開始接受數(shù)據(jù)。2.AT89S51單片機(jī)的串行口有幾種工作方式?有幾種幀格式?各種工作方式的波特率如何確定?答:有4種工作方式:方式0、方式1、方式2、方式3;有3種幀格式,方式2和3具有相同的幀格式;方式0的發(fā)送和接收都以fosc/12為固定波特率,方式1的波特率=2SMOD/32×定時(shí)器T1的溢出率方式2的波特率=2SMOD/64×fosc方式3的波特率=2SMOD/32×定時(shí)器T1的溢出率3.假定串行口串行發(fā)送的字符格式為1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)奇校驗(yàn)位、1個(gè)停止位,請(qǐng)畫出傳送字符“B”的幀格式。答:字符“B”的ASCII碼為“42H”,幀格式如下:4.為什么定時(shí)器/計(jì)數(shù)器T1用作串行口波特率發(fā)生器時(shí),常采用方式2?若已知時(shí)鐘頻率、串行通信的波特率,如何計(jì)算裝入T1的初值?答:因?yàn)槎〞r(shí)器T1在方式2下,初值可自動(dòng)重裝,這就避免了執(zhí)行重裝參數(shù)的指令所帶來(lái)的時(shí)間誤差。設(shè)定時(shí)器T1方式2的初值為X,計(jì)算初值X可采用如下公式:波特率=(2SMOD/32)×(fosc/12)/(256-X)5.某AT89S51單片機(jī)串行口,傳送數(shù)據(jù)的幀格式由1個(gè)起始位(0)、7個(gè)數(shù)據(jù)位、1個(gè)偶校驗(yàn)和1個(gè)停止位(1)組成。當(dāng)該串行口每分鐘傳送1

800個(gè)字符時(shí),試計(jì)算出它的波特率。答:串口每秒鐘傳送的字符為:1800/60=30個(gè)字符/秒所以波特率為:30個(gè)字符/秒×10位/個(gè)字符=300b/s6.簡(jiǎn)述8051單片機(jī)主從結(jié)構(gòu)多機(jī)通信原理,設(shè)有一臺(tái)主機(jī)與三臺(tái)從機(jī)通信,其中一臺(tái)從機(jī)通信地址號(hào)為01H,請(qǐng)敘述主機(jī)呼叫從機(jī)并向其傳送一個(gè)字節(jié)數(shù)據(jù)的過(guò)程。(請(qǐng)畫出原理圖)答:原理電路如下圖所示:假設(shè)主機(jī)呼叫01H從機(jī),首先呼叫:主機(jī)發(fā)送地址幀000000011(TB8=1),此時(shí)各從機(jī)的SM2位置1,且收到的RB8=1,故激活RI。各從機(jī)將接收到的地址與本機(jī)地址比較,結(jié)果1#機(jī)被選中,則其SM2清0;0#、2#機(jī)不變。接著進(jìn)行串行數(shù)據(jù)傳送;主機(jī)發(fā)送數(shù)據(jù)幀:××××××××0(TB8=0),此時(shí)1#機(jī)的SM2=0,RB8=0。則激活RI,而0#,2#機(jī)的SM2=1,RB8=0,則不激活RI,然后數(shù)據(jù)進(jìn)入1#機(jī)的接收數(shù)據(jù)緩沖區(qū)。2.為什么AT89S52單片機(jī)串行口的方式0幀格式?jīng)]有起始位(0)和停止位(1)?答:串行口的方式0為同步移位寄存器輸入輸出方式,常用于外接移位寄存器,以擴(kuò)展并行I/O口,一般不用于兩個(gè)MCS-51之間的串行通信。該方式以fosc/12的固定波特率從低為位到高位發(fā)送或接受數(shù)據(jù)。3.直接以TTL電平串行傳輸數(shù)據(jù)的方式有什么缺點(diǎn)?為什么在串行傳輸距離較遠(yuǎn)時(shí),常采用RS-232C、RS-422A和RS-485標(biāo)準(zhǔn)串行接口,來(lái)進(jìn)行串行數(shù)據(jù)傳輸。比較RS-232C、RS-422A和RS-485標(biāo)準(zhǔn)串行接口各自的優(yōu)缺點(diǎn)。答:直接以TTL電平串行傳輸數(shù)據(jù)的方式的缺點(diǎn)是傳輸距離短,抗干擾能力差。因此在串行傳輸距離較遠(yuǎn)時(shí),常采用RS-232C、RS-422A和RS-485標(biāo)準(zhǔn)串行接口。主要是對(duì)傳輸?shù)碾娦盘?hào)不斷改進(jìn),如RS-232C傳輸距離只有幾十米遠(yuǎn),與直接以TTL電平串行傳輸相比,采用了負(fù)邏輯,增大“0”、“1”信號(hào)的電平差。而RS-422A和RS-485都采用了差分信號(hào)傳輸,抗干擾能力強(qiáng),距離可達(dá)1000多米。RS-422A為全雙工,RS-485為半雙工。五、編程1.若晶體振蕩器為11.0592MHz,串行口工作于方式1,波特率為4800bit/s,寫出T1采用方式2作為波特率發(fā)生器的方式控制字和初始化程序。答:計(jì)數(shù)初值為FAH,參考的初始化程序如下:ANL TMOD,#0F0H ;屏蔽高4位 ORL TMOD,#20H ;控制字 MOV TH1,#0FAH ;寫入計(jì)數(shù)初值 MOV TL1,#0FAH MOV SCON,#40H第7章思考題與習(xí)題7參考答案一、填空1.AT89S52單片機(jī)任何一個(gè)端口要想獲得較大的驅(qū)動(dòng)能力,要采用電平輸出。答:低2.檢測(cè)開關(guān)處于閉合狀態(tài)還是打開狀態(tài),只需把開關(guān)一端接到I/O端口的引腳上,另一端接地,然后通過(guò)檢測(cè)來(lái)實(shí)現(xiàn)。答:I/O端口引腳的電平3.“8”字型的LED數(shù)碼管如果不包括小數(shù)點(diǎn)段共計(jì)段,每一段對(duì)應(yīng)一個(gè)發(fā)光二極管,有和兩種。答:7,共陽(yáng)極,共陰極4.對(duì)于共陰極帶有小數(shù)點(diǎn)段的數(shù)碼管,顯示字符“6”(a段對(duì)應(yīng)段碼的最低位)的段碼為,對(duì)于共陽(yáng)極帶有小數(shù)點(diǎn)段的數(shù)碼管,顯示字符“3”的段碼為。答:7DH,B0H5.已知8段共陽(yáng)極LED數(shù)碼顯示器要顯示某字符的段碼為A1H(a段為最低位),此時(shí)顯示器顯示的字符為。答:d6.LED數(shù)碼管靜態(tài)顯示方式的優(yōu)點(diǎn)是:顯示閃爍,亮度,比較容易,但是占用的線較多。答:無(wú),較高,軟件控制,I/O口7.當(dāng)顯示的LED數(shù)碼管位數(shù)較多時(shí),一般采用顯示方式,這樣可以降低,減少的數(shù)目。答:動(dòng)態(tài),成本,I/O端口8.LCD1602是型液晶顯示模塊,在其顯示字符時(shí),只需將待顯示字符的由單片機(jī)寫入LCD1602的顯示數(shù)據(jù)RAM(DDRAM),內(nèi)部控制電路就可將字符在LCD上顯示出來(lái)。答:字符,ASCII碼9.LCD1602顯示模塊內(nèi)除有字節(jié)的RAM外,還有字節(jié)的自定義,用戶可自行定義個(gè)5×7點(diǎn)陣字符。答:80,顯示數(shù)據(jù),64,字符RAM,810.當(dāng)按鍵數(shù)目少于8個(gè)時(shí),應(yīng)采用式鍵盤。當(dāng)按鍵數(shù)目為64個(gè)時(shí),應(yīng)采用式鍵盤。答:獨(dú)立,矩陣11.使用并行接口方式連接鍵盤,對(duì)獨(dú)立式鍵盤而言,8根I/O口線可以接個(gè)按鍵,而對(duì)矩陣式鍵盤而言,8根I/O口線最多可以接個(gè)按鍵。答:8,6412.LCD1602顯示一個(gè)字符的操作過(guò)程為:首先,然后,隨后,最后。答:讀忙標(biāo)志位BF,寫命令,寫顯示字符,自動(dòng)顯示字符13.由于微型打印機(jī)TPμP-40A/16A是一種外設(shè),因此單片機(jī)與微型打印機(jī)的的命令與數(shù)據(jù)傳送,必須采用方式。應(yīng)答信號(hào)可與信號(hào)作為一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),也可使用和作為一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)。答:慢速,,,,BUSY二、判斷對(duì)錯(cuò)1.P0口作為總線端口使用時(shí),它是一個(gè)雙向口。對(duì)2.P0口作為通用I/O端口使用時(shí),外部引腳必須接上拉電阻,因此它是一個(gè)準(zhǔn)雙向口。對(duì)3.P1~P3口作為輸入端口用時(shí),必須先向端口寄存器寫入1。對(duì)4.P0~P3口的驅(qū)動(dòng)能力是相同的。錯(cuò)5.當(dāng)顯示的LED數(shù)碼管位數(shù)較多時(shí),動(dòng)態(tài)顯示所占用的I/O口多,為節(jié)省I/O口與驅(qū)動(dòng)電路的數(shù)目,常采用靜態(tài)掃描顯示方式。錯(cuò)6.LED數(shù)碼管動(dòng)態(tài)掃描顯示電路只要控制好每位數(shù)碼管點(diǎn)亮顯示的時(shí)間,就可造成“多位同時(shí)亮”的假象,達(dá)到多位LED數(shù)碼管同時(shí)顯示的效果。錯(cuò)7.使用專用的鍵盤/顯示器芯片,可由芯片內(nèi)部硬件掃描電路自動(dòng)完成顯示數(shù)據(jù)的掃描刷新,和鍵盤掃描。對(duì)8.控制LED點(diǎn)陣顯示器的顯示,實(shí)質(zhì)上就是控制加到行線和列線上的電平編碼來(lái)控制點(diǎn)亮某些發(fā)光二極管(點(diǎn)),從而顯示出由不同發(fā)光的點(diǎn)組成的各種字符。對(duì)9.16×16點(diǎn)陣顯示屏是由4個(gè)4×4的LED點(diǎn)陣顯示器組成。錯(cuò)10.LCD1602液晶顯示模塊,可顯示2行,每行16個(gè)字符。對(duì)11.HD7279是可自動(dòng)獲取按下鍵盤按鍵的鍵號(hào)以與自動(dòng)對(duì)LED數(shù)碼管進(jìn)行動(dòng)態(tài)掃描顯示用于鍵盤/LED數(shù)碼管的專用接口芯片可,為并行接口芯片。錯(cuò)12.LED數(shù)碼管的字型碼是固定不變的。錯(cuò)13.為給掃描法工作的8×8的非編碼鍵盤提供接口電路,在接口電路中需要提供兩個(gè)8位并行的輸入口和一個(gè)8位并行的輸出口。錯(cuò)14.LED數(shù)碼管工作于動(dòng)態(tài)顯示方式時(shí),同一時(shí)間只有一個(gè)數(shù)碼管被點(diǎn)亮。15.動(dòng)態(tài)顯示的數(shù)碼管,任一時(shí)刻只有一個(gè)LED數(shù)碼管處于點(diǎn)亮狀態(tài),是LED的余輝與人眼的“視覺暫留”造成數(shù)碼管同時(shí)顯示的“假象”。對(duì)16.在微型打印機(jī)之所以稱其為“智能”微型打印機(jī),是其內(nèi)部帶有控制打印的單片機(jī)固化有控打程序。對(duì)三、簡(jiǎn)答1.分別寫出表7-1中共陰極和共陽(yáng)極LED數(shù)碼管僅顯示小數(shù)點(diǎn)“.”的段碼。答:80H(共陰極);7FH(共陽(yáng)極)。2.LED的靜態(tài)顯示方式與動(dòng)態(tài)顯示方式有何區(qū)別?各有什么優(yōu)缺點(diǎn)?答:靜態(tài)顯示時(shí),欲顯示的數(shù)據(jù)是分開送到每一位LED上的。而動(dòng)態(tài)顯示則是數(shù)據(jù)是同時(shí)送到每一個(gè)LED上,再根據(jù)位選線來(lái)確定是哪一位LED被顯示。靜態(tài)顯示亮度很高,但口線占用較多。動(dòng)態(tài)顯示口線占用較少,但是需要編程進(jìn)行動(dòng)態(tài)掃描,適合用在顯示位數(shù)較多的場(chǎng)合。3.對(duì)下圖所示的鍵盤,采用線反轉(zhuǎn)法原理編寫出識(shí)別某一按鍵被按下并得到其鍵號(hào)的程序。答:先對(duì)P1口高四位送低電平,讀取P1口低四位的值;再對(duì)P1口低四位送低電平,讀取P1口高四位的值,將兩次讀到的值組合在一起就得到了按鍵的特征碼,再根據(jù)特征碼查找鍵值。 KEYIN: MOV P1,#0FH ;反轉(zhuǎn)讀鍵 MOV A,P1 ANL A,#0FH MOV B,A MOV P1,#0F0H MOV A,P1 ANL A,#0F0H ORL A,B CJNE A,#0FFH,KEYIN1 RET ;未按鍵 KEYIN1: MOV B,A ;暫存特征碼 MOV DPTR,#KEYCOD ;指向特征碼表 MOV R3,#0FFH ;順序碼初始化 KEYIN2: INC R3 MOV A,R3 MOVC A,@A+DPTR CJNE A,B,KEYIN3 MOV A,R3 ;找到,取順序碼 RET KEYIN3: CJNE A,#0FFH,KEYIN2 ;未完,再查 RET ;已查完,未找到,以未按鍵處理 KEYCOD: DB 0E7H,0EBH,0EDH,0EEH ;特征碼表 DB 0D7H,0DBH,0DDH,0DEH DB 0B7H,0BBH,0BDH,0BEH DB 77H,7BH,7DH,7EH4.非編碼鍵盤分為獨(dú)立式鍵盤和矩陣式鍵盤,什么場(chǎng)合用?答:獨(dú)立式鍵盤是一鍵一線,按鍵數(shù)目較少時(shí)使用,矩陣式鍵盤適于鍵盤數(shù)目較多的場(chǎng)合。5.使用專用鍵盤/顯示器接口芯片HD7279方案實(shí)現(xiàn)的鍵盤/顯示器接口的優(yōu)點(diǎn)是什么?答:使用專用接口芯片HD7279實(shí)現(xiàn)的鍵盤/顯示器接口設(shè)計(jì),優(yōu)點(diǎn)是按鍵按下后,可直接得到鍵號(hào),另外,可控制處理的鍵盤按鍵以與LED數(shù)碼管的數(shù)目較多,對(duì)鍵盤/顯示器的掃描是由HD7279的內(nèi)部電路自動(dòng)完成。第8章思考題與習(xí)題8參考答案一、填空1.單片機(jī)存儲(chǔ)器的主要功能是存儲(chǔ)和。答:程序、數(shù)據(jù)。2.假設(shè)外部數(shù)據(jù)存儲(chǔ)器2000H單元的內(nèi)容為80H,執(zhí)行下列指令后累加器A中的內(nèi)容為。MOVP2,#20HMOVR0,#00HMOVXA,@R0答:80H。3.在存儲(chǔ)器擴(kuò)展中,無(wú)論是線選法還是譯碼法最終都是為擴(kuò)展芯片的端提供控制信號(hào)。答:片選。4.起止范圍為0000H~3FFFH的數(shù)據(jù)存儲(chǔ)器的容量是KB。答:16KB。5.在AT89S52單片機(jī)中,PC和DPTR都用于提供地址,但PC是為訪問存儲(chǔ)器提供地址,而DPTR是為訪問存儲(chǔ)器提供地址。答:程序、數(shù)據(jù)。6.11條地址線可選個(gè)存儲(chǔ)單元,16KB存儲(chǔ)單元需要條地址線。答:2K,14。7.4KBRAM存儲(chǔ)器的首地址若為0000H,則末地址為H。答:0FFF。8.若單片機(jī)外擴(kuò)32KB數(shù)據(jù)存儲(chǔ)器的首地址若為4000H,則末地址為H。答:BFFF9. 設(shè)計(jì)一個(gè)以AT89S52單片機(jī)為核心的系統(tǒng),如果不外擴(kuò)程序存儲(chǔ)器,使其內(nèi)部8KB閃爍程序存儲(chǔ)器有效,則其引腳應(yīng)該接。答:EA*,+5V10.74LS138是具有3個(gè)輸入的譯碼器芯片,其輸出常作片選信號(hào),可選中片芯片中的任一芯片,并且只有1路輸出為電平,其它輸出均為電平。答:8,低,高;二、單選1.區(qū)分AT89S51單片機(jī)片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的最可靠方法是。A.看其位于地址范圍的低端還是高端B.看其離AT89S51單片機(jī)芯片的遠(yuǎn)近C.看其芯片的型號(hào)是ROM還是RAMD.看其是與信號(hào)連接還是與信號(hào)連接答:D2.訪問片外數(shù)據(jù)存儲(chǔ)器的尋址方式是。A.立即尋址B.寄存器尋址C.寄存器間接尋址D.直接尋址答:C3.若要同時(shí)擴(kuò)展4片2KB的RAM和4片4KB的ROM,則最少需要根地址線。A、12 B、13 C、14 D、154.當(dāng)=1時(shí),AT89S52單片機(jī)可以擴(kuò)展的外部程序存儲(chǔ)器的最大容量為。 A.64KBB.60KBC.58KBD.56KB答:D5.若某數(shù)據(jù)存儲(chǔ)器芯片地址線為12根,那么它的存儲(chǔ)容量為。A、1KBB.4KBC.2KBD.8KB答:B三、編程1.試編寫一個(gè)程序(如將05H和06H拼為56H),設(shè)原始數(shù)據(jù)放在片外數(shù)據(jù)區(qū)2001H單元和2002H單元中,按順序拼裝后的單字節(jié)數(shù)放入2002H。答:本題主要考察對(duì)外部存儲(chǔ)器的讀、寫操作,只要記住正確使用MOVX指令就可以了。編程思路:首先讀取2001H的值,保存在寄存器A中,將寄存器A的高四位和低四位互換,再屏蔽掉低四位然后將寄存器A的值保存到30H中,然后再讀取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后將寄存器A的值與30H進(jìn)行或運(yùn)算,將運(yùn)算后的結(jié)果保存在2002H中。 ORG 0000HMAIN: MOV DPTR,#2001H ;設(shè)置數(shù)據(jù)指針的初值 MOVX A,@DPTR ;讀取2001H的值 SWAP A ANL A,#0F0H ;屏蔽掉低四位 MOV 30H,A ;保存A INC DPTR ;指針指向下一個(gè) MOVX A,@DPTR ;讀取2002H的值 ANL A,#0FH ;屏蔽掉高四位 ORL A,30H ;進(jìn)行拼裝 MOVX @DPTR,A ;保存到2002H END2.編寫程序,將外部數(shù)據(jù)存儲(chǔ)器中的4000H~40FFH單元全部清“0”。答:本題主要考察對(duì)外部數(shù)據(jù)塊的寫操作;編程時(shí)只要注意循環(huán)次數(shù)和MOVX指令的使用就可以了。 ORG 0000HMAIN: MOV A,#0 ;送預(yù)置數(shù)給A MOV R0,#0FFH ;設(shè)置循環(huán)次數(shù) MOV DPTR,#4000H ;設(shè)置數(shù)據(jù)指針的初值LOOP: MOVX @DPTR,A ;當(dāng)前單元清零 INC DPTR ;指向下一個(gè)單元 DJNZ R0,LOOP ;是否結(jié)束 END四、簡(jiǎn)答1.在AT89S52單片機(jī)系統(tǒng)中,外接程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用16位地址線和8位數(shù)據(jù)線,為何不會(huì)發(fā)生沖突?答:因?yàn)榭刂菩盘?hào)線的不同:外擴(kuò)的RAM芯片既能讀出又能寫入,所以通常都有讀寫控制引腳,記為OE*和WE*。外擴(kuò)RAM的讀、寫控制引腳分別與AT89S51的RD*和WR*引腳相連。外擴(kuò)的EPROM在正常使用中只能讀出,不能寫入,故EPROM芯片沒有寫入控制引腳,只有讀出引腳,記為OE*,該引腳與AT89S52單片機(jī)的PSEN*相連。2.題圖8-1(a)所示為AT89S51單片機(jī)中存儲(chǔ)器的地址空間分布圖。題圖8-1(b)題圖8-1為存儲(chǔ)器的地址譯碼電路,為使地址譯碼電路按題圖8-1(a)所示的要求進(jìn)行正確尋址,要求畫出:(1)A組跨接端子的內(nèi)部正確連線圖。(2)B組跨接端子的內(nèi)部正確連線圖。答:(1)A組跨接端子的內(nèi)部正確連線圖(2)B組跨接端子的內(nèi)部正確連線圖注意:答案不唯一,還有其他連接方法,也可滿足題目要求。第9章思考題與習(xí)題9參考答案一、填空1.擴(kuò)展一片8255可以增加個(gè)并行口,其中條口線具有位操作功能;答:3,82.單片機(jī)擴(kuò)展并行I/O口芯片的基本要求是:輸出應(yīng)具有功能;輸入應(yīng)具有功能;答:數(shù)據(jù)鎖存,三態(tài)緩沖3.從同步、異步方式的角度講,82C55的基本輸入/輸出方式屬于通訊,選通輸入/輸出和雙向傳送方式屬于通訊。答:同步,異步二、判斷1.82C55為可編程芯片。對(duì)2.82C55具有三態(tài)緩沖器,因此可以直接掛在系統(tǒng)的數(shù)據(jù)總線上。錯(cuò)3.82C55的PB口可以設(shè)置成方式2。錯(cuò)4.?dāng)U展I/O占用片外數(shù)據(jù)存儲(chǔ)器的地址資源。對(duì)5.82C55的方式1是無(wú)條件的輸入輸出方式。錯(cuò)6.82C55的PC口可以按位置位和復(fù)位。對(duì)7.82C55的方式0是無(wú)條件的輸入輸出方式。對(duì)三、單選1.AT89S52的并行I/O口信息有兩種讀取方法:一種是讀引腳,還有一種是。A.讀CPUB.讀數(shù)據(jù)庫(kù)C.讀A累加器D.讀鎖存器答:D2.利用單片機(jī)的串行口擴(kuò)展并行I/O接口是使用串行口的。A.方式3B.方式2C.方式1D.方式0答:D3.單片機(jī)使用74LSTTL電路擴(kuò)展并行I/O接口,輸入/輸出用的74LSTTL芯片為。A.74LS244/74LS273B.74LS273/74LS244C.74LS273/74LS373D.74LS373/74LS273答:A4.AT89S52單片機(jī)最多可擴(kuò)展的片外RAM為64KB,但是當(dāng)擴(kuò)展外部I/O口后,其外部RAM的尋址空間將。A.不變B.變大C.變小D.變?yōu)?2KB答:C四、編程1.編寫程序,采用82C55的PC口按位置位/復(fù)位控制字,將PC7置“0”,PC4置“1”(已知82C55各端口的地址為7FFCH~7FFFH)。答:本題主要考察對(duì)82C55的C口的操作。其方式控制字的最高位為0時(shí),低四位控裝置對(duì)C口置復(fù)位。由題目可知方式控制寄存器的地址為7FFFH。 ORG 0H MAIN: MOV PTR,#7FFFH ;控制字寄存器地址7FFFH送DPTR MOV A,#0EH ;將PC7置0 MOVX @DPTR,A MOV A,#09H ;將PC4置1 MOVX @DPTR,A END2.AT89S52單片機(jī)擴(kuò)展了一片82C55,若把82C55的PB口用作輸入,PB口的每一位接一個(gè)開關(guān),PA口用作輸出,每一位接一個(gè)發(fā)光二極管,請(qǐng)畫出電路原理圖,并編寫出PB口某一位開關(guān)接高電平時(shí),PA口相應(yīng)位發(fā)光二極管被點(diǎn)亮的程序。答:電路圖可參見圖9-10,PA口每一位接二極管的正極,二極管的負(fù)極接地。PB口每1位接一開關(guān)和上拉電阻,開關(guān)另一端直接接地。這樣只需要將讀到的PB口的值送給PA口就可以滿足題目要求了。 ORG 0100HMIAN: MOV A,#10000010B ;設(shè)置PA口方式0輸出,PB口方式0輸入 MOV DPTR,#0FF7FH ;控制口地址送DPTR MOVX @DPTR,A ;送方式控制字 MOV DPTR,#0FF7DH ;PB口地址送DPTR MOVX A,@DPTR ;讀入開關(guān)信息 MOV DPTR,#0FF7CH ;PA口地址送DPTR MOVX @DPTR,A ;PA口的內(nèi)容送PB口點(diǎn)亮相應(yīng)的二極管 END五、簡(jiǎn)答1.I/O接口和I/O端口有什么區(qū)別?I/O接口的功能是什么?答:I/O端口簡(jiǎn)稱I/O口,常指I/O接口電路中具有端口地址的寄存器或緩沖器。I/O接口是指單片機(jī)與外設(shè)間的I/O接口芯片;I/O接口功能:(1)實(shí)現(xiàn)和不同外設(shè)的速度匹配;(2)輸出數(shù)據(jù)緩存;(3)輸入數(shù)據(jù)三態(tài)緩沖。2.I/O數(shù)據(jù)傳送由哪幾種傳送方式?分別在哪些場(chǎng)合下使用?答:3種傳送方式:(1)同步傳送方式:當(dāng)外設(shè)速度可與單片機(jī)速度相比擬時(shí),常常采用同步傳送方式。(2)查詢傳送方式:查詢傳送方式又稱為有條件傳送,也稱異步傳送。單片機(jī)通過(guò)查詢得知外設(shè)準(zhǔn)備好后,再進(jìn)行數(shù)據(jù)傳送。異步傳送的優(yōu)點(diǎn)是通用性好,硬件連線和查詢程序十分簡(jiǎn)單,但是效率不高。(3)中斷傳送方式:中斷傳送方式是利用單片機(jī)本身的中斷功能和I/O接口的中斷功能來(lái)實(shí)現(xiàn)I./O數(shù)據(jù)的傳送。單片機(jī)只有在外設(shè)準(zhǔn)備好后,發(fā)出數(shù)據(jù)傳送請(qǐng)求,才中斷主程序,而進(jìn)入與外設(shè)進(jìn)行數(shù)據(jù)傳送的中斷服務(wù)程序,進(jìn)行數(shù)據(jù)的傳送。中斷服務(wù)完成后又返回主程序繼續(xù)執(zhí)行。因此,中斷方式可大大提高工作效率。3.常用的I/O端口編址有哪兩種方式?它們各有什么特點(diǎn)?AT89S52單片機(jī)的I/O端口編址采用的是哪種方式?答:兩種方式。(1)獨(dú)立編址:就是I/O地址空間和存儲(chǔ)器地址空間分開編址。優(yōu)點(diǎn)是I/O地址空間和存儲(chǔ)器地址空間相互獨(dú)立,界限分明。但卻需要設(shè)置一套專門的讀寫I/O的指令和控制信號(hào)。(2)統(tǒng)一編址:是把I/O端口的寄存器與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待,統(tǒng)一進(jìn)行編址。優(yōu)點(diǎn)是不需要專門的I/O指令,直接使用訪問數(shù)據(jù)存儲(chǔ)器的指令進(jìn)行I/O操作。AT89S52單片機(jī)使用的是I/O和外部數(shù)據(jù)存儲(chǔ)器RAM統(tǒng)一編址的方式。4.82C55的“方式控制字”和“PC口按位置位/復(fù)位控制字”都可以寫入82C55的同一控制寄存器,82C55是如何來(lái)區(qū)分這兩個(gè)控制字的?答:82C55通過(guò)寫入控制字寄存器的控制字的最高位來(lái)進(jìn)行判斷,最高位為1時(shí),為方式控制字,最高位為0時(shí),為C口按位置位/復(fù)位控制字。5.結(jié)合圖9-6來(lái)說(shuō)明82C55的PA口在方式1的應(yīng)答聯(lián)絡(luò)輸入方式下的工作過(guò)程。答:當(dāng)外設(shè)輸入一個(gè)數(shù)據(jù)并送到PA7~PA0上時(shí),輸入設(shè)備自動(dòng)在選通輸入線A向82C55發(fā)送一個(gè)低電平選通信號(hào),則把PA7~PA0上輸入的數(shù)據(jù)存入PA口的輸入數(shù)據(jù)緩沖/鎖存器;然后使輸入緩沖器輸出線IBFA變成高電平,以通知輸入設(shè)備,82C55的PA口已收到它送來(lái)的輸入數(shù)據(jù)。82C55檢測(cè)到聯(lián)絡(luò)線A由低電平變成了高電平、IBFA為1狀態(tài)和中斷允許觸發(fā)器INTEA為1時(shí),使輸出線INTRA(PC3)變成高電平,向AT89S52發(fā)出中斷請(qǐng)求。(INTEA的狀態(tà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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論