單片機(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è),還剩15頁(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、單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ)習(xí)題解答預(yù)備篇計(jì)算機(jī)的基礎(chǔ)知識(shí)0.1 40H,62H,50H,64H,7DH ,FFH0.2 812 ,104, 213, 256, 2936, 9410.3 十進(jìn)制數(shù)原碼補(bǔ)碼十進(jìn)制數(shù)原碼補(bǔ)碼281CH1CH250FAHFAH-289CHE4H-347815BHFEA5H10064H64H92803A0H03A0H-1308082HFF7EH-92883A0HFC60H0.4 機(jī)器數(shù)真值分別為: 27,233,128,8,14717,31467,27824,124780.5 (1) 33H+5AH8DH, OV=1, CY=0。 (2) -29H-5DH

2、7AH, OV=0, CY=1。 (3) 65H-3EH27H, OV=0, CY=1。 (4) 4CH-68HE4H, OV=0, CY=0。0.6 十進(jìn)制數(shù)壓縮BCD數(shù)非壓縮BCD數(shù)ASCII碼3838H0308H3338H255255H020505H323535H483483H040803H343833H764764H070604H373634H10001000H01000000H31303030H10251025H01000205H31303235H0.7 ASCII碼表示的十六進(jìn)制數(shù)分別為: 105H, 7CAH, 2000H,8A50H基礎(chǔ)篇第1章、MCS-51單片機(jī)結(jié)構(gòu)1.1 單

3、片微型計(jì)算機(jī)(即單片機(jī))是包含CPU、存儲(chǔ)器和I/O接口的大規(guī)模集成芯片,即它本身包含了除外部設(shè)備以外構(gòu)成微機(jī)系統(tǒng)的各個(gè)部分,只需接外設(shè)即可構(gòu)成獨(dú)立的微機(jī)應(yīng)用系統(tǒng)。微機(jī)處理器僅為CPU,CPU是構(gòu)不成獨(dú)立的微機(jī)系統(tǒng)的。1.2 參見(jiàn)教材1.1.1節(jié)1.3 參見(jiàn)教材第6頁(yè)表格1.4 參見(jiàn)教材表1.41.5 參見(jiàn)教材表1.1和表1.21.6 當(dāng)PSW=10H 表明選中的為第二組通用寄器 R0R7的地址為10H17H1.7 程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器盡管地址相同,但在數(shù)據(jù)操作時(shí),所使用的指令不同,選通信號(hào)也不同,因此不會(huì)發(fā)生錯(cuò)誤。1.8 內(nèi)部數(shù)據(jù) 程序 外部數(shù)據(jù) 程序1.9 振蕩周期=0.1667s 機(jī)器

4、周期=2s 指令周期=28s1.10 A=0,PSW=0,SP=07,P0P3=FFH第2章、51系列單片機(jī)的指令系統(tǒng)2.1 參見(jiàn)教材2.1節(jié)2.2 因?yàn)锳累加器自帶零標(biāo)志,因此若判斷某內(nèi)部RAM單元的內(nèi)容是否為零,必須將其內(nèi)容送到A,JZ指令即可進(jìn)行判斷。2.3 當(dāng)A=0時(shí),兩條指令的地址雖然相同,但操作碼不同,MOVC是尋址程序存儲(chǔ)器,MOVX是尋址外部數(shù)據(jù)存儲(chǔ)器,送入A的是兩個(gè)不同存儲(chǔ)空間的內(nèi)容。2.4 目的操作數(shù) 源操作數(shù) 寄存器 直接 SP間接尋址 直接 直接 直接 直接 立即 寄存器間址 直接 寄存器 變址 寄存器間址 寄存器2.5 Cy=1, OV=0, A=94H2.6 

5、15; × × × × × × × × × × × × × × ×2.7 A=25H (50H)=0 (51H)=25H (52H)=70H2.8 SP=(61H)(SP)=(24H)SP=(62H)(SP)=(10H)SP=(61H) DPL =(10H)SP=(60H) DPH=(24H)執(zhí)行結(jié)果將0送外部數(shù)據(jù)存儲(chǔ)器的2410單元2.9 程序運(yùn)行后內(nèi)部RAM(20H)=B4H,A=90H2.10 機(jī)器碼 源程序 7401 LA:MOV A,#

6、01H F590 LB:MOV P1,A 23 RL A B40AFA CJNE,#10,LB 80F6 SJMP LA2.11 ANL A,#0FH SWAP A ANL P1,#0FH ORL P1,A SJMP $2.12 MOV A,R0 XCH A,R1 MOV R0,A SJMP $2.13 (1)利用乘法指令 MOV B,#04H MUL AB SJMP $ (2) 利用位移指令RL A RL A MOV 20H,A ANL A,#03H MOV B,A MOV A,20H ANL A,#0FCH SJMP $(3)用加法指令完成ADD A,ACC MOV R0,A ;R0=2A

7、 MOV A,#0 ADDC A,#0 MOV B,A ;B存2A的進(jìn)位 MOV A,R0 ADD A,ACC MOV R1,A ;R1=4A MOV A,B ADDC A,B ;進(jìn)位×2 MOV B,A ;存積高位 MOV A,R1 ;存積低位 SJMP $2.14 XRL 40H,#3CH SJMP $2.15 MOV A,20H ADD A,21H DA A MOV 22H,A ;存和低字節(jié) MOV A,#0 ADDC A,#0 MOV 23H,A ;存進(jìn)位 SJMP $2.16 MOV A,R0 JZ ZE MOV R1,#0FFH SJMP $ ZE:MOV R1,#0 S

8、JMP $2.17 MOV A,50H MOV B,51H MUL AB MOV 53H,B MOV 52H,A SJMP $2.18 MOV R7,#0AH WOP:XRL P1,#03H DJNZ R7,WOP SJMP $2.19 單片機(jī)的移位指令只對(duì)A,且只有循環(huán)移位指令,為了使本單元的最高位移進(jìn)下一單元的最低位,必須用大循環(huán)移位指令移位4次。ORG 0CLR CMOV A,20H RLC A MOV 20H,A MOV A,21H RLC A MOV 21H,A MOV A,22H RLC A MOV 22H,A MOV A,#0 RLC A MOV 23H,A SJMP $第3章、

9、MSC-51單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)3.1 因?yàn)槭嵌鄠€(gè)單元操作,為方便修改地址使用間址操作。片外地址用DPTR指示,只能用MOVX指令取數(shù)到A,片內(nèi)地址用R0或R1指示,只能用MOV指令操作,因此循環(huán)操作外部數(shù)據(jù)存貯器A 內(nèi)部部數(shù)據(jù)存貯器。 ORG 0000H MOV DPTR,#1000H MOV R0,#20H LOOP:MOVX A,DPTR MOV R0,A INC DPTR INC R0 CJNE R0,#71H,LOOP SJMP $3.2 要注意兩高字節(jié)相加應(yīng)加低字節(jié)相加時(shí)產(chǎn)生的進(jìn)位,同時(shí)要考慮最高位的進(jìn)位。ORG 0 MOV A,R0 ADD A,R6 MOV 50H,A MOV

10、 A,R7 ADDC A,R1 MOV 51H,A MOV A,#0 ADDC A,ACC MOV 52H,A SJMP $3.3 A中放小于14H(20)的數(shù),平方表的一個(gè)數(shù)據(jù)占2個(gè)字節(jié),可用BCD碼或二進(jìn)制數(shù)存放.(如A中放的是BCD碼,則要先化成二進(jìn)制數(shù)再查表。) ORG 0 MOV DPTR,#TAB ADD A,ACC ;A*2 PUSH ACC MOVC A,A+DPTR MOV R7,A POP ACC INC AMOVC A,A+DPTR MOV R6,A SJMP $TAB: DB 00,00,00,01,00,04, 00,09,00,16H, DB 04H,00 3.4

11、先用異或指令判兩數(shù)是否同號(hào),在同號(hào)中判大小,異號(hào)中正數(shù)為大.ORG 0 MOV A,20H XRL A,21H ANL A,#80H JZ CMP JB 20H.7,BGAG: MOV 22H,20H SJMP $ BG: MOV 22H,21H SJMP $ CMP: MOV A,20H CJNE A,21H,GR GR: JNC AG MOV 22H,21HSJMP $ 3.5 fosc=6MHZ機(jī)器周期數(shù) DELAY:MOV R1,#0F8H 1 LOOP: MOV R3,#0FAH 1 DJNZ R3,$ 2 DJNZ R1,LOOP 2 RET 2(1+(1+2*0xFA+2)*0x

12、F8+2)*12/6MHz=(1+(1+2*250+2)*248+2)*2us=249.494ms3.6 將待轉(zhuǎn)換的數(shù)分離出高半字節(jié)并移到低4位 加30H;再將待轉(zhuǎn)換的數(shù)分離出低半字節(jié)并30H,安排好源地址和轉(zhuǎn)換后數(shù)的地址指針,置好循環(huán)次數(shù)。ORG 0000H MOV A,R0 MOV R7,#05H ANL A, #0FH MOV R0,#20H ADD A,#30H MOV R1,#25H MOV R1,A NET:MOV A,R0 INC R0 ANL A,#0F0H INC R1 SWAP A DJNZ R7,NE ADD A,#30H SJMP $ MOV R1,A END INC

13、R13.7 片內(nèi)RAM間址寄存器只能有R0和R1兩個(gè),而正數(shù)、負(fù)數(shù)和零共需3個(gè)寄存器指示地址,這時(shí)可用堆棧指針指示第三個(gè)地址,POP和PUSH在指令可自動(dòng)修改地址。R0指正數(shù)存放地址和R1指負(fù)數(shù)存放地址 ,SP指源數(shù)據(jù)存放的末地址,POP指令取源數(shù)據(jù),每取一個(gè)數(shù)地址減1。 ORG 0000H MOV R7,#10H MOV A,#0 MOV R0,A MOV R4,A INC R0 MOV R5,A AJMP DJ MOV R6,A NE:INC R5 MOV R0,#40H MOV R1,A MOV R1,#50H INC R1 MOV SP,#3FH AJMP DJ NEXT:POP AC

14、C ZER0:INC R6 JZ ZER0 DJ: DJNZ R7,NEXT JB ACC.7,NE SJMP $ INC R4 END3.8 可直接用P標(biāo)志判斷(JB P ,ret) ORG 0000H MOV A,40H JB P,EN ;奇數(shù)個(gè)1轉(zhuǎn)移 ORL A,#80H ;偶數(shù)個(gè)1 最高位加“1” EN: SJMP $3.9取補(bǔ)不同于求補(bǔ)碼,求補(bǔ)碼應(yīng)區(qū)別正、負(fù)數(shù)分別處理,而取補(bǔ)不分正、負(fù),因正、負(fù)數(shù)均有相對(duì)于模的補(bǔ)數(shù)。用取反加1求補(bǔ)也可用模(00H)減該數(shù)的方法求補(bǔ)。 ORG 0000H MOV R7,#03H AB:INC R0 MOV R0,#DAT A MOV A,R0 MOV

15、A,R0 CPL A CPL A ADDC A,#0 ADD A,#01 DJNZ R7,AB MOV R0,A SJMP $3.10 16個(gè)單字節(jié)累加應(yīng)用ADD指令而不能用ADDC指令,和的低位存A,當(dāng)和超過(guò)一個(gè)字節(jié),和的高字節(jié)存于B,并要加進(jìn)低位相加時(shí)產(chǎn)生的進(jìn)位,16個(gè)單字節(jié)加完后,采用右移4次進(jìn)行除十六求平均值的運(yùn)算,商在BUF2單元,余數(shù)在BUF2-1單元。ORG 0000HMOV R7,#0FHMOV R0,#BUF1MOV B,#0 MOV A,R0 MOV R2,ANEXT:MOV A,R2 INC R0ADD A,R0MOV R2,AMOV A,BADDC A,#0MOV B,

16、ADJNZ R7,NEXT ;以上完成求和MOV R6,#04HMOV BUF2,AMOV BUF2-1,#0 NEX: CLR CMOV A,BRRC AMOV B,AMOV A,BUF2RRC AMOV BUF2,AMOV A,BUF2-1RRC AMOV BUF2-1,ADJNZ R6,NEXSJMP $ ;以上完成除十六運(yùn)算3.11 將20H單元的內(nèi)容分解為高4位和低4位,根據(jù)是否大于9分別作加37H和30H處理。ORG 0000HMOV A,20HANL A,#0F0HSWAP AACALL ASCIIMOV 22H,AMOV A,20HANL A,#0FHACALL ASCIIMO

17、V 21H,ASJMP $ASCII: CJNE A,#0AH,NENE: JC A30ADD A,#37HRETA30: ADD A,30HRET3.12 要注意,位的邏輯運(yùn)算其中一個(gè)操作數(shù)必須在C。ORG 0000H MOV C,20H ANL C,2FH CPL C ORL C,/2FH CPL C ANL C,53H MOV P1.0,C SJMP $ END3.13ORG 0000H MOV C,ACC.3 ANL C,P1.4 ANL C,/ACC.5 MOV 20H,C MOV C,B.4 CPL C ANL C,/P1.5 ORL C,20H MOV P1.2,C SJMP $

18、 END3.14 設(shè)一字節(jié)乘數(shù)存放在R1,三字節(jié)的被乘數(shù)存放在data開(kāi)始的內(nèi)部RAM單元,且低字節(jié)存放在低位地址單元,R0作為被乘數(shù)和積的地址指針,用MUL指令完成一字節(jié)乘一字節(jié),每一次部分積的低位加上一次部分積的高位,其和的進(jìn)位加在本次部分積的高位上,并暫存,三字節(jié)乘一字節(jié)共需這樣三次乘、加、存操作,以R7作循環(huán)三次的計(jì)數(shù)寄存器。 ORG 0000H MOV R7,#03H MOV A,#0 MOV R0,#data ADDC A,B MOV R2,#0 MOV R2,A NEXT:MOV A,R0 INC R0 MOV B,R1 DJNZ R7,NEXT MUL AB MOV R0,B

19、ADD A,R2 SJMP $ MOV R0,A END第4章、并行接口P0-P3和單片機(jī)的中斷系統(tǒng)4.14.3 參考教材4.1節(jié)4.4用P1.7監(jiān)測(cè)按鍵開(kāi)關(guān),P1.0引腳輸出正脈沖,正脈沖的產(chǎn)生只需要將P1.0置零、置1、延時(shí)、再置零即可。P1.0接一示波器可觀察波形。如果再接一發(fā)光二極管,可觀察到發(fā)光二極管的閃爍。電路設(shè)計(jì)可參考圖4.4匯編語(yǔ)言程序ORG 0000H ABC:CLR P1.0 SETB P1.7 JB P1.7,$ ;未按鍵等待 JNB P1.7,$ ;鍵未彈起等待 SETB P1.0 MOV R2,#0 DAY:NOP NOP DJNZ R2,DAY圖4.4 SJMP A

20、BC4.5 電路見(jiàn)圖4.5, 初始值送0FH到P1, 再和0FFH異或從P1口輸出,或使用SWAP A指令,然后從P1口輸出,循環(huán)運(yùn)行,要注意輸出后要延時(shí)。匯編語(yǔ)言程序 ORG 0000H MOV A,#0FH ABC:MOV P1,A ACALL D05 SWAP A SJMP ABC D05:MOV R6,250 DY: MOV R7,250 DAY:NOP圖4.5NOP DJNZ R7,DAY DJNZ R6,DY RET END4.6 如使用共陰極數(shù)碼管,陰極接地,陽(yáng)極ag分別接P0P3的某個(gè)口的7位,將0F的段碼列成表,表的內(nèi)容順次從該口輸出。如數(shù)碼管接P3口。匯編語(yǔ)言程序 ORG

21、0000H MOV DPTR,#TAB AGAIN:MOV R0,#0 NEXT:MOV A,R0 MOVC A,A+DPTRMOV P3,A MOV R7,#0 DAY:NOP NOP DJNZ R7,DAY INC R0 CJNE R0,#10H,NEXT SJMP AGAIN TAB: DB 3FH,06H ;段碼表(略) END4.7電路設(shè)計(jì)見(jiàn)圖4.7,編程如下: ORG 0000H MOV A,#08H MOV DPTR,#TAB MOVC A,A+DPTRMOV P1,AMOV R2,#08H AGAIN:MOV A,#01 NEXT:MOV P3,A ACALL DAYRL AC

22、JNE A,#10H,NEXTDJNZ R2,AGAINSJMP $ TAB: DB 3FH,06H··· 圖4.7END4.8 P1口的八根線接行線,輸出行掃描信號(hào),P3口的八根線接列線,輸入回饋信號(hào)。見(jiàn)圖4.8。4.94.12參見(jiàn)4.2節(jié)4.13 電路設(shè)計(jì)見(jiàn)圖4.13 匯編語(yǔ)言程序ORG 0000H AJMP MAIN ORG 0003H RL A ;中斷服務(wù) MOV P1,A RETI圖4.8 MAIN:MOV A,#0FEH MOV P1,A ;第一燈亮 SETB EA SETB EX0 SETB IT0 SJMP $匯編語(yǔ)言中只有一個(gè)中斷源,不存在占用別

23、的中斷源向量地址問(wèn)題,程序順序排下,應(yīng)注意程序的執(zhí)行過(guò)程。C語(yǔ)言無(wú)循環(huán)移位指令移位后,后面補(bǔ)零,因此和01相或。4.14 略4.15 圖4.13ORG 0000H AJMP MAIN ORG 0003H ;中斷服務(wù) XRL P1,#0FFH DJNZ R0,NECLR EANE:RETI ORG 0030H MAIN:SETB EA SETB EX0 SETB IT0 MOV P1,#0FFHMOV R0,#0AH SJMP $ ;等待中斷因一亮一滅為一次,所以共十次。4.16 兩個(gè)數(shù)碼管陽(yáng)極經(jīng)驅(qū)動(dòng)器接P1口,陰極分別接P3.0、P3.1。aa EQU 08H;存儲(chǔ)高四位的段碼bb EQU 0

24、9H;存儲(chǔ)第四位的段碼i EQU 0AH;存儲(chǔ)計(jì)數(shù)值Tab:DB 3FH,06H ;段碼表略O(shè)RG 0000HAJMP MAINORG 0013HAJMP INTRMAIN:MOV DPTR,#TabCLR AMOVC A,A+DPTRMOV aa,AMOV bb,A;a=b=Tab0CLR P3.0CLR P3.1SETB EASETB EX0SETB IT0;開(kāi)中斷LOOP:SETB P3.0CLR P3.1MOV P1,bb;顯示低位ACALL Delay;延時(shí)CLR P3.0SETB P3.1MOV P1,aa;顯示高位ACALL Delay;延時(shí)SJMP LOOPINTR:CLR E

25、X0INC i;i加一MOV A,iANL A,#0FH;取i的低位MOV DPTR,#TabMOVC A,A+DPTRMOV bb,A;查表b=Tabi的低位MOV A,iANL A,#0F0HSWAP A;取i的高位MOVC A,A+DPTRMOV aa,A;查表a=Tabi的高位SETB EX0RETIDelay:;略END4.17提示:將X1至X3分別接至一個(gè)三輸入或非門(mén)的三個(gè)輸入端,同時(shí)還分別接至單片機(jī)的三個(gè)IO口,或非門(mén)的輸出端接至單片機(jī)的外部中斷引腳。中斷服務(wù)程序中檢查三個(gè)IO口的值,便可知道具體的故障源。程序略。第五章、單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口5.15.3 請(qǐng)參考教材5.

26、4 方式0: 16.38ms 方式1: 131ms 方式2: 512s5.5 使用方式2 計(jì)數(shù)初值C=100H-0AH=F6H查詢方式:ORG 0000HMOV TMOD,#06H MOV TH0,#0F6H MOV TL0,#0F6H SETB TR0 ABC: JNB TF0,$ CLR TF0 CPL P1.0 SJMP ABC中斷方式:ORG 0000H AJMP MAIN ORG 0000BH CPL P1.0 RETIMAIN: MOV TMOD,#06H MOV TH0, #0F6H SETB EA SETB ET0 SETB TR0SJMP $ ; 等待中斷5.6 1000HZ

27、的周期為1ms,即要求每500sP1.0變反一次,使用方式T1方式1,MC=12 / fosc=1s, C=216-500s /1s =FE0CH,除TMOD=10H,TH0=FEH,TL0=0CH外, 程序與5.5題相同,注意每次要重置TH0和TL05.7 f=6MHz MC=2s 方式2的最大定時(shí)為 512s合乎題目的要求。50s時(shí),計(jì)數(shù)初值為C1=256-25=E7H,350s時(shí)計(jì)數(shù)初值為C2=256-175=51H 匯編語(yǔ)言程序 ORG 0000H MOV TMOD,#02HNEXT:MOV TH0,#51H MOV TL0,#51H CLR P1.2 SETB TR0 AB1: JB

28、C TF0,EXT SJMP AB1 EXT: SETB P1.2MOV TH0,#0E7H MOV TL0,#0E7H AB2: JBC TF0,NEXT SJMP AB2上述的計(jì)數(shù)初值沒(méi)有考慮指令的執(zhí)行時(shí)間,因此誤差較大,查每條指令的機(jī)器周期,扣除這些時(shí)間,算得C=E3H,這樣誤差較小。5.8 P1.0輸出2ms脈沖,P1.0輸出50s脈沖。匯編語(yǔ)言程序 ORG 0000H MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB TR0 MOV R0,#04HNE: JNB TF0,$ CLR TF0 CPL P1.1 DJNZ R0,NE CPL P1.

29、0 AJMP NE5.9ORG 0000HMAIN:MOV TMOD,#15HLOOP:LCALL CounterLCALL TimerSJMP LOOPCounter:MOV TH0,#0FDHMOV TL0,#18HSETB TR0CLR TR1JNB TF0,$CLR TF0RETTimer:MOV TH1,#0F9HMOV TL1,#30HSETB TR1CLR TR0JB TF1,$CLR TF1RETEND5.10 略5.11 參見(jiàn)教材5.3.1節(jié)5.1255555.12 方式3為每楨11位數(shù)據(jù)格式 3600*11/60=660(波特)5.135.13 T1的方式2模式不需要重裝時(shí)

30、間常數(shù)(計(jì)數(shù)初值),不影響CPU執(zhí)行通信程序.設(shè)波特率為fbaut計(jì)數(shù)初值為x,依據(jù)公式 fbaut=2somd/32*(fosc/12(256-x) 求得x=256-(2SMOD/32)*(fosc/fbaut)5.0133333333333333355.14 最低波特率為T(mén)1定時(shí)最大值時(shí),此時(shí)計(jì)數(shù)初值為256,并且SOMD=0, fbaut=(1/32)*( fosc/(12(256-0)=61最高波特率為T(mén)1定時(shí)最小值(1)且SOMD=1時(shí)fbaut=(2/32)* fosc/(12(256-1)=3125055.15 取SMOD=1 計(jì)算TH1=TL1=B2發(fā)送ORG 0000H MO

31、V TMOD,#20H MOV TH1,#0B2H MOV TL1,#0B2H SETB TR1 MOV SCON,#40H MOV A,#0 NEXT: MOV SBUF,A TES:JBC T1,ADD1 SJMP TES ADD1: INC ACJNE A,#20H,NEXTSJMP $END接收ORG 0000HMOV TMOD,#20HMOV TH1,#0B2HMOV TL1,#0B2HSETB TR1MOV SCON,#50HMOV R0,#20H TEC: JBC RI,REC SJMP TEC REC: MOV R0,SBUFINC R0CJNE R0,#40H,TECSJMP

32、 $END5.16 略5.17利用串行通信方式2(波特率固定),采用奇校驗(yàn)方式,將校驗(yàn)位放在TB8中,乙機(jī)檢驗(yàn)校驗(yàn)位,如正確,則存于片外4400H開(kāi)始的RAM中,如錯(cuò)誤,通知對(duì)方重發(fā),R6存放數(shù)據(jù)塊長(zhǎng)度匯編語(yǔ)言程序如下:發(fā)方 ORG 0000HMOV DPTR,#3400HMOV R6,#0A1HMOV SCON,#90HMOV SBUF,R6L2:JBC T1,L3AJMP 1.2L3:MOV 1,DPTRJB P,L4SETB TB8L4:MOV SBUF ,AL5:JBC T1,L6AJMP L5L6:JBC RI,L7AJMP L6L7:MOV A,SBUFCJNE A,#0FF0H,

33、L8AJMP L3L8:INC DPLDJNZ R6,L4SJMP $收方 ORG 0000HMOV DPTR,#4400HMOV SCON,#90HL1:JBC RI,L2AJMP L1L2:MOV A,SBUFMOV R6,AL3:JBC RI,L4AJMP L3L4:MOV A,SBUFJB P, L5JNB RB8,L8SJMP $L5: JB JB8,L8L6:MOVX DPTR,AINC DPLINC DPHDJNZ R6,L3SJMP $L8:MOV A,#0FFHMOV SBUF,AL9:JBC TI,L3AJMP L9SJMP $END5.18 電路圖見(jiàn)教材中圖5.18,程序

34、如下:ORG 0000HMOV R5,#03HCLR AMOV SCON,ALOOP:SETB P3.3CLR AMOV R7,ADEF: MOV A,R5;循環(huán)4次MOV DPTR,#tabMOVC A,A+DPTR;查表A=tabR5MOV SBUF,ADEC R5JNB T1,$CLR T1CJNE R5,#0FFH,ABC;若R5=255,則R5=7MOV R5,#07HABC: INC R7CJNE R7,#04H,DEF;循環(huán)4次CLR P3.3LCALL timerSJMP LOOPtimer: MOV A,#64HFOR: JZ ENDDMOV TMOD,#01HMOV TH0

35、,#0D9HMOV TL0,#0F0HSETB TR0JNB TF0,$CLR TF0DEC ASJMP FORENDD:RETtab:DB 0c0H,0f9H,0a4H;略END第6章、單片機(jī)總線與存儲(chǔ)器的擴(kuò)展6.1參見(jiàn)6.1節(jié)6.2 6116為2KB×8位RAM,共11根地址線A0A10,接線見(jiàn)圖6.2。圖6.26.3 2732為4KB×8位EPROM,6264為8KB×8位RAM,因各只有一片,所以各片選CE接地,電路見(jiàn)圖6.3。圖6.36.4 6116為2KB×8位RAM、2716為2KB×8位EPROM,地址線均為11位,地址線接線參

36、見(jiàn)圖6.3。6.5 電路見(jiàn)圖6.5。圖6.54片2764的CE分別接138譯碼器為y0、y1、y2、y3端,各片地址為:2764(4) 0000H1FFFH2764(3) 2000H3FFFH2764(2) 4000H5FFFH2764(1) 6000H7FFFH6.6 設(shè)計(jì)電路見(jiàn)圖6.6。圖6.6第7章、單片機(jī)系統(tǒng)功能擴(kuò)展7.1 將圖6.6中的2764去掉,并改“P2.5”為“P2.4”,改“P2.6”為“P2.7”;程序可參考教材中例7.1。7.2 請(qǐng)參考上題和題4.16。將244的輸入端最低位經(jīng)過(guò)一個(gè)上拉電阻接至+5V,經(jīng)過(guò)一個(gè)按鈕接到地。7.3 電路圖見(jiàn)圖7.3MOV DPTR,#0C

37、FFBHMOV A, #0A2HMOVX DPTR, A7.4 電路與上題類(lèi)似,程序較簡(jiǎn)單,略。、7.5 8255A口、B口、C口、控制口地址分別為7CFFH、7DFFH 、7EFFH、7FFFH,A口方式0輸出,C口輸出,控制字80H。電路見(jiàn)圖7.5圖7.3圖7.5程序:ORG 0000HMOV DPTR,#7FFH ;指向控制口MOV A,#80H ; A口B口均采用基本輸出方式MOVX DPTR,A ; 寫(xiě)控制字MOV DPTR,#7CFFH MOV A,#0MOVX DPTR,A ;清顯示AGAIN:MOV R0,#0 ;R0存字形表偏移量MOV R1,#01 ;R1置數(shù)碼表位選代碼N

38、EXT:MOV DPTR,#7EFFH ;指向C口MOV A,R1MOVX DPTR, A ;從C口輸出位選碼MOV A, R0MOV DPTR,#TAB ; 置字形表頭地址MOVC A, A+DPTR ; 查字形碼表MOV DPTR,#7CFFH ;指向B口MOVX DPTR, A ; 從B口輸出字形碼ACALL DAY ;延時(shí)INC R0 ; 指向下一位字形MOV A,R1RL A ;指向下一位MOV R1,ACJNE R1,#10H,NEXT ;六個(gè)數(shù)碼管顯示完?SJMP AGAINDAY: MOV R6,#50 ;延時(shí)子程序DL2: MOV R7, #7DHDL1: NOP NOPDJ

39、NZ R7,DL1DJNZ R6,DL2RETTAB1:DB 6FH,3FH,3FH ,5EH ;“g00d”(9ood)的字形碼7.6 提示:EPROM27128O 16KB×8,地址線為14根,6264為8KB×8位,地址線為13根,電路可參考教材中圖7.3。7.7 根據(jù)電路連線I/O 口:A口:FDF8H,B口:FDF9H,C口:FDFAH,命令/狀態(tài)口:FDFBH.定時(shí)器 TIMEL:FDFCH TIMEH:FDFDH存貯器RAM :FC00HFCFFH第8章、單片機(jī)典型外圍接口技術(shù)8.1電路參照教材中圖8.7,不同的是將P2。7改為P2。3,先計(jì)算各模擬量對(duì)應(yīng)的數(shù)字量:3C對(duì)應(yīng)的數(shù)字量:5V/3V=255/X C=153=99H同樣可算得1V、2V、4V對(duì)應(yīng)的數(shù)字量分別為33H、66H、CCH 三角波MOV DPTR,#OF7FFHNEXT1: MOV A,#0NEXT: MOVX DPTR,ANOPNOPINC ACJNE A,#9AH,NEXTNEXTA:DEC AMOVX DPTR,ANOPNOPCJNE A,#0,NEXTASJMP NEXT1END 方波4V對(duì)應(yīng)的數(shù)字量為CCH 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)論