單片機(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è),還剩20頁(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)介

PAGEPAGE1“單片機(jī)原理及應(yīng)用”課程習(xí)題與解答參考教材:張毅剛主編,單片機(jī)原理及應(yīng)用,普通高等教育“十五”國(guó)家級(jí)規(guī)劃教材,高等教育出版社,2004年1月第一章1-3:?jiǎn)纹瑱C(jī)與普通計(jì)算機(jī)的不同之處在于其將()()和()三部分集成于一塊芯片上。答:CPU、存儲(chǔ)器、I/O口1-8:8051與8751的區(qū)別是: A、內(nèi)部數(shù)據(jù)存儲(chǔ)但也數(shù)目的不同 B、內(nèi)部數(shù)據(jù)存儲(chǔ)器的類(lèi)型不同 C、內(nèi)部程序存儲(chǔ)器的類(lèi)型不同 D、內(nèi)部的寄存器的數(shù)目不同答:C第二章2-4:在MCS-51單片機(jī)中,如果采用6MHz晶振,1個(gè)機(jī)器周期為()。答:2us。析:機(jī)器周期為振蕩周期的1/6。2-6:內(nèi)部RAM中,位地址為30H的位,該位所在字節(jié)的字節(jié)地址為()。答:26H2-7:若A中的內(nèi)容為63H,那么,P標(biāo)志位的值為()。答:0析:P為偶校驗(yàn)位,因?yàn)锳中1的個(gè)數(shù)為偶數(shù),所以P=0。2-8:判斷下列說(shuō)法是否正確: A、8031的CPU是由RAM和EPROM所組成。B、區(qū)分片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的最可靠的方法是看其位于地址范圍的低端還是高端。C、在MCS-51中,為使準(zhǔn)雙向的I/O口工作在輸入方式,必須保證它被事先預(yù)置為1。D、PC可以看成使程序存儲(chǔ)器的地址指針。答:錯(cuò)、錯(cuò)、對(duì)、對(duì)2-9:8031單片機(jī)復(fù)位后,R4所對(duì)應(yīng)的存儲(chǔ)單元的地址為(),因上電時(shí)PSW=()。這時(shí)當(dāng)前的工作寄存器區(qū)是()組工作寄存器區(qū)。答:04H、00H、02-11:判斷以下有關(guān)PC和DPTR的結(jié)論是否正確? A、DPTR是可以訪問(wèn)的,而PC不能訪問(wèn)。 B、它們都是16位的存儲(chǔ)器 C、它們都有加1的功能。 D、DPTR可以分為兩個(gè)8位的寄存器使用,但PC不能。答:對(duì)、對(duì)、對(duì)、對(duì)2-13:使用8031芯片時(shí),需將/EA引腳接()電平,因?yàn)槠淦瑑?nèi)無(wú)()存儲(chǔ)器。答:低、程序2-14:片內(nèi)RAM低128個(gè)單元?jiǎng)澐譃槟?個(gè)主要部分?各部分的主要功能是什么?答:工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)2-15:判斷下列說(shuō)法是否正確程序計(jì)數(shù)器PC不能為用戶編程時(shí)直接使用,因?yàn)樗鼪](méi)有地址。內(nèi)部RAM的位尋址區(qū),只能供位尋址使用,而不能供字節(jié)尋址使用。8031共有21個(gè)特殊功能寄存器,它們的位都是可以用軟件設(shè)置的,因此,是可以進(jìn)行位尋址的。答:對(duì)、錯(cuò)、錯(cuò)2-16:PC的值是 A、當(dāng)前正在執(zhí)行指令的前一條指令的地址 B、當(dāng)前正在執(zhí)行指令的地址 C、當(dāng)前正在執(zhí)行指令的下一條指令的地址 D、控制器中指令寄存器的地址答:C2-17:通過(guò)堆棧操作實(shí)現(xiàn)子程序調(diào)用,首先就要把()的內(nèi)容入棧,以進(jìn)行斷點(diǎn)保護(hù)。調(diào)用返回時(shí),再進(jìn)行出棧保護(hù),把保護(hù)的斷點(diǎn)送回到()。答:PC、PC2-19:MCS-51單片機(jī)程序存儲(chǔ)器的尋址范圍是由程序計(jì)數(shù)器PC的位數(shù)所決定的,因?yàn)镸CS-51的PC是16位的,因此其尋址的范圍為()KB。答:642-20:當(dāng)MCS-51單片機(jī)運(yùn)行出錯(cuò)或程序陷入死循環(huán)時(shí),如何來(lái)擺脫困境?答:軟件陷阱、復(fù)位2-21:判斷下列說(shuō)法是否正確?PC是1個(gè)不可尋址的特殊功能寄存器。單片機(jī)的主頻越高,其運(yùn)算速度越快。在MCS-51單片機(jī)中,1個(gè)機(jī)器周期等于1us。特殊功能寄存器SP內(nèi)裝的是棧頂首地址單元的內(nèi)容。答:錯(cuò)、對(duì)、錯(cuò)、錯(cuò)2-22:如果手中僅有一臺(tái)示波器,可通過(guò)觀察哪個(gè)引腳的狀態(tài),來(lái)大致判斷MCS-51單片機(jī)正在工作?答:ALE析:因?yàn)閱纹瑱C(jī)正常工作時(shí),ALE腳輸出時(shí)鐘頻率為振蕩周期的1/6。第三章3-1:判斷下列指令的正誤: 1)MOV 28H,@R22)DECDPTR3)INCDPTR4)CLRR0 5)CPL R56)MOVR0,R17)PUSHDPTR8)MOVF0,C 9)MOVF0,ACC.310)MOVXA,@R111)MOVC,30H12)RLCR0答:錯(cuò)、錯(cuò)、對(duì)、錯(cuò) 錯(cuò)、錯(cuò)、錯(cuò)、對(duì) 錯(cuò)、對(duì)、對(duì)、錯(cuò)3-2:判斷下列說(shuō)法是否正確。立即尋址方式是被操作的數(shù)據(jù)本身在指令中,而不是它的地址在指令中。指令周期是執(zhí)行一條指令的時(shí)間。指令中直接給出的操作數(shù)稱為直接尋址。答:對(duì)、對(duì)、錯(cuò)3-3:在基址加變址尋址方式中,以()作變址寄存器,以()或()作基址寄存器。答:累加器A,DPTR、PC3-7:指令格式是由()和()所組成,也可能僅由()組成。答:操作碼、操作數(shù)、操作碼3-8:假定累加器A中的內(nèi)容為30H,執(zhí)行指令 1000H:MOVCA,@A+PC 后,把程序存儲(chǔ)器()單元的內(nèi)容送入累加器A中。答:1031H3-9:在MCS-51中,PC和DPTR都用于提供地址,但PC是為訪問(wèn)()存儲(chǔ)器提供地址,而DPTR是為訪問(wèn)()存儲(chǔ)器提供地址。答:程序、數(shù)據(jù)3-10:在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的()。答:地址3-11:下列程序段的功能是什么? PUSH A PUSH B POP A POP B答:交換A、B的內(nèi)容3-12:已知程序執(zhí)行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序執(zhí)行后:5-14:某系統(tǒng)有3個(gè)外部中斷源1、2、3,當(dāng)某一中斷源變?yōu)榈碗娖綍r(shí),便要求CPU進(jìn)行處理,它們的優(yōu)先處理次序由高到低依次為3、2、1,中斷處理程序的入口地址分別為1000H,1100H,1200H。試編寫(xiě)主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的中斷處理程序的入口即可)。答:若僅在/INT0引腳接3個(gè)外部中斷源,電路如圖5-10(P115) ORG 0000H LJMP MAIN ORG 0003H LJMP INT_EX0 ORG 0030HMAIN: CLR IT0 ;采用低電平有效中斷 SETB EX0 ;允許外部中斷0 SETB EA ;插入用戶程序WAIT: MOV PCON,#01H ;單片機(jī)進(jìn)入休眠方式等待中斷 NOP LJMP WAIT;以下為外部中斷0服務(wù)子程序INT_EX0:JNB P1.0,NEXT1 ;判斷是不是1號(hào)中斷 LJMP INT_IR1 ;跳轉(zhuǎn)到1號(hào)中斷處理程序NEXT1: JNB P1.1,NEXT2 ;判斷是不是2號(hào)中斷 LJMP INT_IR2 ;跳轉(zhuǎn)到2號(hào)中斷處理程序NEXT2: LJMP INT_IR3 ;跳轉(zhuǎn)到3號(hào)中斷處理程序 ORG 1000HINT_IR1: ;插入相應(yīng)中斷處理程序 RETI ;中斷返回 ORG 1100HINT_IR2: ;插入相應(yīng)中斷處理程序 RETI ;中斷返回 ORG 1200HINT_IR3: ;插入相應(yīng)中斷處理程序 RETI ;中斷返回第六章MCS-51的定時(shí)/計(jì)數(shù)器如果采用晶振的頻率為3MHz,定時(shí)器/計(jì)數(shù)器工作方式0、1、2下,其最大的定時(shí)時(shí)間為多少?解答:因?yàn)闄C(jī)器周期,所以定時(shí)器/計(jì)數(shù)器工作方式0下,其最大定時(shí)時(shí)間為;同樣可以求得方式1下的最大定時(shí)時(shí)間為262.144ms;方式2下的最大定時(shí)時(shí)間為1024ms。定時(shí)/計(jì)數(shù)器用作定時(shí)器時(shí),其計(jì)數(shù)脈沖由誰(shuí)提供?定時(shí)時(shí)間與哪些因素有關(guān)?答:定時(shí)/計(jì)數(shù)器作定時(shí)時(shí),其計(jì)數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時(shí)鐘信號(hào)12分頻后提供。定時(shí)時(shí)間與時(shí)鐘頻率和定時(shí)初值有關(guān)。定時(shí)/計(jì)數(shù)器用作定時(shí)器時(shí),對(duì)外界計(jì)數(shù)頻率有何限制?答:由于確認(rèn)1次負(fù)跳變要花2個(gè)機(jī)器周期,即24個(gè)振蕩周期,因此外部輸入的計(jì)數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的1/24。4.采用定時(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)不止。假定MCS-51單片機(jī)的晶體振蕩器的頻率為6MHz,請(qǐng)使用方式1實(shí)現(xiàn),要求編寫(xiě)出程序。解答:定時(shí)器/計(jì)數(shù)器T0在計(jì)數(shù)和定時(shí)工作完成后,均采用中斷方式工作。除了第一次計(jì)數(shù)工作方式設(shè)置在主程序完成外,后面的定時(shí)或計(jì)數(shù)工作方式分別在中斷程序完成,用一標(biāo)志位識(shí)別下一輪定時(shí)器/計(jì)數(shù)器T0的工作方式。編寫(xiě)程序如下: 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 ;打開(kāi)計(jì)數(shù)門(mén) SETB TR0 ;啟動(dòng)T0,開(kāi)始計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開(kāi)中斷 CLR F0 ;設(shè)置下一輪為定時(shí)方式的標(biāo)志位WAIT: AJMP WAITIT0P: CLR EA ;關(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 RETI5.定時(shí)器/計(jì)數(shù)器的工作方式2有什么特點(diǎn)?適用于哪些應(yīng)用場(chǎng)合?答:定時(shí)器/計(jì)數(shù)器的工作方式2具有自動(dòng)恢復(fù)初值的特點(diǎn),適用于精確定時(shí),比如波特率的產(chǎn)生。6.編寫(xiě)程序,要求使用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晶振的話,,因此高低電平輸出取整,則約為364μs和36μs。編寫(xiě)程序如下: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,開(kāi)始計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開(kāi)中斷 SETB P1.0WAIT: AJMP WAITIT0P: CLR EACLR P1.0 ;關(guān)中斷 MOV R0,#9DLY: DJNZ R0,DLY ;延時(shí)26μs MOV TL0,#4AH ;定時(shí)364μs初值賦值 SETB P1.0 SETB EA RETI7.一個(gè)定時(shí)器的定時(shí)時(shí)間有限,如何實(shí)現(xiàn)兩個(gè)定時(shí)器的串行定時(shí),來(lái)實(shí)現(xiàn)較長(zhǎng)時(shí)間的定時(shí)?答:方式一,在第一個(gè)定時(shí)器的中斷程序里關(guān)閉本定時(shí)器的中斷程序,設(shè)置和打開(kāi)另一個(gè)定時(shí)器;在另一個(gè)定時(shí)器的中斷程序中關(guān)閉本定時(shí)中斷,設(shè)置和打開(kāi)另一個(gè)定時(shí)器。這種方式的定時(shí)時(shí)間為兩個(gè)定時(shí)器定時(shí)時(shí)間的和。方式二,一個(gè)作為定時(shí)器,在定時(shí)中斷后產(chǎn)生一個(gè)外部計(jì)數(shù)脈沖(比如由P1.0接INT0產(chǎn)生),另一個(gè)定時(shí)器工作在計(jì)數(shù)方式。這樣兩個(gè)定時(shí)器的定時(shí)時(shí)間為一個(gè)定時(shí)器的定時(shí)時(shí)間乘以另一個(gè)定時(shí)器的計(jì)數(shù)值。8.當(dāng)定時(shí)器T0用于方式3時(shí),應(yīng)該如何控制定時(shí)器T1的啟動(dòng)和關(guān)閉?答:由T1(P3.5)口控制定時(shí)器T1的啟動(dòng)和關(guān)閉。9.定時(shí)器/計(jì)數(shù)器測(cè)量某正單脈沖的寬度,采用何種方式可得到最大量程?若時(shí)鐘頻率為6MHz,求允許測(cè)量的最大脈沖寬度是多少?答:采用方式1定時(shí)工作方式。最大脈沖寬度為131.072ms。10.編寫(xiě)一段程序,功能要求為:當(dāng)P1.0引腳的電平正跳變時(shí),對(duì)P1.1的輸入脈沖進(jìn)行計(jì)數(shù);當(dāng)P1.2引腳的電平負(fù)跳變時(shí),停止計(jì)數(shù),并將計(jì)數(shù)值寫(xiě)入R0、R1(高位存R1,低位存R0)。解答:將P1.1的輸入脈沖接入INT0,即使用T0計(jì)數(shù)器完成對(duì)P1.1口的脈沖計(jì)數(shù)。編寫(xiě)程序如下: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,開(kāi)始計(jì)數(shù) SETB ET0 ;允許T0中斷 SETB EA ;CPU開(kāi)中斷WAIT: JB P1.2,WAIT CLR EA CLR TR0 MOV R1,TH0 MOV R0,TL0 AJMP $IT0P: INC R2 RETI11.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ò)程。12.判斷下列的說(shuō)法是否正確?特殊功能寄存器SCON,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。(對(duì))特殊功能寄存器TCON,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。(錯(cuò))特殊功能寄存器IE,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。(錯(cuò))特殊功能寄存器TMOD,與定時(shí)器/計(jì)數(shù)器的控制無(wú)關(guān)。(錯(cuò))第七章MCS-51的串行口1.串行數(shù)據(jù)傳送的主要優(yōu)點(diǎn)和用途是什么?答:串行數(shù)據(jù)傳送的主要優(yōu)點(diǎn)是硬件接口簡(jiǎn)單,接口端口少(2個(gè))。主要用于多個(gè)單片機(jī)系統(tǒng)之間的數(shù)據(jù)通信。2.簡(jiǎn)述串行口接收和發(fā)送數(shù)據(jù)的過(guò)程。答:以方式一為例。發(fā)送:數(shù)據(jù)位由TXT端輸出,發(fā)送1幀信息為10為,當(dāng)CPU執(zhí)行1條數(shù)據(jù)寫(xiě)發(fā)送緩沖器SBUF的指令,就啟動(dòng)發(fā)送。發(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)/SEND變?yōu)橛行?,將起始位想TXD輸出,此后,每經(jīng)過(guò)1個(gè)TX時(shí)鐘周期,便產(chǎn)生1個(gè)移位脈沖,并由TXD輸出1個(gè)數(shù)據(jù)位。8位數(shù)據(jù)位全部完畢后,置1中斷標(biāo)志位TI,然后/SEND信號(hào)失效。接收:當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),則開(kāi)始接收。接受時(shí),定時(shí)控制信號(hào)有2種,一種是位檢測(cè)器采樣脈沖,它的頻率是RX時(shí)鐘的16倍。也就是在1位數(shù)據(jù)期間,有16個(gè)采樣脈沖,以波特率的16倍的速率采樣RXD引腳狀態(tài),當(dāng)采樣到RXD端從1到0的跳變時(shí)就啟動(dòng)檢測(cè)器,接收的值是3次連續(xù)采樣,取其中2次相同的值,以確認(rèn)是否是真正的起始位的開(kāi)始,這樣能較好地消除干擾引起的影響,以保證可靠無(wú)誤的開(kāi)始接受數(shù)據(jù)。3.幀格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位和1個(gè)停止位的異步串行通信方式是方式(1)。串行口有幾種工作方式?有幾種幀格式?各種工作方式的波特率如何確定?答:串行口有3種工作方式:方式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的溢出率假定串行口串行發(fā)送的字符格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)奇校驗(yàn)位,1個(gè)停止位,請(qǐng)畫(huà)出傳送字符“A”的幀格式。起始位01000000校驗(yàn)位停止位6.判斷下列說(shuō)法是否正確:串行口通信的第9數(shù)據(jù)位的功能可由用戶定義。(對(duì))發(fā)送數(shù)據(jù)的第9數(shù)據(jù)位的內(nèi)容在SCON寄存器的TB8位預(yù)先準(zhǔn)備好的。(對(duì))串行通訊發(fā)送時(shí),指令把TB8位的狀態(tài)送入發(fā)送SBUF。(錯(cuò))串行通訊接收到的第9位數(shù)據(jù)送SCON寄存器的RB8中保存。(對(duì))串行口方式1的波特率是可變的,通過(guò)定時(shí)器/計(jì)數(shù)器T1的溢出設(shè)定。(對(duì))7.通過(guò)串行口發(fā)送或接收數(shù)據(jù)時(shí),在程序中應(yīng)使用:(選(3))(1)MOVC指令(2)MOVX指令(3)MOV指令(4)XCHD指令8.為什么定時(shí)器/計(jì)數(shù)器T1用做串行口波特率發(fā)生器時(shí),采用方式2?若已知時(shí)鐘頻率、通訊波特率,如何計(jì)算其初值?解答:因?yàn)槎〞r(shí)器/計(jì)數(shù)器在方式2下,初值可以自動(dòng)重裝,這樣在做串口波特率發(fā)生器設(shè)置時(shí),就避免了重裝參數(shù)的操作。已知時(shí)鐘頻率、通訊波特率,根據(jù)公式:,計(jì)算出初值。9.串行口工作方式1的波特率是:(3)固定的,為。固定的,為??勺兊?,通過(guò)定時(shí)器/計(jì)數(shù)器T1的溢出率設(shè)定。固定的,為。10.在串行通訊中,收發(fā)雙方對(duì)波特率的設(shè)定應(yīng)該是(相等)的。11.若晶體振蕩器為11.0592MHz,串行口工作于方式1,波特率為4800b/s,寫(xiě)出用T1作為波特率發(fā)生器的方式控制字和計(jì)數(shù)初值。解答:初值計(jì)算:查閱P148表7-2可得,F(xiàn)AH控制字:ANLTMOD,#0F0H ORLTMOD,#20H MOVTH1,#0FAH MOVTL1,#0FAH MOVSCON,#40H12.簡(jiǎn)述利用串行口進(jìn)行多機(jī)通訊的原理。解答:參考P146頁(yè)。13.使用8031的串行口按工作方式1進(jìn)行串行數(shù)據(jù)通訊,假定波特率為2400b/s,以中斷方式傳送數(shù)據(jù),請(qǐng)編寫(xiě)全雙工通訊程序。解答:略14.使用8031的串行口按工作方式3進(jìn)行串行數(shù)據(jù)通訊,假定波特率為1200b/s,第9數(shù)據(jù)位作奇偶校驗(yàn)位,以中斷方式傳送數(shù)據(jù),請(qǐng)編寫(xiě)通訊程序。解答:略15.某8031串行口,傳送數(shù)據(jù)的幀格式為1個(gè)起始位(0),7個(gè)數(shù)據(jù)位,1個(gè)偶校驗(yàn)位和1個(gè)停止位(1)組成。當(dāng)該串行口每分鐘傳送1800個(gè)字符時(shí),試計(jì)算出波特率。解答:串口每秒鐘傳送的字符為:1800/60=30個(gè)字符/秒所以波特率為:30個(gè)字符/秒×10位/個(gè)字符=300b/s16.為什么MCS-51串行口的方式0幀格式?jīng)]有起始位(0)和停止位(1)?解答:串行口的方式0為同步移位寄存器輸入輸出方式,常用于外接移位寄存器,以擴(kuò)展并行I/O口,一般不用于兩個(gè)MCS-51之間的串行通信。該方式以fosc/12的固定波特率從低為位到高位發(fā)送或接受數(shù)據(jù)。第八章習(xí)題解答1.單片機(jī)存儲(chǔ)器的主要功能是存儲(chǔ)(程序)和(數(shù)據(jù))。2.試編寫(xiě)一個(gè)程序(例如將05H和06H拼為56H),設(shè)原始數(shù)據(jù)放在片外數(shù)據(jù)區(qū)2001H單元和2002H單元中,按順序拼裝后的單字節(jié)數(shù)放入2002H。解:本題主要考察了對(duì)外部存儲(chǔ)器的讀、寫(xiě)操作,同學(xué)們只要記住正確使用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 END3.假設(shè)外部數(shù)據(jù)存儲(chǔ)器2000H單元的內(nèi)容為80H,執(zhí)行下列指令后: MOV P2,#20H MOV R0,#00H MOVX A,@R0累加器A中的內(nèi)容為(80H)。4.編寫(xiě)程序,將外部數(shù)據(jù)存儲(chǔ)器中的4000H—40FFH單元全部清零。解:本題主要考察了對(duì)外部數(shù)據(jù)塊的寫(xiě)操作;編程時(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é)束 END5.在MCS-51單片機(jī)系統(tǒng)中,外接程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共16位地址線和8位數(shù)據(jù)線,為何不會(huì)發(fā)生沖突?解:因?yàn)榭刂菩盘?hào)線的不同:外擴(kuò)的RAM芯片既能讀出又能寫(xiě)入,所以通常都有讀寫(xiě)控制引腳,記為OE和WE。外擴(kuò)RAM的讀、寫(xiě)控制引腳分別與MCS-51的RD和WR引腳相連。外擴(kuò)的EPROM在正常使用中只能讀出,不能寫(xiě)入,故EPROM芯片沒(méi)有寫(xiě)入控制引腳,只有讀出引腳,記為OE,該引腳與MCS-51單片機(jī)的PSEN相連。6.區(qū)分MCS-51單片機(jī)片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的最可靠的方法是:(1)看其位于地址范圍的低端還是高段(2)看其離MCS-51芯片的遠(yuǎn)近(3)看其芯片的型號(hào)是ROM還是RAM(4)看其是與RD信號(hào)連接還是與PSEN信號(hào)連接解:本題的答案是3,4。7.在存儲(chǔ)器擴(kuò)展中,無(wú)論是線選法還是譯碼法,最終都是為了擴(kuò)展芯片的(片選)端提供信號(hào)。8.請(qǐng)寫(xiě)出圖8-18中4片程序存儲(chǔ)器27128各自所占的地址空間。解:圖中采用了譯碼法。4片地址分別為0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。9.起止范圍為0000H-3FFFH的存儲(chǔ)器的容量是(16)KB。解:本題屬于常識(shí)題,在第十一題時(shí)將有解答。10.在MCS-51中,PC和DPTR都用于提供地址,但PC是為了訪問(wèn)(程序)存儲(chǔ)器提供地址,而DPTR是為訪問(wèn)(數(shù)據(jù))存儲(chǔ)器提供地址。11.11根地址線可選(2KB)個(gè)存儲(chǔ)單元,16KB存儲(chǔ)單元需要(14)根地址線。解:通過(guò)總結(jié)所學(xué)知識(shí),我們得到以下幾個(gè)信息:2KB的存儲(chǔ)器需要11根地址線,地址為0000H-07FFH;4KB的存儲(chǔ)器需要12根地址線,地址為0000H-0FFFH;8KB的存儲(chǔ)器需要13根地址線,地址為0000H-1FFFH;16KB的存儲(chǔ)器需要14根地址線,地址為0000H-3FFFH;32KB的存儲(chǔ)器需要15根地址線,地址為0000H-7FFFH;64KB的存儲(chǔ)器需要16根地址線,地址為0000H-FFFFH(以上存儲(chǔ)器的首地址均默認(rèn)為0000H)。12.32KBRAM存儲(chǔ)器的首地址若為2000H,則末地址為(9FFF)H。解:由上題總結(jié)得出,32KBRAM存儲(chǔ)器的大小為0000H-7FFFH,所以只要在后面加上2000H即得到正確答案。13.現(xiàn)有8031單片機(jī)、74LS373鎖存器、1片2764EPROM和2片6116RAM,請(qǐng)使用他們組成一個(gè)單片機(jī)系統(tǒng),要求:(1)畫(huà)出硬件電路連線圖,并標(biāo)注主要引腳;(2)指出該應(yīng)用系統(tǒng)程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間各自的地址范圍。解:(1)電路圖如下所示:(2)2764的地址為C000H-DFFFH;第一個(gè)6116的地址為A000H-A7FFH;第二個(gè)6116的地址為6000H-67FFH;事實(shí)上,由于采用的是線選法,導(dǎo)致了地址不連續(xù),地址空間利用不充分。建議在實(shí)際工作中要具體情況具體分析。在兩種地址分配中選一種較好的來(lái)應(yīng)用。14.使用89C51芯片外擴(kuò)一片E2PROM2864,要求2864兼作程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,且首地址為8000H。要求:(1)確定2864芯片的末地址;(2)畫(huà)出2864片選端的地址譯碼電路;(3)畫(huà)出該應(yīng)用系統(tǒng)的硬件連接圖。解:(1)2864為8KB的存儲(chǔ)器,如果首地址為8000H,則其末地址為9FFFH,理由參考第12題;(2)電路圖如下所示:(3)電路圖如下所示:第九章習(xí)題解答1.I/O接口和I/O端口有什么區(qū)別?I/O接口的功能是什么?解:I/O端口簡(jiǎn)稱I/O口,常指I/O接口電路中具有端口地址的寄存器或緩沖器。I/O接口是指單片機(jī)與外設(shè)間的I/O接口芯片。I/O接口功能:一.實(shí)現(xiàn)和不同外設(shè)的速度匹配;二.輸出數(shù)據(jù)緩存;三.輸入數(shù)據(jù)三態(tài)緩沖。2.常用的I/O接口編址有哪兩種方式?它們各有什么特點(diǎn)?MCS-51的I/O端口編址采用的是哪種方式?解:一.獨(dú)立編址方式:獨(dú)立編址方式就是I/O地址空間和存儲(chǔ)器地址空間分開(kāi)編址。獨(dú)立編址的優(yōu)點(diǎn)是I/O地址空間和存儲(chǔ)器地址空間相互獨(dú)立,界限分明。但是,卻需要設(shè)置一套專(zhuān)門(mén)的讀寫(xiě)I/O的指令和控制信號(hào)。二.統(tǒng)一編址方式:這種編址方式是把I/O端口的寄存器與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待,統(tǒng)一進(jìn)行編址。統(tǒng)一編址的優(yōu)點(diǎn)是不需要專(zhuān)門(mén)的I/O指令,直接使用訪問(wèn)數(shù)據(jù)存儲(chǔ)器的指令進(jìn)行I/O操作,簡(jiǎn)單、方便且功能強(qiáng)大。MCS-51單片機(jī)使用的是I/O和外部數(shù)據(jù)存儲(chǔ)器RAM統(tǒng)一編址的方式。3.I/O數(shù)據(jù)傳送有哪幾種傳送方式?分別在哪些場(chǎng)合下使用?解:一.同步傳送方式:同步傳送又稱為有條件傳送。當(dāng)外設(shè)速度可與單片機(jī)速度相比擬時(shí),常常采用同步傳送方式,最典型的同步傳送就是單片機(jī)和外部數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)傳送。二.查詢傳送方式:查詢傳送方式又稱為有條件傳送,也稱異步傳送。單片機(jī)通過(guò)查詢得知外設(shè)準(zhǔn)備好后,再進(jìn)行數(shù)據(jù)傳送。異步傳送的優(yōu)點(diǎn)是通用性好,硬件連線和查詢程序十分簡(jiǎn)單,但是效率不高。為了提高單片機(jī)的工作效率,通常采用中斷方式。三.中斷傳送方式:中斷傳送方式是利用MCS-51本身的中斷功能和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í)行。因此,采用中斷方式可以大大提高單片機(jī)的工作效率。4.編寫(xiě)程序,采用8255A的C口按位置位/復(fù)位控制字,將PC7置0,PC4置1,(已知8255A各端口的地址為7FFCH-7FFFH)。解:本題主要考察對(duì)8255A的C口的操作。其方式控制字的高位為0時(shí),低四位對(duì)C口進(jìn)行置位。由題目我們得到了方式控制字的地址為7FFFH。 ORG 0000H MAIN: MOV DPTR,#7FFFH ;控制字寄存器地址送DPTR MOV A,#0EH ;將PC7置0 MOVX @DPTR,A MOV A,#09H ;將PC4置1 MOVX @DPTR,A END5.8255A的方式控制字和C口按位置位/復(fù)位控制字都可以寫(xiě)入8255A的同一控制寄存器,8255A解:8255A通過(guò)它們的最高位來(lái)進(jìn)行判斷,最高位為1時(shí),這時(shí)8255A認(rèn)為這是方式控制字,否則認(rèn)為是C口按位置位/復(fù)位控制字6.由圖9-6來(lái)說(shuō)明8255A的A口在方式1的選通輸入方式下的工作過(guò)程。解:當(dāng)外設(shè)輸入一個(gè)數(shù)據(jù)并送到PA7-PA0上時(shí),輸入設(shè)備自動(dòng)在選通輸入線STBA向8255A發(fā)送一個(gè)低電平選通信號(hào)。8255A收到選通信號(hào)后:首先把PA7-PA0上輸入的數(shù)據(jù)存入A口的輸入數(shù)據(jù)緩沖/鎖存器;然后使輸入緩沖器輸出線IBFA變成高電平,以通知輸入設(shè)備,8255A的A口已收到它送來(lái)的輸入數(shù)據(jù)。8255A檢測(cè)到聯(lián)絡(luò)線STBA由低電平變成了高電平、IBFA為1狀態(tài)和中斷允許觸發(fā)器INTEA為1時(shí),使輸出線INTRA(PC3)變成高電平,向8031發(fā)出中斷請(qǐng)求。(INTEA的狀態(tài)可由用戶通過(guò)對(duì)PC4的置位/復(fù)位來(lái)控制。8031相應(yīng)中斷后,可以通過(guò)中斷服務(wù)程序從A口的輸入數(shù)據(jù)緩沖/鎖存器讀取外設(shè)發(fā)來(lái)的輸入數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)被CPU讀走后,8255A撤銷(xiāo)INTRA上的中斷請(qǐng)求,并使IBFA變?yōu)榈碗娖剑酝ㄖ斎胪庠O(shè)可以送下一個(gè)輸入數(shù)據(jù)。7.8155H的端口都有哪些?哪些引腳決定端口的地址?引腳TIMERIN和TIMEROUT的作用是什么?解:8155H的端口有以下幾種:命令/狀態(tài)寄存器、A口、B口、C口、計(jì)數(shù)器和RAM單元。引腳IO/M、A2、A1、A0決定端口地址。TIMERIN是計(jì)數(shù)器輸入線,輸入的脈沖上跳沿用于對(duì)8155H片內(nèi)的14位計(jì)數(shù)器減一。TIMEROUT為計(jì)數(shù)器輸入線。當(dāng)14位計(jì)數(shù)器減為0時(shí)就可以在該引線上輸出脈沖或方波,輸出的信號(hào)的形狀與所選的計(jì)數(shù)器工作方式有關(guān)。8.判斷下列說(shuō)法是否正確,為什么?(1)由于8155H不具有地址鎖存功能,因此在與8031的接口電路中必須加地址鎖存器。(2)在8155H芯片中,決定端口和RAM單元編址的信號(hào)線是AD7-AD0和WR。(3)8255A具有三態(tài)緩沖器,因此可以直接掛在系統(tǒng)的數(shù)據(jù)總線上。(4)8255A的B口可以設(shè)置成方式2。解:(1)8155H具有地址鎖存功能;(2)引腳IO/M、A2、A1、A0決定端口地址和RAM單元編址;(3)8255A不具有三態(tài)緩沖器;(4)8255A的B口只可以設(shè)置成方式0和方式1。9.現(xiàn)有一片8031,擴(kuò)展了一片8255A,若把8255A的B口用做輸入,B口的每一位接一個(gè)開(kāi)關(guān),A口用作輸出,每一位接一個(gè)發(fā)光二極管,請(qǐng)畫(huà)出電路原理圖,并編寫(xiě)出B口某一位接高電平時(shí),A口相應(yīng)位發(fā)光二極管被點(diǎn)亮的程序。解:由于電路圖比較簡(jiǎn)單,在這里就畫(huà)了,大家可以參考圖9-10,A口每一位接二極管的正極,二極管的負(fù)極接低。B口每一位接一開(kāi)關(guān),開(kāi)關(guān)直接接地。這樣我們只需要將讀到的B口的值送給A口就可以滿足題目要求了。 ORG 0000HMIAN: MOV A,#10000010B ;A口出,B口入 MOV DPTR,#0FF7FH ;控制地址送DPTR MOVX @DPTR,A ;送方式控制字 MOV DPTR,#0FF7DH ;B口地址送DPTR MOVX A,@DPTR ;讀開(kāi)關(guān)信息 MOV DPTR,#0FF7CH ;A口地址送DPTR MOVX @DPTR,A ;將信息反潰到二極管 END10.假設(shè)8155H的TIMERIN引腳輸入的頻率為4MHz?問(wèn)8155H的最大定時(shí)時(shí)間是多少?解:8155H記數(shù)器的初值范圍是:3FFFH-2H。當(dāng)頻率為4MHz,初值為3FFFH時(shí),最大定時(shí)時(shí)間為:16383/4E+6=0.00409575S11.MCS-51的并行接口的擴(kuò)展有多種方式,在什么情況下,采用擴(kuò)展8155H比較合適?什么情況下,采用擴(kuò)展8255A比較適合?解:8255A具有3個(gè)8位的并行I/O口,3種工作方式,可通過(guò)編程改變其功能,因而使用靈活方便,通用性強(qiáng),可作為單片機(jī)與多種外圍設(shè)備連接時(shí)的中間接口電路。8155H芯片內(nèi)包含有256B的RAM存儲(chǔ)器(靜態(tài)),2個(gè)可編程的八位并行口PA和PB,1個(gè)可編程的6位并行口PC,以及1個(gè)14位減法定時(shí)器/計(jì)數(shù)器。所以它經(jīng)常用于單片機(jī)的外圍接口芯片。12.假設(shè)8155H的TIMERIN引腳輸入的脈沖頻率為1MHz,請(qǐng)編寫(xiě)出在8155H的TIMEROUT引腳上輸出周期為10ms的方波的程序。解:將1MHz的脈沖改變?yōu)?0ms的方波,這就讓我們想到了在數(shù)字電路里面學(xué)到的分頻器。計(jì)算得出分頻前后頻率之比為10000:1,這樣我們只要將定時(shí)器初值設(shè)置為64H就可以了。(假設(shè)I/O口地址為7F00H-7F05H)START: MOV DPTR,#7F04H ;指針指向定時(shí)器低8位 MOV A,#64H ;送初值給A MOVX @DPTR,A ;初值送給低8位 INC DPTR ;指向高8位 MOV A,#40H ;定時(shí)器方波輸出 MOVX @DPTE,A MOV DPTR,#7F00H ;指向命令/狀態(tài)口 MOV A,#0C2H ;設(shè)定控制字 MOVX @DPTE,A ;啟動(dòng)定時(shí)器 END第十章習(xí)題解答1.為什么要消除按鍵的機(jī)械抖動(dòng)?消除按鍵的機(jī)械抖動(dòng)的方法有哪幾種?原理是什么?解:在按鍵的閉合和斷開(kāi)過(guò)程中,由于開(kāi)關(guān)的機(jī)械特性,導(dǎo)致了按鍵抖動(dòng)的產(chǎn)生。如果不消除按鍵的機(jī)械抖動(dòng),按鍵的狀態(tài)讀取將有可能出現(xiàn)錯(cuò)誤。消除按鍵抖動(dòng)一般是采用軟件或硬件去抖。軟件去抖的原理:在第一次檢測(cè)到有鍵按下時(shí),該鍵所對(duì)應(yīng)的航線是為低電平,執(zhí)行一端延時(shí)10ms的子程序后,確認(rèn)該行線電平是否仍然為低電平,如果仍為低電平,則確認(rèn)為該行確實(shí)有鍵按下。2.判斷下列說(shuō)法是否正確?(1)8279是一個(gè)用于鍵盤(pán)和LED(LCD)顯示器的專(zhuān)用芯片。(2)在單片機(jī)與微型打印機(jī)的接口中,打印機(jī)的BUSY信號(hào)可作為查詢信號(hào)或中斷請(qǐng)求信號(hào)使用。(3)為給以掃描發(fā)方式工作的8*8鍵盤(pán)提供接口電路,在接口電路中只需要提供2個(gè)輸入口和1個(gè)輸出口。(4)LED的字型碼是固定不變的。解:(1)正確;(2)正確(3)錯(cuò)誤(4)錯(cuò)誤3.LED的靜態(tài)顯示方式于動(dòng)態(tài)顯示方式有何區(qū)別?各有什么優(yōu)缺點(diǎn)?解:靜態(tài)顯示時(shí),數(shù)據(jù)是分開(kāi)送到每一位LED上的。而動(dòng)態(tài)顯示則是數(shù)據(jù)是送到每一個(gè)LED上,再根據(jù)位選線來(lái)確定是哪一位LED被顯示。靜態(tài)顯示亮度很高,但口線占用較多。動(dòng)態(tài)顯示則好一點(diǎn),適合用在顯示位數(shù)較多的場(chǎng)合。4.寫(xiě)出表10-1中僅顯示小數(shù)點(diǎn)“.”的段碼。解:80H(共陰極);7FH(共陽(yáng)極)5.說(shuō)明矩陣式鍵盤(pán)按鍵按下的識(shí)別原理。解:按鍵設(shè)置在行、列線交點(diǎn)上,行、列線分別連接到按鍵開(kāi)關(guān)的兩端。行線通過(guò)上拉電阻接到+5V上,無(wú)按鍵按下時(shí),行線處于高電平狀態(tài),而當(dāng)有按鍵按下時(shí),行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。列線的電平如果為低,則行線電平為低;列線的電平如果為高,則行線的電平亦為高。將行、列線信號(hào)配合起來(lái)并做適當(dāng)?shù)奶幚?,才能確定閉合鍵的位置。6.對(duì)于圖10-11的鍵盤(pán),采用線反轉(zhuǎn)法原理來(lái)編寫(xiě)識(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,7EH7.鍵盤(pán)有哪3種工作方式,它們各自的工作原理及特點(diǎn)是什么?解:一.編程掃描方式:當(dāng)單片機(jī)空閑時(shí),才調(diào)用鍵盤(pán)掃描子程序,反復(fù)的掃描鍵盤(pán),等待用戶從鍵盤(pán)上輸入命令或數(shù)據(jù),來(lái)響應(yīng)鍵盤(pán)的輸入請(qǐng)求。二.定時(shí)掃描工作方式:?jiǎn)纹瑱C(jī)對(duì)鍵盤(pán)的掃描也可用定時(shí)掃描方式,即每隔一定的時(shí)間對(duì)鍵盤(pán)掃描一次。三.中斷工作方式:只有在鍵盤(pán)有鍵按下時(shí),才執(zhí)行鍵盤(pán)掃描程序并執(zhí)行該按鍵功能程序,如果無(wú)鍵按下,單片機(jī)將不理睬鍵盤(pán)。8.根據(jù)圖10-14的電路,編寫(xiě)在6個(gè)LED顯示器上輪流顯示“1,2,3,4,5,6”解:本電路圖采用的是動(dòng)態(tài)顯示。程序如下DIR: MOV R0,#79H ;從79H開(kāi)始里面存放著 MOV R3,#01H ;1,2,3,4,5,6 MOV A,R3 LD0: MOV DPTR,#7F01H ;位選碼 MOV @DPTR,A INC DPTR MOV A,@R0 ADD A,#0DH MOVC A,@A+PC ;取到筆形碼 DIR1: MOVX @DPTR,A ;送出顯示 ACALL DL1MS INC RO MOV R3 JB ACC.5,LD1 ;是否到最右邊的LED RL A MOV R3,A ;保存位選碼 AJMP LD0 LD1: RET DSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH ;0,1,2,3,4,5,6 DL1MS: MOV R7,#02H DL: MOV R6,#0FFH DL6: DJNZ R6,DL6 DJNZ R7,DL RET9.根據(jù)圖10-17的接口電路編寫(xiě)在8個(gè)LED上輪流顯示“1,2,3,4,5,6,7,8”解:本電路圖采用的是靜態(tài)顯示。程序如下: DIR: SETB P3.3 ;允許顯示 MOV SCON,#0 ;工作方式一 MOV DPTR,#TAB ;筆形碼 MOV R7,#08H ;初值為8 CALL OUT ;8 DEC R7 CALL OUT ;7 DEC R7 CALL OUT ;6 DEC R7 CALL OUT ;5 DEC R7 CALL OUT ;4 DEC R7 CALL OUT ;3 DEC R7 CALL OUT ;2 DEC R7 ;1 OUT: MOV A,R7 MOVC A,@A+DPTR ;找到對(duì)應(yīng)的筆形碼 MOV SBUF,A ;送出顯示 JNB TI,$ CLR TI RET TAB: DB 0COH,0F9H,0A4H,0B0H,99H ;0,1,2,3,4 DB 92H,B2H,0F8H,80H ;5,6,7,810.8279中掃描計(jì)數(shù)器有兩種工作方式,這2種工作方式各應(yīng)用在什么場(chǎng)合?解:按編碼方式工作時(shí),計(jì)數(shù)器作二進(jìn)制計(jì)數(shù)。4位計(jì)數(shù)狀態(tài)從掃描線SL0-SL3輸出,經(jīng)外部譯碼器4線-16線譯碼后,為鍵盤(pán)和顯示器提供16中取1的掃描線。按譯碼方式工作時(shí),掃描計(jì)數(shù)器的最低2位在8279內(nèi)部被譯碼后,從SL0-SL3輸出,為鍵盤(pán)和顯示器直接提供了4中取1的掃描線。11.簡(jiǎn)述TpuP-40A/16A微型打印機(jī)的Centronics接口的主要信號(hào)線的功能。與MCS-51單片機(jī)相連接時(shí),如何連接這幾條控制線?解:DB0-DB7:數(shù)據(jù)線,單向傳輸,由單片機(jī)輸入給打印機(jī)。STB(STROBE):數(shù)據(jù)選通信號(hào)。在該信號(hào)的上升沿,數(shù)據(jù)線上的8位并行數(shù)據(jù)被打印機(jī)讀入機(jī)內(nèi)鎖存。BUSY:打印機(jī)忙狀態(tài)信號(hào)。當(dāng)該信號(hào)有效(高電平)時(shí),表示打印機(jī)正忙于處理數(shù)據(jù)。此時(shí),單片機(jī)不得使STB信號(hào)有效,向打印機(jī)送入新的數(shù)據(jù)。ACK:打印機(jī)的應(yīng)答信號(hào)。低電平有效,表明打印機(jī)已取走數(shù)據(jù)線上的數(shù)據(jù)。ERR:出錯(cuò)信號(hào)。當(dāng)送入打印機(jī)的命令格式出錯(cuò)時(shí),打印機(jī)立即打印1行出錯(cuò)信息,提示出錯(cuò)。在打印出錯(cuò)信息之前。該信號(hào)線出現(xiàn)一個(gè)負(fù)脈沖,脈沖寬度為30us。用一根地址線來(lái)控制寫(xiě)選通信號(hào)STB和讀取BUSY引腳狀態(tài)。12.如果把圖10-30中打印機(jī)的BUSY線斷開(kāi),然后與8031的INTO線相接,請(qǐng)簡(jiǎn)述電路的工作原理并編寫(xiě)把以20H為起始地址的連續(xù)20個(gè)內(nèi)存單元中的內(nèi)容輸出打印的程序。解:本程序采用外部中斷來(lái)進(jìn)行數(shù)據(jù)打印,先打印一個(gè)數(shù)據(jù),當(dāng)BUSY線從高電平變成低電平時(shí),在打印下一個(gè)數(shù)據(jù) ORG 0000H LJMP MAIN ORG 0003H LJMP IN ORG 0030H MAIN: SETB EX0 ;允許外部中斷 SETB IT0 SETB EA MOV R0,#7FH ;控制口地址 MOV A,#81H ;控制字 MOVX @R0,A MOV R1,#20H ;數(shù)據(jù)區(qū)首地址 MOV R2,#19 ;計(jì)數(shù)器 MOV A,@R1 ;打印內(nèi)容 MOV R0,#7CH ;A口地址 MOVX @R0,A MOV R0,#7FH MOV A,#0EH MOVX @RO,A ;PC7=0 MOV A,#0FH MOVX @R0,A ;PC7=1 SJMP $ IN: DJNZ R2,EX ;20個(gè)數(shù)據(jù)都結(jié)束了嗎?INC R1 ;指向下一個(gè)數(shù)據(jù)MOV A,@R1 MOV R0,#7CH MOVX @R0,A MOV R0,#7FH MOV A,#0EH MOVX @RO,A MOV A,#0FH MOVX @R0,A EX: RETI13.根據(jù)圖10-14,8155H與32鍵的鍵盤(pán)相連接,編寫(xiě)程序?qū)崿F(xiàn)如下功能:用8155H的定時(shí)器定時(shí),每隔1S讀1次鍵,并將其讀入的鍵值存入片內(nèi)RAM中30H開(kāi)始的單元中。解:14.采用8279芯片的鍵盤(pán)/顯示器接口方案,與本章介紹的其他鍵盤(pán)/顯示器的接口方案相比,有什么特點(diǎn)?解:8279芯片的具有不斷掃描,自動(dòng)消抖,自動(dòng)識(shí)別出閉合的鍵并得到鍵號(hào),能對(duì)雙鍵或N鍵同時(shí)按下進(jìn)行處理。第11章由運(yùn)算放大器構(gòu)成的電流/電壓轉(zhuǎn)換電路D/A轉(zhuǎn)換器的主要指標(biāo)如下:分辨率D/A轉(zhuǎn)換器的分辨率指輸入的單位數(shù)字量變化引起的模擬量輸出的變化,是對(duì)輸入量變化敏感程度的描述。建立時(shí)間建立時(shí)間是描述D/A轉(zhuǎn)換速度快慢的一個(gè)參數(shù),用于表明轉(zhuǎn)換速度。其值為從輸入數(shù)字量到輸出達(dá)到終位誤差±(1/2)GB(最低有效位)時(shí)所需的時(shí)間。轉(zhuǎn)換精度理想情況下,精度與分辨率基本一致,位數(shù)越多精度越高。嚴(yán)格講精度與分辨率并不完全一致。只要位數(shù)相同,分辨率則相同.但相同位數(shù)的不同轉(zhuǎn)換器精度會(huì)有所不同。當(dāng)DAC為二進(jìn)制12位,滿量程輸出電壓為5V時(shí),分辨率為1.22mV3、DAC用作程控放大器,其電壓放大倍數(shù)可由CPU通過(guò)程序設(shè)定。由圖可見(jiàn),需要放大的電壓Vin和反饋輸入端Rfb相接。運(yùn)算放大器輸出Vout還作為DAC的基準(zhǔn)電壓VREF,數(shù)字量由CPU送來(lái),其余如圖所示。DAC0832內(nèi)部Iout一邊和T型電阻網(wǎng)絡(luò)相連,另一邊又通過(guò)反饋電阻Rfb和Vin相通,可得以下方程組:解上述方程組可得選R=R6,則上式變?yōu)橐虼耍瑥淖詈笫阶涌芍敵鲭妷旱姆糯蟊稊?shù)受B控制。4、同步5、二種方式(1)單緩沖方式。其特點(diǎn)是DAC0832內(nèi)部的兩個(gè)數(shù)據(jù)緩沖器有一個(gè)處于直通方式,另一個(gè)處于受MCS—51控制的鎖存方式。適用于只有一路模擬量輸出,或雖是多路模擬量輸出但并不要求多路輸出同步的情況下。(2)雙緩沖方式。其特點(diǎn)是數(shù)字量的輸入鎖存和D/A轉(zhuǎn)換輸出是分兩步完成的。適用于在多路D/A轉(zhuǎn)換中,要求同步進(jìn)行D/A轉(zhuǎn)換輸出的情況下。6、A/D轉(zhuǎn)換器的兩個(gè)最重要指標(biāo):(1)轉(zhuǎn)換時(shí)間和轉(zhuǎn)換速率轉(zhuǎn)換時(shí)間A/D完成一次轉(zhuǎn)換所需要的時(shí)間。轉(zhuǎn)換時(shí)間的倒數(shù)為轉(zhuǎn)換速率。(2)分辨率A/D轉(zhuǎn)換器的分辨率習(xí)慣上用輸出二進(jìn)制位數(shù)或BCD碼位數(shù)表示。7、量化誤差是由于有限位數(shù)字且對(duì)模擬量進(jìn)行量化而引起的;0.195%;8、目前應(yīng)用較廣泛的主要有以下幾種類(lèi)型:逐次逼近式轉(zhuǎn)換器、雙積分式轉(zhuǎn)換器、∑—△式A/D轉(zhuǎn)換器和V/F轉(zhuǎn)換器。逐次逼近型A/D轉(zhuǎn)換器:在精度、速度和價(jià)格上都適中,是最常用的A/D轉(zhuǎn)換器件。雙積分A/D轉(zhuǎn)換器:具有精度高、抗干擾性好、價(jià)格低廉等優(yōu)點(diǎn),但轉(zhuǎn)換速度慢,近年來(lái)在單片機(jī)應(yīng)用領(lǐng)域中也得到廣泛應(yīng)用?!啤魇紸/D轉(zhuǎn)換器:它具有積分式與逐次逼近式ADC的雙重優(yōu)點(diǎn),它對(duì)工業(yè)現(xiàn)場(chǎng)的串模干擾具有較強(qiáng)的抑制能力,不亞于雙積分ADC,它比雙積分ADC有較高的轉(zhuǎn)換速度。與逐次逼近式ADC相比,有較高的信噪比,分辨率高,線性度好,不需要采樣保持電路。9、對(duì)DAC來(lái)說(shuō),分辨率反映了輸出模擬電壓的最小變化量。而對(duì)于ADC來(lái)說(shuō),分辨率表示輸出數(shù)字量變化一個(gè)相鄰數(shù)碼所需輸入模擬電壓的變化量。量化誤差是由ADC的有限分辨率而引起的誤差,但量化誤差只適用于ADC,不適用于DAC。精度與分辨率基本一致,位數(shù)越多精度越高。嚴(yán)格講精度與分辨率并不完全一致。只要位數(shù)相同,分辨率則相同,但相同位數(shù)的不同轉(zhuǎn)換器精度會(huì)有所不同。10、程序如下:MAIN:MOV R0,#20H MOV R1,#00HMOV R2,#00HMOVR3,#50MOVR8,#08HLOOP:MOVDPTR,#7FF8HLOOP1:MOVX@DPTR,AMOVR6,#0AHDELAY:NOPNOPNOPDJNZR6,DELAYMOVXA,@DPTRINCDPTRMOVR2,DPLMOVDPH,R0MOVDPL,R1MOVX@DPTR,AINCDPTRMOVR0,DPHMOVR1,DPLMOVDPH,#7FHMOVDPL,R2DJNZR7,LOOP1LCALLDELAY1M;延時(shí)1分鐘DJNZR3,LOOP…11、程序如下:MIAN:MOVR1,#10MOVR2,#40HMOVR0,#7CHMOVX@R0,ALOOP:NOPLOOP1:NOPJBP3.2,LOOP1MOVXA,@R0MOV@R2,AINCR2MOVR0,#7DHMOVXA,@R0MOV@R2,AINCR2DJNZR1,LOOP12、(A)×(B)√(C)×(D)√第12章1、P0口的每位可驅(qū)動(dòng)8個(gè)LSTTL輸人,P1、P2、P3口的每一位只能驅(qū)動(dòng)4個(gè)LSTTL輸人;低電平;2、在MCS—51單片機(jī)應(yīng)用系統(tǒng)中.當(dāng)需用單片機(jī)控制各種各樣的高壓、大電流負(fù)載,這些大功率負(fù)載如電動(dòng)機(jī)、電磁鐵、繼電器、燈泡等,則不能用單片機(jī)的I/O線來(lái)直接驅(qū)動(dòng).而必須通過(guò)各種驅(qū)動(dòng)電路和開(kāi)關(guān)電路來(lái)驅(qū)動(dòng)。此外,為了隔離和抗干擾,有時(shí)需加接光電耦合器。3、常用的開(kāi)關(guān)型驅(qū)動(dòng)器件有光電耦合器、繼電器、晶閘管、功率MOS管、集成功率電子開(kāi)關(guān)、固態(tài)繼電器等。4、常用電子開(kāi)關(guān)有功率MOS管、晶閘管、集成功宰電子開(kāi)關(guān)、固態(tài)繼電器等等;電子開(kāi)關(guān)器件的通病是存在通態(tài)壓降和斷態(tài)漏電流。5、開(kāi)關(guān)速度快、工作頻率高、無(wú)噪聲、無(wú)觸點(diǎn),工作可靠、壽命長(zhǎng),適用于那些需要抗潮濕、抗腐蝕和防爆場(chǎng)合

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(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)論