




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章部分習(xí)題參考解答1、試述MCS-51單片機(jī)內(nèi)部有哪些主要邏輯部件并說(shuō)出其功能,畫(huà)出片內(nèi)結(jié)構(gòu)圖。MCS-51單片機(jī)的內(nèi)部除包含CPU外,還包含程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、并行I/O接口、串行I/O接口、總線控制邏輯和中斷控制邏輯等邏輯部件,其結(jié)構(gòu)框圖如圖所示:其中,CPU是單片機(jī)的最核心部分,它是整個(gè)單片機(jī)的控制和指揮中心,完成所有的計(jì)算和控制任務(wù)。振蕩器和時(shí)序邏輯,產(chǎn)生CPU工作所需要的內(nèi)部時(shí)鐘。中斷控制邏輯用來(lái)應(yīng)付一些臨時(shí)到達(dá)的突發(fā)事件,并能保證當(dāng)有多個(gè)突發(fā)事件發(fā)生時(shí),CPU能夠有序地為這些事件進(jìn)行服務(wù),所有突發(fā)事件服務(wù)完成后CPU還能繼續(xù)以前的工作。并行I/O接口和串行I/O接口作為CPU與外部設(shè)備通信的信息傳輸通道。程序存儲(chǔ)器用于存放單片機(jī)的程序。數(shù)據(jù)存儲(chǔ)器用于存放內(nèi)部待處理的數(shù)據(jù)和處理后的結(jié)果。定時(shí)器/計(jì)數(shù)器主要是完成對(duì)外部輸入脈沖的計(jì)數(shù)或者根據(jù)內(nèi)部的時(shí)鐘及定時(shí)設(shè)置,周期性的產(chǎn)生定時(shí)信號(hào)。64K總線控制邏輯,用于產(chǎn)生外部64KB存儲(chǔ)空間的有關(guān)讀寫控制信號(hào)。2、MCS-51單片機(jī)有4個(gè)8位并行口(P0、P1、P2、P3),哪個(gè)口可作為地址/數(shù)據(jù)利用總線?P0口可作為地址/數(shù)據(jù)復(fù)用總線口。3、P0口作為通用I/O口使用時(shí),在輸出狀態(tài)下應(yīng)注意什么?在輸入狀態(tài)下應(yīng)注意什么?P0口作為通用I/O口使用時(shí),輸出級(jí)是漏極開(kāi)路的,因此在輸出狀態(tài)下外部應(yīng)加上拉電阻。在輸入狀態(tài)下應(yīng)先向端口鎖存器寫入1,這樣引腳便處于懸浮狀態(tài),可作高阻抗輸入。5、MCS-51單片機(jī)的最大尋址空間是多少?為什么?MCS-51單片機(jī),程序存儲(chǔ)器空間采用片內(nèi)、片外統(tǒng)一編址的方式,共有64KB,地址范圍為000OH~FFFFH。片內(nèi)有256字節(jié)數(shù)據(jù)存儲(chǔ)器地址空間,地址范圍為00H~FFH。片外數(shù)據(jù)存儲(chǔ)器空間有64KB,其地址范圍也是000OH~FFFFH。7、MCS-51單片機(jī)片內(nèi)低128字節(jié)的RAM中,分了幾個(gè)基本區(qū)域?說(shuō)出這些區(qū)域的名稱。MCS-51系列單片機(jī)片內(nèi)低128字節(jié)的RAM包含:工作寄存器區(qū)(00H:1FH)、可位尋址區(qū)(20H:2FH)、通用RAM區(qū)(30H:7FH)3個(gè)組成部分。8、片內(nèi)和片外數(shù)據(jù)存儲(chǔ)器地址重疊的區(qū)域是哪些地址?片內(nèi)與片外數(shù)據(jù)存儲(chǔ)器空間的低地址部分(000OH~OOFFH)是重疊的,MCS-51單片機(jī)有MOV和MOVX兩種指令,用以區(qū)分片內(nèi)、片外RAM空間,當(dāng)使用MOV指令時(shí),訪問(wèn)的是片內(nèi)區(qū)域,當(dāng)使用MOVX指令時(shí),訪問(wèn)的是片外區(qū)域。9、訪問(wèn)程序存儲(chǔ)器的片外空間,是通過(guò)什么方式實(shí)現(xiàn)的?程序存儲(chǔ)器空間的片內(nèi)、片外選擇通過(guò)單片機(jī)的引腳來(lái)實(shí)現(xiàn),當(dāng)接低電平時(shí),程序存儲(chǔ)器空間的64KB全部由片外實(shí)現(xiàn),當(dāng)接高電平時(shí),程序存儲(chǔ)器空間的前4KB(MCS-52是8KB)由片內(nèi)實(shí)現(xiàn),對(duì)于片內(nèi)沒(méi)有的高地址空間部分單元,不管引腳接的是高電平還是低電平都由片外實(shí)現(xiàn)。片外程序存儲(chǔ)器空間和片外數(shù)據(jù)存儲(chǔ)器空間,采用的外部地址總線和數(shù)據(jù)總線是相同的,不同的是控制總線,程序存儲(chǔ)空間的讀信號(hào),而數(shù)據(jù)存儲(chǔ)空間的讀信號(hào)為。10、說(shuō)出程序狀態(tài)字寄存器(PSW)各位的含義。PSW的位結(jié)構(gòu)如下表所示。D7CyD6D5F0D4D3D2D1-D0PACRS1RS0OV其中,各位的含義如下:?Cy:高位進(jìn)位標(biāo)志位,當(dāng)ALU的算術(shù)運(yùn)算過(guò)程中有進(jìn)位或借位時(shí),Cy=1;否則,Cy=0。同時(shí),該位還可以用作位累加器,這時(shí)一般只用“C”表示。?AC:輔助進(jìn)位標(biāo)志,當(dāng)ALU的算術(shù)運(yùn)算過(guò)程中低4位向高4位有進(jìn)位或借位時(shí),AC=1;否則,AC=0。該位常用于BCD碼的調(diào)整。?F0:用戶標(biāo)志位。?RS1、RS0:選擇工作寄存器組位,用于選擇內(nèi)部數(shù)據(jù)存儲(chǔ)器區(qū)內(nèi)4組工作寄存器中的某一組。具體選擇情況見(jiàn)寄存器介紹部分。?OV:溢出標(biāo)志位,當(dāng)ALU的算術(shù)運(yùn)算過(guò)程中有溢出時(shí),OV=1;否則,OV=0。?P:奇偶校驗(yàn)標(biāo)志位,根據(jù)累加器ACC中1的個(gè)數(shù)由硬件置位或清除,當(dāng)累加器ACC中有奇數(shù)個(gè)1時(shí)P=1;否則,P=0。?PSW.1:保留位,無(wú)定義。11、在MCS-51單片機(jī)的工作時(shí)序中,一個(gè)機(jī)器周期包含幾個(gè)狀態(tài)周期、幾個(gè)振蕩周期?一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期、12個(gè)振蕩周期。12、單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC指向哪個(gè)地址?PC=0000H第3章部分習(xí)題參考解答1、寫出MCS-51單片機(jī)匯編指令的指令格式,并簡(jiǎn)單舉例。MCS-51單片機(jī)的匯編指令格式如下:[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]操作碼表示該指令所實(shí)現(xiàn)的操作功能,一般由2~5個(gè)英文字母表示。例如ORL,ADD,LCALL等。操作數(shù)表示參與操作的數(shù)據(jù)來(lái)源和目的單元。操作數(shù)可以是一個(gè)立即數(shù),也可以是一個(gè)內(nèi)存單元或者是一個(gè)寄存器單元。操作碼和第一個(gè)操作數(shù)之間一般用一個(gè)或幾個(gè)空格隔開(kāi),而操作數(shù)與操作數(shù)之間用逗號(hào)隔開(kāi)。操作數(shù)可以有1個(gè),2個(gè),3個(gè)或沒(méi)有。如果需要對(duì)指令進(jìn)行注釋說(shuō)明的話,在最后一個(gè)操作數(shù)后加一個(gè)分號(hào),分號(hào)后面是注釋。如:MOVA,60H;(60H)→A標(biāo)號(hào)由1~8個(gè)字母或數(shù)字構(gòu)成,以字母開(kāi)頭以“:”結(jié)尾,標(biāo)號(hào)可有可無(wú),它僅僅代表了該指令所在的地址,便于源程序編寫過(guò)程中使用該地址。2、指出下面程序每個(gè)語(yǔ)句的尋址方式。目的操作數(shù)原操作數(shù)MOVA,P1寄存器尋址直接尋址MOVA,#40HMOV80H,AMOVA,R5MOV@R0,AMOVXA,@DPTR寄存器尋址直接尋址立即尋址寄存器尋址寄存器尋址寄存器尋址寄存器尋址寄存器間接尋址寄存器尋址寄存器間接尋址MOVCA,@A+DPTR寄存器尋址基址+變址尋址MOV74H,#80H直接尋址立即尋址3、寫出下面程序被執(zhí)行后,各數(shù)據(jù)存儲(chǔ)器地址中的內(nèi)容。MOV40H,#33HMOV41H,#44HMOVA,40HMOV50H,AMOVA,41HMOV51H,A(40H)=33H,(41H)=44H,(50H)=33H,(51H)=44H4、設(shè)置堆棧指針SP中內(nèi)容為60H,編寫程序,將上題中數(shù)據(jù)存儲(chǔ)器50H、51H的內(nèi)容壓棧后,分別將棧內(nèi)數(shù)據(jù)彈出到DPTR寄存器中。MOVSP,#60HPUSH50HPUSH51HPOPDPLPOPDPH5、訪問(wèn)片內(nèi)、外數(shù)據(jù)存儲(chǔ)器,都用什么指令?訪問(wèn)片內(nèi)數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送指令用MOV,訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送指令用MOVX。6、下面的指令語(yǔ)句對(duì)嗎?為什么?MOVR0,#0400HMOV100H,A;不對(duì),R0是8位寄存器源操作數(shù)超過(guò)了8位;不對(duì),片內(nèi)數(shù)據(jù)存儲(chǔ)器用8位地址訪問(wèn),目的操作數(shù)的地址超過(guò)了8位。;不對(duì),能夠用于間接尋址的只能是R0或R1MOV@R2,AMOVX@R1,A;對(duì),R1做為間址寄存器來(lái)提供尋址存儲(chǔ)器的低8位,高8位由P2提供7、查表指令MOVCA,@A+DPTR所查的表數(shù)據(jù)是在程序存儲(chǔ)區(qū)還是數(shù)據(jù)存儲(chǔ)區(qū)?程序存儲(chǔ)區(qū)。9、使用位操作指令完成下列操作。⑴將P1.1置“1”。SETBP1.1⑵將ACC.7置“1”。SETBACC.710、編寫程序,將40H為首的8個(gè)單元內(nèi)容,依次反序送入到60H為首的8個(gè)單元中去。MOVR0,#47HMOVR1,#60HMOVR2,#8;40H開(kāi)始的8字節(jié)數(shù)據(jù)中最后一個(gè)單元的地址LOOP:MOVA,@R0MOV@R1,ADECR0INCR1DJNZR2,LOOPSJMP$11、兩個(gè)四位壓縮類型BCD碼數(shù),被加數(shù)放在30H和31H內(nèi)存單元中,加數(shù)放在32H和33H內(nèi)存單元中,所求的和放在34H和35H中。位數(shù)排列按高位在低地址,低位在高地址的順序,編寫此加法程序。MOVPSW,#00HMOVR0,#31HMOVR1,#33HSETBRS0;取0組工作寄存器;取1組工作寄存器MOVR0,#35HCLRRS0MOVR2,#02HCLRC;清除進(jìn)位標(biāo)志,準(zhǔn)備進(jìn)行帶進(jìn)位加LOOP:MOVA,@R0ADDCA,@R1DAASETBRS0MOV@R0,ADECR0;取1組工作寄存器CLRRS0DECR0;恢復(fù)0組工作寄存器DECR1DJNZR2,LOOPSJMP$13、寫出ACALL和LCALL兩個(gè)調(diào)用指令的調(diào)用范圍,試寫出這兩條指令執(zhí)行時(shí),CPU的操作過(guò)程。ACALL的調(diào)用范圍是包括調(diào)用指令下一條指令的第一個(gè)字節(jié)所在的2KB范圍的程序存儲(chǔ)器空間。ACALL調(diào)用指令的執(zhí)行過(guò)程是:PC加2(本指令代碼為兩個(gè)字節(jié))獲得下一條指令的地址,并把該斷點(diǎn)地址(當(dāng)前的PC值)入棧,然后將斷點(diǎn)地址的高五位與11位目標(biāo)地址(指令代碼第一字節(jié)的高3位,以及第二字節(jié)的八位)連接構(gòu)成16位的子程序入口地址,使程序轉(zhuǎn)向子程序。調(diào)用子程序的入口地址和ACALL指令的下一條指令的地址,其高五位必須相同。因此子程序的入口地址和ACALL指令下一條指令的第一個(gè)字節(jié)必須在同一個(gè)2KB范圍的程序存儲(chǔ)器空間內(nèi)。LCALL調(diào)用指令的目標(biāo)地址以16位給出,允許子程序放在64KB空間的任何地方。指令的執(zhí)行過(guò)程是把PC加上本指令代碼數(shù)(三個(gè)字節(jié))獲得下一條指令的地址,并把該斷點(diǎn)地址入棧(斷點(diǎn)地址保護(hù)),接著將被調(diào)子程序的入口地址(16位目標(biāo)地址)裝入PC,然后從該入口地址開(kāi)始執(zhí)行子程序。14、分析下列程序,說(shuō)出此程序完成什么樣的功能。MOVP1,#0FFHLOOP:MOVR7,#03H;該指令1個(gè)機(jī)器周期1LOOP1:MOVR6,#0FFHDJNZR6,$;該指令1個(gè)機(jī)器周期2;該指令2個(gè)機(jī)器周期3;該指令2個(gè)機(jī)器周期4;該指令1個(gè)機(jī)器周期5DJNZR7,LOOP1CPLP1.0JMPLOOPEND;該指令2個(gè)機(jī)器周期6該程序的功能是從P1.0引腳輸出連續(xù)方波,方波的周期為(11+(12+23×255+24)×3+15+26)×2個(gè)機(jī)器周期15、試編寫程序,完成對(duì)十個(gè)數(shù)從大到小的排序(建議用氣泡排序法)。十個(gè)源字節(jié)數(shù)據(jù)放在30H為首的內(nèi)存區(qū)域,排序后的目標(biāo)數(shù)據(jù)放在50H為首的區(qū)域。如果不破壞30H開(kāi)始存放的源字節(jié)數(shù)據(jù),可以把從30H開(kāi)始的數(shù)據(jù)先傳送到50H開(kāi)始的數(shù)據(jù)區(qū),然后對(duì)50H開(kāi)始的數(shù)據(jù)進(jìn)行排序。如果不需考慮30H開(kāi)始存放的數(shù)據(jù)使用后的順序,則可先對(duì)30H開(kāi)始存放的數(shù)據(jù)進(jìn)行排序,然后再傳送到50H開(kāi)始的數(shù)據(jù)區(qū)中。現(xiàn)根據(jù)第1種情況進(jìn)行編程。MOVR0,#30HMOVR1,#50HMOVR2,#10LOP1:MOVA,@R0MOV@R1,AINCR0INCR1DJNZR2,LOP1MOVR2,#9LOP4:MOVR0,#50HMOVR1,#51HMOVA,R2MOVR3,ALOP3:MOVA,@R0CLRCSUBBA,@R1LOP2:JCNEXTMOVA,@R0XCHA,@R1MOV@R0,ANEXT:INCR0INCR1DJNZR3,LOP3DJNZR2,LOP4SJMP$第4章部分習(xí)題參考解答1、MCS-51單片機(jī)中,有幾個(gè)16位定時(shí)/計(jì)數(shù)器?其實(shí)際用途?MCS-51單片機(jī)中,有2個(gè)16位定時(shí)/計(jì)數(shù)器。可以用定時(shí)器在規(guī)定的時(shí)間對(duì)溫度、濕度、流量、轉(zhuǎn)速等參數(shù)進(jìn)行檢測(cè)采樣,用于環(huán)境檢測(cè)、工業(yè)控制;或者利用定時(shí)器按一定的周期產(chǎn)生方波信號(hào)進(jìn)行輸出;還可以通過(guò)計(jì)數(shù)器對(duì)脈沖進(jìn)行計(jì)數(shù),用于信息的采集處理領(lǐng)域等。2、通過(guò)對(duì)定時(shí)/計(jì)數(shù)器中的哪個(gè)特殊寄存器進(jìn)行工作模式設(shè)置?試敘述幾種工作模式功能。通過(guò)特殊寄存器TMOD對(duì)定時(shí)/計(jì)數(shù)器進(jìn)行工作模式設(shè)置。工作方式0,為13位的定時(shí)/計(jì)數(shù)器。工作方式1,為16位定時(shí)器/計(jì)數(shù)器。工作方式2,為8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器。工作方式3,只有定時(shí)器/計(jì)數(shù)器T0具有此工作方式,為兩個(gè)8位定時(shí)器/計(jì)數(shù)器。3、門控制信號(hào)GATE為1時(shí),外部中斷引腳INTx在什么狀態(tài)下啟動(dòng)計(jì)數(shù)?GATE為1時(shí),在外部中斷引腳INTx=1、TRx=1時(shí)啟動(dòng)定時(shí)器/計(jì)數(shù)器。5、定時(shí)/計(jì)數(shù)器作為計(jì)數(shù)器時(shí),對(duì)外界技術(shù)頻率有什么要求(假定時(shí)鐘頻率為12MHz)?當(dāng)定時(shí)/計(jì)數(shù)器設(shè)置為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)器對(duì)來(lái)自輸入引腳T0和T1的外部脈沖信號(hào)計(jì)數(shù),在每個(gè)機(jī)器周期的S5P2期間采樣外部脈沖,若前一個(gè)機(jī)器周期采樣到高電平,后一個(gè)機(jī)器周期采樣到低電平,則將觸發(fā)計(jì)數(shù)器加1,更新的計(jì)數(shù)值將在下一個(gè)機(jī)器周期的S3P1期間裝入計(jì)數(shù)器。因此,單片機(jī)檢測(cè)一個(gè)從高電平到低電平的下降沿需要2個(gè)機(jī)器周期,要使下降沿能被檢測(cè)到,需要保證被采樣高、低電平至少維持一個(gè)機(jī)器周期的時(shí)間,即外部輸入信號(hào)的頻率不超過(guò)晶振頻率的1/24。當(dāng)晶振頻率為12MHz時(shí),最高計(jì)數(shù)頻率不超過(guò)0.5MHz,即計(jì)數(shù)脈沖的周期要大于2微秒。6、定時(shí)/計(jì)數(shù)器在何種設(shè)置下可提供3個(gè)8位定時(shí)器?當(dāng)T0運(yùn)行在模式3下,TH0作為定時(shí)器使用時(shí),其啟動(dòng)和關(guān)閉受誰(shuí)的控制?定時(shí)器/計(jì)數(shù)器T0工作在方式3下,定時(shí)器/計(jì)數(shù)器T1工作在方式2下,可提供3個(gè)8位定時(shí)器。當(dāng)T0運(yùn)行在方式3下,TH0作為定時(shí)器使用時(shí),其啟動(dòng)和關(guān)閉受TR1的控制。7、當(dāng)定時(shí)/計(jì)數(shù)器T0被設(shè)置為模式3時(shí),怎樣使T1啟動(dòng)運(yùn)行?又怎樣使其停止運(yùn)行?當(dāng)定時(shí)/計(jì)數(shù)器T0被設(shè)置為模式3時(shí),定時(shí)/計(jì)數(shù)器T1只要設(shè)置好工作方式、時(shí)間常數(shù)初值,然后用控制位C/T切換其為定時(shí)或計(jì)數(shù)功能就可以使T1運(yùn)行,若想停止它的運(yùn)行,只要把它的工作方式設(shè)置為方式3即可,因?yàn)槎〞r(shí)器T1沒(méi)有方式3,將它設(shè)置為方式3就使它停止工作。8、時(shí)鐘頻率為12MHz。要求定時(shí)值分別為:0.1ms、1ms、10ms;定時(shí)/計(jì)數(shù)器T0分別工作在模式0、模式1、模式2,其定時(shí)初值各為多少?方式0時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:TH0=0FCH,TL0=1CH方式0時(shí),1ms定時(shí)的計(jì)數(shù)值為1000,時(shí)間常數(shù)初值為:TH0=0E0H,TL0=18H方式0時(shí),最長(zhǎng)的定時(shí)時(shí)間只能到8.192ms方式1時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:TH0=0FFH,TL0=9CH方式1時(shí),1ms定時(shí)的計(jì)數(shù)值為1000,時(shí)間常數(shù)初值為:TH0=0FCH,TL0=18H方式1時(shí),10ms定時(shí)的計(jì)數(shù)值為10000,時(shí)間常數(shù)初值為:TH0=0D8H,TL0=0F0H方式2時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:TH0=9CH,TL0=9CH方式2時(shí),最長(zhǎng)的定時(shí)時(shí)間只能到0.256ms9、時(shí)鐘頻率為12MHz。編寫程序完成從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型。1000Hz周期為1ms,則高電平持續(xù)時(shí)間為1ms/4=0.25ms=250us。用T0實(shí)現(xiàn)250um定時(shí),采用工作方式2,定時(shí)時(shí)間常數(shù)為256-250=6。從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型,既P1.0持續(xù)250us的高電平,250us×3的低電平。采用查詢方式實(shí)現(xiàn):MOVTMOD,#02HMOVTH0,#06HMOVTL0,#06HSETBTR0LOP2:SETBP1.0JNBTF0,$CLRTF0CLRP1.0MOVR0,#03HLOP1:JNBTF0,$CLRTF0DJNZR0,LOP1JMPLOP2采用中斷方式實(shí)現(xiàn):ORG0000HLJMPMAINORG000BHLJMPT0SORG0030HMAIN:MOVSP,#60HMOVTMOD,#02HMOVIE,#82HMOVR0,#03HMOVTH0,#06HMOVTL0,#06HSETBTR0SETBP1.0SJMP$T0S:JNBP1.0,T01CLRP1.0SJMPEXITT01:DJNZR0,EXITSETBP1.0MOVR0,#03HEXIT:RETI10、編寫程序。時(shí)鐘頻率為12MHz,使用T1,由P1.0、P1.1分別輸出周期為500μs和2ms的方波。用T1實(shí)現(xiàn)250um定時(shí),采用工作方式2,定時(shí)時(shí)間常數(shù)為256-250=6。P1.0每250us改變狀態(tài)一次,P1.1每250us×4改變狀態(tài)一次。ORG0000HLJMPMAINORG001BHLJMPT1SORG0030HMAIN:MOVSP,#60HMOVTMOD,#20HMOVIE,#88HMOVR0,#04HMOVTH1,#06HMOVTL1,#06HSETBTR1SETBP1.0SETBP1.1SJMP$T1S:CPLP1.0DJNZR0,EXITCPLP1.1MOVR0,#04HEXIT:RETI15、半雙工通信和全雙工通信的區(qū)別?半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。16、使用哪個(gè)特殊功能寄存器來(lái)確定串行口的工作方式?MCS-51單片機(jī)串行口有幾種工作方式?各工作方式的波特率如何確定?SCON用來(lái)設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志;MCS-51單片機(jī)串行口有4種工作方式。方式0的波特率由振蕩器的頻率所確定,波特率為fosc/12;方式2時(shí)的波特率由振蕩器的頻率(fosc)和SMOD位所確定,即:方式1和3時(shí)的波特率由定時(shí)器T1和T2的溢出率和SMOD所確定。17、晶振為11.059MHz,工作于方式1,波特率為1200b/s,用定時(shí)器/計(jì)數(shù)器T1作為波特率發(fā)生器,寫出其方式字和計(jì)數(shù)初值。T1工作在方式2下,其方式字為20H由串行口方式1的,取SMOD=0,可計(jì)算出T1的溢出率=38400。則T1的計(jì)數(shù)值為11.0592/(38400×12)=24,T1的初值為232或0E8H。18、串行口按工作方式1進(jìn)行串行數(shù)據(jù)通信。晶振為11.059MHz,波特率為4800b/s,請(qǐng)編寫具有收發(fā)功能的串口通信程序(兩種接收方式):a、以查詢方式接收數(shù)據(jù)。b、以中斷方式接收數(shù)據(jù)。將接收數(shù)據(jù)放到30H為首的片內(nèi)存儲(chǔ)區(qū)中。設(shè)T1工作在方式2下,其方式字為20H由串行口方式1的,取SMOD=0,可計(jì)算出T1的溢出率=153600。則T1的計(jì)數(shù)值為11.0592/(153600×12)=6,T1的初值為250或0FAH。二者之間的通信約定如下:(1)當(dāng)1號(hào)機(jī)發(fā)送時(shí),先發(fā)送一個(gè)0E1H聯(lián)絡(luò)信號(hào),2號(hào)機(jī)收到后回答一個(gè)0E2H應(yīng)答信號(hào),表示同意接收。(2)當(dāng)1號(hào)機(jī)收到應(yīng)答信號(hào)0E2H后,開(kāi)始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)字節(jié)都計(jì)算校驗(yàn)和,假定數(shù)據(jù)塊長(zhǎng)度為16個(gè)字節(jié),一個(gè)數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送校驗(yàn)和。(3)2號(hào)機(jī)接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),每接收到一個(gè)數(shù)據(jù)字節(jié)便計(jì)算一次校驗(yàn)和,當(dāng)收到一個(gè)數(shù)據(jù)塊后,再接收1號(hào)機(jī)發(fā)來(lái)的校驗(yàn)和,并將它與2號(hào)機(jī)求出的校驗(yàn)和進(jìn)行比較。若兩者相等,說(shuō)明接收正確,2號(hào)機(jī)回答00H;若兩者不相等,說(shuō)明接收不正確,2號(hào)機(jī)回答0FFH,請(qǐng)求重發(fā)。(4)1號(hào)機(jī)接到00H后結(jié)束發(fā)送。若收到的答復(fù)非零,則重新發(fā)送數(shù)據(jù)一次。a、以查詢方式接收數(shù)據(jù)。1號(hào)機(jī)程序清單如下:ASTART:MOVTMOD,#20H;定時(shí)器1置為方式2MOVTH1,#0FAHMOVTL1,#0FAHMOVPCON,#00H;裝載定時(shí)器初值,波特率4800SETBTR1;啟動(dòng)定時(shí)器MOVSCON,#50H;設(shè)定串口方式1,且準(zhǔn)備接收應(yīng)答信號(hào)ALOOP1:MOVSBUF,#0E1H;發(fā)聯(lián)絡(luò)信號(hào)JNBTI,$CLRTI;等待一幀發(fā)送完畢;允許再發(fā)送JNBRI,$CLRRI;等待2號(hào)機(jī)的應(yīng)答信號(hào);允許再接收MOVA,SBUFXRLA,#0E2H;2號(hào)機(jī)應(yīng)答后,讀至A;判斷2號(hào)機(jī)是否準(zhǔn)備完畢JNZALOOP1;2號(hào)機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)ALOOP2:MOVR0,#30H;2號(hào)機(jī)準(zhǔn)備好,設(shè)定數(shù)據(jù)塊地址指針初值MOVR7,#10H;設(shè)定數(shù)據(jù)塊長(zhǎng)度初值MOVR6,#00H;清校驗(yàn)和單元ALOOP3:MOVSBUF,@R0MOVA,R6;發(fā)送一個(gè)數(shù)據(jù)字節(jié)ADDA,@R0MOVR6,AINCR0;求校驗(yàn)和;保存校驗(yàn)和JNBTI,$CLRTIDJNZR7,ALOOP3MOVSBUF,R6JNBTI,$;整個(gè)數(shù)據(jù)塊是否發(fā)送完畢;發(fā)送校驗(yàn)和CLRTIJNBRI,$;等待2號(hào)機(jī)的應(yīng)答信號(hào)CLRRIMOVA,SBUFJNZALOOP2;2號(hào)機(jī)應(yīng)答,讀至A;2號(hào)機(jī)應(yīng)答“錯(cuò)誤”,轉(zhuǎn)重新發(fā)送RET;2號(hào)機(jī)應(yīng)答“正確”,返回2號(hào)機(jī)接收程序清單如下:BSTART:MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVPCON,#00HSETBTR1MOVSCON,#50HBLOOP2:JNBRI,$CLRRI;設(shè)定串口方式1,且準(zhǔn)備接收;等待1號(hào)機(jī)的聯(lián)絡(luò)信號(hào)MOVA,SBUFXRLA,#0E1HJZBLOOP1;收到1號(hào)機(jī)信號(hào);判是否為1號(hào)機(jī)聯(lián)絡(luò)信號(hào);是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),準(zhǔn)備接收數(shù)據(jù)MOVSBUF,#0FFH;不是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),回送錯(cuò)誤標(biāo)志JNBTI,$CLRTISJMPBLOOP2BLOOP1:MOVSBUF,#0E2H;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)JNBTI,$CLRTIMOVR0,#30HMOVR7,#10HMOVR6,#00HBLOOP3:JNBRI,$CLRRI;設(shè)定數(shù)據(jù)塊地址指針初值;設(shè)定數(shù)據(jù)塊長(zhǎng)度初值;清校驗(yàn)和單元MOVA,SBUFMOV@R0,AINCR0;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ);求校驗(yàn)和ADDA,R6MOVR6,ADJNZR7,BLOOP3;判數(shù)據(jù)塊是否接收完畢JNBRI,$CLRRI;完畢,接收1號(hào)機(jī)發(fā)來(lái)的校驗(yàn)和MOVA,SBUFXRLA,R6JNZERROR;比較校驗(yàn)和;校驗(yàn)和不相等,跳至發(fā)錯(cuò)誤標(biāo)志MOVSBUF,#00H;校驗(yàn)和相等,發(fā)正確標(biāo)志SJMPEND1ERROR:MOVSBUF,#0FFHEND1:JNBTI,$CLRTI;要求重新發(fā)送數(shù)據(jù)RETb、以中斷方式接收數(shù)據(jù)。1號(hào)機(jī)程序同上。2號(hào)機(jī)接收程序清單如下:ORG0000HLJMPBSTARTORG0023HLJMPSIOSORG0030HBSTART:MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVPCON,#00HSETBTR1MOVIE,#90H;開(kāi)放CPU、串行口中斷;設(shè)定串口方式1,且準(zhǔn)備接收MOVSCON,#50HSJMP$;等待中斷接收中斷ORG0100HSIOS:PUSHPSWPUSHACCMOVA,SBUF;收到1號(hào)機(jī)信號(hào)XRLA,#0E1H;判是否為1號(hào)機(jī)聯(lián)絡(luò)信號(hào)JZBLOOP1;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),準(zhǔn)備接收數(shù)據(jù)MOVSBUF,#0FFH;不是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),回送錯(cuò)誤標(biāo)志JNBTI,$CLRTISJMPEXITBLOOP1:MOVSBUF,#0E2H;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)JNBTI,$CLRTIMOVR0,#30HMOVR7,#10HMOVR6,#00HBLOOP2:JNBRI,$CLRRI;設(shè)定數(shù)據(jù)塊地址指針初值;設(shè)定數(shù)據(jù)塊長(zhǎng)度初值;清校驗(yàn)和單元MOVA,SBUFMOV@R0,AINCR0;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ);求校驗(yàn)和ADDA,R6MOVR6,ADJNZR7,BLOOP2;判數(shù)據(jù)塊是否接收完畢JNBRI,$;完畢,接收1號(hào)機(jī)發(fā)來(lái)的校驗(yàn)和CLRRIMOVA,SBUFXRLA,R6JNZERRORMOVSBUF,#00H;比較校驗(yàn)和;校驗(yàn)和不相等,跳至發(fā)錯(cuò)誤標(biāo)志;校驗(yàn)和相等,發(fā)正確標(biāo)志SJMPEND1ERROR:MOVSBUF,#0FFHEND1:JNBTI,$CLRTI;要求重新發(fā)送數(shù)據(jù)EXIT:POPACCPOPPSWRETI20、簡(jiǎn)述中斷的基本概念。中斷是指CPU正在處理某任務(wù)的過(guò)程中,由于計(jì)算機(jī)系統(tǒng)內(nèi)、外的某種原因,發(fā)生的某一事件請(qǐng)求CPU及時(shí)處理,CPU暫時(shí)中止當(dāng)前的工作,自動(dòng)轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件后,再返回到原來(lái)被中止的斷點(diǎn)處繼續(xù)工作,這樣的過(guò)程稱為中斷。21、MCS-51單片機(jī)可以響應(yīng)幾個(gè)中斷源?有幾個(gè)中斷優(yōu)先級(jí)?說(shuō)出各中斷源的中斷矢量地址。MCS-51單片機(jī)可以響應(yīng)5個(gè)中斷源,有2個(gè)中斷優(yōu)先級(jí),各中斷源的中斷矢量地址是:INT0:0003H、T0:000BH、INT1:0013H、T1:001BH、串行口:0023H。22、在執(zhí)行中斷服務(wù)程序后,用什么指令完成返回到中斷點(diǎn)發(fā)生處?在執(zhí)行中斷服務(wù)程序后,用RETI中斷返回指令返回到中斷點(diǎn)發(fā)生處。23、外部中斷有哪兩種觸發(fā)方式?對(duì)哪個(gè)特殊功能寄存器的哪個(gè)位進(jìn)行設(shè)置,從而確定外部中斷的觸發(fā)方式?電平觸發(fā)方式和邊沿觸發(fā)方式兩種。對(duì)TCON寄存器中的ITx置0為電平觸發(fā)方式,置1為邊沿觸發(fā)方式。24、說(shuō)出在中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)的排列順序(由高到低)。自然優(yōu)先級(jí)的排列順序是:INT0、T0、INT1、T1、串行口。25、MCS-51單片機(jī)有五個(gè)中斷源,但只能設(shè)置兩個(gè)中斷優(yōu)先級(jí),因此,在中斷優(yōu)先級(jí)安排上受到一定的限制。試問(wèn)以下幾種中斷優(yōu)先順序的安排(級(jí)別由高到低)是否可能:若可能,則應(yīng)如何設(shè)置中斷源的中斷級(jí)別:否則,請(qǐng)簡(jiǎn)述不可能的理由。(1)定時(shí)器0,定時(shí)器1,外中斷0,外中斷1,串行口中斷??梢?。T0,T1設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00001010B(2)串行口中斷,外中斷0,定時(shí)器0,外中斷1,定時(shí)器1??梢?。串行口設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00010000B(3)外中斷0,定時(shí)器1,外中斷1,定時(shí)器0,串行口中斷。不可以。因?yàn)樵谕?jí)中,T1的優(yōu)先級(jí)低于INT1的優(yōu)先級(jí),因此要使T1的優(yōu)先級(jí)高于INT1的優(yōu)先級(jí),只能把T1設(shè)置為高優(yōu)先級(jí),INT1設(shè)置為低優(yōu)先級(jí),一旦INT1設(shè)置為低優(yōu)先級(jí),那么它的優(yōu)先級(jí)將總是低于T0的優(yōu)先級(jí)的。(4)外中斷0,外中斷1,串行口中斷,定時(shí)器0,定時(shí)器1。可以。INT0、INT1和串行口均設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00010101B(5)串行口中斷,定時(shí)器0,外中斷0,外中斷1,定時(shí)器1。可以。串行口、T0設(shè)置為高優(yōu)先級(jí),其它中斷源為低優(yōu)先級(jí)。IP=00010010B(6)外中斷0,外中斷1,定時(shí)器0,串行口中斷,定時(shí)器1。不可以。同級(jí)中INT1的優(yōu)先級(jí)低于T0的優(yōu)先級(jí),所以只能把INT0設(shè)置為高優(yōu)先級(jí),T0為低優(yōu)先級(jí),但這時(shí)同樣為低優(yōu)先級(jí)的串行口的優(yōu)先級(jí)是不可能比T1的優(yōu)先級(jí)高的。(7)外中斷0,定時(shí)器1,定時(shí)器0,外中斷1,串行口中斷??梢?。INT0、T1設(shè)置為高優(yōu)先級(jí),其它中斷源設(shè)置為低優(yōu)先級(jí)。IP=00001001B第5章部分習(xí)題參考解答1、簡(jiǎn)述單片機(jī)最小系統(tǒng)的構(gòu)成。使單片機(jī)能運(yùn)行的最少器件構(gòu)成的系統(tǒng),就是最小系統(tǒng)。對(duì)于無(wú)ROM的單片機(jī)芯片如8031必須擴(kuò)展ROM,復(fù)位、晶振電路;而對(duì)于有ROM芯片:89C51等,不必?cái)U(kuò)展ROM,只要有復(fù)位、晶振電路即可。2、單片機(jī)系統(tǒng)的擴(kuò)展一般包含哪幾個(gè)方面的內(nèi)容?單片機(jī)系統(tǒng)的擴(kuò)展
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖文漁家傲李清照課件
- 2023年沙灣市三年級(jí)數(shù)學(xué)第一單元模擬試卷
- 2023年榮成市三年級(jí)信息科技第三單元模擬試卷
- 2023年清鎮(zhèn)市六年級(jí)語(yǔ)文第三單元考試試卷
- 圖形引擎開(kāi)發(fā)基礎(chǔ)知識(shí)培訓(xùn)課件
- 2023年憑祥市四年級(jí)科學(xué)第一單元模擬試卷
- 2025-2030中國(guó)物流園區(qū)外來(lái)務(wù)工人員住房配套與社會(huì)融入研究
- 骨科手術(shù)后的飲食護(hù)理
- 2025-2030中國(guó)民用無(wú)人機(jī)行業(yè)共享經(jīng)濟(jì)模式探索與商業(yè)可行性研究
- 2025-2030中國(guó)機(jī)床電商平臺(tái)發(fā)展模式與線上線下融合策略報(bào)告
- 2025年內(nèi)蒙古自治區(qū)中考語(yǔ)文真題含答案
- 2025版危險(xiǎn)貨物道路運(yùn)輸綜合預(yù)案(電石)
- 勞務(wù)合同書(shū)!勞動(dòng)合同書(shū)(2025版)
- 2025年中醫(yī)確有專長(zhǎng)考試試題及答案
- DB32∕T 4553-2023 醫(yī)療機(jī)構(gòu)醫(yī)療器械不良事件監(jiān)測(cè)工作指南
- 2024年南充職業(yè)技術(shù)學(xué)院招聘真題
- 印章管理辦法處罰規(guī)定
- 中央企業(yè)全面風(fēng)險(xiǎn)管理指引
- 2022年宜家工坊加盟合同范本
- 《聲樂(lè)演唱》課程教學(xué)大綱
- 精神科出科考試試題及答案
評(píng)論
0/150
提交評(píng)論