版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第2章 部分習題參考解答1、 試述MCS-51單片機內(nèi)部有哪些主要邏輯部件并說出其功能,畫出片內(nèi)結(jié)構(gòu)圖。MCS-51單片機的內(nèi)部除包含CPU外,還包含程序存儲器、數(shù)據(jù)存儲器、定時器/計數(shù)器、并行I/O接口、串行I/O接口、總線控制邏輯和中斷控制邏輯等邏輯部件,其結(jié)構(gòu)框圖如圖所示:其中,CPU是單片機的最核心部分,它是整個單片機的控制和指揮中心,完成所有的計算和控制任務(wù)。振蕩器和時序邏輯,產(chǎn)生CPU工作所需要的內(nèi)部時鐘。中斷控制邏輯用來應付一些臨時到達的突發(fā)事件,并能保證當有多個突發(fā)事件發(fā)生時,CPU能夠有序地為這些事件進行服務(wù),所有突發(fā)事件服務(wù)完成后CPU還能繼續(xù)以前的工作。并行I/O接口和串
2、行I/O接口作為CPU與外部設(shè)備通信的信息傳輸通道。程序存儲器用于存放單片機的程序。數(shù)據(jù)存儲器用于存放內(nèi)部待處理的數(shù)據(jù)和處理后的結(jié)果。定時器/計數(shù)器主要是完成對外部輸入脈沖的計數(shù)或者根據(jù)內(nèi)部的時鐘及定時設(shè)置,周期性的產(chǎn)生定時信號。64K總線控制邏輯,用于產(chǎn)生外部64KB存儲空間的有關(guān)讀寫控制信號。2、 MCS-51單片機有4個8位并行口(P0、P1、P2、P3),哪個口可作為地址/數(shù)據(jù)利用總線?P0口可作為地址/數(shù)據(jù)復用總線口。3、 P0口作為通用I/O口使用時,在輸出狀態(tài)下應注意什么?在輸入狀態(tài)下應注意什么?P0口作為通用I/O口使用時,輸出級是漏極開路的,因此在輸出狀態(tài)下外部應加上拉電阻。
3、在輸入狀態(tài)下應先向端口鎖存器寫入1,這樣引腳便處于懸浮狀態(tài),可作高阻抗輸入。5、 MCS-51單片機的最大尋址空間是多少?為什么?MCS-51單片機,程序存儲器空間采用片內(nèi)、片外統(tǒng)一編址的方式,共有64KB,地址范圍為 000OHFFFFH。片內(nèi)有256字節(jié)數(shù)據(jù)存儲器地址空間,地址范圍為 00HFFH。片外數(shù)據(jù)存儲器空間有64KB,其地址范圍也是 000OHFFFFH。7、 MCS-51單片機片內(nèi)低128字節(jié)的RAM中,分了幾個基本區(qū)域?說出這些區(qū)域的名稱。MCS-51系列單片機片內(nèi)低128字節(jié)的RAM包含:工作寄存器區(qū)(00H: 1FH)、可位尋址區(qū)(20H: 2FH)、通用RAM區(qū)(30H
4、: 7FH)3個組成部分。8、 片內(nèi)和片外數(shù)據(jù)存儲器地址重疊的區(qū)域是哪些地址?片內(nèi)與片外數(shù)據(jù)存儲器空間的低地址部分(000OHOOFFH)是重疊的,MCS51單片機有MOV和MOVX兩種指令,用以區(qū)分片內(nèi)、片外RAM空間,當使用MOV指令時,訪問的是片內(nèi)區(qū)域,當使用MOVX指令時,訪問的是片外區(qū)域。9、 訪問程序存儲器的片外空間,是通過什么方式實現(xiàn)的?程序存儲器空間的片內(nèi)、片外選擇通過單片機的引腳來實現(xiàn),當接低電平時,程序存儲器空間的64KB全部由片外實現(xiàn),當接高電平時,程序存儲器空間的前4KB(MCS-52是8KB)由片內(nèi)實現(xiàn),對于片內(nèi)沒有的高地址空間部分單元,不管引腳接的是高電平還是低電平
5、都由片外實現(xiàn)。片外程序存儲器空間和片外數(shù)據(jù)存儲器空間,采用的外部地址總線和數(shù)據(jù)總線是相同的,不同的是控制總線,程序存儲空間的讀信號,而數(shù)據(jù)存儲空間的讀信號為。10、說出程序狀態(tài)字寄存器(PSW)各位的含義。PSW的位結(jié)構(gòu)如下表所示。D7D6D5D4D3D2D1D0CyACF0RS1RS0OV-P其中,各位的含義如下:² Cy:高位進位標志位,當ALU的算術(shù)運算過程中有進位或借位時,Cy=1;否則,Cy=0。同時,該位還可以用作位累加器,這時一般只用“C”表示。² AC:輔助進位標志,當ALU的算術(shù)運算過程中低4位向高4位有進位或借位時,AC=1;否則,AC=0。該位常用于B
6、CD碼的調(diào)整。² F0:用戶標志位。² RS1、RS0:選擇工作寄存器組位,用于選擇內(nèi)部數(shù)據(jù)存儲器區(qū)內(nèi)4組工作寄存器中的某一組。具體選擇情況見寄存器介紹部分。² OV:溢出標志位,當ALU的算術(shù)運算過程中有溢出時,OV =1;否則,OV =0。² P:奇偶校驗標志位,根據(jù)累加器ACC中1的個數(shù)由硬件置位或清除,當累加器ACC中有奇數(shù)個1時P=1;否則,P=0。² PSW.1:保留位,無定義。11、在MCS-51單片機的工作時序中,一個機器周期包含幾個狀態(tài)周期、幾個振蕩周期?一個機器周期包含6個狀態(tài)周期、12個振蕩周期。12、單片機復位后,程序計
7、數(shù)器PC指向哪個地址?PC0000H第3章 部分習題參考解答1、寫出MCS-51單片機匯編指令的指令格式,并簡單舉例。MCS-51單片機的匯編指令格式如下: 標號: 操作碼 目的操作數(shù),源操作數(shù) ;注釋操作碼表示該指令所實現(xiàn)的操作功能,一般由25個英文字母表示。例如ORL,ADD,LCALL等。操作數(shù)表示參與操作的數(shù)據(jù)來源和目的單元。操作數(shù)可以是一個立即數(shù),也可以是一個內(nèi)存單元或者是一個寄存器單元。操作碼和第一個操作數(shù)之間一般用一個或幾個空格隔開,而操作數(shù)與操作數(shù)之間用逗號隔開。操作數(shù)可以有1個,2個,個或沒有。如果需要對指令進行注釋說明的話,在最后一個操作數(shù)后加一個分號,分號后面是注釋。如:
8、 MOV A , 60H ; (60H)A標號由18個字母或數(shù)字構(gòu)成,以字母開頭以“:”結(jié)尾,標號可有可無,它僅僅代表了該指令所在的地址,便于源程序編寫過程中使用該地址。2、指出下面程序每個語句的尋址方式。目的操作數(shù)原操作數(shù)MOV A,P1寄存器尋址直接尋址MOV A,#40H寄存器尋址立即尋址MOV 80H,A直接尋址寄存器尋址MOV A,R5寄存器尋址寄存器尋址MOV R0,A寄存器間接尋址寄存器尋址MOVX A,DPTR寄存器尋址寄存器間接尋址MOVC A,A+DPTR寄存器尋址基址變址尋址MOV 74H,#80H直接尋址立即尋址3、寫出下面程序被執(zhí)行后,各數(shù)據(jù)存儲器地址中的內(nèi)容。MOV
9、 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ù)存儲器50H、51H的內(nèi)容壓棧后,分別將棧內(nèi)數(shù)據(jù)彈出到DPTR寄存器中。MOVSP, #60HPUSH 50HPUSH 51HPOP DPLPOP DPH5、訪問片內(nèi)、外數(shù)據(jù)存儲器,都用什么指令?訪問片內(nèi)數(shù)據(jù)存儲器的數(shù)據(jù)傳送指令用MOV,訪問片外數(shù)據(jù)存儲器的數(shù)據(jù)傳送指令用MOVX。6、下面的指令語句對嗎?為什么?MOV R0,#0400H;不對,R0是8位
10、寄存器源操作數(shù)超過了8位MOV 100H,A;不對,片內(nèi)數(shù)據(jù)存儲器用8位地址訪問,目的操作數(shù)的地址超過了8位。MOV R2,A;不對,能夠用于間接尋址的只能是R0或R1MOVX R1,A;對,R1做為間址寄存器來提供尋址存儲器的低8位,高8位由P2提供7、查表指令MOVC A,A+DPTR 所查的表數(shù)據(jù)是在程序存儲區(qū)還是數(shù)據(jù)存儲區(qū)?程序存儲區(qū)。9、使用位操作指令完成下列操作。 將P1.1置“1”。SETBP1.1 將ACC.7置“1”。SETBACC.710、編寫程序,將40H為首的8個單元內(nèi)容,依次反序送入到60H為首的8個單元中去。 MOVR0,#47H;40H開始的8字節(jié)數(shù)據(jù)中最后一個單
11、元的地址 MOVR1,#60H MOVR2,#8LOOP:MOVA,R0 MOV R1,A DECR0 INCR1 DJNZR2,LOOP SJMP$11、兩個四位壓縮類型BCD碼數(shù),被加數(shù)放在30H和31H內(nèi)存單元中,加數(shù)放在32H和33H內(nèi)存單元中,所求的和放在34H和35H中。位數(shù)排列按高位在低地址,低位在高地址的順序,編寫此加法程序。MOVPSW,#00H;取0組工作寄存器MOV R0,#31HMOV R1,#33HSETB RS0;取1組工作寄存器MOV R0,#35HCLR RS0MOV R2,#02HCLR C;清除進位標志,準備進行帶進位加LOOP:MOV A,R0ADDC A
12、,R1DA ASETB RS0;取1組工作寄存器MOV R0,ADEC R0CLR RS0;恢復0組工作寄存器DEC R0DEC R1DJNZ R2,LOOPSJMP $13、寫出ACALL和LCALL兩個調(diào)用指令的調(diào)用范圍,試寫出這兩條指令執(zhí)行時,CPU的操作過程。ACALL的調(diào)用范圍是包括調(diào)用指令下一條指令的第一個字節(jié)所在的2KB范圍的程序存儲器空間。ACALL調(diào)用指令的執(zhí)行過程是:PC加2(本指令代碼為兩個字節(jié))獲得下一條指令的地址,并把該斷點地址(當前的PC值)入棧,然后將斷點地址的高五位與11位目標地址(指令代碼第一字節(jié)的高3位,以及第二字節(jié)的八位)連接構(gòu)成16位的子程序入口地址,使
13、程序轉(zhuǎn)向子程序。調(diào)用子程序的入口地址和ACALL指令的下一條指令的地址,其高五位必須相同。因此子程序的入口地址和ACALL指令下一條指令的第一個字節(jié)必須在同一個2KB范圍的程序存儲器空間內(nèi)。LCALL調(diào)用指令的目標地址以16位給出,允許子程序放在64KB空間的任何地方。指令的執(zhí)行過程是把PC加上本指令代碼數(shù)(三個字節(jié))獲得下一條指令的地址,并把該斷點地址入棧(斷點地址保護),接著將被調(diào)子程序的入口地址(16位目標地址)裝入PC,然后從該入口地址開始執(zhí)行子程序。14、分析下列程序,說出此程序完成什么樣的功能。 MOV P1,#0FFH LOOP: MOV R7,#03H;該指令1個機器周期1 L
14、OOP1:MOV R6,#0FFH;該指令1個機器周期2DJNZ R6,$;該指令2個機器周期3DJNZ R7,LOOP1;該指令2個機器周期4CPL P1.0;該指令1個機器周期5JMP LOOP;該指令2個機器周期6END該程序的功能是從P1.0引腳輸出連續(xù)方波,方波的周期為(11(1223×25524)×31526)×2個機器周期15、試編寫程序,完成對十個數(shù)從大到小的排序(建議用氣泡排序法)。十個源字節(jié)數(shù)據(jù)放在30H為首的內(nèi)存區(qū)域,排序后的目標數(shù)據(jù)放在50H為首的區(qū)域。如果不破壞30H開始存放的源字節(jié)數(shù)據(jù),可以把從30H開始的數(shù)據(jù)先傳送到50H開始的數(shù)據(jù)區(qū)
15、,然后對50H開始的數(shù)據(jù)進行排序。如果不需考慮30H開始存放的數(shù)據(jù)使用后的順序,則可先對30H開始存放的數(shù)據(jù)進行排序,然后再傳送到50H開始的數(shù)據(jù)區(qū)中?,F(xiàn)根據(jù)第1種情況進行編程。MOV R0,#30HMOV R1,#50HMOV R2,#10LOP1:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOP1MOV 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 R1DJ
16、NZ R3,LOP3DJNZ R2,LOP4SJMP $第4章 部分習題參考解答1、 MCS-51單片機中,有幾個16位定時/計數(shù)器?其實際用途?MCS-51單片機中,有2個16位定時/計數(shù)器。可以用定時器在規(guī)定的時間對溫度、濕度、流量、轉(zhuǎn)速等參數(shù)進行檢測采樣,用于環(huán)境檢測、工業(yè)控制;或者利用定時器按一定的周期產(chǎn)生方波信號進行輸出;還可以通過計數(shù)器對脈沖進行計數(shù),用于信息的采集處理領(lǐng)域等。2、 通過對定時/計數(shù)器中的哪個特殊寄存器進行工作模式設(shè)置?試敘述幾種工作模式功能。通過特殊寄存器TMOD對定時/計數(shù)器進行工作模式設(shè)置。工作方式0,為13位的定時/計數(shù)器。工作方式1,為16位定時器/計數(shù)器
17、。工作方式2,為8位自動重裝定時器/計數(shù)器。工作方式3,只有定時器/計數(shù)器T0具有此工作方式,為兩個8位定時器/計數(shù)器。3、門控制信號GATE為1時,外部中斷引腳INTx在什么狀態(tài)下啟動計數(shù)?GATE為1時,在外部中斷引腳INTx1、TRx1時啟動定時器/計數(shù)器。5、定時/計數(shù)器作為計數(shù)器時,對外界技術(shù)頻率有什么要求(假定時鐘頻率為12MHz)?當定時/計數(shù)器設(shè)置為計數(shù)工作方式時,計數(shù)器對來自輸入引腳T0和T1的外部脈沖信號計數(shù),在每個機器周期的S5P2期間采樣外部脈沖,若前一個機器周期采樣到高電平,后一個機器周期采樣到低電平,則將觸發(fā)計數(shù)器加1,更新的計數(shù)值將在下一個機器周期的S3P1期間裝
18、入計數(shù)器。因此,單片機檢測一個從高電平到低電平的下降沿需要2個機器周期,要使下降沿能被檢測到,需要保證被采樣高、低電平至少維持一個機器周期的時間,即外部輸入信號的頻率不超過晶振頻率的1/24。當晶振頻率為12MHz時,最高計數(shù)頻率不超過0.5MHz,即計數(shù)脈沖的周期要大于2微秒。6、定時/計數(shù)器在何種設(shè)置下可提供3個8位定時器?當T0運行在模式3下,TH0作為定時器使用時,其啟動和關(guān)閉受誰的控制?定時器/計數(shù)器T0工作在方式3下,定時器/計數(shù)器T1工作在方式2下,可提供3個8位定時器。當T0運行在方式3下,TH0作為定時器使用時,其啟動和關(guān)閉受TR1的控制。7、當定時/計數(shù)器T0被設(shè)置為模式3
19、時,怎樣使T1啟動運行?又怎樣使其停止運行?當定時/計數(shù)器T0被設(shè)置為模式3時,定時/計數(shù)器T1只要設(shè)置好工作方式、時間常數(shù)初值,然后用控制位C/T切換其為定時或計數(shù)功能就可以使T1運行,若想停止它的運行,只要把它的工作方式設(shè)置為方式3即可,因為定時器T1沒有方式3,將它設(shè)置為方式3就使它停止工作。8、時鐘頻率為12MHz。要求定時值分別為:0.1ms、1ms、10ms;定時/計數(shù)器T0分別工作在模式0、模式1、模式2,其定時初值各為多少?方式0時,0.1ms定時的計數(shù)值為100,時間常數(shù)初值為:TH00FCH,TL01CH方式0時,1ms定時的計數(shù)值為1000,時間常數(shù)初值為:TH00E0H
20、,TL018H方式0時,最長的定時時間只能到8.192ms方式1時,0.1ms定時的計數(shù)值為100,時間常數(shù)初值為:TH00FFH,TL09CH方式1時,1ms定時的計數(shù)值為1000,時間常數(shù)初值為:TH00FCH,TL018H方式1時,10ms定時的計數(shù)值為10000,時間常數(shù)初值為:TH00D8H,TL00F0H方式2時,0.1ms定時的計數(shù)值為100,時間常數(shù)初值為:TH09CH,TL09CH方式2時,最長的定時時間只能到0.256ms9、時鐘頻率為12MHz。編寫程序完成從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型。1000Hz周期為1ms,則高電平持續(xù)時間為1ms/40
21、.25ms250us。用T0實現(xiàn)250um定時,采用工作方式2,定時時間常數(shù)為2562506。從P1.0輸出占空比為1:4,頻率為1000Hz的脈沖波型,既P1.0持續(xù)250us的高電平,250us×3的低電平。采用查詢方式實現(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采用中斷方式實現(xiàn):ORG 0000HLJMP MAINORG 000BHLJMP T0SO
22、RG 0030HMAIN: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、編寫程序。時鐘頻率為12MHz,使用T1,由P1.0、P1.1分別輸出周期為500s和2ms的方波。用T1實現(xiàn)250um定時,采用工作方式2,定時時間常數(shù)為2562506。P1.0每250us改變狀態(tài)一次,P1.1每250us
23、×4改變狀態(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ù)傳輸可以沿兩個方向,但需要分時進行。全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。16、使用哪個特殊功能寄存器來確定串行口的工
24、作方式?MCS-51單片機串行口有幾種工作方式?各工作方式的波特率如何確定?SCON用來設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標志;MCS-51單片機串行口有4種工作方式。方式0的波特率由振蕩器的頻率所確定,波特率為fosc/12;方式2時的波特率由振蕩器的頻率(fosc)和SMOD位所確定,即:方式1和3時的波特率由定時器T1和T2的溢出率和SMOD所確定。 17、晶振為11.059MHz,工作于方式1,波特率為1200b/s,用定時器/計數(shù)器T1作為波特率發(fā)生器,寫出其方式字和計數(shù)初值。T1工作在方式2下,其方式字為20H由串行口方式1的,取SMOD0,可計算出T1的溢出率384
25、00。則T1的計數(shù)值為11.0592/(38400×12)24,T1的初值為232或0E8H。18、串行口按工作方式1進行串行數(shù)據(jù)通信。晶振為11.059MHz,波特率為4800b/s,請編寫具有收發(fā)功能的串口通信程序(兩種接收方式):a、以查詢方式接收數(shù)據(jù)。b、以中斷方式接收數(shù)據(jù)。將接收數(shù)據(jù)放到30H為首的片內(nèi)存儲區(qū)中。設(shè)T1工作在方式2下,其方式字為20H由串行口方式1的,取SMOD0,可計算出T1的溢出率153600。則T1的計數(shù)值為11.0592/(153600×12)6,T1的初值為250或0FAH。二者之間的通信約定如下:(1) 當1號機發(fā)送時,先發(fā)送一個0E1
26、H聯(lián)絡(luò)信號,2號機收到后回答一個0E2H應答信號,表示同意接收。(2) 當1號機收到應答信號0E2H后,開始發(fā)送數(shù)據(jù),每發(fā)送一個數(shù)據(jù)字節(jié)都計算校驗和,假定數(shù)據(jù)塊長度為16個字節(jié),一個數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送校驗和。(3) 2號機接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),每接收到一個數(shù)據(jù)字節(jié)便計算一次校驗和,當收到一個數(shù)據(jù)塊后,再接收1號機發(fā)來的校驗和,并將它與2號機求出的校驗和進行比較。若兩者相等,說明接收正確,2號機回答00H;若兩者不相等,說明接收不正確,2號機回答0FFH,請求重發(fā)。(4) 1號機接到00H后結(jié)束發(fā)送。若收到的答復非零,則重新發(fā)送數(shù)據(jù)一次。a、以查詢方式接收數(shù)據(jù)。1號機程序清單如下:
27、ASTART:MOV TMOD,#20H;定時器1置為方式2 MOV TH1,#0FAH ;裝載定時器初值,波特率4800 MOV TL1,#0FAH MOV PCON,#00H SETB TR1 ;啟動定時器 MOV SCON,#50H ;設(shè)定串口方式1,且準備接收應答信號 ALOOP1:MOV SBUF,#0E1H ;發(fā)聯(lián)絡(luò)信號 JNB TI,$ ;等待一幀發(fā)送完畢 CLR TI ;允許再發(fā)送 JNB RI,$ ;等待2號機的應答信號 CLR RI ;允許再接收 MOV A,SBUF ;2號機應答后,讀至A XRL A,#0E2H ;判斷2號機是否準備完畢 JNZ ALOOP1 ;2號機未
28、準備好,繼續(xù)聯(lián)絡(luò) ALOOP2:MOV R0,#30H ;2號機準備好,設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗和單元ALOOP3:MOV SBUF,R0 ;發(fā)送一個數(shù)據(jù)字節(jié) MOV A,R6 ADD A,R0 ;求校驗和 MOV R6,A ;保存校驗和 INC R0 JNB TI,$ CLR TI DJNZ R7,ALOOP3 ;整個數(shù)據(jù)塊是否發(fā)送完畢 MOV SBUF,R6 ;發(fā)送校驗和 JNB TI,$ CLR TI JNB RI,$ ;等待2號機的應答信號 CLR RI MOV A,SBUF ;2號機應答,讀至A JNZ A
29、LOOP2 ;2號機應答“錯誤”,轉(zhuǎn)重新發(fā)送 RET ;2號機應答“正確”,返回2號機接收程序清單如下: BSTART:MOV TMOD,#20H MOV TH1,#0FAH MOV TL1,#0FAH MOV PCON,#00H SETB TR1 MOV SCON,#50H ;設(shè)定串口方式1,且準備接收 BLOOP2:JNB RI,$ ;等待1號機的聯(lián)絡(luò)信號 CLR RI MOV A,SBUF ;收到1號機信號 XRL A,#0E1H ;判是否為1號機聯(lián)絡(luò)信號 JZ BLOOP1 ;是1號機聯(lián)絡(luò)信號,準備接收數(shù)據(jù)MOV SBUF,#0FFH;不是1號機聯(lián)絡(luò)信號,回送錯誤標志JNB TI,$
30、CLR TI SJMPBLOOP2BLOOP1:MOV SBUF,#0E2H ;是1號機聯(lián)絡(luò)信號,發(fā)應答信號 JNB TI,$ CLR TI MOV R0,#30H ;設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗和單元BLOOP3:JNB RI,$ CLR RI MOV A,SBUF MOV R0,A ;接收數(shù)據(jù)轉(zhuǎn)儲 INC R0 ADD A,R6 ;求校驗和 MOV R6,A DJNZ R7,BLOOP3 ;判數(shù)據(jù)塊是否接收完畢 JNB RI,$ ;完畢,接收1號機發(fā)來的校驗和 CLR RI MOV A,SBUF XRL A,R6 ;
31、比較校驗和 JNZ ERROR;校驗和不相等,跳至發(fā)錯誤標志 MOV SBUF,#00H ;校驗和相等,發(fā)正確標志 SJMP END1ERROR:MOV SBUF,#0FFH ;要求重新發(fā)送數(shù)據(jù)END1:JNB TI,$ CLR TI RETb、以中斷方式接收數(shù)據(jù)。1號機程序同上。2號機接收程序清單如下: ORG 0000H LJMP BSTART ORG 0023H LJMP SIOSORG 0030HBSTART:MOV TMOD,#20H MOV TH1,#0FAH MOV TL1,#0FAH MOV PCON,#00H SETB TR1 MOVIE,#90H;開放CPU、串行口中斷MO
32、V SCON,#50H ;設(shè)定串口方式1,且準備接收SJMP $;等待中斷接收中斷ORG 0100HSIOS: PUSH PSWPUSH ACCMOV A,SBUF ;收到1號機信號 XRL A,#0E1H ;判是否為1號機聯(lián)絡(luò)信號 JZ BLOOP1 ;是1號機聯(lián)絡(luò)信號,準備接收數(shù)據(jù)MOV SBUF,#0FFH;不是1號機聯(lián)絡(luò)信號,回送錯誤標志JNB TI,$ CLR TI SJMPEXITBLOOP1:MOV SBUF,#0E2H ;是1號機聯(lián)絡(luò)信號,發(fā)應答信號 JNB TI,$ CLR TI MOV R0,#30H ;設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值
33、MOV R6,#00H ;清校驗和單元BLOOP2:JNB RI,$ CLR RI MOV A,SBUF MOV R0,A ;接收數(shù)據(jù)轉(zhuǎn)儲 INC R0 ADD A,R6 ;求校驗和 MOV R6,A DJNZ R7,BLOOP2 ;判數(shù)據(jù)塊是否接收完畢 JNB RI,$ ;完畢,接收1號機發(fā)來的校驗和 CLR RI MOV A,SBUF XRL A,R6 ;比較校驗和 JNZ ERROR;校驗和不相等,跳至發(fā)錯誤標志 MOV SBUF,#00H ;校驗和相等,發(fā)正確標志 SJMP END1ERROR:MOV SBUF,#0FFH ;要求重新發(fā)送數(shù)據(jù)END1:JNB TI,$ CLR TI E
34、XIT: POP ACCPOP PSWRETI20、簡述中斷的基本概念。中斷是指CPU正在處理某任務(wù)的過程中, 由于計算機系統(tǒng)內(nèi)、外的某種原因,發(fā)生的某一事件請求CPU及時處理,CPU暫時中止當前的工作,自動轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件后,再返回到原來被中止的斷點處繼續(xù)工作,這樣的過程稱為中斷。21、MCS-51單片機可以響應幾個中斷源?有幾個中斷優(yōu)先級?說出各中斷源的中斷矢量地址。MCS-51單片機可以響應5個中斷源,有2個中斷優(yōu)先級,各中斷源的中斷矢量地址是:INT0:0003H、T0:000BH、INT1:0013H、T1:001BH、串行口:0023H。22、在執(zhí)行中斷服務(wù)程序后
35、,用什么指令完成返回到中斷點發(fā)生處?在執(zhí)行中斷服務(wù)程序后,用RETI中斷返回指令返回到中斷點發(fā)生處。23、外部中斷有哪兩種觸發(fā)方式?對哪個特殊功能寄存器的哪個位進行設(shè)置,從而確定外部中斷的觸發(fā)方式?電平觸發(fā)方式和邊沿觸發(fā)方式兩種。對TCON寄存器中的ITx置0為電平觸發(fā)方式,置1為邊沿觸發(fā)方式。24、說出在中斷系統(tǒng)硬件確定的自然優(yōu)先級的排列順序(由高到低)。自然優(yōu)先級的排列順序是:INT0、T0、INT1、T1、串行口。25、MCS-51單片機有五個中斷源,但只能設(shè)置兩個中斷優(yōu)先級,因此,在中斷優(yōu)先級安排上受到一定的限制。試問以下幾種中斷優(yōu)先順序的安排(級別由高到低)是否可能:若可能,則應如何
36、設(shè)置中斷源的中斷級別:否則,請簡述不可能的理由。(1)定時器0,定時器1,外中斷0,外中斷1,串行口中斷??梢?。T0,T1設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP00001010B(2)串行口中斷,外中斷0,定時器0,外中斷1,定時器1??梢?。串行口設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP00010000B(3)外中斷0,定時器1,外中斷1,定時器0,串行口中斷。不可以。因為在同級中,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)先級將總是低于T0的優(yōu)先級的。(4)外中斷0
37、,外中斷1,串行口中斷, 定時器0,定時器1 ??梢?。INT0、INT1和串行口均設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP00010101B(5)串行口中斷,定時器0,外中斷0,外中斷1,定時器1??梢?。串行口、T0設(shè)置為高優(yōu)先級,其它中斷源為低優(yōu)先級。IP00010010B(6)外中斷0,外中斷1,定時器0,串行口中斷,定時器1 。不可以。同級中INT1的優(yōu)先級低于T0的優(yōu)先級,所以只能把INT0設(shè)置為高優(yōu)先級,T0為低優(yōu)先級,但這時同樣為低優(yōu)先級的串行口的優(yōu)先級是不可能比T1的優(yōu)先級高的。(7) 外中斷0,定時器1,定時器0,外中斷1,串行口中斷??梢?。INT0、T1設(shè)置為高優(yōu)先級,其它中斷源設(shè)置為低優(yōu)先級。IP00001001B第5章 部分習題參考解答1、簡述單片機最小系統(tǒng)的構(gòu)成。使單片機能運行的最少器件構(gòu)成的系統(tǒng),就是最小系統(tǒng)。對于無ROM的單片機芯片如8031必須擴展ROM,復位、晶振電路;而對于有ROM芯片:89C51等,不必擴展ROM,只要有復位、晶振電路即可。2、單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招生信息發(fā)布與答疑解惑
- 2025年度鉆井工程地質(zhì)監(jiān)理合同4篇
- 2025年度鋁合金材料行業(yè)應用研究采購合同4篇
- 基于云計算的2025年度智能安防系統(tǒng)開發(fā)與維護合同
- 2025年度地下綜合管廊零星工程施工合同4篇
- 2025版離婚房產(chǎn)分割及購房款退還與財產(chǎn)分割合同4篇
- 2024年08月遼寧興業(yè)銀行大連分行社會招考(85)筆試歷年參考題庫附帶答案詳解
- 二零二五年度大數(shù)據(jù)中心建設(shè)合同標的物采購與運維4篇
- 2025年度城市綠化工程分包合同4篇
- 水性金銀墨行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 醫(yī)療糾紛預防和處理條例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學寒假作業(yè)1
- 保險產(chǎn)品創(chuàng)新與市場定位培訓課件
- (完整文本版)體檢報告單模版
- 1例左舌鱗癌手術(shù)患者的圍手術(shù)期護理體會
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 鋼結(jié)構(gòu)牛腿計算
- 2023-2024學年重慶市兩江新區(qū)四上數(shù)學期末質(zhì)量檢測試題含答案
- 體外診斷試劑工作校準品產(chǎn)品校準品互換性(基質(zhì)效應)Excel計算模板
評論
0/150
提交評論