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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

---第1章 思考題及習題1參考答案一、填空1. 除了單片機這一名稱之外,單片機還可稱為 或 。答:微控制器,嵌入式控制器.2.單片機與普通微型計算機的不同之處在于其將 、 、和 三部分,通過內部 連接在一起,集成于一塊芯片上。 答:CPU、存儲器、I/O口、總線3.AT89S52單片機工作頻率上限為 MHz 。答:33MHz。4. 專用單片機已使系統(tǒng)結構最簡化、軟硬件資源利用最優(yōu)化,從而大大降低 和提高 。答:成本,可靠性。二、單選單片機內部數(shù)據(jù)之所以用二進制形式表示,主要是A.為了編程方便 B.受器件的物理性能限制C.為了通用性 D.為了提高運算速度答:B2. 在家用電器中使用單片機應屬于微計算機的 。A.輔助設計應用 B.測量、控制應用C.數(shù)值計算應用 D.數(shù)據(jù)處理應用答:B下面的哪一項應用,不屬于單片機的應用范圍。A.工業(yè)控制B.家用電器的控制C.數(shù)據(jù)庫管理D.汽車電子設備答:C三、判斷對錯STC系列單片機是8051內核的單片機。對AT89S52與AT89S51相比,片內多出了4KB的Flash程序存儲器、128B的RAM、1個中斷源、1個定時器(且具有捕捉功能)。對單片機是一種CPU。錯AT89S52單片機是微處理器。錯5.AT89C52片內的Flash程序存儲器可在線寫入,而 AT89S52則不能。錯6. 為AT89C51單片機設計的應用系統(tǒng)板,可將芯片 AT89C51直接用芯片AT89S51替換。對7. 為AT89S51單片機設計的應用系統(tǒng)板,可將芯片 AT89S51直接用芯片AT89S52替換。對8. 單片機的功能側重于測量和控制,而復雜的數(shù)字信號處理運算及高速的測控功能則是DSP的長處。對四、簡答微處理器、微計算機、微處理機、CPU、單片機、嵌入式處理器它們之間有何區(qū)別?答:微處理器、微處理機和CPU它們都是中央處理器的不同稱謂,微處理器芯片本身不是計算機。而微計算機、單片機它們都是一個完整的計算機系統(tǒng),單片機是集成在一個芯片上的用于測控目的的單片微計算機。AT89S51單片機相當于MCS-51系列單片機中的哪一型號的產品?“S”的含義是什么?答:相當于MCS-51系列中的87C51,只不過是AT89S51芯片內的4K字節(jié)Flash存儲器取代了87C51片內的4K字節(jié)的EPROM。單片機可分為商用、工業(yè)用、汽車用以及軍用產品,它們的使用溫度范圍各為多少?答:商用:溫度范圍為0~+70℃;工業(yè)用:溫度范圍為-40~+85℃;汽車用:溫度范圍為-40~+125℃;軍用:溫度范圍為-55~+150℃。4. 解釋什么是單片機的在系統(tǒng)編程( ISP)與在線應用編程(IAP)。答:單片機的在系統(tǒng)編程 ISP(InSystemProgram),也稱在線編程,只需一條與 PC機USB口或串口相連的ISP下載線,就可把仿真調試通過的程序代碼從 PC機在線寫入單片機的Flash存儲器內,省去了編程器。在線應用編程( IAP)就是可將單片機的閃存內的應用程序在線修改升級。什么是“嵌入式系統(tǒng)”?系統(tǒng)中嵌入了單片機作為控制器,是否可稱其為“嵌入式系統(tǒng)”?答:廣義上講,凡是系統(tǒng)中嵌入了“嵌入式處理器”,如單片機、DSP、嵌入式微處理器,都稱其為“嵌入式系統(tǒng)”。但多數(shù)人把“嵌入”嵌入式微處理器的系統(tǒng),稱為“嵌入式系統(tǒng)”。目前“嵌入式系統(tǒng)”還沒有一個嚴格和權威的定義。目前人們所說的“嵌入式系統(tǒng)”,多指后者。嵌入式處理器家族中的單片機、DSP、嵌入式微處理器各有何特點?它們的應用領域有何不同?答:單片機體積小、價格低且易于掌握和普及,很容易嵌入到各種通用目的的系統(tǒng)中,實現(xiàn)各種方式的檢測和控制。單片機在嵌入式處理器市場占有率最高,最大特點是價格低,體積小,應用廣泛。DSP是一種非常擅長于高速實現(xiàn)各種數(shù)字信號處理運算(如數(shù)字濾波、FFT、頻譜分析等)的嵌入式處理器。能夠高速完成各種復雜的數(shù)字信號處理算法。廣泛地用于通訊、網(wǎng)絡通信、數(shù)字圖像處理,電機控制系統(tǒng),生物信息識別終端,實時語音壓解系統(tǒng)等。這類智能化算法一般都是運算量較大,特別是向量運算、指針線性尋址等較多,而這正是DSP的長處所在。與單片機相比,DSP具有的實現(xiàn)高速運算的硬件結構及指令和多總線,DSP處理的算法的復雜度和大的數(shù)據(jù)處理流量以及片內集成的多種功能部件更是單片機不可企及的。嵌入式微處理器的基礎是通用計算機中的CPU,地址總線數(shù)目較多,能擴展容量較大的存儲器,所以可配置實時多任務操作系統(tǒng)(RTOS)。RTOS能夠處理復雜的系統(tǒng)管理任務和處理工作。因此,廣泛地應用在移動計算平臺、媒體手機、工業(yè)控制和商業(yè)領域(例如,智能工控設備、ATM機等)、電子商務平臺、信息家電(機頂盒、數(shù)字電視)以及軍事上的應用。第2章 思考題及習題2參考答案一、填空1. 在AT89S52單片機中,如果采用 6MHz晶振,一個機器周期為 。答:2μs2.AT89S52單片機的機器周期等于 個時鐘振蕩周期。答:12內部RAM中,位地址為40H、88H的位,該位所在字節(jié)的字節(jié)地址分別為和。答:28H,88H4. 片內字節(jié)地址為 2AH單元最低位的位地址是 ;片內字節(jié)地址為 A8H單元的最低位的位地址為 。答:50H,A8H5. 若A中的內容為63H,那么,P標志位的值為 。答:06.AT89S52單片機復位后,R4所對應的存儲單元的地址為 ,因上電時PSW= 。這時當前的工作寄存器區(qū)是 組工作寄存器區(qū)。答:04H,00H,0。7. 內部RAM中,可作為工作寄存器區(qū)的單元地址為 H ~ H 。答:00H,1FH8. 通過堆棧操作實現(xiàn)子程序調用時,首先要把 的內容入棧,以進行斷點保護。調用子程序返回指令時,再進行出棧保護,把保護的斷點送回到 ,先彈出的是原來中的內容。答:PC,PC,PCHAT89S52單片機程序存儲器的尋址范圍是由程序計數(shù)器PC的位數(shù)所決定的,因為AT89S52單片機的PC是16位的,因此其尋址的范圍為 KB 。答:6410.AT89S52單片機復位時,P0~P3口的各引腳為 電平。答:高11.AT89S52單片機使用片外振蕩器作為時鐘信號時,引腳 XTAL1接 ,引腳XTAL2的接法是 。答:片外振蕩器的輸出信號,懸空12.AT89S52單片機復位時,堆棧指針 SP中的內容為 ,程序指針PC中的內容為。答:07H,0000H二、單選1. 程序在運行中,當前 PC的值是 。A .當前正在執(zhí)行指令的前一條指令的地址 B .當前正在執(zhí)行指令的地址。C .當前正在執(zhí)行指令的下一條指令的首地址 D .控制器中指令寄存器的地址。答:C判斷下列哪一種說法是正確的?A .PC是一個可尋址的寄存器 B .單片機的主頻越高,其運算速度越快。C.AT89S52單片機中的一個機器周期為 1μsD.特殊功能寄存器 SP內存放的是堆棧棧頂單元的內容。答:B三、判斷對錯使用AT89S52單片機且引腳EA=1時,仍可外擴64KB的程序存儲器。錯區(qū)分片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的方法是看其位于地址范圍的低端還是高端。錯在AT89S52單片機中,為使準雙向的I/O口工作在輸入方式,必須事先預置為1。對PC可以看成是程序存儲器的地址指針。對AT89S52單片機中特殊功能寄存器(SFR)使用片內RAM的部份字節(jié)地址。對片內RAM的位尋址區(qū),只能供位尋址使用,而不能進行字節(jié)尋址。錯AT89S52單片機共有32個特殊功能寄存器,它們的位都是可以用軟件設置的,因此,都是可以位尋址的。錯堆棧區(qū)是單片機內部的一個特殊區(qū)域,與RAM無關。錯AT89S52單片機進入空閑模式,CPU停止工作。片內的外圍電路(如中斷系統(tǒng)、串行口和定時器)仍將繼續(xù)工作。對10.AT89S52單片機不論是進入空閑模式還是掉電運行模式后,片內

RAM和

SFR中的內容均保持原來的狀態(tài)。對AT89S52單片機進入掉電運行模式,CPU和片內的外圍電路(如中斷系統(tǒng)、串行口和定時器)均停止工作。對12.AT89S52單片機的掉電運行模式可采用響應中斷方式來退出。 對四、簡答AT89S52單片機片內都集成了哪些功能部件?答:集成了如下部件:1個微處理器(CPU);256個數(shù)據(jù)存儲器(RAM)單元;8KFlash程序存儲器;4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);1個全雙工串行口;3個16位定時器/計數(shù)器;1個看門狗定時器;一個中斷系統(tǒng),6個中斷源,2個優(yōu)先級;32個特殊功能寄存器(SFR)。AT89S52的64KB程序存儲器空間有6個單元地址對應AT89S52單片機6個中斷源的中斷入口地址,請寫出這些單元的入口地址及對應的中斷源。答:見下表表AT89S52各中斷源的中斷入口地址中斷源入口地址外部中斷00003H定時器/計數(shù)器T0000BH外部中斷10013H定時器/計數(shù)器T1001BH串行口0023H定時器/計數(shù)器T2002BH說明AT89S52單片機的EA引腳接高電平或低電平的區(qū)別。答:當EA腳為高電平時,單片機讀片內程序存儲器( 8K字節(jié)Flash)中的內容,但在PC值超過0FFFH(即超出4K字節(jié)地址范圍)時,將自動轉向讀外部程序存儲器內的程序;當 EA腳為低電平時,單片機只對外部程序存儲器的地址為0000H~FFFFH中的內容進行讀操作,單片機不理會片內的8K字節(jié)的Flash程序存儲器。AT89S52單片機有哪兩種低功耗節(jié)電模式?說明兩種低功耗節(jié)電模式的異同。答:AT89S52單片機有兩種低功耗節(jié)電工作模式:空閑模式( idle mode)和掉電模式(powerdownmode)。空閑模式下,雖然振蕩器仍然運行,但是CPU進入空閑狀態(tài)。此時,片內所有外圍電路(中斷系統(tǒng)、串行口和定時器)仍繼續(xù)工作,SP、PC、PSW、A、P0~P3端口等所有其他寄存器,以及內部RAM和SFR中的內容均保持進入空閑模式前的狀態(tài)。因為CPU耗電量通常要占芯片耗電的80%~90%,因此CPU停止工作則會大大降低功耗。掉電模式下,振蕩器停止工作。由于沒有了時鐘信號,內部的所有部件均停止工作,但片內的RAM和SFR的原來內容都被保留,有關端口的輸出狀態(tài)值都保存在對應的特殊功能寄存器中。AT89S52單片機運行時程序出現(xiàn)“跑飛”或陷入“死循環(huán)’時,說明如何利用看門狗來擺脫困境的工作原理。答:可采用看門狗定時器。工作原理如下:“看門狗”技術就是使用一個“看門狗”定時器來對系統(tǒng)時鐘不斷計數(shù),監(jiān)視程序的運行。當看門狗定時器啟動運行后,為防止看門狗定時器的不必要溢出而引起單片機的非正常的復位,應定期地把看門狗定時器清0,以保證看門狗定時器不溢出。當由于干擾,使單片機程序“跑飛”或陷入“死循環(huán)”時,單片機也就不能正常運行程序來定時地把看門狗定時器清0,當看門狗定時器計滿溢出時,將在AT89S52的RST引腳上輸出一個正脈沖(寬度為98個時鐘周期),使單片機復位,在系統(tǒng)的復位入口0000H處重新開始執(zhí)行主程序,從而使程序擺脫“跑飛”或“死循環(huán)”狀態(tài),讓單片機歸復于正常的工作狀態(tài)。第3章 思考題及習題3參考答案一、填空1.訪問SFR,只能使用尋址方式。答:直接。2.指令格式是由和組成,也可僅由組成。答:操作碼,操作數(shù),操作碼。3.在基址加變址尋址方式中,以作為變址寄存器,以或作為基址寄存器。答:A,PC,DPTR假定累加器A中的內容為30H,執(zhí)行指令1000H: MOVCA,@A+PC后,把程序存儲器 單元的內容送入累加器 A中。答:1031H5. 在AT89S52中,PC和DPTR都用于提供地址,但 PC是為訪問 存儲器提供地址,而DPTR是為訪問 存儲器提供地址。答:程序,數(shù)據(jù)在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內容不是操作數(shù),而是操作數(shù)的 。答:地址7. 下列程序段的功能是 。答:A的內容與B的內容互換。PUSH AccPUSH BPOP AccPOP B已知程序執(zhí)行前有(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH。下述程序執(zhí)行后,(A)=,(SP)=,(51H)=,(52H)=,(PC)=。POPDPHPOPDPLMOVDPTR,#4000HRLAMOVB,AMOVCA,@A+DPTRPUSHAccMOVA,BINCAMOVCA,@A+DPTRPUSHAccRETORG4000HDB 10H,80H,30H,50H,30H,50H答:(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,(PC)=5030H9. 假定(A)=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令后,

(A)=

。ANL

A,#17HORL

17H,AXRL

A,@R0CPL

A答:(A)=0CBH。10.假設(A)=55H,(R3)=0AAH,在執(zhí)行指令“ANLA,R3”后,(A)=

,(R3)=

。答:(A)=00H,(R3)=0AAH。11.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,則執(zhí)行下列指令后,(DPH)= ,(DPL)= ,(SP)= 。POP DPHPOP DPLPOP SP答:(DPH)=3CH,(DPL)=5FH,(SP)=50H12.假定,(SP)=60H,(A)=30H,(B)=70H,執(zhí)行下列指令后,SP的內容為,61H單元的內容為,62H單元的內容為。PUSH AccPUSH B答:(SP)=62H,(61H)=30H,(62H)=70H。二、判斷對錯判斷以下指令的正誤。(1)MOV28H,@R2;(2)DECDPTR;(3)INCDPTR;(4)CLR R0;(5)CPLR5(6)MOVR0,R1;(7)PHSHDPTR;(8)MOVF0,C;(9)MOVF0,Acc.3;(10)MOVXA,@R1;(11)MOVC,30H;(12)RLCR0答:(1)錯(2)錯(3)對(4)錯(5)錯(6)錯(7)錯(8)對(9)錯(10)對(11)對(12)錯。判斷下列說法是否正確。立即數(shù)尋址方式是被操作的數(shù)據(jù)本身就在指令中,而不是它的地址在指令中。指令周期是執(zhí)行一條指令的時間。C.指令中直接給出的操作數(shù)稱為直接尋址。內部寄存器Rn(n=0~7)可作為間接尋址寄存器。答:A.對;B.對;C.錯;D.錯。3. 以下指令中,屬于單純讀引腳的指令是( )。A.MOVP1,A; B.ORLP1,#0FH;C.MOVC,P1.5;D.ANLP1,#0FH答:C。三、單選1. 程序在運行中,當前 PC的值是 。A .當前正在執(zhí)行指令的前一條指令的地址 B .當前正在執(zhí)行指令的地址。C .當前正在執(zhí)行指令的下一條指令的首地址 D .控制器中指令寄存器的地址。答:C判斷下列哪一種說法是正確的?A .PC是一個可尋址的寄存器 B .單片機的主頻越高,其運算速度越快。C.AT89S52單片機中的一個機器周期為 1μsD.特殊功能寄存器 SP內存放的是堆棧棧頂單元的內容。答:B3. 對程序存儲器的讀操作,只能使用(A.MOV指令 B.PUSH指令

)。C.MOVX指令

D.MOVC指令答:D。四、程序分析與編程下列程序段經匯編后,從1000H開始的各有關存儲單元的內容是什么?ORG 1000HTAB1 EQU1234HTAB2 EQU3000HDB "MAIN"DW TAB1,TAB2,70H答:從1000H開始的各有關存儲單元的內容 (16進制)如下:4DH,41H,49H,4EH,12H,34H,30H,00H,00H,70H編寫程序,將內部RAM中45H單元的高4位清“0”,低4位置“1”。答:參考程序如下:MOVA,45HANLA,#0FHORLA,#0FHMOV45H,A3.已知程序執(zhí)行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序執(zhí)行后,A=();SP=();(41H)=();(42H)=();PC=()。POPDPHPOPDPLMOVDPTR,#3000HRLAMOVB,AMOVCA,@A+DPTRPUSHAccMOVA,BINCAMOVCA,@A+DPTRPUSHAccRETORG3000HDB 10H,80H,30H,80H,50H,80H答:(A)=80H,(SP)=40H,(41H)=50H,(42H)=80H,(PC)=8050H編寫程序,查找在內部RAM的30H~50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。答:參考程序如下:START: MOV R0,#30HMOV R2,#20HLOOP: MOV A,@R0CJNE A,#0AAH,NEXTMOV 51H,#01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#00HEXIT: RET寫出完成如下要求的程序段,但是不能改變未涉及位的內容。把ACC.3,ACC.4,ACC.5和ACC.6清“0”。把累加器A的中間4位清“0”。把ACC.2和ACC.3置“1”。答: A. ANLA,#87HANLA,#0C3HORLA,#0CH若SP=60H,標號LABEL所在的地址為3456H。LCALL指令的地址為2000H,執(zhí)行如下指令:2000H LCALLLABEL后(1)堆棧指針SP和堆棧內容發(fā)生了什么變化?(2)PC的值等于什么?(3)如果將指令LCALL直接換成ACALL是否可以?(4)如果換成ACALL指令,可調用的地址范圍是什么?答:(1)SP=SP+1=61H

(61H)=PC的低字節(jié)=03HSP=SP+1=62H

(62H)=PC的高字節(jié)=20H2)PC=3456H3)不可以4)2KB=2048Byte試編寫程序,查找在內部RAM的20H~40H單元中出現(xiàn)“00H”這一數(shù)據(jù)的次數(shù),并將查找到的結果存入41H單元。答:參考程序如下:START: MOV 41H,#0MOV R0,#20HMOV R2,#20HLOOP: MOV A,@R0JNZ NEXTINC 41HNEXT: INC R0DJNZ R2,LOOPRET8. 對例3-22中的程序進行修改,使其達到精確的 50ms延時時間。答:原來的程序:ORG0100HD50ms:MOVR7,#200;執(zhí)行時間1μsD1:MOVR6,#125;執(zhí)行時間1μsD2:DJNZR6,D2;指令執(zhí)行1次為2μs,總計125×2=250μsDJNZR7,D1;指令執(zhí)行時間2μs,本循環(huán)體執(zhí)行200次RET;指令執(zhí)行時間2μs可對程序做如下修改:ORG0100HD50ms:MOVR7,#200D1:MOVR6,#123;將原來的立即數(shù)125改為123D2:DJNZR6,D2NOP;增加的指令DJNZR7,D1RET程序修改后的延時時間為: 1+(1+123*2+1+2)*200+2=50003μs=50.003ms借助表3-2,對如下指令代碼(十六進制)進行手工反匯編。FFH,C0H,E0H,E5H,F(xiàn)0H,F0H答: MOV R7,APUSH AccMOV A,BMOVX@DPTR,A五、簡答1. 說明偽指令的作用?!皞巍钡暮x是什么?常用偽指令有哪些?其功能如何 ?答:偽指令是程序員發(fā)給匯編程序的命令,只有在匯編前的源程序中才有偽指令,即在匯編過程中的用來控制匯編過程的命令。所謂“偽”是體現(xiàn)在匯編后,偽指令沒有相應的機器代碼產生。常用偽指令及功能如下:ORG(ORiGin)匯編起始地址命令;END(ENDofassembly)匯編終止命令;EQU(EQUate)標號賦值命令;DB(DefineByte)定義數(shù)據(jù)字節(jié)命令;DW(DefineWord)定義數(shù)據(jù)字命令;DS(DefineStorage)定義存儲區(qū)命令;BIT位定義命令解釋下列術語:手工匯編、機器匯編、反匯編答:手工匯編:通過查指令的機器代碼表(表3-2),逐個把助記符指令“翻譯”成機器代碼,再進行調試和運行。這種人工查表“翻譯”指令的方法稱為“手工匯編”。機器匯編:借助于微型計算機上的軟件(匯編程序)來代替手工匯編。通過在微機上運行匯編程序,把匯編語言源程序翻譯成機器代碼。反匯編:將二進制的機器碼程序翻譯成匯編語言源程序的過程稱為“反匯編”。設計子程序時應注意哪些問題?答:編寫子程序時應注意以下問題:子程序的第一條指令前必須有標號。主程序調用子程序,有如下兩條子程序調用指令:①絕對調用指令ACALLaddr11。被調用的子程序的首地址與絕對調用指令的下一條指令的高5位地址相同,即只能在同一個2KB區(qū)內。②長調用指令LCALLaddr16。addr16為直接調用的目的地址,被調用的子程序可放置在64KB程序存儲器區(qū)的任意位置。子程序結構中必須用到堆棧,用來保護斷點和現(xiàn)場保護。子程序返回時,必須以

RET指令結束。子程序可以嵌套,但要注意堆棧的沖突。4. 為什么對基本型的

8051

子系列單片機,其寄存器間接尋址方式(例如

MOVA,@R0)中,規(guī)定

R0或

R1的內容不能超過

7FH?而對增強型的

8052子系列單片機,

R0或

R1的內容就不受限制

?答:基本型的8051子系列單片機,由于其片內RAM的地址范圍為00H~7FH,而80H~FFH為特殊功能寄存器區(qū),而對特殊功能寄存器尋址,只能使用直接尋址方式。對片內RAM尋址,當使用寄存器間接尋址是采用R0或R1作為間接尋址的,因此R0或R1的內容不能超過7FH。增強型的8052子系列單片機,片內RAM的地址范圍為00H~FFH,因此作為間接尋址寄存器的R0或R1的內容就不受限制。第4章 思考題及習題4參考答案一、填空1.外部中斷1的中斷入口地址為 。定時器T1的中斷入口地址為 。答:0013H;001BH2.若(IP)=00010100B,則優(yōu)先級最高者為 ,最低者為 。答:外部中斷1,定時器T13.AT89S52單片機響應中斷后,產生長調用指令 LCALL,執(zhí)行該指令的過程包括:首先把的內容壓入堆棧,以進行斷點保護,然后把長調用指令的 16位地址送入 ,使程序執(zhí)行轉向 中的中斷地址區(qū)。答:PC、PC、程序存儲器4.AT89S52單片機復位后,中斷優(yōu)先級最高的中斷源是 。答:外部中斷05.當AT89S52單片機響應中斷后,必須用軟件清除的中斷請求標志是 。答:串行中斷、定時器/計數(shù)器T2中斷二、單選1.下列說法錯誤的是( )。同一級別的中斷請求按時間的先后順序響應同一時間同一級別的多中斷請求,將形成阻塞,系統(tǒng)無法響應C.低優(yōu)先級中斷請求不能中斷高優(yōu)先級中斷請求,但是高優(yōu)先級中斷請求能中斷低優(yōu)先級中斷請求同級中斷不能嵌套答:B2.在AT89S52的中斷請求源中,需要外加電路實現(xiàn)中斷撤銷的是( )。電平方式的外部中斷請求B.跳沿方式的外部中斷請求C.外部串行中斷D.定時中斷答:A3.中斷查詢確認后,在下列各種 AT89S52單片機運行情況下,能立即進行響應的是( )。A.當前正在進行高優(yōu)先級中斷處理B.當前正在執(zhí)行RETI指令C.當前指令是MOVA,R3D.當前指令是DIV指令,且正處于取指令的機器周期答:C4.下列說法正確的是( )。各中斷源發(fā)出的中斷請求信號,都會標記在各中斷源發(fā)出的中斷請求信號,都會標記在各中斷源發(fā)出的中斷請求信號,都會標記在各中斷源發(fā)出的中斷請求信號,都會標記在中答:D

AT89S52的IE寄存器中AT89S52的TMOD寄存器中AT89S52的IP寄存器中AT89S52的TCON、SCON以及T2CON寄存器三、判斷對錯1.定時器T0中斷可以被外部中斷 0中斷。錯必須有中斷源發(fā)出中斷請求,并且CPU開中斷,CPU才可能響應中斷。錯3.AT89S52單片機中的同級中斷不能嵌套。 對4.同為高中斷優(yōu)先級,外部中斷 0能打斷正在執(zhí)行的外部中斷 1的中斷服務程序。錯5.中斷服務子程序可以直接調用。 錯6.在開中斷的前提下,只要中斷源發(fā)出中斷請求, CPU就會立刻響應中斷。錯四、簡答1.中斷服務子程序與普通子程序有哪些相同和不同之處?答:RETI指令在返回的同時自動清除相應的不可尋址的優(yōu)先級觸發(fā)器,以允許下次中斷,而RET指令則沒有這個操作。除了這一點兩條指令不同外,其它操作都相同。2.AT89S52單片機響應外部中斷的典型時間是多少?在哪些情況下, CPU將推遲對外部中斷請求的響應?答:在一個單一中斷的系統(tǒng)里,AT89S51單片機對外部中斷請求的響應時間總是在3~8個機器周期之間。在下述三種情況下,AT89S51將推遲對外部中斷請求的響應:(1)AT89S52正在處理同級或更高優(yōu)先級的中斷。(2)所查詢的機器周期不是當前正在執(zhí)行指令的最后一個機器周期。(3)正在執(zhí)行的指令是 RETI或是訪問IE或IP的指令。如果存在上述三種情況之一,AT89S52將丟棄中斷查詢結果,將推遲對外部中斷請求的響應。3.中斷響應需要滿足哪些條件?答:一個中斷源的中斷請求被響應,必須滿足以下條件:(1)總中斷允許開關接通,即 IE寄存器中的中斷總允許位 EA=1。(2)該中斷源發(fā)出中斷請求,即該中斷源對應的中斷請求標志為“ 1”。(3)該中斷源的中斷允許位 =1,即該中斷被允許。(4)無同級或更高級中斷正在被服務。4.編寫外部中斷 1為跳沿觸發(fā)的中斷初始化程序段。:參考程序段如下:??SETBIT1SETBEX1SETBEA??5.某系統(tǒng)有三個外部中斷源 IR1、IR2和IR3,當某一中斷源發(fā)出的中斷請求使 INT1引腳變?yōu)榈碗娖綍r(參見圖 4-11),便要求CPU進行處理,它們的優(yōu)先處理次序由高到低為 IR3、IR2、IR1,中斷處理程序的入口地址分別為 1000H,1100H,1200H。試編寫主程序及中斷服務子程序(轉至相應的中斷處理程序的入口即可)。答:參見電路如圖 4-11,參考程序如下:ORG 0000HLJMP MAINORG 0013HLJMP INT_EX1ORG 0030HMAIN: CLR IT0 ;采用電平觸發(fā),低電平有效中斷SETB EX1 ;允許外部中斷1SETB EA;插入一段用戶程序WAIT:AJMPWAIT;單片機等待中斷;以下為外部中斷1服務子程序INT_EX1:JBP1.2,NEXT1;判斷是不是IR3中斷LJMPINT_IR3;跳轉到IR3中斷處理程序NEXT1:JBP1.1,NEXT2;判斷是不是IR2中斷LJMPINT_IR2;跳轉到IR2中斷處理程序NEXT2:LJMPINT_IR1;跳轉到IR1中斷處理程序ORG1000HINT_IR3: 相應中斷處理程序RETI ;中斷返回ORG1100HINT_IR2: 相應中斷處理程序RETI ;中斷返回ORG1200HINT_IR1: 相應中斷處理程序RETI ;中斷返回第5章 思考題及習題5參考答案一、填空1.如果采用晶振的頻率為,定時器/計數(shù)器x(x=0,1)工作在方式0、、2下,其方3MHzT1式0的最大定時時間為,方式1的最大定時時間為,方式2的最大定時時間為。答:32.768ms,262.144ms,1024μs2.定時器/計數(shù)器用作計數(shù)器模式時,外部輸入的計數(shù)脈沖的最高頻率為系統(tǒng)時鐘頻率的 。答:1/243.定時器/計數(shù)器用作定時器模式時,其計數(shù)脈沖由 提供,定時時間與 有關。答:系統(tǒng)時鐘信號 12分頻后,定時器初值4.定時器/計數(shù)器T1測量某正單脈沖的寬度,采用 方式可得到最大量程?若時鐘頻率為6MHz,求允許測量的最大脈沖寬度為 。答:方式1定時,131.072ms。5. 定時器T2有3種工作方式: 、 和 ,可通過對寄存器 中的相關位進行軟件設置來選擇。答:捕捉,重新裝載(增計數(shù)或減計數(shù)),波特率發(fā)生器, T2CON6.AT89S52單片機的晶振為6MHz,若利用定時器T1的方式1定時2ms,則(TH1)= ,(TL1)= 。答:FCH,18H。二、單選1.定時器T0工作在方式3時,定時器T1有種工作方式。A.1種B.2種C.3種D.4種答:C2.定時器T0、T1工作于方式1時,其計數(shù)器為位。A.8位B.16位C.14位D.13位答:B3.定時器、的x時,其計數(shù)器是否計數(shù)的條件。T0T1GATE=1A.僅取決于x狀態(tài)B.僅取決于位狀態(tài)TRGATEx和INTx兩個條件來共同控制D.僅取決于INTx的狀態(tài)C.是由TR答:C4.定時器T2工作在自動重裝載方式時,其計數(shù)器為位。A.8位B.13位C.14位D.16位答:D5.要想測量INT0引腳上的正單脈沖的寬度,特殊功能寄存器TMOD的內容應為。A.87HB.09HC.80HD.00H答:B三、判斷對錯1.下列關于T0、T1的哪些說法是正確的。A.特殊功能寄存器SCON,與定時器/計數(shù)器的控制無關。對B.特殊功能寄存器TCON,與定時器/計數(shù)器的控制無關。錯C.特殊功能寄存器IE,與定時器/計數(shù)器的控制無關。錯D.特殊功能寄存器 TMOD,與定時器/計數(shù)器的控制無關。錯2.定時器T0、T1對外部脈沖進行計數(shù)時,要求輸入的計數(shù)脈沖的高電平或低電平的持續(xù)時間不小于1個機器周期。特殊功能寄存器SCON與定時器/計數(shù)器的控制無關。錯3.定時器T0、T1對外部引腳上的脈沖進行計數(shù)時,要求輸入的計數(shù)脈沖的高電平和低電平的持續(xù)時間均不小于2個機器周期。對四、簡答1.定時器/計數(shù)器T1、T0的工作方式2有什么特點?適用于哪些應用場合?答:方式2為初值自動裝入的 8位定時器/計數(shù)器,克服了在循環(huán)定時或循環(huán)計數(shù)應用時就存在用指令反復裝入計數(shù)初值影響定時精度的問題。2.THx與TLx(x =0,1)是普通寄存器還是計數(shù)器?其內容可以隨時用指令更改嗎?更改后的新值是立即刷新還是等當前計數(shù)器計滿后才能刷新?答:THx與TLx(x=0,1)是計數(shù)器,其內容可以隨時用指令更改,但是更改后的新值要等當前計數(shù)器計滿后才能刷新。3.如果系統(tǒng)的晶振的頻率為 24MHz,定時器/計數(shù)器工作在方式 0、1、2下,其最大定時時間各為多少?答:晶振的頻率為 24MHz,機器周期為0.5μs。方式0最大定時時間=0.5μs×213=0.5μs×8192=4096μs方式1最大定時時間=0.5μs×216=0.5μs×65536=327686μs方式2最大定時時間=0.5μs×28=0.5μs×256=128μs4.定時器/計數(shù)器Tx(x=0,1)的方式2有什么特點?適用于哪些應用場合?答:定時器/計數(shù)器的工作方式2具有自動恢復初值的特點,適用于精確定時,例如波特率的產生。5.一個定時器的定時時間有限,如何用兩個定時器的串行定時來實現(xiàn)較長時間的定時?答:方法 1,在第一個定時器的中斷程序里關閉本定時器的中斷程序,設置和打開另一個定時器;在另一個定時器的中斷程序中關閉本定時中斷,設置和打開另一個定時器。這種方式的定時時間為兩個定時器定時時間的和。方法2,一個作為定時器,在定時中斷后產生一個外部計數(shù)脈沖(比如由 P1.0接INT0產生),另一個定時器工作在計數(shù)方式。這樣兩個定時器的定時時間為一個定時器的定時時間乘以另一個定時器的計數(shù)值。6.當定時器T0用于方式3時,應該如何控制定時器 T1的啟動和關閉?答:由TMOD寄存器的D6位“C/T*”來控制定時器 T1的啟動和關閉。7.THx與TLx(x=0,1)是普通寄存器還是計數(shù)器?其內容可以隨時用指令更改嗎?更改后的新值是立即刷新還是等當前計數(shù)器計滿后才能刷新?答:THx與TLx(x=0,1)是由特殊功能寄存器構成的計數(shù)器,其內容可以隨時用指令更改,更改后的新值是立即刷新。但在讀THx、TLx的值時,應該先讀THx值,后讀TLx,再讀THx。若兩次讀得THx相同,則可確定讀得的內容正確。若前后兩次讀得的THx有變化,再重復上述過程。五、編程1.采用定時器/計數(shù)器T0對外部脈沖進行計數(shù),每計數(shù)100個脈沖后,T0轉為定時工作方式。定時1ms后,又轉為計數(shù)工作方式,如此循環(huán)不止。假定AT89S51單片機的晶體振蕩器的頻率為6MHz,請使用方式1實現(xiàn),要求編寫程序。答:定時器/計數(shù)器T0在計數(shù)和定時工作完成后,均采用中斷方式工作。除了第一次計數(shù)工作方式設置在主程序完成外,后面的定時或計數(shù)工作方式分別在中斷程序完成,用一標志位識別下一輪定時器/計數(shù)器T0的工作方式。參考程序如下:ORG0000HLJMP MAINORG 000BHLJMP IT0PMAIN:MOVTMOD,#06H;定時器/計數(shù)器T0為計數(shù)方式2MOVTL0,#156;計數(shù)100個脈沖的初值賦值MOVTH0,#156SETBGATE;打開計數(shù)門SETBTR0;啟動T0,開始計數(shù)SETBET0;允許T0中斷SETBEA;CPU開中斷CLRF0;設置下一輪為定時方式的標志位WAIT:AJMPWAITIT0P:CLREA;CPU關中斷JBF0,COUNT;F0=1,轉計數(shù)方式設置MOVTMOD,#00H;定時器/計數(shù)器T0為定時方式0MOVTH0,#0FEH;定時1ms初值賦值MOVTL0,#0CHSETBEARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI2.編寫程序,要求使用 T0,采用方式2定時,在P1.0輸出周期為400μs,占空比為10:1的矩形脈沖。答:據(jù)題意,從P1.0輸出的矩形脈沖的高低電平的時間為10:1,則高低電平的時間分別為363.63μs和36.37μs。如果系統(tǒng)采用晶振的話,Tcyμ,因此高低電平輸出取整,6MHz=2s則約為364μs和36μs。參考程序如下:ORG0000HLJMP MAINORG 000BHLJMP IT0PMAIN:MOVTMOD,#02H;定時器/計數(shù)器T0為定時方式2MOVTL0,#4AH;定時364μs初值賦值SETBTR0;啟動T0,開始計數(shù)SETBET0;允許T0中斷SETBEA;CPU開中斷SETBP1.0WAIT:AJMPWAITIT0P:CLREACLRP1.0;關中斷MOVR0,#9DLY:DJNZR0,DLY;延時36μsMOVTL0,#4AH;定時364μs初值賦值SETBP1.0SETBEARETI3.編寫程序要求:當 P1.0引腳的電平正跳變時,對 P1.1的輸入脈沖進行計數(shù);當 P1.2引腳的電平負跳變時,停止計數(shù),并將計數(shù)值寫入 R0、R1(高位存R1,低位存R0)。答:將P1.1的輸入脈沖接入INT0,即使用T0計數(shù)器完成對P1.1口的脈沖計數(shù)。參考程序如下:ORG0000HLJMPMAINORG000BHLJMPIT0PMAIN:JNBP1.0,MAINMOVTMOD,#05H;定時器/計數(shù)器T0為計數(shù)方式1SETBTR0;啟動T0,開始計數(shù)SETBET0;允許T0中斷SETBEA;CPU開中斷WAIT:JBP1.2,WAITCLREACLRTR0MOVR1,TH0MOVR0,TL0AJMP $IT0P: INC R2RETI第6章 思考題及習題6參考答案一、填空1、AT89S51的串行異步通信口為 (單工/半雙工/全雙工)。答:全雙工。2. 串行通信波特率的單位是 。答:bit/s3.AT89S52的串行通信口若傳送速率為每秒 120幀,每幀10位,則波特率為答:12004.串行口的方式 0的波特率為 。答:fosc/125.AT89S51單片機的通訊接口有 和 兩種型式。在串行通訊中,發(fā)送時要把數(shù)據(jù)轉換成 數(shù)據(jù)。接收時又需把 數(shù)據(jù)轉換成 數(shù)據(jù)。答:并行,串行,并行,串行,串行,并行6.當用串行口進行串行通信時,為減小波特率誤差,使用的時鐘頻率為 MHz 。答:11.05927.AT89S52單片機串行口的4種工作方式中, 和 的波特率是可調的,與定時器計數(shù)器T1的溢出率有關,另外兩種方式的波特率是固定的。答:方式1,方式38.幀格式為1個起始位,8個數(shù)據(jù)位和1個停止位的異步串行通信方式是方式 。答:方式1。9.在串行通信中,收發(fā)雙方對波特率的設定應該是 的。答:相同的。10.串行口工作方式1的波特率是。答:方式1波特率SMOD)×定時器T1的溢出率=(2/32二、單選1.通過串行口發(fā)送或接收數(shù)據(jù)時,在程序中應使用 。A.MOVC指令 B.MOVX指令 C.MOV指令 D.XCHD指令答:C2.AT89S52的串行口擴展并行 I/O口時,串行接口工作方式選擇 。A.方式0 B. 方式1 C. 方式2 D. 方式3答:A3. 控制串行口工作方式的寄存器是 。A.TCON B.PCON C.TMOD D.SCON答:D三、判斷對錯1.串行口通信的第 9數(shù)據(jù)位的功能可由用戶定義。 對2.發(fā)送數(shù)據(jù)的第 9數(shù)據(jù)位的內容是在 SCON寄存器的TB8位中預先準備好的。對3.串行通信方式 2或方式3發(fā)送時,指令把 TB8位的狀態(tài)送入發(fā)送 SBUF中。錯4.串行通信接收到的第 9位數(shù)據(jù)送SCON寄存器的RB8中保存。對5.串行口方式1的波特率是可變的,通過定時器 /計數(shù)器T1的溢出率設定。對串行口工作方式1的波特率是固定的,為fosc/32。錯7.AT89S52單片機進行串行通信時,一定要占用一個定時器作為波特率發(fā)生器。 錯8.AT89S52單片機進行串行通訊時,定時器方式 2能產生比方式1更低的波特率。錯串行口的發(fā)送緩沖器和接收緩沖器只有1個單元地址,但實際上它們是兩個不同的寄存器。對四、簡答1.在異步串行通信中,接收方是如何知道發(fā)送方開始發(fā)送數(shù)據(jù)的?答:實質就是如何檢測起始位的開始。當接收方檢測到 RXD端從1到0的負跳變時就啟動檢測器,接收的值是3次連續(xù)采樣,取其中2次相同的值,以確認是否是真正的起始位的開始,這樣能較好地消除干擾引起的影響,以保證可靠無誤的開始接受數(shù)據(jù)。2.AT89S51單片機的串行口有幾種工作方式?有幾種幀格式?各種工作方式的波特率如何確定?答:有4種工作方式:方式 0、方式1、方式2、方式3;3種幀格式,方式2和3具有相同的幀格式;方式0的發(fā)送和接收都以fosc/12為固定波特率,SMOD×定時器T1的溢出率方式1的波特率=2/32SMOD×fosc方式2的波特率=2/64SMOD×定時器T1的溢出率方式3的波特率=2/323.假定串行口串行發(fā)送的字符格式為1個起始位、8個數(shù)據(jù)位、1個奇校驗位、1個停止位,請畫出傳送字符“B”的幀格式。答:字符“B”的ASCII碼為“42H”,幀格式如下:4.為什么定時器/計數(shù)器T1用作串行口波特率發(fā)生器時,常采用方式串行通信的波特率,如何計算裝入 T1的初值?

2?若已知時鐘頻率、答:因為定時器T1在方式2下,初值可自動重裝,這就避免了執(zhí)行重裝參數(shù)的指令所帶來的時間誤差。設定時器T1方式2的初值為X,計算初值X可采用如下公式:波特率

=(2

SMOD/32)

×(fosc/12)/

(256-X)5.某

AT89S51單片機串行口,傳送數(shù)據(jù)的幀格式由

1個起始位(

0)、7個數(shù)據(jù)位、1個偶校驗和

1個停止位(1)組成。當該串行口每分鐘傳送

1 800個字符時,試計算出它的波特率。答:串口每秒鐘傳送的字符為: 1800/60=30個字符/秒所以波特率為:30個字符/秒×10位/個字符=300b/s6.簡述 8051單片機主從結構多機通信原理,設有一臺主機與三臺從機通信,其中一臺從機通信地址號為01H,請敘述主機呼叫從機并向其傳送一個字節(jié)數(shù)據(jù)的過程。(請畫出原理圖)答:原理電路如下圖所示:假設主機呼叫01H從機,首先呼叫:主機發(fā)送地址幀000000011(TB8=1),此時各從機的SM2位置1,且收到的RB8=1,故激活RI。各從機將接收到的地址與本機地址比較,結果1#機被選中,則其 SM2清0;0#、2#機不變。接著進行串行數(shù)據(jù)傳送;主機發(fā)送數(shù)據(jù)幀:××××××××0(TB8=0),此時1#機的SM2=0,RB8=0。則激活RI,而0#,2#機的SM2=1,RB8=0,則不激活RI,然后數(shù)據(jù)進入 1#機的接收數(shù)據(jù)緩沖區(qū)。2.為什么AT89S52單片機串行口的方式 0幀格式沒有起始位(0)和停止位(1)?答:串行口的方式 0為同步移位寄存器輸入輸出方式,常用于外接移位寄存器,以擴展并行I/O口,一般不用于兩個 MCS-51之間的串行通信。該方式以 fosc/12 的固定波特率從低為位到高位發(fā)送或接受數(shù)據(jù)。3.直接以

TTL電平串行傳輸數(shù)據(jù)的方式有什么缺點?為什么在串行傳輸距離較遠時,

常采用RS-232C、RS-422A和

RS-485標準串行接口,來進行串行數(shù)據(jù)傳輸。比較

RS-232C、RS-422A和RS-485標準串行接口各自的優(yōu)缺點。答:直接以TTL電平串行傳輸數(shù)據(jù)的方式的缺點是傳輸距離短,抗干擾能力差。因此在串行傳輸距離較遠時,常采用RS-232C、RS-422A和RS-485標準串行接口。主要是對傳輸?shù)碾娦盘柌粩喔倪M,如RS-232C傳輸距離只有幾十米遠,與直接以TTL電平串行傳輸相比,采用了負邏輯,增大“0”、“1”信號的電平差。而RS-422A和RS-485都采用了差分信號傳輸,抗干擾能力強,距離可達1000多米。RS-422A為全雙工,RS-485為半雙工。五、編程1.若晶體振蕩器為11.0592MHz,串行口工作于方式1,波特率為4800bit/s,寫出T1采用方式2作為波特率發(fā)生器的方式控制字和初始化程序。答:計數(shù)初值為 FAH,參考的初始化程序如下:ANL TMOD,#0F0H ;屏蔽高4位ORL TMOD,#20H ;控制字MOV TH1,#0FAH ;寫入計數(shù)初值MOV TL1,#0FAHMOV SCON,#40H第7章 思考題及習題7參考答案一、填空1.AT89S52單片機任何一個端口要想獲得較大的驅動能力,要采用 電平輸出。答:低2.檢測開關處于閉合狀態(tài)還是打開狀態(tài),只需把開關一端接到 I/O端口的引腳上,另一端接地,然后通過檢測 來實現(xiàn)。答:I/O 端口引腳的電平3. “8”字型的 LED數(shù)碼管如果不包括小數(shù)點段共計 段,每一段對應一個發(fā)光二極管,有 和 兩種。答:7,共陽極,共陰極對于共陰極帶有小數(shù)點段的數(shù)碼管,顯示字符“6”(a段對應段碼的最低位)的段碼為,對于共陽極帶有小數(shù)點段的數(shù)碼管,顯示字符“ 3”的段碼為 。答:7DH,B0H已知8段共陽極LED數(shù)碼顯示器要顯示某字符的段碼為A1H(a段為最低位),此時顯示器顯示的字符為 。答:d6.LED數(shù)碼管靜態(tài)顯示方式的優(yōu)點是:顯示 閃爍,亮度 , 比較容易,但是占用的 線較多。答:無,較高,軟件控制, I/O口7. 當顯示的LED數(shù)碼管位數(shù)較多時,一般采用 顯示方式,這樣可以降低 ,減少 的數(shù)目。答:動態(tài),成本,I/O端口8.LCD1602是 型液晶顯示模塊,在其顯示字符時,只需將待顯示字符的 由單片機寫入LCD1602的顯示數(shù)據(jù)RAM(DDRAM),內部控制電路就可將字符在LCD上顯示出來。答:字符,ASCII碼9.LCD1602 顯示模塊內除有 字節(jié)的 RAM 外,還有 字節(jié)的自定義 ,用戶可自行定義 個5×7點陣字符。答:80,顯示數(shù)據(jù),64,字符RAM,810.當按鍵數(shù)目少于8個時,應采用 式鍵盤。當按鍵數(shù)目為64個時,應采用 式鍵盤。答:獨立,矩陣11.使用并行接口方式連接鍵盤,對獨立式鍵盤而言, 8根I/O口線可以接 個按鍵,而對矩陣式鍵盤而言,8根I/O口線最多可以接 個按鍵。答:8,6412.LCD1602顯示一個字符的操作過程為:首先 ,然后 ,隨后 ,最后 。答:讀忙標志位BF,寫命令,寫顯示字符,自動顯示字符13.由于微型打印機 TPμP-40A/16A是一種 外設,因此單片機與微型打印機的的命令與數(shù)據(jù)傳送,必須采用 方式。應答信號 可與 信號作為一對應答聯(lián)絡信號,也可使用 和 作為一對應答聯(lián)絡信號。答:慢速,ACK,STB,STB,BUSY二、判斷對錯1.P0口作為總線端口使用時,它是一個雙向口。 對2.P0口作為通用I/O端口使用時,外部引腳必須接上拉電阻,因此它是一個準雙向口。 對3.P1~P3口作為輸入端口用時,必須先向端口寄存器寫入 1。對4.P0~P3口的驅動能力是相同的。 錯5.當顯示的LED數(shù)碼管位數(shù)較多時,動態(tài)顯示所占用的I/O口多,為節(jié)省I/O口與驅動電路的數(shù)目,常采用靜態(tài)掃描顯示方式。錯6.LED數(shù)碼管動態(tài)掃描顯示電路只要控制好每位數(shù)碼管點亮顯示的時間,就可造成“多位同時亮”的假象,達到多位LED數(shù)碼管同時顯示的效果。錯7.使用專用的鍵盤/顯示器芯片,可由芯片內部硬件掃描電路自動完成顯示數(shù)據(jù)的掃描刷新,和鍵盤掃描。對8.控制LED點陣顯示器的顯示,實質上就是控制加到行線和列線上的電平編碼來控制點亮某些發(fā)光二極管(點),從而顯示出由不同發(fā)光的點組成的各種字符。 對9.16×16點陣顯示屏是由 4個4×4的LED點陣顯示器組成。錯10.LCD1602液晶顯示模塊,可顯示 2行,每行16個字符。對11.HD7279是可自動獲取按下鍵盤按鍵的鍵號以及自動對 LED數(shù)碼管進行動態(tài)掃描顯示用于鍵盤/LED數(shù)碼管的專用接口芯片可,為并行接口芯片。 錯12.LED數(shù)碼管的字型碼是固定不變的。 錯13.為給掃描法工作的8×8的非編碼鍵盤提供接口電路,在接口電路中需要提供兩個8位并行的輸入口和一個8位并行的輸出口。錯14.LED數(shù)碼管工作于動態(tài)顯示方式時,同一時間只有一個數(shù)碼管被點亮。15.動態(tài)顯示的數(shù)碼管,任一時刻只有一個 LED數(shù)碼管處于點亮狀態(tài),是 LED的余輝與人眼的“視覺暫留”造成數(shù)碼管同時顯示的“假象”。 對16.在微型打印機之所以稱其為“智能”微型打印機,是其內部帶有控制打印的單片機固化有控打程序。對三、簡答1.分別寫出表7-1中共陰極和共陽極 LED數(shù)碼管僅顯示小數(shù)點“.”的段碼。答:80H(共陰極);7FH(共陽極)。2.LED的靜態(tài)顯示方式與動態(tài)顯示方式有何區(qū)別?各有什么優(yōu)缺點?答:靜態(tài)顯示時,欲顯示的數(shù)據(jù)是分開送到每一位LED上的。而動態(tài)顯示則是數(shù)據(jù)是同時送到每一個LED上,再根據(jù)位選線來確定是哪一位LED被顯示。靜態(tài)顯示亮度很高,但口線占用較多。動態(tài)顯示口線占用較少,但是需要編程進行動態(tài)掃描,適合用在顯示位數(shù)較多的場合。3.對下圖所示的鍵盤,采用線反轉法原理編寫出識別某一按鍵被按下并得到其鍵號的程序。答:先對P1口高四位送低電平,讀取 P1口低四位的值;再對 P1口低四位送低電平,讀取P1口高四位的值,將兩次讀到的值組合在一起就得到了按鍵的特征碼,再根據(jù)特征碼查找鍵值。KEYIN: MOV P1,#0FH ;反轉讀鍵MOV A,P1ANL A,#0FHMOV B,AMOV P1,#0F0HMOV A,P1ANLA,#0F0HORLA,BCJNEA,#0FFH,KEYIN1RET;未按鍵KEYIN1:MOVB,A;暫存特征碼MOVDPTR,#KEYCOD;指向特征碼表MOVR3,#0FFH;順序碼初始化KEYIN2:INCR3MOVA,R3MOVCA,@A+DPTRCJNEA,B,KEYIN3MOVA,R3;找到,取順序碼RETKEYIN3:CJNEA,#0FFH,KEYIN2;未完,再查RET;已查完,未找到,以未按鍵處理KEYCOD:DB0E7H,0EBH,0EDH,0EEH;特征碼表DB0D7H,0DBH,0DDH,0DEHDB0B7H,0BBH,0BDH,0BEHDB77H,7BH,7DH,7EH非編碼鍵盤分為獨立式鍵盤和矩陣式鍵盤,什么場合用?答:獨立式鍵盤是一鍵一線,按鍵數(shù)目較少時使用,矩陣式鍵盤適于鍵盤數(shù)目較多的場合。使用專用鍵盤/顯示器接口芯片HD7279方案實現(xiàn)的鍵盤/顯示器接口的優(yōu)點是什么?答:使用專用接口芯片 HD7279實現(xiàn)的鍵盤/顯示器接口設計,優(yōu)點是按鍵按下后,可直接得到鍵號,另外,可控制處理的鍵盤按鍵以及 LED數(shù)碼管的數(shù)目較多,對鍵盤/顯示器的掃描是由HD7279的內部電路自動完成。第8章 思考題及習題8參考答案一、填空1. 單片機存儲器的主要功能是存儲 和 。答:程序、數(shù)據(jù)。2.假設外部數(shù)據(jù)存儲器 2000H單元的內容為 80H,執(zhí)行下列指令后累加器 A中的內容為 。MOV P2,#20HMOV R0,#00HMOVX A,@R0答:80H。3.在存儲器擴展中,無論是線選法還是譯碼法最終都是為擴展芯片的 端提供控制信號。答:片選。4.起止范圍為0000H~3FFFH的數(shù)據(jù)存儲器的容量是 KB 。答:16KB。5.在AT89S52單片機中,PC和DPTR都用于提供地址,但 PC是為訪問 存儲器提供地址,而DPTR是為訪問 存儲器提供地址。答:程序、數(shù)據(jù)。6.11條地址線可選 個存儲單元,16KB存儲單元需要 條地址線。答:2K,14。7.4KBRAM存儲器的首地址若為 0000H,則末地址為 H 。答:0FFF。8.若單片機外擴 32KB數(shù)據(jù)存儲器的首地址若為 4000H,則末地址為 H 。答:BFFF設計一個以AT89S52單片機為核心的系統(tǒng),如果不外擴程序存儲器,使其內部8KB閃爍程序存儲器有效,則其 引腳應該接 。答:EA*,+5V10.74LS138是具有3個輸入的譯碼器芯片,其輸出常作片選信號,可選中 片芯片中的任一芯片,并且只有 1路輸出為 電平,其它輸出均為 電平。答:8,低,高;二、單選1.區(qū)分AT89S51單片機片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠方法是 。A.看其位于地址范圍的低端還是高端B.看其離AT89S51單片機芯片的遠近C.看其芯片的型號是 ROM還是RAMD.看其是與RD信號連接還是與PSEN信號連接答:D2.訪問片外數(shù)據(jù)存儲器的尋址方式是 。A.立即尋址 B. 寄存器尋址 C. 寄存器間接尋址 D. 直接尋址答:C3.若要同時擴展 4片2KB的RAM和4片4KB的ROM,則最少需要 根地址線。A、12

B、13

C、14

D、154.當

EA

=1時,AT89S52單片機可以擴展的外部程序存儲器的最大容量為

。A.

64KB

B .60KB

C.58KB D.56KB答:D5. 若某數(shù)據(jù)存儲器芯片地址線為 12根,那么它的存儲容量為 。A、1KB B.4KB C.2KB D.8KB答:B三、編程1.試編寫一個程序(如將 05H和06H拼為56H),設原始數(shù)據(jù)放在片外數(shù)據(jù)區(qū) 2001H單元和2002H單元中,按順序拼裝后的單字節(jié)數(shù)放入 2002H。答:本題主要考察對外部存儲器的讀、寫操作,只要記住正確使用 MOVX指令就可以了。編程思路:首先讀取 2001H的值,保存在寄存器 A中,將寄存器A的高四位和低四位互換,再屏蔽掉低四位然后將寄存器A的值保存到30H中,然后再讀取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后將寄存器A的值與30H進行或運算,將運算后的結果保存在2002H中。ORG0000HMAIN:MOVDPTR,#2001H;設置數(shù)據(jù)指針的初值MOVXA,@DPTR;讀取2001H的值SWAPAANLA,#0F0H;屏蔽掉低四位MOV30H,A;保存AINCDPTR;指針指向下一個MOVXA,@DPTR;讀取2002H的值ANLA,#0FH;屏蔽掉高四位ORLA,30H;進行拼裝MOVX@DPTR,A;保存到2002HEND2.編寫程序,將外部數(shù)據(jù)存儲器中的 4000H~40FFH單元全部清“0”。答:本題主要考察對外部數(shù)據(jù)塊的寫操作;編程時只要注意循環(huán)次數(shù)和 MOVX指令的使用就可以了。ORG0000HMAIN:MOVA,#0;送預置數(shù)給AMOVR0,#0FFH;設置循環(huán)次數(shù)MOVDPTR,#4000H;設置數(shù)據(jù)指針的初值LOOP:MOVX@DPTR,A;當前單元清零INCDPTR;指向下一個單元DJNZR0,LOOP;是否結束END四、簡答1.在AT89S52單片機系統(tǒng)中,外接程序存儲器和數(shù)據(jù)存儲器共用 16位地址線和8位數(shù)據(jù)線,為何不會發(fā)生沖突?答:因為控制信號線的不同:外擴的RAM芯片既能讀出又能寫入,所以通常都有讀寫控制引腳,記為OE*和WE*。外擴RAM的讀、寫控制引腳分別與AT89S51的RD*和WR*引腳相連。外擴的EPROM在正常使用中只能讀出,不能寫入,故EPROM芯片沒有寫入控制引腳,只有讀出引腳,記為OE*,該引腳與AT89S52單片機的PSEN*相連。2.題圖8-1(a)所示為AT89S51單片機中存儲器的地址空間分布圖。題圖 8-1(b)題圖8-1為存儲器的地址譯碼電路,為使地址譯碼電路按題圖8-1(a)所示的要求進行正確尋址,要求畫出:(1)A組跨接端子的內部正確連線圖。(2)B組跨接端子的內部正確連線圖。答:(1)A組跨接端子的內部正確連線圖(2)B組跨接端子的內部正確連線圖注意:答案不唯一,還有其他連接方法,也可滿足題目要求。第9章 思考題及習題9參考答案一、填空1. 擴展一片8255可以增加 個并行口,其中 條口線具有位操作功能;答:3,82. 單片機擴展并行I/O口芯片的基本要求是:輸出應具有 功能;輸入應具有功能;答:數(shù)據(jù)鎖存,三態(tài)緩沖3. 從同步、異步方式的角度講, 82C55的基本輸入/輸出方式屬于 通訊,選通輸入/輸出和雙向傳送方式屬于 通訊。答:同步,異步二、判斷82C55為可編程芯片。對82C55具有三態(tài)緩沖器,因此可以直接掛在系統(tǒng)的數(shù)據(jù)總線上。錯82C55的PB口可以設置成方式2。錯4.擴展I/O占用片外數(shù)據(jù)存儲器的地址資源。 對5.82C55的方式1是無條件的輸入輸出方式。 錯6.82C55的PC口可以按位置位和復位。 對7.82C55的方式0是無條件的輸入輸出方式。 對三、單選1.AT89S52的并行I/O口信息有兩種讀取方法:一種是讀引腳,還有一種是 。A.讀CPU B. 讀數(shù)據(jù)庫 C. 讀A累加器 D. 讀鎖存器答:D2. 利用單片機的串行口擴展并行 I/O接口是使用串行口的 。A.方式3 B. 方式2 C. 方式1 D. 方式0答:D3. 單片機使用74LSTTL電路擴展并行I/O接口,輸入/輸出用的74LSTTL芯片為 。A.74LS244/74LS273 B.74LS273/74LS244C.74LS273/74LS373 D.74LS373/74LS273答:AAT89S52單片機最多可擴展的片外RAM為64KB,但是當擴展外部I/O口后,其外部RAM的尋址空間將 。A. 不變 B. 變大 C. 變小 D. 變?yōu)?2KB答:C四、編程1.編寫程序,采用 82C55的PC口按位置位/復位控制字,將 PC7置“0”,PC4置“1”(已82C55各端口的地址為7FFCH~7FFFH)。答:本題主要考察對 82C55的C口的操作。其方式控制字的最高位為 0時,低四位控裝置對C口置復位。由題目可知方式控制寄存器的地址為 7FFFH。ORG

0HMAIN:

MOV

PTR,#7FFFH

;控制字寄存器地址

7FFFH送

DPTRMOV

A,#0EH

;將

PC7置

0MOVX @DPTR,AMOV A,#09H ;將PC4置1MOVX @DPTR,AEND2.AT89S52單片機擴展了一片 82C55,若把82C55的PB口用作輸入,PB口的每一位接一個開關,PA口用作輸出,每一位接一個發(fā)光二極管,請畫出電路原理圖,并編寫出PB口某一位開關接高電平時,PA口相應位發(fā)光二極管被點亮的程序。答:電路圖可參見圖9-10,PA口每一位接二極管的正極,二極管的負極接地。PB口每1位接一開關和上拉電阻,開關另一端直接接地。這樣只需要將讀到的PB口的值送給PA口就可以滿足題目要求了。ORG0100HMIAN:MOVA,#10000010B;設置PA口方式0輸出,PB口方式0輸入MOVDPTR,#0FF7FH;控制口地址送DPTRMOVX@DPTR,A;送方式控制字MOVDPTR,#0FF7DH;PB口地址送DPTRMOVXA,@DPTR;讀入開關信息MOVDPTR,#0FF7CH;PA口地址送DPTRMOVX@DPTR,A;PA口的內容送PB口點亮相應的二極管END五、簡答1.I/O接口和I/O端口有什么區(qū)別?I/O接口的功能是什么?答:I/O端口簡稱I/O口,常指I/O接口電路中具有端口地址的寄存器或緩沖器。I/O接口是指單片機與外設間的I/O接口芯片;I/O 接口功能:(1) 實現(xiàn)和不同外設的速度匹配; (2) 輸出數(shù)據(jù)緩存;(3) 輸入數(shù)據(jù)三態(tài)緩沖。2.I/O數(shù)據(jù)傳送由哪幾種傳送方式?分別在哪些場合下使用?答:3種傳送方式:同步傳送方式:當外設速度可與單片機速度相比擬時,常常采用同步傳送方式。查詢傳送方式:查詢傳送方式又稱為有條件傳送,也稱異步傳送。單片機通過查詢得知外設準備好后,再進行數(shù)據(jù)傳送。異步傳送的優(yōu)點是通用性好,硬件連線和查詢程序十分簡單,但是效率不高。(3) 中斷傳送方式:中斷傳送方式是利用單片機本身的中斷功能和 I/O接口的中斷功能來實I./O數(shù)據(jù)的傳送。單片機只有在外設準備好后,發(fā)出數(shù)據(jù)傳送請求,才中斷主程序,而進入與外設進行數(shù)據(jù)傳送的中斷服務程序,進行數(shù)據(jù)的傳送。中斷服務完成后又返回主程序繼續(xù)執(zhí)行。因此,中斷方式可大大提高工作效率。3.常用的I/O端口編址有哪兩種方式?它們各有什么特點? AT89S52單片機的I/O端口編址采用的是哪種方式?答:兩種方式。(1)獨立編址:就是I/O地址空間和存儲器地址空間分開編址。優(yōu)點是I/O地址空間和存儲器地址空間相互獨立,界限分明。但卻需要設置一套專門的讀寫I/O的指令和控制信號。(2) 統(tǒng)一編址:是把 I/O端口的寄存器與數(shù)據(jù)存儲器單元同等對待,統(tǒng)一進行編址。優(yōu)點是不需要專門的I/O指令,直接使用訪問數(shù)據(jù)存儲器的指令進行I/O操作。AT89S52單片機使用的是I/O和外部數(shù)據(jù)存儲器RAM統(tǒng)一編址的方式。4.82C55的“方式控制字”和“PC口按位置位/復位控制字”都可以寫入82C55的同一控制寄存器,82C55是如何來區(qū)分這兩個控制字的?答:82C55通過寫入控制字寄存器的控制字的最高位來進行判斷,最高位為1時,為方式控制字,最高位為0時,為C口按位置位/復位控制字。5.結合圖9-6來說明82C55的PA口在方式1的應答聯(lián)絡輸入方式下的工作過程。答:當外設輸入一個數(shù)據(jù)并送到 PA7~PA0上時,輸入設備自動在選通輸入線 STBA向82C55發(fā)送一個低電平選通信號,則把 PA7~PA0上輸入的數(shù)據(jù)存入 PA口的輸入數(shù)據(jù)緩沖/鎖存器;然后使輸入緩沖器輸出線 IBFA變成高電平,以通知輸入設備, 82C55的PA口已收到它送來的輸入數(shù)據(jù)。82C55檢測到聯(lián)絡線STBA由低電平變成了高電平、 IBFA為1狀態(tài)和中斷允許觸發(fā)器INTEA為1時,使輸出線 INTRA(PC3)變成高電平,向 AT89S52發(fā)出中斷請求。(INTEA的狀態(tài)可由用戶通過對 PC4的置位/復位來控制。AT89S52響應中斷后,可以通過中斷服務程序從PA口的輸入數(shù)據(jù)緩沖/鎖存器讀取外設發(fā)來的輸入數(shù)據(jù)。 當輸入數(shù)據(jù)被CPU讀走后,82C55撤銷INTRA上的中斷請求,并使 IBFA變?yōu)榈碗娖?,以通知輸入外設可以送下一個輸入數(shù)據(jù)。第10章 思考題及習題10參考答案一、填空1.對于電流輸出型的 D/A轉換器,為了得到電壓輸出,應使用 。答:I/V轉換電路2.使用雙緩沖同步方式的 D/A轉換器,可實現(xiàn)多路模擬信號的 輸出。答:同步3.一個8位A/D轉換器的分辨率是 ,若基準電壓為 5V,該A/D轉換器能分辨的最小的電壓變化為 。答:1/28,20Mv4.若單片機發(fā)送給 8位D/A轉換器0832的數(shù)字量為65H,基準電壓為5V,則D/A轉換器的輸出電壓為 。答:1.973V5.若A/D轉換器00809的基準電壓為5V,輸入的模擬信號為 2.5V時,A/D轉換后的數(shù)字量是。答:80H二、判斷對錯1.“轉換速度”這一指標僅適用于 A/D轉換器,D/A轉換器不用考慮“轉換速度”問題。 錯2.ADC0809可以利用“轉換結束”信號 EOC向AT89S52單片機發(fā)出中斷請求。 對3.輸出模擬量的最小變化量稱為 A/D轉換器的分辨率。錯4.對于周期性的干擾電壓,可使用雙積分型 A/D轉換器,并選擇合適的積分元件,可以將該周期性的干擾電壓帶來的轉換誤差消除。 對三、單選1.在【例10-5】中的應用程序中,第 2條與第4條指令:MOV DPTR,#7FF8HMOVX @DPTR,A的作用是

。A.C.

使單片機的WR信號有效B.發(fā)送ADC當前的轉換通道號并啟動

使A/D轉換

ADC0809的片選信號有效D. 將A中的數(shù)據(jù)寫入0809答:C2.對于圖

10-20,如果

P2.7

改為

P2.3

,且

A/D

轉換的通道號選為

IN3,則

DPTR的值為

。A.FBF3H B.FBFCH C.7BFCH D.F7F3H答:D四、簡答1.D/A轉換器的主要性能指標都有哪些?設某 DAC為二進制12位,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論