單片機(jī)原理與應(yīng)用王洪君部分習(xí)題參考解答_第1頁
單片機(jī)原理與應(yīng)用王洪君部分習(xí)題參考解答_第2頁
單片機(jī)原理與應(yīng)用王洪君部分習(xí)題參考解答_第3頁
單片機(jī)原理與應(yīng)用王洪君部分習(xí)題參考解答_第4頁
單片機(jī)原理與應(yīng)用王洪君部分習(xí)題參考解答_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第2章 部分習(xí)題參考解答1、試述MCS-51單片機(jī)內(nèi)部有哪些主要邏輯部件并說出其功能,畫出片內(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)框圖如圖所示:外接時(shí)鐘源電源總線A_sz_心、SZ64K空間總中斷控制并行I/O 口串行I/O 口線控制邏輯其中,CPU是單片機(jī)的最核心部分,它是整個(gè)單片機(jī)的控制和指揮中心,完成所有的計(jì)算和控制任務(wù)。振 蕩器和時(shí)序邏輯,產(chǎn)生 CPU工作所需要的內(nèi)部時(shí)鐘。中斷控制邏輯用來應(yīng)付一些臨時(shí)到達(dá)的突發(fā)事件,并能保證當(dāng)有多個(gè)突發(fā)事件發(fā)生時(shí),C

2、PU能夠有序地為這些事件進(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ù)器主要是完成對外部輸入脈沖的計(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位并行口(PO、P1、P2、P3),哪個(gè)口可作為地址/數(shù)據(jù)利用總線? P0 口可作為地址/數(shù)據(jù)復(fù)用總線口。3、P0 口作為通用I/O 口使用時(shí),在輸出狀態(tài)下應(yīng)注意什么?在輸

3、入狀態(tài)下應(yīng)注意什么?P0 口作為通用I/O 口使用時(shí),輸出級是漏極開路的,因此在輸出狀態(tài)下外部應(yīng)加上拉電阻。在輸入狀態(tài) 下應(yīng)先向端口鎖存器寫入 1,這樣引腳便處于懸浮狀態(tài),可作高阻抗輸入。5、 MCS-51單片機(jī)的最大尋址空間是多少?為什么?MCS-51單片機(jī),程序存儲(chǔ)器空間采用片內(nèi)、片外統(tǒng)一編址的方式,共有64KB,地址范圍為 OOOOHFFFFH。片內(nèi)有256字節(jié)數(shù)據(jù)存儲(chǔ)器地址空間,地址范圍為 00HFFH。片外數(shù)據(jù)存儲(chǔ)器空間有 64KB,其地 址范圍也是 000OHFFFFH。7、 MCS-51單片機(jī)片內(nèi)低128字節(jié)的RAM中,分了幾個(gè)基本區(qū)域?說出這些區(qū)域的名稱。MCS-51系列單片機(jī)

4、片內(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ǔ)器空間的低地址部分(000OHOOFFH)是重疊的,MCS 51單片機(jī)有MOV和MOVX兩種指令,用以區(qū)分片內(nèi)、片外 RAM空間,當(dāng)使用MOV指令時(shí),訪問的是片內(nèi)區(qū)域,當(dāng)使用MOVX指令時(shí),訪問的是片外區(qū)域。9、訪問程序存儲(chǔ)器的片外空間,是通過什么方式實(shí)現(xiàn)的?程序存儲(chǔ)器空間的片內(nèi)、片外選擇通過單片機(jī)的引腳EA來實(shí)現(xiàn),當(dāng)EA接低電平時(shí),程序存儲(chǔ)器空間的64KB全部由片外實(shí)現(xiàn),當(dāng)EA接高

5、電平時(shí),程序存儲(chǔ)器空間的前 4KB(MCS-52是8KB)由片內(nèi)實(shí)現(xiàn),對于片 內(nèi)沒有的高地址空間部分單元, 不管EA引腳接的是高電平還是低電平都由片外實(shí)現(xiàn)。片外程序存儲(chǔ)器空間和片外數(shù)據(jù)存儲(chǔ)器空間,采用的外部地址總線和數(shù)據(jù)總線是相同的,不同的是控制總線,程序存儲(chǔ)空間的讀信號(hào)PSEN,而數(shù)據(jù)存儲(chǔ)空間的讀信號(hào)為。10、說出程序狀態(tài)字寄存器(PSW)各位的含義。PSW的位結(jié)構(gòu)如下表所示。D7D6D5D4D3D2D1D0CyACF0RS1RS0OV-P其中,各位的含義如下:Cy:高位進(jìn)位標(biāo)志位,當(dāng)ALU的算術(shù)運(yùn)算過程中有進(jìn)位或借位時(shí),Cy=1 ;否則,Cy=0。同時(shí),該位還可以用作位累加器,這時(shí)一般只用

6、“C”表示。AC :輔助進(jìn)位標(biāo)志,當(dāng)ALU的算術(shù)運(yùn)算過程中低 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組工作寄存器中的某一組。具體選擇情況見寄存器介紹部分。OV :溢出標(biāo)志位,當(dāng)ALU的算術(shù)運(yùn)算過程中有溢出時(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:保留位,無定義。11、在MCS-51單片機(jī)的工作時(shí)序中,一個(gè)機(jī)器周期包含幾個(gè)狀態(tài)周期、幾個(gè)振蕩周期?

7、一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期、12個(gè)振蕩周期。12、單片機(jī)復(fù)位后,程序計(jì)數(shù)器 PC指向哪個(gè)地址?PC= 0000H第3章 部分習(xí)題參考解答1、寫出MCS-51單片機(jī)匯編指令的指令格式,并簡單舉例。MCS-51單片機(jī)的匯編指令格式如下:標(biāo)號(hào):操作碼目的操作數(shù),源操作數(shù);注釋操作碼表示該指令所實(shí)現(xiàn)的操作功能,一般由25個(gè)英文字母表示。例如 ORL, ADD , LCALL等。操作數(shù)表示參與操作的數(shù)據(jù)來源和目的單元。操作數(shù)可以是一個(gè)立即數(shù), 也可以是一個(gè)內(nèi)存單元或者是一個(gè)寄存器單元。操作碼和第一個(gè)操作數(shù)之間一般用一個(gè)或幾個(gè)空格隔開,而操作數(shù)與操作數(shù)之間用逗號(hào)隔開。 操作數(shù)可以有1個(gè),2個(gè),3個(gè)或沒有

8、。如果需要對指令進(jìn)行注釋說明的話,在最后一個(gè)操作數(shù)后加一個(gè)分號(hào),分號(hào)后面是注釋。女口: MOV A , 60H; (60H) f標(biāo)號(hào)由18個(gè)字母或數(shù)字構(gòu)成,以字母開頭以“:”結(jié)尾,標(biāo)號(hào)可有可無,它僅僅代表了該指令所在的 地址,便于源程序編寫過程中使用該地址。2、指出下面程序每個(gè)語句的尋址方式。目的操作數(shù)原操作數(shù)MOV A ,P1寄存器尋址直接尋址MOV A ,#40H寄存器尋址立即尋址MOV 80H ,A直接尋址寄存器尋址MOV A ,R5寄存器尋址寄存器尋址MOV R0,A寄存器間接尋址寄存器尋址MOVX A,DPTR寄存器尋址寄存器間接尋址MOVC A,A+DPTR寄存器尋址基址變址尋址M

9、OV 74H ,#80H直接尋址立即尋址3、寫出下面程序被執(zhí)行后,各數(shù)據(jù)存儲(chǔ)器地址中的內(nèi)容。MOV 40H,#33HMOV 41H,#44HMOV A,40HMOV 50H,AMOV A,41HMOV 51H,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寄存器中。MOV SP, #60HPUSH 50HPUSH 51HPOP DPLPOP DPH5、訪問片內(nèi)、外數(shù)據(jù)存儲(chǔ)器,都用什么指令?6、面的指令語句對嗎?

10、MOV R0,#0400HMOV 100H,AMOV R2,AMOVX R1,A訪問片內(nèi)數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送指令用 MOV ,訪問片外數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)傳送指令用 MOVX為什么?;不對,R0是8位寄存器源操作數(shù)超過了 8位 ;不對,片內(nèi)數(shù)據(jù)存儲(chǔ)器用 8位地址訪問,目的操作數(shù)的地址超過了8位。;不對,能夠用于間接尋址的只能是 R0或R1;對,R1做為間址寄存器來提供尋址存儲(chǔ)器的低 8位,高8位由P2提供7、查表指令 MOVC A,A+DPTR 所查的表數(shù)據(jù)是在程序存儲(chǔ)區(qū)還是數(shù)據(jù)存儲(chǔ)區(qū)? 程序存儲(chǔ)區(qū)。9、使用位操作指令完成下列操作 將P1.1置“ 1 ”。SETB P1.1將ACC.7置“ 1 ”

11、。 SETB ACC.710、編寫程序,將40H為首的8個(gè)單元內(nèi)容,依次反序送入到 60H為首的8個(gè)單元中去MOV R0,#47H;40H開始的8字節(jié)數(shù)據(jù)中最后一個(gè)單元的地址MOV R1,#60HMOV R2,#8LOOP:MOV A,R0MOV R1,ADEC R0INC R1DJNZ R2,LOOPSJMP $ 11、兩個(gè)四位壓縮類型BCD碼數(shù),被加數(shù)放在30H和31H內(nèi)存單元中,加數(shù)放在32H和33H內(nèi)存單元中,所求的和放在34H和35H中。位數(shù)排列按高位在低地址,低位在高地址的順序,編寫此加法程序MOV PSW,#00HMOV R0,#31HMOV R1,#33H SETB RS0MO

12、V R0,#35H CLR RS0MOV R2,#02HCLR CLOOP: MOV A,R0ADDC A,R1 DA A SETB RS0 MOV R0,A DEC R0 CLR RS0 DEC R0 DEC R1 DJNZ R2,LOOP SJMP $;取0組工作寄存器;取1組工作寄存器; 清除進(jìn)位標(biāo)志,準(zhǔn)備進(jìn)行帶進(jìn)位加;取1組工作寄存器;恢復(fù) 0組工作寄存器13、寫出ACALL和LCALL兩個(gè)調(diào)用指令的調(diào)用范圍,試寫出這兩條指令執(zhí)行時(shí),CPU的操作過程。ACALL的調(diào)用范圍是包括調(diào)用指令下一條指令的第一個(gè)字節(jié)所在的2KB范圍的程序存儲(chǔ)器空間。ACALL調(diào)用指令的執(zhí)行過程是:PC加2 (本

13、指令代碼為兩個(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í)行過程是把PC加上本指令代碼數(shù)(三個(gè)字節(jié))獲得下一條指令的地址,并把該斷點(diǎn)地址入棧(斷點(diǎn)地址保護(hù)),接著將被

14、調(diào)子程序的入口地址(16位目標(biāo)地址)裝入PC,然后從該入口地址開始執(zhí)行子程序。14、分析下列程序,說出此程序完成什么樣的功能MOV P1,#0FFH LOOP:MOV R7,#03HLOOP1:MOV R6,#0FFHDJNZ R6,$DJNZ R7,LOOP1CPL P1.0JMP LOOP; 該指令 1 個(gè)機(jī)器周期 1; 該指令 1 個(gè)機(jī)器周期 2;該指令 2個(gè)機(jī)器周期 3;該指令 2個(gè)機(jī)器周期 4; 該指令 1 個(gè)機(jī)器周期 5;該指令 2個(gè)機(jī)器周期 6END11+( 12 + 23X255+ 24)X3+ 15+ 26)X2個(gè)機(jī)器周該程序的功能是從P1.0引腳輸出連續(xù)方波,方波的周期為(

15、 期15、試編寫程序,完成對十個(gè)數(shù)從大到小的排序(建議用氣泡排序法)。十個(gè)源字節(jié)數(shù)據(jù)放在30H為首的內(nèi)存區(qū)域,排序后的目標(biāo)數(shù)據(jù)放在 50H為首的區(qū)域。如果不破壞 30H 開始存放的源字節(jié)數(shù)據(jù),可以把從 30H 開始的數(shù)據(jù)先傳送到 50H 開始的數(shù)據(jù)區(qū),然后對 50H 開始的數(shù)據(jù)進(jìn)行排序。如果不需考慮 30H 開始存放的數(shù)據(jù)使用后的順序,則可先對 30H 開始存放的數(shù)據(jù)進(jìn)行排序,然后再傳送 到 50H 開始的數(shù)據(jù)區(qū)中?,F(xiàn)根據(jù)第 1 種情況進(jìn)行編程。MOV R0,#30HMOV R1,#50HMOV R2,#10LOP1:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LO

16、P1MOV R2,#9LOP4:MOV R0,#50HMOV R1,#51HMOV A,R2MOV R3,ALOP3:MOV A,R0CLR CSUBB A,R1LOP2:JC NEXTMOV A,R0XCH A,R1MOV R0,ANEXT:INC R0INC R1DJNZ R3,LOP3DJNZ R2,LOP4SJMP $第4章部分習(xí)題參考解答1、MCS-51單片機(jī)中,有幾個(gè)16位定時(shí)/計(jì)數(shù)器?其實(shí)際用途?MCS-51 單片機(jī)中,有 2個(gè) 16位定時(shí) /計(jì)數(shù)器??梢杂枚〞r(shí)器在規(guī)定的時(shí)間對溫度、濕度、流量、轉(zhuǎn)速等參數(shù)進(jìn)行檢測采樣,用于環(huán)境檢測、工業(yè)控制; 或者利用定時(shí)器按一定的周期產(chǎn)生方波信

17、號(hào)進(jìn)行輸出; 還可以通過計(jì)數(shù)器對脈沖進(jìn)行計(jì)數(shù), 用于信息的采集處 理領(lǐng)域等。2、通過對定時(shí) /計(jì)數(shù)器中的哪個(gè)特殊寄存器進(jìn)行工作模式設(shè)置?試敘述幾種工作模式功能。通過特殊寄存器 TMOD 對定時(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í)

18、器/計(jì)數(shù)器。5、定時(shí) /計(jì)數(shù)器作為計(jì)數(shù)器時(shí),對外界技術(shù)頻率有什么要求(假定時(shí)鐘頻率為12MHz)?當(dāng)定時(shí) /計(jì)數(shù)器設(shè)置為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)器對來自輸入引腳 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ī)檢測一個(gè)從高電平到低電平的下降沿需要 2 個(gè)機(jī)器周期, 要使下降沿能被檢測到, 需要保證被采樣高、 低電平至少維持一個(gè)機(jī)器 周期的時(shí)間,即外部輸入信號(hào)的頻率不超過晶振頻率的 1/24。當(dāng)晶振頻率為 12MHz 時(shí),

19、最高計(jì)數(shù)頻率不超過 0.5MHz,即計(jì)數(shù)脈沖的周期要大于 2微秒。6、 定時(shí)/計(jì)數(shù)器在何種設(shè)置下可提供 3個(gè)8位定時(shí)器?當(dāng)TO運(yùn)行在模式3下,THO作為定時(shí)器使用時(shí),其啟 動(dòng)和關(guān)閉受誰的控制?定時(shí)器/計(jì)數(shù)器TO工作在方式3下,定時(shí)器/計(jì)數(shù)器T1工作在方式2下,可提供3個(gè)8位定時(shí)器。當(dāng)TO 運(yùn)行在方式 3 下, THO 作為定時(shí)器使用時(shí),其啟動(dòng)和關(guān)閉受 TR1 的控制。7、當(dāng)定時(shí) /計(jì)數(shù)器 TO 被設(shè)置為模式 3時(shí),怎樣使 T1 啟動(dòng)運(yùn)行?又怎樣使其停止運(yùn)行?當(dāng)定時(shí)/計(jì)數(shù)器TO被設(shè)置為模式3時(shí),定時(shí)/計(jì)數(shù)器T1只要設(shè)置好工作方式、時(shí)間常數(shù)初值,然后用控制位 C/T 切換其為定時(shí)或計(jì)數(shù)功能就可以使

20、 T1 運(yùn)行,若想停止它的運(yùn)行 ,只要把它的工作方式設(shè)置為方式3即可,因?yàn)槎〞r(shí)器 T1 沒有方式 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ù)初值為:THO = OFCH , TLO = 1CH方式0時(shí),1ms定時(shí)的計(jì)數(shù)值為1000,時(shí)間常數(shù)初值為: THO = OEOH , TLO = 18H方式 0 時(shí),最長的定時(shí)時(shí)間只能到 8.192ms方式1時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:T

21、HO = OFFH , TLO = 9CH方式1時(shí),1ms定時(shí)的計(jì)數(shù)值為 1000,時(shí)間常數(shù)初值為:THO = OFCH , TLO = 18H 方式1時(shí),10ms定時(shí)的計(jì)數(shù)值為10000,時(shí)間常數(shù)初值為: THO = 0D8H , TLO = OFOH 方式2時(shí),0.1ms定時(shí)的計(jì)數(shù)值為100,時(shí)間常數(shù)初值為:THO = 9CH , TLO = 9CH 方式 2 時(shí),最長的定時(shí)時(shí)間只能到 0.256ms9、時(shí)鐘頻率為12MHz。編寫程序完成從 P1.0輸出占空比為1: 4,頻率為1000Hz的脈沖波型。1000Hz周期為1ms,則高電平持續(xù)時(shí)間為 1ms/4 = 0.25ms= 250us用

22、TO實(shí)現(xiàn)250um定時(shí),采用工作方式 2,定時(shí)時(shí)間常數(shù)為 256- 250= 6。從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型,既P1.0持續(xù)250us的高電平,250us x3勺低電平。 采用查詢方式實(shí)現(xiàn):MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0LOP2: SETB P1.0JNB TF0,$CLR TF0CLR P1.0MOV R0,#03HLOP1: JNB TF0,$CLR TF0DJNZ R0,LOP1JMP LOP2采用中斷方式實(shí)現(xiàn):ORG 0000HLJMP MAINORG 000BHLJMP T0SORG 0030

23、HMAIN: MOV SP,#60HMOV TMOD,#02HMOV IE,#82HMOV R0,#03HMOV TH0,#06HMOV TL0,#06HSETB TR0SETB P1.0SJMP $T0S: JNB P1.0,T01CLR P1.0SJMP EXITT01: DJNZ R0,EXITSETB P1.0MOV R0,#03HEXIT: RETI10、編寫程序。時(shí)鐘頻率為 12MHz,使用T1,由P1.0、P1.1分別輸出周期為500 口和2ms的方波。 用T1實(shí)現(xiàn)250um定時(shí),采用工作方式 2,定時(shí)時(shí)間常數(shù)為 256- 250= 6。P1.0每250us改變狀態(tài)一次,P1.1

24、每250us X敘變狀態(tài)一次。ORG 0000HLJMP MAINORG 001BHLJMP T1SORG 0030HMAIN: MOV SP,#60HMOV TMOD,#20HMOV IE,#88HMOV R0,#04HMOV TH1,#06HMOV TL1,#06HSETB TR1SETB P1.0SETB P1.1SJMP $T1S: CPL P1.0DJNZ R0,EXITCPL P1.1MOV R0,#04HEXIT: RETI15、半雙工通信和全雙工通信的區(qū)別? 半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。16、 使用哪個(gè)特殊功能寄存器來確

25、定串行口的工作方式?MCS-51 單片機(jī)串行口有幾種工作方式?各工作方式 的波特率如何確定?SCON用來設(shè)定串行口的工作方式、接收 /發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志;MCS-51單片機(jī)串行口有4種工作方式。方式 0的波特率由振蕩器的頻率所確定,波特率為 fosc/12;方式2時(shí)的波特率由振蕩器的頻率(fosc)和SMOD位所確定,即:波特率2smodosc 232方式1和3時(shí)的波特率由定時(shí)器T1和T2的溢出率和SMOD所確定。SMOD波特率 T1溢出率-3217、晶振為11.059MHz,工作于方式1,波特率為1200b/s,用定時(shí)器/計(jì)數(shù)器T1作為波特率發(fā)生器,寫出其 方式字和計(jì)數(shù)初值。T1工作在

26、方式2下,其方式字為20H qSMOD的溢出率=38400。則T1由串行口方式1的波特率 T1溢出率 一 ,取SMOD = 0,可計(jì)算出T132的計(jì)數(shù)值為 11.0592/ ( 38400 X 12) i4, T1 的初值為 232 或 0E8H。18、串行口按工作方式1進(jìn)行串行數(shù)據(jù)通信。晶振為 11.059MHz,波特率為4800b/s,請編寫具有收發(fā)功能的 串口通信程序(兩種接收方式):a、以查詢方式接收數(shù)據(jù)。b、以中斷方式接收數(shù)據(jù)。將接收數(shù)據(jù)放到30H為首的片內(nèi)存儲(chǔ)區(qū)中。設(shè)T1工作在方式2下,其方式字為20HqSMOD由串行口方式1的波特率T1溢出率 一 ,取SMOD = 0,可計(jì)算出T

27、1的溢出率=153600貝V32T1 的計(jì)數(shù)值為 11.0592/ ( 153600 X 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后,開始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)字節(jié)都計(jì)算校驗(yàn)和,假定數(shù)據(jù)塊長度為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ā)來的校驗(yàn)和,并將它與 2號(hào)機(jī)求出的校驗(yàn)和進(jìn)行比較。若兩者相等

28、,說明接收正確,2號(hào)機(jī)回答00H;若兩者不相等,說明接收不正確,2號(hào)機(jī)回答0FFH,請求重發(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 , #0FAH;裝載定時(shí)器初值,波特率 4800MOVTL1 , #0FAHMOVPCON , #00HSETBTR1;啟動(dòng)定時(shí)器MOVSCON, #50H;設(shè)定串口方式1,且準(zhǔn)備接收應(yīng)答信號(hào)ALOOP1 :MOVSBUF, #0E1H;發(fā)聯(lián)絡(luò)信號(hào)JNBTI , $;等待一幀發(fā)送完畢CLRTI;允許再發(fā)送JNB

29、RI, $;等待2號(hào)機(jī)的應(yīng)答信號(hào)CLRRI;允許再接收MOVA,SBUF;2 號(hào)機(jī)應(yīng)答后,讀至 AXRLA,#0E2H;判斷 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ù)塊長度初值MOVR6,#00H;清校驗(yàn)和單元ALOOP3 :MOVSBUF,R0;發(fā)送一個(gè)數(shù)據(jù)字節(jié)MOVA,R6ADDA,R0;求校驗(yàn)和MOVR6,A;保存校驗(yàn)和INC R0JNBTI,$CLRTIDJNZR7,ALOOP3;整個(gè)數(shù)據(jù)塊是否發(fā)送完畢MOVSBUF,R6;發(fā)送校驗(yàn)和JNBTI,$CL

30、RTIJNBRI,$;等待 2 號(hào)機(jī)的應(yīng)答信號(hào)CLRRIMOVA,SBUF; 2 號(hào)機(jī)應(yīng)答,讀至 AJNZALOOP2; 2號(hào)機(jī)應(yīng)答“錯(cuò)誤”,轉(zhuǎn)重新發(fā)送RET;2 號(hào)機(jī)應(yīng)答“正確”,返回2 號(hào)機(jī)接收程序清單如下:BSTART:MOVMOVMOVMOVSETBMOVTMOD , #20HTH1 , #0FAHTL1 ,#0FAHPCON , #00HTR1SCON,#50H;設(shè)定串口方式 1,且準(zhǔn)備接收BLOOP2 :JNBRI, $;等待 1 號(hào)機(jī)的聯(lián)絡(luò)信號(hào)CLRRIMOVA,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),

31、準(zhǔn)備接收數(shù)據(jù)MOVSBUF, #0FFH;不是 1 號(hào)機(jī)聯(lián)絡(luò)信號(hào),回送錯(cuò)誤標(biāo)志JNB TI ,$CLR TISJMP BLOOP2BLOOP1 : MOVSBUF,#0E2H;是 1 號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)JNBTI,$CLRTIMOVR0,#30H;設(shè)定數(shù)據(jù)塊地址指針初值MOVR7,#10H;設(shè)定數(shù)據(jù)塊長度初值MOVR6,#00H;清校驗(yàn)和單元BLOOP3 :JNBRI,$CLRRIMOVA,SBUFMOVR0,A;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ)INCR0ADDA,R6;求校驗(yàn)和MOVR6,ADJNZR7,BLOOP3;判數(shù)據(jù)塊是否接收完畢JNBRI,$;完畢,接收 1 號(hào)機(jī)發(fā)來的校驗(yàn)和CLRRIMOVA,

32、SBUFXRLA,R6;比較校驗(yàn)和JNZERROR;校驗(yàn)和不相等,跳至發(fā)錯(cuò)誤標(biāo)志MOVSBUF,#00H;校驗(yàn)和相等,發(fā)正確標(biāo)志SJMPEND1ERROR:MOV SBUF, #0FFH;要求重新發(fā)送數(shù)據(jù)END1 :JNB TI ,$CLR TIRETb、以中斷方式接收數(shù)據(jù)。1 號(hào)機(jī)程序同上。2 號(hào)機(jī)接收程序清單如下:ORG 0000HLJMP BSTARTORG 0023HLJMP SIOS ORG 0030HBSTART:MOVTMOD , #20HMOVTH1 , #0FAHMOVTL1 ,#0FAHMOVPCON , #00HSETBTR1MOVIE, #90H;開放CPU、串行口中斷

33、MOVSCON,#50H;設(shè)定串口方式 1,且準(zhǔn)備接收SJMP$ ;等待中斷接收中斷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)志JNB TI ,$CLR TISJMP EXITBLOOP1 : MOVSBUF,#0E2H;是 1 號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)JNBTI,$CLRTIMOVR0,#30H;設(shè)定數(shù)據(jù)塊地址指針初值MOVR7,#10H;設(shè)定數(shù)據(jù)塊長度初值MOVR6, #00H

34、;清校驗(yàn)和單元BLOOP2 : JNBRI, $CLRRIMOVA, SBUFMOVR0, A ;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ)INCR0ADDA , R6 ;求校驗(yàn)和MOVR6, ADJNZR7, BLOOP2;判數(shù)據(jù)塊是否接收完畢JNBRI , $;完畢,接收 1 號(hào)機(jī)發(fā)來的校驗(yàn)和CLRRIMOVA, SBUFXRLA , R6;比較校驗(yàn)和JNZERROR;校驗(yàn)和不相等,跳至發(fā)錯(cuò)誤標(biāo)志MOVSBUF, #00H;校驗(yàn)和相等,發(fā)正確標(biāo)志SJMPEND1ERROR: MOVSBUF, #0FFH;要求重新發(fā)送數(shù)據(jù)END1 : JNBTI , $CLRTIEXIT : POPACCPOPPSWRETI20、簡述中

35、斷的基本概念。中斷是指CPU正在處理某任務(wù)的過程中,由于計(jì)算機(jī)系統(tǒng)內(nèi)、外的某種原因,發(fā)生的某一事件請求 CPU及 時(shí)處理, CPU 暫時(shí)中止當(dāng)前的工作,自動(dòng)轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件后,再返回到原來被中止的 斷點(diǎn)處繼續(xù)工作,這樣的過程稱為中斷。21、 MCS-51單片機(jī)可以響應(yīng)幾個(gè)中斷源?有幾個(gè)中斷優(yōu)先級?說出各中斷源的中斷矢量地址。MCS-51單片機(jī)可以響應(yīng)5個(gè)中斷源,有2個(gè)中斷優(yōu)先級,各中斷源的中斷矢量地址是:INTO : 0003H、TO: OOOBH、INT1 : 0013H、T1 : OO1BH、串行口: 0023H。22、在執(zhí)行中斷服務(wù)程序后,用什么指令完成返回到中斷點(diǎn)發(fā)生

36、處? 在執(zhí)行中斷服務(wù)程序后,用 RETI 中斷返回指令返回到中斷點(diǎn)發(fā)生處。23、 外部中斷有哪兩種觸發(fā)方式?對哪個(gè)特殊功能寄存器的哪個(gè)位進(jìn)行設(shè)置,從而確定外部中斷的觸發(fā)方式?電平觸發(fā)方式和邊沿觸發(fā)方式兩種。對TCON寄存器中的ITx置0為電平觸發(fā)方式,置1為邊沿觸發(fā)方式。24、 說出在中斷系統(tǒng)硬件確定的自然優(yōu)先級的排列順序(由高到低)。 自然優(yōu)先級的排列順序是:INTO、TO、INT1、T1、串行口。25、MCS-51 單片機(jī)有五個(gè)中斷源,但只能設(shè)置兩個(gè)中斷優(yōu)先級,因此,在中斷優(yōu)先級安排上受到一定的限制。 試問以下幾種中斷優(yōu)先順序的安排(級別由高到低)是否可能:若可能,則應(yīng)如何設(shè)置中斷源的中斷

37、級別:否 則,請簡述不可能的理由。(1)定時(shí)器0,定時(shí)器1,外中斷0,外中斷1,串行口中斷??梢浴O, T1設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP = 00001010B(2) 串行口中斷,外中斷 0,定時(shí)器0,外中斷1,定時(shí)器1??梢浴4锌谠O(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP = 00010000B(3)外中斷 0,定時(shí)器 1,外中斷 1,定時(shí)器 0,串行口中斷。不可以。因?yàn)樵谕壷校?T1 的優(yōu)先級低于 INT1 的優(yōu)先級,因此要使 T1 的優(yōu)先級高于 INT1 的優(yōu) 先級,只能把 T1 設(shè)置為高優(yōu)先級, INT1 設(shè)置為低優(yōu)先級,一旦 INT1 設(shè)置為低優(yōu)先級,那么它的優(yōu)先

38、級 將總是低于 T0 的優(yōu)先級的。(4)外中斷 0,外中斷 1,串行口中斷, 定時(shí)器 0,定時(shí)器 1 ??梢浴NTO、INT1和串行口均設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP = 00010101B(5)串行口中斷,定時(shí)器 0,外中斷 0,外中斷 1,定時(shí)器 1??梢?。串行口、 TO設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP = 00010010B(6)外中斷0,外中斷1,定時(shí)器0,串行口中斷,定時(shí)器 1。不可以。同級中 INT1 的優(yōu)先級低于 TO 的優(yōu)先級,所以只能把 INTO 設(shè)置為高優(yōu)先級, TO 為低優(yōu) 先級,但這時(shí)同樣為低優(yōu)先級的串行口的優(yōu)先級是不可能比 T1 的優(yōu)先級高的。

39、(7)外中斷 0,定時(shí)器 1,定時(shí)器 0,外中斷 1,串行口中斷??梢?。INTO、T1設(shè)置為高優(yōu)先級,其它中斷源設(shè)置為低優(yōu)先級。IP = 00001001B第 5 章 部分習(xí)題參考解答1 、簡述單片機(jī)最小系統(tǒng)的構(gòu)成。使單片機(jī)能運(yùn)行的最少器件構(gòu)成的系統(tǒng),就是最小系統(tǒng)。對于無ROM勺單片機(jī)芯片如8031必須擴(kuò)展ROM復(fù)位、晶振電路;而對于有 ROM芯片:89C51等,不必?cái)U(kuò)展ROM只要有復(fù)位、晶振電路即可2、單片機(jī)系統(tǒng)的擴(kuò)展一般包含哪幾個(gè)方面的內(nèi)容?單片機(jī)系統(tǒng)的擴(kuò)展一般包含以下幾方面的內(nèi)容 : 外部程序存儲(chǔ)器的擴(kuò)展 ; 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展 ; 輸入 / 輸出接口的擴(kuò)展 ; 管理功能器件的擴(kuò)展 (如定時(shí) /計(jì)數(shù)器擴(kuò)展、中斷擴(kuò)展、通信接口擴(kuò)展等 )將這些信號(hào)線分成了三類: 地址總3、系統(tǒng)的三總線,是指哪三總線?每組總線都是有哪些引腳組成?系統(tǒng)的三總線是指根據(jù)總線中各信號(hào)線在器件連接中所起的作用不同, 線、數(shù)據(jù)總線和控制總線

溫馨提示

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

評論

0/150

提交評論