閱讀以下各程序片段_第1頁(yè)
閱讀以下各程序片段_第2頁(yè)
閱讀以下各程序片段_第3頁(yè)
閱讀以下各程序片段_第4頁(yè)
閱讀以下各程序片段_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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)介

1、一、閱讀以下各程序片段,指出它們執(zhí)行后各自實(shí)現(xiàn)一、閱讀以下各程序片段,指出它們執(zhí)行后各自實(shí)現(xiàn) 什么功能。什么功能。 MOV R0, #30H MOV R1, #00H LOOP: CJNE R0, #0FFH, NEXT INC R1NEXT: INC R0 CJNE R0, #51H, LOOP MOV 51H, R1第第 三三 章章 課課 堂堂 練練 習(xí)習(xí)分析下面程序段中每條指令執(zhí)行的結(jié)果。分析下面程序段中每條指令執(zhí)行的結(jié)果。MOVA,#83HMOVR0,#47HMOV47H,#34HANLA,#47HORL47H,AXRLA,R0BLOCK EQU 30HLENGTH EQU 21HRE

2、SULT EQU 20H MOV A, LENGTH JZ EXIT MOV R2, A MOV R0, # BLOCK MOV A, #0FFHLOOP: MOV B, R0CJNE A, B , CHKSJMP NOCHKCHK: JC NEXTMOV A, R0NEXT: INC R0NOCHK:DJNZ R2, LOOPMOV RESULT, AEXIT: SJMP $ 二、編寫對(duì)應(yīng)以下功能的程序。二、編寫對(duì)應(yīng)以下功能的程序。 對(duì)對(duì)DPTR 減減1. 對(duì)存放在對(duì)存放在R1R0中的中的16位數(shù)位數(shù)(低低8位在位在R0中中)左移一位左移一位,最最 低位補(bǔ)低位補(bǔ)“0”。用軟件模擬邏輯電路用軟

3、件模擬邏輯電路. P1.7=(P1.0P1.1P1.2)(P1.2+P1.3)試編寫程序試編寫程序,將內(nèi)部將內(nèi)部RAM的的20H2FH共共16個(gè)連續(xù)單元個(gè)連續(xù)單元 清零清零. 試編寫程序試編寫程序,求出內(nèi)部求出內(nèi)部RAM20H單元中的數(shù)據(jù)含單元中的數(shù)據(jù)含“1”的的 個(gè)數(shù)個(gè)數(shù),并將結(jié)果存入并將結(jié)果存入21H單元單元. 1.試編寫程序試編寫程序,查找在內(nèi)部查找在內(nèi)部RAM的的30H50H單元中出現(xiàn)單元中出現(xiàn)FFH的的 次數(shù)次數(shù),并將查找的結(jié)果存入并將查找的結(jié)果存入51H單元單元. MOV R0, #30H ; R0用作數(shù)據(jù)塊地址指針用作數(shù)據(jù)塊地址指針 MOV R1, #00H ; R1用作計(jì)數(shù)器用

4、作計(jì)數(shù)器LOOP: CJNE R0, #0FFH, NEXT INC R1 ;找到一個(gè)找到一個(gè)“FFH”,計(jì)數(shù)器加計(jì)數(shù)器加1NEXT: INC R0 ;指向下一個(gè)數(shù)指向下一個(gè)數(shù) CJNE R0, #51H, LOOP ;未完成則繼續(xù)未完成則繼續(xù) MOV 51H, R1 ;存結(jié)果存結(jié)果 SJMP $ END分析下面程序段中每條指令執(zhí)行的結(jié)果。分析下面程序段中每條指令執(zhí)行的結(jié)果。MOVA,#83H ;MOVR0,#47H ;MOV47H,#34H ;ANLA,#47H ;ORL47H,A ;XRLA,R0 ; (A)=83H(R0)=47H(47H)=34H(A)=03H(47H)=37H(A)=

5、34H3.從內(nèi)部從內(nèi)部RAM的的30H單元開(kāi)始存放著一組無(wú)符號(hào)數(shù)單元開(kāi)始存放著一組無(wú)符號(hào)數(shù),其數(shù)目存其數(shù)目存放在放在21H單元中單元中.試編寫程序試編寫程序,求出這組無(wú)符號(hào)數(shù)中的最小數(shù)求出這組無(wú)符號(hào)數(shù)中的最小數(shù),并并將其存入將其存入20H單元單元. BLOCK EQU 30HLENGTH EQU 21HRESULT EQU 20H MOV A, LENGTH JZ EXIT MOV R2, A MOV R0, # BLOCK MOV A, #0FFHLOOP: MOV B, R0CJNE A, B , CHKSJMP NOCHKCHK: JC NEXTMOV A, R0NEXT: INC R0

6、NOCHK: DJNZ R2, LOOPMOV RESULT, AEXIT: SJMP $ 1. 對(duì)對(duì)DPTR 減減1。MOV A, DPLCLR CSUBB A, #1 ;低低8位減位減1,影響影響CyMOV DPL, AMOV A, DPHSUBB A, #0 ;如果有借位如果有借位,高高8位減位減1MOV DPH, A 2.對(duì)存放在對(duì)存放在R1R0中的中的16位數(shù)位數(shù)(低低8位在位在R0中中)左移一位左移一位, 最低位補(bǔ)最低位補(bǔ)“0”。MOV A, R0CLR CRLC A ;左移左移,“0”移入最低位移入最低位,最高位移入最高位移入CyMOV R0, AMOV A, R1RLC A ;

7、左移高左移高8位位MOV R1, A 3. 用軟件模擬邏輯電路用軟件模擬邏輯電路. P1.7=(P1.0P1.1P1.2)(P1.2+P1.3) MOV A, P1 ; MOV C, ACC.2 ORL C, ACC.3 ;CP1.2P1.3 MOV ACC.4, C ;暫存于暫存于ACC.4 MOV C, ACC.0ANL C, ACC.1ANL C, /ACC.2 ;CP1.0P1.1P1.2CPL CANL C, ACC.4 ; CP1.0P1.1P1.2(P1.2P1.3)CPL CMOV P1.7, C ;輸出輸出 4.試編寫程序試編寫程序,將內(nèi)部將內(nèi)部RAM的的20H2FH共共16

8、個(gè)連續(xù)個(gè)連續(xù) 單元清零單元清零. MOV R0, #20H CLR ALOOP: MOV R0, A INC R0 CJNE R0, #30H, LOOP SJMP $ 5.試編寫程序試編寫程序,求出內(nèi)部求出內(nèi)部RAM20H單元中的數(shù)據(jù)含單元中的數(shù)據(jù)含“1”的的 個(gè)數(shù)個(gè)數(shù),并將結(jié)果存入并將結(jié)果存入21H單元單元.MOV R2, #8 ;需要移位需要移位8次次MOV R1, #0 ; R1為計(jì)數(shù)器為計(jì)數(shù)器MOV A, 20H ;取數(shù)取數(shù) AGAIN:RLC A ;最高位移入最高位移入CyJNC NEXTINC R1 ; Cy=1,則計(jì)數(shù)器加則計(jì)數(shù)器加1 NEXT: DJNZ R2, AGAINM

9、OV 21H, R1 ;存結(jié)果存結(jié)果END 試分析以下幾種中斷優(yōu)先級(jí)的排列順序(級(jí)別由高到 低)是否可能?若可能,則應(yīng)如何設(shè)置中斷源的中斷 級(jí)別?否則,請(qǐng)簡(jiǎn)述不可能的理由。 定時(shí)器T0溢出中斷,定時(shí)器T1溢出中斷,外中斷 INT0,外中斷INT1,串行口中斷; 串行口中斷,外中斷INT0,定時(shí)器T0溢出中斷,外 中斷INT1,定時(shí)器T1溢出中斷; 第第 四四 章章 課課 堂堂 練練 習(xí)習(xí) 外中斷INT0,定時(shí)器T1溢出中斷,外中斷INT1, 定 時(shí)器T0溢出中斷,串行口中斷; 外中斷INT0,外中斷INT1,串行口中斷,定時(shí)器 T0溢出中斷,定時(shí)器T1溢出中斷; 串行口中斷,定時(shí)器T0溢出中斷

10、,外中斷INT0, 外中斷INT1,定時(shí)器T1溢出中斷; 外中斷INT0,外中斷INT1,定時(shí)器T0溢出中斷, 串行口中斷,定時(shí)器T1溢出中斷; 外中斷INT0,定時(shí)器T1溢出中斷,定時(shí)器T0溢出 中斷,外中斷INT1,串行口中斷; 已知單片機(jī)系統(tǒng)時(shí)鐘頻率已知單片機(jī)系統(tǒng)時(shí)鐘頻率fosc=6MHz,若要求定時(shí),若要求定時(shí) 值分別為值分別為0.1ms、1ms和和10ms,定時(shí)器工作在方式,定時(shí)器工作在方式0、 方式方式1、方式、方式2時(shí),定時(shí)器對(duì)應(yīng)的初值各為多少?時(shí),定時(shí)器對(duì)應(yīng)的初值各為多少? 知單片機(jī)系統(tǒng)時(shí)鐘頻率知單片機(jī)系統(tǒng)時(shí)鐘頻率fosc=6MHz,試編寫程序,試編寫程序, 使使P1.0輸出如

11、下矩形脈沖(建議用定時(shí)器工作方式輸出如下矩形脈沖(建議用定時(shí)器工作方式 2):高電平脈寬為):高電平脈寬為 40s ,低電平脈寬為,低電平脈寬為 360s。 試設(shè)計(jì)一個(gè)單片機(jī)的雙機(jī)通信系統(tǒng),并編寫通信程試設(shè)計(jì)一個(gè)單片機(jī)的雙機(jī)通信系統(tǒng),并編寫通信程 序,將甲機(jī)內(nèi)部序,將甲機(jī)內(nèi)部RAM 30H3FH存儲(chǔ)區(qū)的數(shù)據(jù)通過(guò)存儲(chǔ)區(qū)的數(shù)據(jù)通過(guò) 串行口傳送到乙機(jī)內(nèi)部串行口傳送到乙機(jī)內(nèi)部RAM 40H4FH存儲(chǔ)區(qū)中去。存儲(chǔ)區(qū)中去。 解答:解答: 能夠能夠?qū)崿F(xiàn)。只需將實(shí)現(xiàn)。只需將T0 和和T1溢出中斷設(shè)置為高優(yōu)先級(jí)溢出中斷設(shè)置為高優(yōu)先級(jí) 中斷,其余為低優(yōu)先級(jí)中斷。中斷,其余為低優(yōu)先級(jí)中斷。 能夠能夠?qū)崿F(xiàn)。將串行口中

12、斷設(shè)置為高優(yōu)先級(jí)中斷,其實(shí)現(xiàn)。將串行口中斷設(shè)置為高優(yōu)先級(jí)中斷,其 余為低優(yōu)先級(jí)中斷。余為低優(yōu)先級(jí)中斷。 不能不能實(shí)現(xiàn)。即使將外中斷實(shí)現(xiàn)。即使將外中斷INT0和溢出中斷和溢出中斷T1設(shè)置為設(shè)置為 高優(yōu)先級(jí)中斷,但其余高優(yōu)先級(jí)中斷,但其余3個(gè)中斷源在同一低優(yōu)先級(jí)個(gè)中斷源在同一低優(yōu)先級(jí) 中,中, 硬件查詢次序規(guī)定為溢出中斷硬件查詢次序規(guī)定為溢出中斷T0級(jí)別高于外級(jí)別高于外 中斷中斷INT1,無(wú)法顛倒。,無(wú)法顛倒。 能夠能夠?qū)崿F(xiàn)。將外中斷實(shí)現(xiàn)。將外中斷INT0、INT1以及串行口中斷設(shè)以及串行口中斷設(shè) 置為高優(yōu)先級(jí)中斷,其余為低優(yōu)先級(jí)中斷。置為高優(yōu)先級(jí)中斷,其余為低優(yōu)先級(jí)中斷。 不能不能實(shí)現(xiàn)。雖然可以

13、將串行口中斷設(shè)置為高優(yōu)先級(jí)實(shí)現(xiàn)。雖然可以將串行口中斷設(shè)置為高優(yōu)先級(jí) 中斷,但其余中斷,但其余4個(gè)中斷源在同一低優(yōu)先級(jí)里的優(yōu)先級(jí)個(gè)中斷源在同一低優(yōu)先級(jí)里的優(yōu)先級(jí) 別只能由硬件查詢次序來(lái)安排,這樣,溢出中斷別只能由硬件查詢次序來(lái)安排,這樣,溢出中斷T0 不能優(yōu)于外中斷不能優(yōu)于外中斷INT0。 不能不能實(shí)現(xiàn)。如果單獨(dú)將溢出中斷實(shí)現(xiàn)。如果單獨(dú)將溢出中斷T1設(shè)置為低優(yōu)先級(jí)設(shè)置為低優(yōu)先級(jí) 中斷,其余為高優(yōu)先級(jí)中斷,在同一高優(yōu)先級(jí)的中斷,其余為高優(yōu)先級(jí)中斷,在同一高優(yōu)先級(jí)的4個(gè)個(gè) 中斷源硬件查詢次序規(guī)定了溢出中斷中斷源硬件查詢次序規(guī)定了溢出中斷T0優(yōu)先于外優(yōu)先于外 中斷中斷INT1,所以不能滿足所要求的優(yōu)先

14、順序。,所以不能滿足所要求的優(yōu)先順序。 能夠能夠?qū)崿F(xiàn)。將外中斷實(shí)現(xiàn)。將外中斷INT0和溢出中斷和溢出中斷T1設(shè)置為高設(shè)置為高 優(yōu)先級(jí)中斷,其余為低優(yōu)先級(jí)中斷。優(yōu)先級(jí)中斷,其余為低優(yōu)先級(jí)中斷。 已知單片機(jī)系統(tǒng)時(shí)鐘頻率已知單片機(jī)系統(tǒng)時(shí)鐘頻率fosc=6MHz,若要求定時(shí),若要求定時(shí) 值分別為值分別為0.1ms、1ms和和10ms,定時(shí)器工作在方式,定時(shí)器工作在方式0、 方式方式1、方式、方式2時(shí),定時(shí)器對(duì)應(yīng)的初值各為多少?時(shí),定時(shí)器對(duì)應(yīng)的初值各為多少? 解:時(shí)鐘頻率為解:時(shí)鐘頻率為6MHz,機(jī)器周期為,機(jī)器周期為2s。定時(shí)器用作。定時(shí)器用作 定時(shí),計(jì)數(shù)器對(duì)機(jī)器周期進(jìn)行加定時(shí),計(jì)數(shù)器對(duì)機(jī)器周期進(jìn)行加

15、1計(jì)數(shù),計(jì)數(shù), 由公式由公式 X=2n-定時(shí)值定時(shí)值t/機(jī)器周期知道機(jī)器周期知道:計(jì)數(shù)器的值計(jì)數(shù)器的值X與定時(shí)與定時(shí) 值值t的關(guān)系為:的關(guān)系為: 2n-計(jì)數(shù)器初值計(jì)數(shù)器初值x=定時(shí)值定時(shí)值t/機(jī)器周期機(jī)器周期 其中:其中:n由工作方式?jīng)Q定,可為由工作方式?jīng)Q定,可為13,16或或8。定時(shí)值為定時(shí)值為0.1ms時(shí):時(shí): 2n-計(jì)數(shù)器初值計(jì)數(shù)器初值x=100/2=50 即需要即需要50個(gè)機(jī)器周期,所以方式個(gè)機(jī)器周期,所以方式0、1、2都能實(shí)現(xiàn)。都能實(shí)現(xiàn)。 方式方式0:n=13,213-x=50,x=8142=1111111001110B, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為:TH0=0FEH, TL0=0EH

16、 。 方式方式1:n=16,216-x=50,x=65486=0FFCEH, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為:TH0=0FFH, TL0=0CEH 。 方式方式2:n=8,28-x=50,x=206=1100 1110B, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為:TH0=0CEH, TL0=0CEH 。定時(shí)值為定時(shí)值為1ms:2n-計(jì)數(shù)器初值計(jì)數(shù)器初值=1000/2=500 即需要即需要500個(gè)機(jī)器周期,所以方式個(gè)機(jī)器周期,所以方式0、1、可以實(shí)現(xiàn),、可以實(shí)現(xiàn), 而方式而方式2不能實(shí)現(xiàn),因?yàn)榉绞讲荒軐?shí)現(xiàn),因?yàn)榉绞?最大的定時(shí)只能為最大的定時(shí)只能為256 個(gè)機(jī)器周期。個(gè)機(jī)器周期。 方式方式0:n=13,213-x=

17、500,x=7692=1111000001100B, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為 : TH0=0F0H, TL0=0CH 方式方式1:n=16,216-x=500,x=65036=0FE0CH, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為: TH0=FEH, TL0=0CH 定時(shí)值為定時(shí)值為10ms:2n-計(jì)數(shù)器初值計(jì)數(shù)器初值=100/2=5000 即需要即需要5000個(gè)機(jī)器周期,所以方式個(gè)機(jī)器周期,所以方式0、1可以實(shí)現(xiàn),而可以實(shí)現(xiàn),而 方式方式2不能實(shí)現(xiàn)。不能實(shí)現(xiàn)。 方式方式0:n=13,213-x=5000,x=3192=110001111000B, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為:TH0=63H, TL0=18

18、H 方式方式1:n=16,216-x=5000,x=60536=0EC78H, 計(jì)數(shù)器初值為計(jì)數(shù)器初值為:TH0=ECH, TL0=78H 解:定時(shí)矩形波高電平和低電平持續(xù)時(shí)間所對(duì)應(yīng)的解:定時(shí)矩形波高電平和低電平持續(xù)時(shí)間所對(duì)應(yīng)的8位位 計(jì)數(shù)器的初值分別為:計(jì)數(shù)器的初值分別為: 定時(shí)定時(shí)40s:28x=40/2, 初值初值x=236=0ECH 定時(shí)定時(shí)360s:28x=360/2, 初值初值x=76=4CH 程序如下:程序如下: ORG 0000H LJMP MAIN 知單片機(jī)系統(tǒng)時(shí)鐘頻率知單片機(jī)系統(tǒng)時(shí)鐘頻率fosc=6MHz,試編寫程序,試編寫程序, 使使P1.0輸出如下矩形脈沖(建議用定時(shí)器

19、工作方式輸出如下矩形脈沖(建議用定時(shí)器工作方式 2):高電平脈寬為):高電平脈寬為 40s ,低電平脈寬為,低電平脈寬為 360s。 ORG 000BH LJMP PULSEMAIN:MOV TMOD, #02H ;T0,方式方式2 MOV TH0, #4CH ;定時(shí)定時(shí)360s MOV TL0, #4CH SETB ET0 SETB EA ;開(kāi)中斷開(kāi)中斷 CLR P1.0 ;輸出低電平輸出低電平 CLR F0 ; F0=0,輸出低電平標(biāo)志,輸出低電平標(biāo)志 SETB TR0 ;啟動(dòng)定時(shí)啟動(dòng)定時(shí) SJMP $ PULSE:JNB F0, NEXT1 ;中斷服務(wù)程序中斷服務(wù)程序 MOV TH0,

20、#4CH ; 定時(shí)定時(shí)360s MOV TL0, #4CH SJMP NEXT2 NEXT1: MOV TH0, #0ECH ; 定時(shí)定時(shí)40s MOV TL0, #0ECH NEXT2: CPL F0 CPL P1.0 RETI END 試設(shè)計(jì)一個(gè)單片機(jī)的雙機(jī)通信系統(tǒng),并編寫通信程試設(shè)計(jì)一個(gè)單片機(jī)的雙機(jī)通信系統(tǒng),并編寫通信程 序,將甲機(jī)內(nèi)部序,將甲機(jī)內(nèi)部RAM 30H3FH存儲(chǔ)區(qū)的數(shù)據(jù)通過(guò)存儲(chǔ)區(qū)的數(shù)據(jù)通過(guò) 串行口傳送到乙機(jī)內(nèi)部串行口傳送到乙機(jī)內(nèi)部RAM 40H4FH存儲(chǔ)區(qū)中去。存儲(chǔ)區(qū)中去。其中:其中:甲機(jī)串行口工作于甲機(jī)串行口工作于 方方2發(fā)送,將發(fā)送,將 30H 3FH的內(nèi)容從串行的內(nèi)容從串行 口輸出,口輸出,TB8作奇作奇 偶校驗(yàn)位。偶校驗(yàn)位。 程序如下:程序如下:RXDTXDGNDTXDRXDGND甲機(jī)甲機(jī)乙機(jī)乙機(jī)解:雙機(jī)串行通信異步系統(tǒng)組成如下圖所示:解:雙機(jī)串行通信異步系統(tǒng)組成如下圖所示:SEND: MOV SCON, #80H ;串行口方式串行口方式2 MOV PCON, #80H ;波特率為波特率為fosc/32 MOV R0, #30H ;數(shù)據(jù)區(qū)指針數(shù)據(jù)區(qū)指針 MOV R7, #10H ;長(zhǎng)度長(zhǎng)度LOOP: MOV A, R0 MOV C, P MOV TB8, C ; TB8P MOV

溫馨提示

  • 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)論