




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章單片機(jī)概述1.除了單片機(jī)這一名稱之外,單片機(jī)還可稱為和。答:微控制器,嵌入式控制器。2.單片機(jī)與一般微型計算機(jī)的不一樣之處在于其將、、和3部分集成于一塊芯片上。答:CPU、存儲器、I/O口。3.8051與8751的區(qū)別是。A.內(nèi)部數(shù)據(jù)存儲單元數(shù)目不一樣 B.內(nèi)部數(shù)據(jù)存儲器的類型不一樣C.內(nèi)部程序存儲器的類型不一樣 D.內(nèi)部寄存器的數(shù)目不一樣答:C。4.在家用電器中使用單片機(jī)應(yīng)屬于微計算機(jī)的。A.輔助設(shè)計應(yīng)用;B.測量、控制應(yīng)用 ;C.?dāng)?shù)值計算應(yīng)用;D.?dāng)?shù)據(jù)處理應(yīng)用答:B。5.微處理器、微計算機(jī)、微處理機(jī)、CPU、單片機(jī)它們之間有何區(qū)別?答:微處理器、微處理機(jī)和CPU都是中央處理器的不一樣稱謂;而微計算機(jī)、單片機(jī)都是一種完整的計算機(jī)系統(tǒng),單片機(jī)特指集成在一種芯片上的用于測控目的的單片微計算機(jī)。6.MCS-51系列單片機(jī)的基本型芯片分別為哪幾種?它們的差異是什么?答:MCS-51系列單片機(jī)的基本型芯片分別是8031、8051和8751。它們的差異是在片內(nèi)程序存儲器上。8031無片內(nèi)程序存儲器,8051片內(nèi)有4KB的程序存儲器ROM,而8751片內(nèi)集成有4KB的程序存儲器EPROM。7.為何不應(yīng)當(dāng)把51系列單片機(jī)稱為MCS-51系列單片機(jī)?答:由于MCS-51系列單片機(jī)中的“MCS”是Intel企業(yè)生產(chǎn)的單片機(jī)的系列符號,而51系列單片機(jī)是指世界各個廠家生產(chǎn)的所有與8051的內(nèi)核構(gòu)造、指令系統(tǒng)兼容的單片機(jī)。8.AT89C51單片機(jī)相稱于MCS-51系列單片機(jī)中的哪一種型號的產(chǎn)品?答:相稱于MCS-51系列中的87C51,只不過是AT89C51芯片內(nèi)的4KBFlash存儲器取代了87C51片內(nèi)的4KB的EPROM。第2章AT89C51單片機(jī)片內(nèi)硬件構(gòu)造1.在AT89C51單片機(jī)中,假如采用6MHz晶振,一種機(jī)器周期為。答:2μs2.AT89C51單片機(jī)的機(jī)器周期等于個時鐘振蕩周期。答:12。3.內(nèi)部RAM中,位地址為40H、88H的位,該位所在字節(jié)的字節(jié)地址分別為和。答:28H;88H。4.片內(nèi)字節(jié)地址為2AH單元的最低位的位地址是;片內(nèi)字節(jié)地址為88H單元的最低位的位地址是。答:50H;88H。5.若A中的內(nèi)容為63H,那么,P標(biāo)志位的值為。答:P標(biāo)志位的值為0。6.AT89C51單片機(jī)復(fù)位后,R4所對應(yīng)的存儲單元的地址為,因上電時PSW
=
。這時目前的工作寄存器區(qū)是組工作寄存器區(qū)。答:04H;00H;0。7.內(nèi)部RAM中,可作為工作寄存器區(qū)的單元地址為H~H。答:00H;1FH。8.通過堆棧操作實現(xiàn)子程序調(diào)用,首先要把的內(nèi)容入棧,以進(jìn)行斷點(diǎn)保護(hù)。調(diào)用返回時,再進(jìn)行出棧保護(hù),把保護(hù)的斷點(diǎn)送回到。答:PC;PC。9.單片機(jī)的PC是16位的,因此其尋址的范圍為KB。答:64KB。10.判斷下列項說法是對的的。A.AT89C51單片機(jī)的CPU是由RAM和EPROM構(gòu)成的B.辨別片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的措施是看其位于地址范圍的低端還是高端C.在AT89C51單片機(jī)中,為使準(zhǔn)雙向的I/O口工作在輸入方式,必須保證它被事先預(yù)置為1D.PC可以當(dāng)作是程序存儲器的地址指針答:A.錯;B.錯;C.對;D.對。11.判斷如下有關(guān)PC和DPTR的結(jié)論是對的的。A.DPTR是可以訪問的,而PC不能訪問B.它們都是16位寄存器C.在單片機(jī)運(yùn)行時,它們都具有自動加“1”的功能D.DPTR可以分為2個8位的寄存器使用,但PC不能答:A.對;B.對;C.錯;D.對。12.判斷下列說法項是對的的。A.程序計數(shù)器PC不能為顧客編程時直接訪問,由于它沒有地址B.內(nèi)部RAM的位尋址區(qū),只能供位尋址使用,而不能供字節(jié)尋址使用C.AT89C51單片機(jī)共有21個特殊功能寄存器,它們的位都是可用軟件設(shè)置的,因此,是可以進(jìn)行位尋址的。答:A.對;B.錯;C.錯。13.PC的值是。A.目前正在執(zhí)行指令的前一條指令的地址B.目前正在執(zhí)行指令的地址C.目前正在執(zhí)行指令的下一條指令的地址D.控制器中指令寄存器的地址答:A.錯;B.錯;C.對;D.錯。14.判斷下列說法項是對的的。A.PC是一種不可尋址的特殊功能寄存器B.單片機(jī)的主頻越高,其運(yùn)算速度越快C.在AT89C51單片機(jī)中,一種機(jī)器周期等于1sD.特殊功能寄存器內(nèi)寄存的是棧頂首地址單元的內(nèi)容答:A.對;B.對;C.錯;D.錯。15.AT89C51單片機(jī)的片內(nèi)都集成了哪些功能部件?各個功能部件的最重要的功能是什么?(1)1個微處理器(CPU);(2)128個數(shù)據(jù)存儲器(RAM)單元;(3)4KBFlash程序存儲器;(4)4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);(5)1個全雙工串行口;(6)2個16位定期器/計數(shù)器;(7)一種中斷系統(tǒng),5個中斷源,2個優(yōu)先級;(8)21個特殊功能寄存器(SFR)。16.闡明AT89C51單片機(jī)的引腳的作用,該引腳接高電平和低電平時各有何種功能?答:當(dāng)腳為高電平時,單片機(jī)讀片內(nèi)程序存儲器(4KBFlash),但在PC值超過0FFFH(即超過4KB地址范圍)時,將自動轉(zhuǎn)向讀外部程序存儲器內(nèi)的程序。當(dāng)腳為低電平時,對程序存儲器的讀操作只限定在外部程序存儲器,地址為0000H~FFFFH,片內(nèi)的4KBFlash程序存儲器不起作用。17.請寫出這些單元的入口地址及對應(yīng)的中斷源。答:64KB程序存儲器空間中有5個特殊單元分別對應(yīng)于5個中斷源的中斷服務(wù)程序的入口地址,見下表。表5個中斷源的中斷入口地址入口地址中斷源0003H外部中斷0()000BH定期器0(T0)0013H外部中斷1()001BH定期器1(T1)0023H串行口18.當(dāng)AT89C51單片機(jī)運(yùn)行出錯或程序陷入死循環(huán)時,怎樣掙脫困境?答:按下復(fù)位按鈕。第3章AT89C51單片機(jī)的指令系統(tǒng)1.在基址加變址尋址方式中,以作為變址寄存器,以或作為基址寄存器。答:A,PC,DPTR。2.指令格式是由和構(gòu)成,也可僅由構(gòu)成。答:操作碼,操作數(shù),操作碼。3.假定累加器A中的內(nèi)容為30H,執(zhí)行指令1000H: MOVCA,@A+PC后,把程序存儲器單元的內(nèi)容送入累加器A中。答:1031H。4.在AT89C51單片機(jī)中,PC和DPTR都用于提供地址,但PC是為訪問存儲器提供地址,而DPTR是為訪問存儲器提供地址。答:程序,數(shù)據(jù)。5.在寄存器間接尋址方式中,其“間接”體目前指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的。答:地址。6.已知程序執(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。7.假定(A)
=
83H,(R0)
=
17H,(17H)
=
34H,執(zhí)行如下指令后,(A)
=。ANL A,#17HORL 17H,AXRL A,@R0CPL A答:(A)=0CBH。8.假設(shè)(A)
=
55H,(R3)
=
0AAH,在執(zhí)行指令“ANLA,R5”后,(A)
=
,(R3)
=
。答:(A)=00H,(R3)=0AAH。9.假如(DPTR)
=
507BH,(SP)
=
32H,(30H)
=
50H,(31H)
=
5FH,(32H)
=
3CH,則執(zhí)行下列指令后,(DPH)
=
,(DPL)
=
,(SP)
=
。POP DPHPOP DPLPOP SP答:(DPH)=3CH,(DPL)=5FH,(SP)=50H。10.假定,(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。11.判斷下列說法項是對的的。A.立即尋址方式是被操作的數(shù)據(jù)自身就在指令中,而不是它的地址在指令中B.指令周期是執(zhí)行一條指令的時間C.指令中直接給出的操作數(shù)稱為直接尋址答:A.對;B.對;C.錯。12.判斷如下指令的正誤。(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)錯(2)錯(3)對(4)錯(5)錯(6)錯(7)錯(8)對(9)錯(10)對
(11)對(12)錯。13.訪問SFR,可使用哪些尋址方式?答:只能使用直接尋址方式。14.下列程序段的功能是什么?PUSH AccPUSH BPOP AccPOP B答:A的內(nèi)容與B的內(nèi)容互換。15.寫出完畢如下規(guī)定的指令,不過不能變化未波及位的內(nèi)容。(1)把ACC.3,ACC.4,ACC.5和ACC.6清“0”。(2)把累加器A的中間4位清“0”。(3)使ACC.2和ACC.3置“1”。答: (1)ANLA,#87H
(2)ANLA,#0C3H
(3)ORLA,#0CH16.借助本書中的表3-2(指令表),對如下指令代碼(十六進(jìn)制)進(jìn)行手工反匯編。FFC0E0E5F0F0答: MOV R7,APUSH AMOV A,BMOVX @DPTR,A第4章AT89C51單片機(jī)匯編語言程序設(shè)計1.已知程序執(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,(51H)=50H,(52H)=80H,PC=8050H。2.闡明偽指令的作用?!皞巍钡暮x是什么?常用偽指令的功能怎樣?答:偽指令不屬于指令系統(tǒng)中的匯編語言指令,它是程序員發(fā)給匯編程序的控制命令。只有在匯編前的源程序中才有偽指令。因此“偽”體目前匯編后,偽指令沒有對應(yīng)的機(jī)器代碼產(chǎn)生。3.解釋手工匯編、機(jī)器匯編、交叉匯編、反匯編術(shù)語概念。答:(1)手工匯編:手工編程,首先把程序用助記符指令寫出,然后通過查指令的機(jī)器代碼表,逐一把助記符指令“翻譯”成機(jī)器代碼,這種人工查表“翻譯”指令的措施稱為手工匯編。(2)機(jī)器匯編:是借助于微型計算機(jī)上的軟件(匯編程序)來替代手工匯編,完畢把助記符指令“翻譯”成機(jī)器代碼的工作。(3)交叉匯編:使用微型計算機(jī)來完畢匯編,而匯編后得到的機(jī)器代碼卻是在另一臺計算機(jī)(這里是單片機(jī))上運(yùn)行,稱這種機(jī)器匯編為交叉匯編。(4)反匯編:將二進(jìn)制的機(jī)器代碼語言程序翻譯成匯編語言源程序的過程。4.下列程序段經(jīng)匯編后,從1000H開始的各有關(guān)存儲單元的內(nèi)容是什么?ORG1000HTAB1 EQU1234HTAB2 EQU3000HDB "MAIN"DW TAB1,TAB2,70H答:4D41494E1234300000705.設(shè)計子程序時應(yīng)注意哪些問題?答:在編寫子程序時應(yīng)注意如下問題。(1)子程序的第一條指令前必須有標(biāo)號。(2)使用子程序調(diào)用指令時,有兩條調(diào)用指令可供使用。①使用絕對調(diào)用指令(ACALLaddr11)要注意,被調(diào)用的子程序的首地址與本絕對調(diào)用指令的下一條指令的高5位地址相似,即只能在同一2KB程序存儲區(qū)內(nèi)。②使用長調(diào)用指令(LCALLaddr16)時,addr16為直接調(diào)用的子程序的目的地址,也就是說,被調(diào)用的子程序可放置在64KB程序存儲器區(qū)的任意位置。(3)子程序構(gòu)造中必須用到堆棧,堆棧一般用來保護(hù)斷點(diǎn)和現(xiàn)場保護(hù)。(4)子程序返回主程序時,最終一條指令必須是RET指令。(5)子程序可以嵌套,即主程序可以調(diào)用子程序,子程序又可以調(diào)用此外的子程序。6.試編寫一種程序,將內(nèi)部RAM中45H單元的高4位清“0”,低4位置“1”。答:參照程序如下:MOV A,45HANL A,#0FHORL A,#0FHMOV 45H,A7.試編寫程序,查找在內(nèi)部RAM的30H~50H單元中與否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。答:參照程序如下:START: MOV R0,#30H MOV R2,#20HLOOP: MOV A,@R0 CJNE A,#0AAH,NEXTMOV 51H,#01HLJMP EXITNEXT: INC R0 DJNZ R2,LOOPMOV 51H,#00HEXIT: RET8.試編寫程序,查找在內(nèi)部RAM的20H~40H單元中出現(xiàn)“00H”這一數(shù)據(jù)的次數(shù),并將查找到的成果存入41H單元。答:參照程序如下:START: MOV 41H,#0 MOV R0,#20H MOV R2,#20HLOOP: MOV A,@R0 JNZ NEXT INC 41HNEXT: INC R0 DJNZ R2,LOOP RET9.在內(nèi)部RAM的21H單元開始存有一組單字節(jié)無符號數(shù),數(shù)據(jù)長度為20H,編寫程序,規(guī)定找出最大數(shù)存入MAX單元。答:略:10.若SP
=
60H,標(biāo)號LABEL所在的地址為3456H。LCALL指令的地址為H,執(zhí)行如下指令HLCALLLABEL后,堆棧指針SP和堆棧內(nèi)容發(fā)生了哪些變化?PC的值等于什么?假如將指令LCALL直接換成ACALL與否可以?假如換成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=2048Byte第5章AT89C51單片機(jī)的中斷系統(tǒng)1.外部中斷1的中斷入口地址為。定期器1的中斷入口地址為。答:0013H;001BH。2.若(IP)
=
00010100B,則優(yōu)先級最高者為,最低者為。答:外部中斷1;定期器T1。3.AT89C51單片機(jī)響應(yīng)中斷后,產(chǎn)生長調(diào)用指令LCALL,執(zhí)行該指令的過程包括:首先把的內(nèi)容壓入堆棧,以進(jìn)行斷點(diǎn)保護(hù),然后把長調(diào)用指令的16位地址送,使程序執(zhí)行轉(zhuǎn)向中的中斷地址區(qū)。答:PC、PC、程序存儲器。4.判斷AT89C51單片機(jī)對外中斷祈求源響應(yīng)的最快響應(yīng)時間為3個機(jī)器周期。答:對。5.下列說法對的的是。A.各中斷源發(fā)出的中斷祈求信號,都會標(biāo)識在AT89C51單片機(jī)的IE寄存器中B.各中斷源發(fā)出的中斷祈求信號,都會標(biāo)識在AT89C51單片機(jī)的TMOD寄存器中C.各中斷源發(fā)出的中斷祈求信號,都會標(biāo)識在AT89C51單片機(jī)的IP寄存器中D.各中斷源發(fā)出的中斷祈求信號,都會標(biāo)識在AT89C51單片機(jī)的TCON與SCON寄存器中答:D。6.中斷查詢確認(rèn)后,在下列多種AT89C51單片機(jī)運(yùn)行狀況下,能立即進(jìn)行響應(yīng)的是。A.目前正在進(jìn)行高優(yōu)先級中斷處理B.目前正在執(zhí)行RETI指令C.目前指令是DIV指令,且正處在取指令的機(jī)器周期D.目前指令是MOVA,R3答:D。7.在AT89C51單片機(jī)的中斷祈求源中,需要外加電路實現(xiàn)中斷撤銷的是。A.電平方式的外部中斷B.脈沖方式的外部中斷C.外部串行中斷D.定期中斷答:A。8.下列說法對的的是。A.同一級別的中斷祈求準(zhǔn)時間的先后次序響應(yīng)B.同一時間同一級別的多中斷祈求將形成阻塞,系統(tǒng)無法響應(yīng)C.低優(yōu)先級中斷祈求不能中斷高優(yōu)先級中斷祈求,不過高優(yōu)先級中斷祈求能中斷低優(yōu)先級中斷祈求D.同級中斷不能嵌套答:A、C、D。9.中斷服務(wù)子程序與一般子程序有哪些相似和不一樣之處?答:RETI指令在返回時,同步清除中斷系統(tǒng)中對應(yīng)的優(yōu)先級觸發(fā)器,以容許下次中斷,而RET指令則沒有這個操作。除了這一點(diǎn)兩條指令不一樣外,其他操作都相似。10.AT89C51單片機(jī)響應(yīng)外部中斷的經(jīng)典時間是多少?在哪些狀況下,CPU將推遲對外部中斷祈求的響應(yīng)?答:略。11.編寫外部中斷1為跳沿觸發(fā)的中斷初始化程序段。答: SETB IT1 SETB EX1 SETB EA12.中斷響應(yīng)的條件是什么?答:略。13.某系統(tǒng)有3個外部中斷源1、2、3,當(dāng)某一中斷源發(fā)出的中斷祈求使引腳變?yōu)榈碗娖綍r(見圖5-10),便規(guī)定CPU進(jìn)行處理,它們的優(yōu)先處理次序由高到低為3、2、1,中斷處理程序的入口地址分別為1000H、1100H、1200H。試編寫主程序及中斷服務(wù)子程序(轉(zhuǎn)至對應(yīng)的中斷處理程序的入口即可)。答:參見電路如圖5-10所示,參照程序如下: ORG 0000H LJMP MAIN ORG 0013H LJMP INT_EX1 ORG 0030HMAIN: CLR IT0 ;采用電平觸發(fā),低電平有效中斷 SETB EX1 ;容許外部中斷1 SETB EA WAIT: LJMP WAIT ;用原地跳轉(zhuǎn)替代一段顧客程序;如下為外部中斷1服務(wù)子程序INT_EX1: JNB P1.2,NEXT1 ;P1.2=0,不是3號中斷,跳轉(zhuǎn)NEXT1 LJMP INT_IR3;是3號中斷,跳轉(zhuǎn)到對應(yīng)的中斷處理程序NEXT1: JNB P1.1,NEXT2 ;P1.1=0,不是2號中斷,跳轉(zhuǎn)NEXT2 LJMP INT_IR2 ;跳轉(zhuǎn)到2號中斷處理程序NEXT2: LJMP INT_IR1 ;跳轉(zhuǎn)到1號中斷處理程序 ORG 1000HINT_IR3: 插入對應(yīng)中斷處理程序 RETI ;中斷返回 ORG 1100HINT_IR2: 插入對應(yīng)中斷處理程序 RETI ;中斷返回 ORG 1200HINT_IR1: 插入對應(yīng)中斷處理程序 RETI ;中斷返回第6章AT89C51單片機(jī)的定期器/計數(shù)器1.下列項說法是對的的。A.特殊功能寄存器SCON,與定期器/計數(shù)器的控制無關(guān)B.特殊功能寄存器TCON,與定期器/計數(shù)器的控制無關(guān)C.特殊功能寄存器IE,與定期器/計數(shù)器的控制無關(guān)D.特殊功能寄存器TMOD,與定期器/計數(shù)器的控制無關(guān)答:A.對;B.;錯C.錯;D.錯。2.假如采用的晶振的頻率為3MHz,定期器/計數(shù)器工作在方式0、1、2下,其最大定期時間各為多少?答:由于機(jī)器周期
因此定期器/計數(shù)器工作方式0下,其最大定期時間為
同樣可以求得,方式1下的最大定期時間為262.144ms;方式2下的最大定期時間為1024ms。3.定期器/計數(shù)器用作定期器模式時,其計數(shù)脈沖由誰提供?定期時間與哪些原因有關(guān)?答:定期器/計數(shù)器用作定期器時,其計數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時鐘信號12分頻后提供。定期時間與時鐘頻率和定期初值有關(guān)。4.定期器/計數(shù)器用作計數(shù)器模式時,對外界計數(shù)頻率有何限制?答:由于確認(rèn)1次負(fù)跳變要花2個機(jī)器周期,即24個振蕩周期,因此外部輸入的計數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的1/24。5.采用定期器/計數(shù)器T0對外部脈沖進(jìn)行計數(shù),每計數(shù)100個脈沖后,T0轉(zhuǎn)為定期工作方式。定期1ms后,又轉(zhuǎn)為計數(shù)工作方式,如此循環(huán)不止。假定AT89C51單片機(jī)的晶體振蕩器的頻率為6MHz,請使用方式1實現(xiàn),規(guī)定編寫程序。答:定期器/計數(shù)器T0在計數(shù)和定期工作完畢后,均采用中斷方式工作。除了第一次計數(shù)工作方式設(shè)置在主程序完畢外,背面的定期或計數(shù)工作方式分別在中斷程序完畢,用一標(biāo)志位識別下一輪定期器/計數(shù)器T0的工作方式。參照程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: MOV TMOD,#06H ;定期器/計數(shù)器T0為計數(shù)方式2 MOV TL0,#156 ;計數(shù)100個脈沖的初值賦值 MOV TH0,#156 SETB GATE ;打開計數(shù)門 SETB TR0 ;啟動T0,開始計數(shù) SETB ET0 ;容許T0中斷 SETB EA ;CPU開中斷 CLR F0 ;設(shè)置下一輪定期方式的標(biāo)志位WAIT: AJMP WAITIT0P: CLR EA ;CPU關(guān)中斷 JB F0,COUNT ;F0=1,轉(zhuǎn)計數(shù)方式設(shè)置 MOV TMOD,#00H ;定期器/計數(shù)器T0為定期方式0 MOV TH0,#0FEH ;定期1ms初值賦值 MOV TL0,#0CH SETB EA RETICOUNT: MOV TMOD,#06H MOV TL0,#156 SETB EA RETI6.定期器/計數(shù)器的工作方式2有什么特點(diǎn)?合用于哪些應(yīng)用場所?答:定期器/計數(shù)器的工作方式2具有自動恢復(fù)初值的特點(diǎn),合用于精確定期,如波特率的產(chǎn)生。7.編寫程序,規(guī)定使用T0,采用方式2定期,在P1.0輸出周期為400μs,占空比為10∶1的矩形脈沖。答:根據(jù)題意,從P1.0輸出的矩形脈沖的高下電平的時間為10∶1,則高下電平的時間分別為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ù)器T0為定期方式2 MOV TL0,#4AH ;定期364s初值賦值 SETB TR0 ;啟動T0,開始計數(shù) SETB ET0 ;容許T0中斷 SETB EA ;CPU開中斷 SETB P1.0WAIT: AJMP WAITIT0P: CLR EACLR P1.0 ;關(guān)中斷 MOV R0,#9DLY: DJNZ R0,DLY ;延時36s MOV TL0,#4AH ;定期364s初值賦值 SETB P1.0 SETB EA RETI8.一種定期器的定期時間有限,怎樣用兩個定期器的串行定期來實現(xiàn)較長時間的定期?答:措施1,在第一種定期器的中斷程序里關(guān)閉本定期器的中斷程序,設(shè)置和打開另一種定期器;在另一種定期器的中斷程序中關(guān)閉本定期中斷,設(shè)置和打開另一種定期器。這種方式的定期時間為兩個定期器定期時間的和。措施2,一種作為定期器,在定期中斷后產(chǎn)生一種外部計數(shù)脈沖(例如由P1.0接產(chǎn)生),另一種定期器工作在計數(shù)方式。這樣兩個定期器的定期時間為一種定期器的定期時間乘以另一種定期器的計數(shù)值。9.當(dāng)定期器T0用于方式3時,應(yīng)當(dāng)怎樣控制定期器T1的啟動和關(guān)閉?答:由T1(P3.5)口控制定期器T1的啟動和關(guān)閉。10.定期器/計數(shù)器測量某正單脈沖的寬度,采用何種方式可得到最大量程?若時鐘頻率為6MHz,求容許測量的最大脈沖寬度是多少?答:采用方式1定期工作方式。最大脈沖寬度為131.072ms。11.編寫一段程序,功能規(guī)定:當(dāng)P1.0引腳的電平正跳變時,對P1.1的輸入脈沖進(jìn)行計數(shù);當(dāng)P1.2引腳的電平負(fù)跳變時,停止計數(shù),并將計數(shù)值寫入R0、R1(高位存R1,低位存R0)。答:將P1.1的輸入脈沖接入INT0,雖然用T0計數(shù)器完畢對P1.1口的脈沖計數(shù)。參照程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP IT0PMAIN: JNB P1.0,MAINMOV TMOD,#05H ;定期器/計數(shù)器T0為計數(shù)方式1 SETB TR0 ;啟動T0,開始計數(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 RETI12.THx與TLx(x
=
0,1)是一般寄存器還是計數(shù)器?其內(nèi)容可以隨時用指令更改嗎?更改后的新值是立即刷新還是等目前計數(shù)器計滿后才能刷新?答:THx與TLx(x=0,1)是由特殊功能寄存器構(gòu)成的計數(shù)器,其內(nèi)容可以隨時用指令更改,更改后的新值立即刷新。但在讀THx、TLx值時,應(yīng)當(dāng)先讀THx值,后讀TLx,再讀THx值。若兩次讀得THx值相似,則可確定讀得的內(nèi)容對的。若前后兩次讀得的THx值有變化,再反復(fù)上述過程。第7章AT89C51單片機(jī)的串行口1.幀格式為1個起始位,8個數(shù)據(jù)位和1個停止位的異步串行通信方式是方式。答:1。2.在串行通信中,收發(fā)雙方對波特率的設(shè)定應(yīng)當(dāng)是的。答:相等。3.下列選項中,是對的的。A.串行口通信的第9數(shù)據(jù)位的功能可由顧客定義B.發(fā)送數(shù)據(jù)的第9數(shù)據(jù)位的內(nèi)容是在SCON寄存器的TB8位中預(yù)先準(zhǔn)備好的C.串行通信幀發(fā)送時,指令把TB8位的狀態(tài)送入發(fā)送SBUF中D.串行通信接受到的第9位數(shù)據(jù)送SCON寄存器的RB8中保留E.串行口方式1的波特率是可變的,通過定期器/計數(shù)器T1的溢出率設(shè)定答:(A)對(B)對(C)錯(D)對(E)對。4.通過串行口發(fā)送或接受數(shù)據(jù)時,在程序中應(yīng)使用。A.MOVC指令 B.MOVX指令 C.MOV指令 D.XCHD指令答:(C)MOV指令。5.串行口工作方式1的波特率是。A.固定的,為fosc/32 B.固定的,為fosc/16C.可變的,通過定期器/計數(shù)器T1的溢出率設(shè)定 D.固定的,為fosc/64答:(C)。6.在異步串行通信中,接受方是怎樣懂得發(fā)送方開始發(fā)送數(shù)據(jù)的?答:當(dāng)接受方檢測到RXD引腳上的有效的負(fù)跳變時,即可懂得發(fā)送方開始發(fā)送數(shù)據(jù)。7.串行口有幾種工作方式?有幾種幀格式?多種工作方式的波特率怎樣確定?答:串行口有4種工作方式:方式0、方式1、方式2、方式3。
有3種幀格式,方式2和3具有相似的幀格式。
方式0的發(fā)送和接受都以fosc/12為固定波特率。
方式1的波特率=2SMOD/32×定期器T1的溢出率。
方式2的波特率=2SMOD/64×fosc。
方式3的波特率=2SMOD/32×定期器T1的溢出率。8.假定串行口串行發(fā)送的字符格式為1個起始位、8個數(shù)據(jù)位、1個奇校驗位、1個停止位,請畫出傳送字符“B”(42H)的幀格式。答:傳送的字符“B”的幀格式如圖所示(先低位后高位)。
起始位
01000010校驗位停止位圖9.為何定期器/計數(shù)器T1用作串行口波特率發(fā)生器時,常采用方式2?若已知時鐘頻率、通信波特率,怎樣計算其初值?答:(1)由于定期器/計數(shù)器在方式2下,初值可以自動重裝,這樣在進(jìn)行串口波特率發(fā)生器設(shè)置時,就防止了重裝參數(shù)的操作,且減少了重裝參數(shù)的誤差。
(2)已知時鐘頻率、通信波特率,根據(jù)公式(7-3),即可計算出初值。10.若晶體振蕩器為11.0592MHz,串行口工作于方式1,波特率為4800bit/s,寫出用T1作為波特率發(fā)生器的方式控制字和計數(shù)初值。答:經(jīng)計算,初值為FAH??刂谱? ANL TMOD,#0F0H ORL MOD,#20H MOV TH1,#0FAH MOV TL1,#0FAH MOV SCON,#40H11.簡述運(yùn)用串行口進(jìn)行多機(jī)通信的原理。答:以方式1為例。
發(fā)送過程:數(shù)據(jù)位由TXD端輸出,發(fā)送1幀信息為10位,當(dāng)CPU執(zhí)行1條數(shù)據(jù)寫發(fā)送緩沖器SBUF的指令,就啟動發(fā)送。發(fā)送開始時,內(nèi)部發(fā)送控制信號SEND變?yōu)橛行В瑢⑵鹗嘉幌騎XD輸出,此后,每通過1個TX時鐘周期,便產(chǎn)生1個移位脈沖,并由TXD輸出1個數(shù)據(jù)位。8位數(shù)據(jù)位所有輸出完畢后,置1中斷標(biāo)志位TI,然后SEND信號失效。接受過程:當(dāng)檢測到起始位的負(fù)跳變時,則開始接受。接受時,定期控制信號有2種。其中一種是位檢測器采樣脈沖,它的頻率是RX時鐘的16倍。也就是在1位數(shù)據(jù)期間,有16個采樣脈沖,以波特率的16倍速率采樣RXD引腳狀態(tài),當(dāng)采樣到RXD端從1到0的跳變時就啟動檢測器,接受的值是3次持續(xù)采樣,取其中2次相似的值,以確認(rèn)與否是真正的起始位的開始,這樣能很好地消除干擾引起的影響,以保證可靠無誤地開始接受數(shù)據(jù)。12.使用AT89C51的串行口按工作方式1進(jìn)行串行數(shù)據(jù)通信,假定波特率為2400bit/s,以中斷方式傳送數(shù)據(jù),請編寫全雙工通信程序。答:請參照教材的P115-P117程序,并作合適改動。13.某AT89C51單片機(jī)串行口,傳送數(shù)據(jù)的幀格式由1個起始位(0)、7個數(shù)據(jù)位、1個偶校驗和1個停止位(1)構(gòu)成。當(dāng)該串行口每分鐘傳送1
800個字符時,試計算出它的波特率。答:串口每秒鐘傳送的字符為1800/60=30個字符/秒,因此波特率為30個字符/秒×10位1個字符=300b/s。14.為何AT89C51單片機(jī)串行口的方式0幀格式?jīng)]有起始位(0)和停止位(1)?答:串行口的方式0為同步移位寄存器輸入/輸出方式,常用于外接移位寄存器,以擴(kuò)展并行I/O口,一般不用于兩個89C51之間的串行通信。該方式以fosc/12的固定波特率從低位到高位發(fā)送或接受數(shù)據(jù)。15.直接以TTL電平串行傳播數(shù)據(jù)的方式有什么缺陷?答:長處是連線簡樸,缺陷是抗干擾性能差,傳播距離短。第8章AT89C51單片機(jī)擴(kuò)展存儲器的接口設(shè)計1.單片機(jī)存儲器的重要功能是存儲和。答:程序,數(shù)據(jù)。2.假設(shè)外部數(shù)據(jù)存儲器H單元的內(nèi)容為80H,執(zhí)行下列指令后累加器A中的內(nèi)容為。MOVP2,#20HMOVR0,#00HMOVXA,@R0答:80H。3.在存儲器擴(kuò)展中,無論是線選法還是譯碼法最終都是為擴(kuò)展芯片的片選端提供控制信號。答:片選。4.起止范圍為0000H~3FFFH的存儲器的容量是KB。答:16KB5.在AT89C51單片機(jī)中,PC和DPTR都用于提供地址,但PC是為訪問存儲器提供地址,而DPTR是為訪問存儲器提供地址。答:程序,數(shù)據(jù)。6.11條地址線可選個存儲單元,16KB存儲單元需要條地址線。答:2KB,14。7.4KBRAM存儲器的首地址若為0000H,則末地址為H。答:0FFFH。8.辨別AT89C51單片機(jī)片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠措施是。A.看其位于地址范圍的低端還是高端B.看其離AT89C51單片機(jī)芯片的遠(yuǎn)近C.看其芯片的型號是ROM還是RAMD.看其是與信號連接還是與信號連接答:D。9.試編寫一種程序(如將05H和06H拼為56H),設(shè)原始數(shù)據(jù)放在片外數(shù)據(jù)區(qū)H單元和H單元中,按次序拼裝后的單字節(jié)數(shù)放入H。答:本題重要考察對外部存儲器的讀、寫操作的編程,只要對的使用MOVX指令就可以了。編程思緒:首先讀取H的值,保留在寄存器A中,將寄存器A的高4位和低4位互換,再屏蔽掉低4位然后將寄存器A的值保留到30H中,然后再讀取H的值,保留在寄存器A中,屏蔽掉高4位,然后將寄存器A的值與30H進(jìn)行“或運(yùn)算”,將運(yùn)算后的成果保留在H中。 ORG 0000HMAIN: MOV DPTR,#H ;設(shè)置數(shù)據(jù)指針的初值 MOVX A,@DPTR ;讀取H的值 SWAP A ANL A,#0F0H ;屏蔽掉低4位 MOV 30H,A ;保留A INC DPTR ;指針指向下一種片外RAM單元 MOVX A,@DPTR ;讀取H的值 ANL A,#0FH ;屏蔽掉高4位 ORL A,30H ;進(jìn)行拼裝 MOVX @DPTR,A ;保留到H片外RAM單元 END10.編寫程序,將外部數(shù)據(jù)存儲器中的4000H~40FFH單元所有清“0”。答:本題重要考察對外部數(shù)據(jù)塊的寫操作;編程時只要注意循環(huán)次數(shù)和MOVX指令的使用就可以了。 ORG 0000HMAIN: MOV A,#0 ;0給A MOV 0,#0FFH ;設(shè)置循環(huán)次數(shù) MOV DPTR,#4000H ;設(shè)置數(shù)據(jù)指針的初值LOOP: MOVX @DPTR,A ;目前單元清“0” INC DPTR ;指向下一種單元 DJNZ R0,LOOP ;與否結(jié)束 END11.在AT89C51單片機(jī)系統(tǒng)中,外接程序存儲器和數(shù)據(jù)存儲器共16位地址線和8位數(shù)據(jù)線,為何不會發(fā)生沖突?答:由于控制信號線的不一樣。
外擴(kuò)的RAM芯片既能讀出又能寫入,因此一般均有讀、寫控制引腳,記為和,它們分別與89C51的和引腳相連。
外擴(kuò)的EPROM在正常使用中只能讀出,不能寫入,故EPROM芯片沒有寫入控制引腳,只有讀出引腳,記為,該引腳與89C51單片機(jī)的相連。12.請寫出圖8-14中4片程序存儲器27128各自所占的地址空間。答:圖中采用了譯碼法。4片地址分別為0000H~3FFFH、4000H~7FFFH、8000H~BFFFH、C000H~FFFFH。13.既有AT89C51單片機(jī)、74LS373鎖存器、1片2764EPROM和兩片6264RAM,請用它們構(gòu)成一種單片機(jī)應(yīng)用系統(tǒng),規(guī)定如下:(1)畫出硬件電路連線圖,并標(biāo)重視要引腳;(2)指出該應(yīng)用系統(tǒng)程序存儲器空間和數(shù)據(jù)存儲器空間各自的地址范圍。答:略。14.圖8-22(a)所示為AT89C51單片機(jī)中存儲器的地址空間分布圖。題圖8-22(b)為存儲器的地址譯碼電路,為使地址譯碼電路按題圖8-22(a)所示的規(guī)定進(jìn)行對的尋址,規(guī)定畫出:(1)A組跨接端子的內(nèi)部對的連線圖。(2)B組跨接端子的內(nèi)部對的連線圖。答:(1)A組跨接端子的內(nèi)部對的連線圖如下左圖所示。(2)B組跨接端子的內(nèi)部對的連線圖如下右圖所示。第9章AT89C51單片機(jī)擴(kuò)展I/O接口的設(shè)計1.判斷下列說法與否對的,為何?(1)AT89C51(2)在81C55芯片中,決定端口和RAM單元編址的信號是AD7~AD0和。(3)82C55具有三態(tài)緩沖器,因此可以直接掛在系統(tǒng)的數(shù)據(jù)總線上。(4)82C55的PB口可以設(shè)置成方式2。答:(1)錯,81C55具有地址鎖存功能。(2)錯,在81C55芯片中,引腳IO/M*、A2、A1、A0決定端口地址和RAM單元編址。(3)錯,82C55不具有三態(tài)緩沖器。(4)錯,82C55的PB口只可以設(shè)置成方式0和方式1。2.I/O接口和I/O端口有什么區(qū)別?I/O接口的功能是什么?答:I/O端口簡稱I/O口,常指I/O接口電路中具有端口地址的寄存器或緩沖器。I/O接口是指單片機(jī)與外設(shè)間的I/O接口芯片。
I/O接口的功能:(1)實現(xiàn)和不一樣外設(shè)的速度匹配;(2)輸出數(shù)據(jù)緩存;(3)輸入數(shù)據(jù)三態(tài)緩沖。3.I/O數(shù)據(jù)傳送由哪幾種傳送方式?分別在哪些場所下使用?答:(1)同步傳送方式。同步傳送又稱無條件傳送。當(dāng)外設(shè)速度可與單片機(jī)速度相比擬時,常常采用這種方式。最經(jīng)典的同步傳送就是單片機(jī)和外部數(shù)據(jù)存儲器之間的數(shù)據(jù)傳送。
(2)查詢傳送方式。查詢傳送又稱有條件傳送,也稱異步傳送。單片機(jī)通過查詢得知外設(shè)準(zhǔn)備好后,再進(jìn)行數(shù)據(jù)傳送。異步傳送的長處是通用性好,硬件連線和查詢程序十分簡樸,不過效率不高。為了提高單片機(jī)的工作效率,一般采用中斷方式。(3)中斷傳送方式。中斷傳送方式是運(yùn)用AT89C51自身的中斷功能和I/O接口的中斷功能來實現(xiàn)I/O數(shù)據(jù)的傳送。單片機(jī)只有在外設(shè)準(zhǔn)備好后,發(fā)出數(shù)據(jù)傳送祈求,才中斷主程序,進(jìn)入與外設(shè)進(jìn)行數(shù)據(jù)傳送的中斷服務(wù)程序,進(jìn)行數(shù)據(jù)的傳送。中斷服務(wù)完畢后又返回主程序繼續(xù)執(zhí)行。因此,采用中斷方式可以大大提高單片機(jī)的工作效率。4.常用的I/O端口編址有哪兩種方式?它們各有什么特點(diǎn)?AT89C51單片機(jī)的I/O端口編址采用的是哪種方式?答:有兩種。(1)獨(dú)立編址方式。就是I/O地址空間和存儲器地址空間分開編址。其長處是,I/O地址空間和存儲器地址空間互相獨(dú)立,界線分明。不過,卻需要設(shè)置一套專門的讀/寫I/O的指令和控制信號。(2)統(tǒng)一編址方式。它是把I/O端口的寄存器與數(shù)據(jù)存儲器單元同等看待,統(tǒng)一編址。統(tǒng)一編址的長處是不需要專門的I/O指令,直接使用訪問數(shù)據(jù)存儲器的指令進(jìn)行I/O操作,簡樸、以便且功能強(qiáng)大。89C51單片機(jī)使用的是I/O和外部數(shù)據(jù)存儲器RAM統(tǒng)一編址的方式。5.82C55的“方式控制字”和“PC口按位置位/復(fù)位控制字”都可以寫入82C55的同一控制寄存器,82C55是怎樣來辨別這兩個控制字的?答:82C55通過寫入控制字寄存器的控制字最高位來判斷,最高位為1時,為方式控制字;最高位為0時,為PC口按位置位/復(fù)位控制字。6.編寫程序,采用82C55的PC口按位置位/復(fù)位控制字,將PC7置“0”,PC4置“1”(已知82C55各端口的地址為7FFCH~7FFFH)。答:本題重要考察對82C55的PC口的操作。其方式控制字的最高位為0時,低4位對PC口進(jìn)行置位。由題目可知方式控制寄存器的地址為7FFFH。 ORG 0100H MAIN: MOV DPTR,#7FFFH ;控制字寄存器地址7FFFH送DPTR MOV A,#0EH ;將PC7置0 MOVX @DPTR,A MOV A,#09H ;將PC4置1 MOVX @DPTR,A END7.由圖9-6來闡明82C55的PA口在方式1的應(yīng)答聯(lián)絡(luò)輸入方式下的工作過程。答:當(dāng)外設(shè)輸入一種數(shù)據(jù)并送到PA7~PA0上時,輸入設(shè)備自動在選通輸入線向82C55發(fā)送一種低電平選通信號,則把PA7~PA0上輸入的數(shù)據(jù)存入PA口的輸入數(shù)據(jù)緩沖/鎖存器;然后使輸入緩沖器輸出線IBFA變成高電平,以告知輸入設(shè)備,82C55的PA口已收到它送來的輸入數(shù)據(jù)。82C55檢測到聯(lián)絡(luò)線由低電平變成了高電平、IBFA為1狀態(tài)和中斷容許觸發(fā)器INTEA為1時,使輸出線INTRA(PC3)變成高電平,向89C51發(fā)出中斷祈求。INTEA的狀態(tài)可由顧客通過對PC4的置位/復(fù)位來控制。89C51響應(yīng)中斷后,可以通過中斷服務(wù)程序從PA口的輸入數(shù)據(jù)緩沖/鎖存器讀取外設(shè)發(fā)來的輸入數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)被CPU讀走后,82C55撤銷INTRA上的中斷祈求,并使IBFA變?yōu)榈碗娖?,以告知輸入外設(shè)可以送下一種輸入數(shù)據(jù)。8.81C55的端口均有哪些?哪些引腳決定端口的地址?引腳TIMERIN和的作用是什么?答:81C55的端口有如下幾種:命令/狀態(tài)寄存器、PA口、PB口、PC口、計數(shù)器的高8位寄存器與低8位寄存器以及RAM單元。引腳IO/,A2、A1、A0決定端口地址。TIMERIN是計數(shù)脈沖輸入引腳,輸入脈沖的上跳沿用于對81C55片內(nèi)的14位計數(shù)器減1。為計數(shù)器輸出引腳。當(dāng)14位計數(shù)器減為0時,就在該引線上輸出脈沖或方波,輸出的信號波形與所選的計數(shù)器工作方式有關(guān)。9.既有一片AT89C51單片機(jī),擴(kuò)展了一片82C55,若把82C55的PB口用作輸入,PB口的每一位接一種開關(guān),PA口用作輸出,每一位接一種發(fā)光二極管,請畫出電路原理圖,并編寫出PB口某一位開關(guān)接高電平時,PA口對應(yīng)位發(fā)光二極管被點(diǎn)亮的程序。答:電路圖可以參照圖9-10,PA口每一位接二極管的正極,二極管的負(fù)極接地。PB口每1位接一開關(guān)和上拉電阻,開關(guān)另一端直接接地。這樣只需要將讀到的PB口的值送給PA口就可以滿足題目規(guī)定了。 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)的二極管 END10.假設(shè)81C55的TIMERIN引腳輸入的頻率為4MHz,問81C55的最大定期時間是多少?答:81C55計數(shù)器的初值范圍是3FFFH~2H。當(dāng)頻率為4MHz,初值為3FFFH時,最大定期時間為0.004096s。11.假設(shè)81C55的TIMERIN引腳輸入的脈沖頻率為1MHz,請編寫在81C55的引腳上輸出周期為10ms的方波的程序(假設(shè)I/O口地址為7F00H~7F05H)。答:將1MHz的脈沖變化為10ms的方波,實際上就是分頻。分頻前后頻率之比為100∶1,這樣只要將定期器初值設(shè)置為64H就可以了(假設(shè)I/O口地址為7F00H~7F05H)。START: MOV DPTR,#7F04H ;指針指向計數(shù)器低8位 MOV A,#64H ;送初值給A MOVX @DPTR,A ;初值送給計數(shù)器低8位 INC DPTR ;指向計數(shù)器高8位 MOV A,#40H ;計數(shù)器方波輸出 MOVX @DPTR,A MOV DPTR,#7F00H ;指向命令/狀態(tài)口 MOV A,#0C2H ;設(shè)定控制字 MOVX @DPTR,A ;啟動計數(shù)器 END第10章AT89C51單片機(jī)與輸入外設(shè)和輸出外設(shè)的接口設(shè)計1.下列項說法對的。A.HD7279是一種用于鍵盤和LED顯示屏的專用接口芯片B.在單片機(jī)與微型打印機(jī)的接口中,打印機(jī)的BUSY信號可作為查詢信號或中斷祈求信號使用C.為給掃描法工作的8
′
8鍵盤提供接口電路,在接口電路中只需要提供兩個輸入口和一種輸出口D.LED顯示屏的字型碼是固定不變的答:A.對;B.對;C.錯;D.錯。2.為何要消除按鍵的機(jī)械抖動?軟件消除按鍵機(jī)械抖動的原理是什么?答:在按鍵的閉合和斷開過程中,由于開關(guān)的機(jī)械特性,導(dǎo)致了按鍵抖動的產(chǎn)生。假如不消除按鍵的機(jī)械抖動,按鍵的狀態(tài)讀取將有也許出現(xiàn)錯誤。消除按鍵抖動一般是采用軟件或硬件去抖。軟件去抖的原理是,在第一次檢測到有鍵按下時,該鍵所對應(yīng)的行線為低電平,執(zhí)行一端延時10ms的子程序后,確認(rèn)該行線電平與否仍然為低電平,假如仍為低電平,則確認(rèn)該行確實有鍵按下。3.LED的靜態(tài)顯示方式與動態(tài)顯示方式有何區(qū)別?各有什么優(yōu)缺陷?答:靜態(tài)顯示時,數(shù)據(jù)是分開送到每一位LED上的。而動態(tài)顯示時,則數(shù)據(jù)是同步送到每一種LED上,再根據(jù)位選線來確定是哪一位LED被顯示。靜態(tài)顯示亮度很高,但口線占用較多。動態(tài)顯示口線占用較少,適合用在顯示位數(shù)較多的場所。4.寫出表10-1中僅顯示小數(shù)點(diǎn)“.”的段碼。答:80H(共陰極);7FH(共陽極)。5.闡明矩陣式鍵盤按鍵按下的識別原理。答:按鍵設(shè)置在行、列線交點(diǎn)上,行、列線分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接到+5V上,無按鍵按下時,行線處在高電平狀態(tài),而當(dāng)有按鍵按下時,行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。列線的電平假如為低,則行線電平為低;列線的電平假如為高,則行線的電平亦為高。將行、列線信號配合起來并做合適的處理,才能確定閉合鍵的位置。6.對于圖10-10所示的鍵盤,采用線反轉(zhuǎn)法原理編寫出識別某一按鍵被按下并得到其鍵號的程序。答:先對P1口高4位送低電平,讀取P1口低4位的值;再對P1口低4位送低電平,讀取P1口高4位的值,將兩次讀到的值組合在一起就得到了按鍵的特性碼,再根據(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,7EH7.鍵盤有哪3種工作方式,它們各自的工作原理及特點(diǎn)是什么?答:(1)編程掃描方式。當(dāng)單片機(jī)空閑時,才調(diào)用鍵盤掃描子程序,反復(fù)掃描鍵盤,等待顧客從鍵盤上輸入命令或數(shù)據(jù),響應(yīng)鍵盤的輸入祈求。
(2)定期掃描方式。單片機(jī)每隔一定的時間對鍵盤掃描一次。
(3)中斷掃描方式。只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序并執(zhí)行該按鍵功能程序,假如無鍵按下,單片機(jī)將不理會鍵盤。8.根據(jù)圖10-11所示的電路,編寫在6個LED顯示屏上輪番顯示“1,2,3,4,5,6”的顯示程序。答:參見教材P170的顯示程序。9.簡述TPP-40A/16A微型打印機(jī)的Centronics接口的重要信號線及功能,與AT89C51單片機(jī)相連接時,怎樣連接幾條控制線?答:DB0~DB7——數(shù)據(jù)線,單向傳播,由單片機(jī)輸入給打印機(jī)。STB(STROBE)——數(shù)據(jù)選通信號。在該信號的上升沿,數(shù)據(jù)線上的8位并行數(shù)據(jù)被打印機(jī)讀入機(jī)內(nèi)鎖存。BUSY——打印機(jī)忙狀態(tài)信號。當(dāng)該信號有效(高電平)時,表達(dá)打印機(jī)正忙于處理數(shù)據(jù)。此時,單片機(jī)不得使STB信號有效,向打印機(jī)送入新的數(shù)據(jù)。ACK——打印機(jī)的應(yīng)答信號。低電平有效,表明打印機(jī)已取走數(shù)據(jù)線上的數(shù)據(jù)。ERR——出錯信號。當(dāng)送入打印機(jī)的命令格式出錯時,打印機(jī)立即打印1行出錯信息,提醒出錯。在打印出錯信息之前。該信號線出現(xiàn)一種負(fù)脈沖,脈沖寬度為30s。用一條地址線來控制寫選通信號STB和讀取BUSY引腳狀態(tài)。10.答:本程序采用外部中斷來完畢數(shù)據(jù)打印,先打印一種數(shù)據(jù),當(dāng)BUSY線從高電平變成低電平時,再打印下一種數(shù)據(jù)。參照程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP IN ORG 0030HMAIN: SETB EX0 ;容許外部中斷 SETB IT0 SETB EA MOV R0,#7FH ;控制口地址 MOV A,#81H ;控制字 MOVX @R0,A MOV R1,#20H ;數(shù)據(jù)區(qū)首地址 MOV R2,#19 ;計數(shù)器 MOV A,@R1 ;打印內(nèi)容 MOV R0,#7CH ;A口地址 MOVX @R0,A MOV R0,#7FH MOV A,#0EH MOVX @R0,A ;PC7=0 MOV A,#0FH MOVX @R0,A ;PC7=1 SJMP $IN: DJNZ R2,EX ;20個數(shù)據(jù)都結(jié)束了嗎?INC R1 ;指向下一種數(shù)據(jù)MOV A,@R1 MOV R0,#7CH MOVX @R0,A MOV R0,#7FH MOV A,#0EH MOVX @R0,A MOV A,#0FH MOVX @R0,AEX: RETI第11章AT89C51單片機(jī)與D/A、A/D轉(zhuǎn)換器的接口1.對于電流輸出的D/A轉(zhuǎn)換器,為了得到電壓的轉(zhuǎn)換成果,應(yīng)使用。答:由運(yùn)算放大器構(gòu)成的I/V轉(zhuǎn)換電路。2.使用雙緩沖同步方式的D/A轉(zhuǎn)換器,可實現(xiàn)多路模擬信號的輸出。答:同步。3.判斷下列說法與否對的。(1)“轉(zhuǎn)換速度”這一指標(biāo)僅合用于A/D轉(zhuǎn)換器,D/A轉(zhuǎn)換器不用考慮“轉(zhuǎn)換速度”問題。(2)ADC0809可以運(yùn)用“轉(zhuǎn)換結(jié)束”信號EOC向AT89C51單片機(jī)發(fā)出中斷祈求。(3)輸出模擬量的最小變化量稱為A/D轉(zhuǎn)換器的辨別率。(4)對于周期性的干擾電壓,可使用雙積分型A/D轉(zhuǎn)換器,并選擇合適的積分元件,可以將該周期性的干擾電壓帶來的轉(zhuǎn)換誤差消除。答:(1)錯(2)對(3)錯(4)對。4.D/A轉(zhuǎn)換器的重要性能指標(biāo)均有哪些?設(shè)某DAC為二進(jìn)制12位,滿量程輸出電壓為5V,試問它的辨別率是多少?答:D/A轉(zhuǎn)換器的重要技術(shù)指標(biāo)如下:(1)辨別率。指輸入的單位數(shù)字量變化引起的模擬量輸出的變化,是對輸入量變化敏感程度的描述。(2)建立時間。是描述D/A轉(zhuǎn)換速度的一種參數(shù),用于表明轉(zhuǎn)換速度。其值為從輸入數(shù)字量到輸出到達(dá)終位誤差±(1/2)LSB(最低有效位)時所需的時間。(3)轉(zhuǎn)換精度。理想狀況下,精度與辨別率基本一致,位數(shù)越多精度越高。嚴(yán)格講,精度與辨別率并不完全一致。只要位數(shù)相似,辨別率則相似,但相似位數(shù)的不一樣轉(zhuǎn)換器精度會有所不一樣。當(dāng)DAC為二進(jìn)制12位,滿量程輸出電壓為5V時,辨別率為1.22mV。5.A/D轉(zhuǎn)換器兩個最重要的指標(biāo)是什么?答:A/D轉(zhuǎn)換器的兩個最重要指標(biāo):
(1)轉(zhuǎn)換時間和轉(zhuǎn)換速率:轉(zhuǎn)換時間為A/D完畢一次轉(zhuǎn)換所需要的時間。轉(zhuǎn)換時間的倒數(shù)為轉(zhuǎn)換速率。(2)辨別率:表達(dá)輸出數(shù)字量變化一種相鄰數(shù)碼所需輸入模擬電壓的變化量。習(xí)慣上用輸出二進(jìn)制位數(shù)或BCD碼位數(shù)表達(dá)。6.分析A/D轉(zhuǎn)換器產(chǎn)生量化誤差的原因,一種8位的A/D轉(zhuǎn)換器,當(dāng)輸入電壓為0~5V時,其最大的量化誤差是多少?答:量化誤差是由于有限位數(shù)字且對模擬量進(jìn)行量化而引起的;0.195%。7.目前應(yīng)用較廣泛的A/D轉(zhuǎn)換器重要有哪幾種類型?它們各有什么特點(diǎn)?答:目前應(yīng)用較廣泛的重要有如下幾種類型:逐次迫近型轉(zhuǎn)換器、雙積分型轉(zhuǎn)換器、∑-式A/D轉(zhuǎn)換器。逐次迫近型A/D轉(zhuǎn)換器在精度、速度和價格上都適中,是最常用的A/D轉(zhuǎn)換器件。雙積分型A/D轉(zhuǎn)換器具有精度高、抗干擾性好、價格低廉等長處,但轉(zhuǎn)換速度慢,近年來在單片機(jī)應(yīng)用領(lǐng)域中也得到廣泛應(yīng)用?!?式A/D轉(zhuǎn)換器具有積分型與逐次迫近型ADC的雙重長處,它對工業(yè)現(xiàn)場的串模干擾具有較強(qiáng)的克制能力,不亞于雙積分型ADC,它比雙積分型ADC有較高的轉(zhuǎn)換速度。與逐次迫近型ADC相比,有較高的信噪比,辨別率高,線性度好,不需要采樣保持電路。8.在DAC和ADC的重要技術(shù)指標(biāo)中,“量化誤差”、“辨別率”和“精度”有何區(qū)別?答:對DAC來說,辨別率反應(yīng)了輸出模擬電壓的最小變化量。而對于ADC來說,辨別率表達(dá)輸出數(shù)字量變化一種相鄰數(shù)碼所需輸入模擬電壓的變化量。量化誤差是由ADC的有限辨別率而引起的誤差,但量化誤差只合用于ADC,不合用于DAC。精度與辨別率基本一致,位數(shù)越多精度越高。嚴(yán)格講,精度與辨別率并不完全一致。只要位數(shù)相似,辨別率則相似。但相似位數(shù)的不一樣轉(zhuǎn)換器,精度會有所不一樣。9.在一種由AT89C51單片機(jī)與一片ADC0809構(gòu)成的數(shù)據(jù)采集系統(tǒng)中,ADC0809的8個輸入通道的地址為7FF8H~7FFFH,試畫出有關(guān)接口的電路圖,并編寫每隔1分鐘輪番采集一次8個通道數(shù)據(jù)的程序,共采樣50次,其采樣值存入片外RAM中以H單元開始的存儲區(qū)中。答:接口電路可參見圖11-17。參照程序如下:MAIN: MOV R0,#20HMOV R1,#00HMOV R2,#00HMOV R3,#50MOV R8,#08HLOOP: MOV DPTR,#7FF8HLOOP1: MOVX @DPTR,AMOV R6,#0AHDELAY: NOPNOPNOPDJNZ R6,DELAYMOVX A,@DPTRINC DPTRMOV R2,DPLMOV DPH,R0MOV DPL,R1MOVX @DPTR,AINC DPTRMOV R0,DPHMOV R1,DPLMOV DPH,#7FHMOV DPL,R2DJNZ R7,LOOP1LCALLDELAY1M;延時1分鐘DJNZ R3,LOOP…第12章單片機(jī)的串行擴(kuò)展技術(shù)1.I2C總線的長處是什么?答:I2C總線的長處是各外圍器件的連接僅需2條I/O口線(SDA線和SCL線),極大地簡化了器件間的連接,進(jìn)而提高了可靠性。I2C串行接口器件體積小,因而占用電路板的空間小,僅為并行接口器件的10%,明顯減少了電路板空間和成本。在原則I2C一般模式下,數(shù)據(jù)的傳播速率為100kbit/s,高速模式下可達(dá)400kbit/s。除上述長處外,尚有工作電壓寬、抗干擾能力強(qiáng)、功耗低、數(shù)據(jù)不易丟失等特點(diǎn)。2.I2C總線的起始信號和終止信號是怎樣定義的?答:(1)起始信號S的規(guī)定如下:在SCL線為高電平期間,SDA線由高電平向低電平的變化表達(dá)起始信號,只有在起始信號后來,其他命令才有效。(2)終止信號P的規(guī)定如下:在SCL線為高電平期間,SDA線由低電平向高電平的變化表達(dá)終止信號。伴隨終止信號的出現(xiàn),所有外部操作都
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地流轉(zhuǎn)風(fēng)險評估與保障協(xié)議
- 無人駕駛技術(shù)投資協(xié)議
- 汽車租賃長租合同
- 公司股份改制方案設(shè)計報告
- 農(nóng)村綠化景觀改造施工協(xié)議
- 水務(wù)工程聯(lián)合運(yùn)營合作協(xié)議
- 小英雄雨來成長征文
- 國際貿(mào)易市場走勢預(yù)測分析表
- 迪士尼動畫海洋奇緣觀后感
- 高考數(shù)學(xué)專題06四邊形的綜合問題測試題
- 2024年度doors入門培訓(xùn)教程pdf
- JTT589-2004 水泥混凝土路面嵌縫密封材料
- (高清版)TDT 1042-2013 土地整治工程施工監(jiān)理規(guī)范
- 中風(fēng)患者的護(hù)理及康復(fù)指南培訓(xùn)
- 數(shù)據(jù)中心運(yùn)維解決方案
- 滁州城市職業(yè)學(xué)院單招《職業(yè)技能測試》參考試題庫(含答案)
- 基于單片機(jī)控制的充電樁設(shè)計
- SB-T 11238-2023 報廢電動汽車回收拆解技術(shù)要求
- 鋰電池正極材料行業(yè)分析
- 國家級省級化工園區(qū)列表
- 肩關(guān)節(jié)脫位手法復(fù)位課件
評論
0/150
提交評論