1.某單片機(jī)控制系統(tǒng)有8個(gè)發(fā)光二極管。試畫(huà)出C51與外設(shè)的連接圖并編程使它們由右向左輪流點(diǎn)亮。
答: 圖 (5分) 構(gòu)思 (3分) MOV A,#80H (1分)
UP:MOV P1,A (1分) RR A (2分) SJMP UP (1分)
2.某控制系統(tǒng)有2個(gè)開(kāi)關(guān)K1和K2,1個(gè)數(shù)碼管,當(dāng)K1按下時(shí)數(shù)碼管加1,K2按下時(shí)數(shù)碼管減1。試畫(huà)出8051與外設(shè)的連接圖并編程實(shí)現(xiàn)上述要求。 答:圖 (5分) 構(gòu)思 (3分) 程序(4分) ORG 0000H LJMP MAIN ORG 0003H LJMP AINT0 ORG 0013H LJMP BINT1
MAIN: MOV IE,#83H SETB IT0 SETB IT1
MOV R0,#00H MOV DPTR,#TAB UP: MOV A,R0
MOVC A,@A+DPTR MOV P1,A SJMP UP
AINT0: INC R0
CJNE R0,#10,AINT01 MOV R0,#0 AINT01: RETI BINT1: DEC R0
CJNE R0,#0FFH,BINT11 MOV R0,#9 BINT11: RETI
1.已知在累加器A中存放一個(gè)BCD數(shù)(0~9),請(qǐng)編程實(shí)現(xiàn)一個(gè)查平方表的子程序。 1.SQR:1NC A
MOVC A,@A+PC RET
TAB:DB 0,1,4,9,16 DB 25,36,49,,81
2.請(qǐng)使用位操作指令實(shí)現(xiàn)下列邏輯操作:BIT=(10H∨P1.0)∧(11H∨CY) 2.ORL C,11H
MOV 12H,C MOV C,P1.0 ORL C,/10H ANL C,12H MOV BIT,C RET
3.已知變量X存于VAR單元,函數(shù)值Y存于FUNC單元,按下式編程求Y值。
?1x?0?0x?0???1x?0Y=?
3. MOV A,VAR
CJNE A,#0,COMP
SJMP RES ;x=0,Y=0 COMP:JNC POSI ;x>0,Y=1 MOV A,#0FFH ;x<0,Y=-1 SJMP RES
POSI:MOV A,#01H RES:MOV FUNC,A RET
4.已知在R2中存放一個(gè)壓縮的BCD碼,請(qǐng)將它拆成二個(gè)BCD字節(jié),結(jié)果存于SUM開(kāi)始的單元中(低位在前)。 4. MOV R0,#SUM MOV A,R2 ANL A,#OFH
MOV @R0,A ;存低字節(jié)BCD MOV A,R2 ANL A,#0F0H SWAP A 1NC R0
MOV @R0,A ;存高字節(jié)BCD RET
5.將存于外部RAM 8000H開(kāi)始的50H數(shù)據(jù)傳送0010H的區(qū)域,請(qǐng)編程實(shí)現(xiàn)。 5. MOV DPTR,#8000H MOV R0,#10H MOV R2,#50H
LOOP:MOVX A,@DPTR ;取數(shù) MOVX @R0,A ;存數(shù) 1NC DPTR 1NC R0
DJNZ R2,LOOP RET
1.已知如圖,8155的PA口用于輸出,PB口用于輸入,PC口用于輸出,請(qǐng):
(1)寫(xiě)出8155的各I/O口的口地址和存儲(chǔ)器的地址范圍。1.(1) (2)編寫(xiě)出8155初始化程序。B155命令字格式: (2)初始化程序:
MOV DPTR,#0100H MOV A,#0DH MOVX @DPTR,A
2.已知如圖并給出下列程序,請(qǐng)?jiān)谧x圖并理解程序后回答下列問(wèn)題: (1)程序功能為_(kāi)巡回采集8個(gè)通道的數(shù)據(jù) __。
(2)ADC0809的口地址為_(kāi)__ADC0809口地址為7FF0H~7FF7H(或7FF8~7FFFH)__。 (3)EOC的作用是_EOC為A/D轉(zhuǎn)換結(jié)束信號(hào),用來(lái)引起中斷或查詢,以便讀取A/D的轉(zhuǎn)換結(jié)果_。
(4)程序運(yùn)行結(jié)果存于__外部RAM的A0H~A7H。_。 ADC:MOV DPTR,#7FFOH MOV R0,#0A0H MOV R2,#8 MOV A,#0
LOOP:MOVX @DPTR,A JB P3.3,$
MOVX A,@DPTR MOVX @R0,A 1NC DPTR 1NC R0
DJNZ R2,LOOP AJMP ADC
說(shuō)明MCS—51單片機(jī)的下列各條指令中源操作數(shù)的尋址方式(可直接在每條指令后面書(shū)寫(xiě)) 1.ANL A,20H 直接尋址 2.ADDC A, #20H 立即尋址 3.JZ rel 相對(duì)尋址 4.CLR C 位尋址
5.RRA 寄存器尋址
六、使用簡(jiǎn)單指令序列完成以下操作(12分)
1.請(qǐng)將片外RAM20H—25H單元清零 MoV R0,#20H MOV R7,#06H CLR A
LOOP:MOVX @R0,A INC R0
DJNZ R7,LOOP
2.請(qǐng)將ROM3000H單元內(nèi)容送R7 MOV DPTR, #3000H CLR A
MOVC A,@A+DPTR
MOV R7,A
1有一長(zhǎng)度為10字節(jié)的字符串存放在8031單片機(jī)內(nèi)部RAM中,其首地址為40H。要求將該字符串中每一個(gè)字符加偶校驗(yàn)位。(以調(diào)用子程序的方法來(lái)實(shí)現(xiàn)。)
源程序如下:
ORG MOV MOV
1000H R0,#40H R7,#10 A, ① @R0
NEXT: MOV
ACALL SEPA MOV INC
@R0,A R0
DJNZ SJMP
② R7 ,NEXT $ A,#00H
SEPA: ADD
③ JNB PSW.0,SRET ORL
A, ④ #80H
SRET: ⑤ RET
2.從內(nèi)部RAM30H單元開(kāi)始,有10個(gè)單字節(jié)數(shù)據(jù)。試編一個(gè)程序,把其中的正數(shù)、負(fù)數(shù)分別送40H和50H開(kāi)始的內(nèi)部RAM單元。(10分)
答:
MOV MOV MOV MOV
R0,#30H R1,#40H A,#50H R7,#10 20H,@R0 20H.7,F(xiàn)SHU @ R1,20H R1 NEXT A,R1 @R1,A A,R1 A
R7,LOOP $
LOOP: MOV
JB
ZSHU: MOV
INC SJMP
FSHU: XCH
MOV XCH INC
NEXT: DJNZ
SJMP
七:將內(nèi)部RAM20H為首的16個(gè)單元的8位無(wú)符號(hào)數(shù)排序?qū)懗龀绦?并作適當(dāng)注釋
SORT: MOV R0, #20H MOV R7,#07H
CLR TR0 ;交換標(biāo)志位復(fù)位
LOOP: MOV A,@R0 MOV 2BH, A INC R0
MOV 2AH, @R0 CLR C
SUBB A, @R0;比較前后兩個(gè)數(shù)
JC NEXT ; MOV @R0, 2BH
DEC R0
MOV @R0, 2AH
INC R0
SETB TR0 ;置交換標(biāo)志位有效 NEXT: DJNZ R7, LOOP
JB TR0, SORT;若交換標(biāo)志位有效,繼續(xù)進(jìn)行 HERE: SJMP $
八、讀圖題(20分)
閱讀下列硬件圖,補(bǔ)齊連接線(5分),并回答問(wèn)題(各5分):
(1、 ALE、PSEN、WR、RD的功能
ALE作地址鎖存的選通信號(hào),以實(shí)現(xiàn)低八位地址的鎖存,PSEN信號(hào)作擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào)
WR、RD作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和I/O端口的讀寫(xiě)選通信號(hào)。 (2、 圖中各芯片的功能
74LS373:地址鎖存器,用來(lái)鎖存P0口發(fā)送的地址低8位 27 :容量為8KB的程序存儲(chǔ)器(EPROM)用來(lái)存儲(chǔ)程序 62 :容量為8KB的數(shù)據(jù)存儲(chǔ)器(RAM)用來(lái)存儲(chǔ)數(shù)據(jù)
8031:不含程序存儲(chǔ)器的8位單片機(jī)芯片,是不帶I/O設(shè)備的微型計(jì)算機(jī)。 (3、27、62的地址范圍(P2.5取”0”)
1.?dāng)?shù)據(jù)塊傳送,將RAM從30H開(kāi)始的連續(xù)32個(gè)單元的內(nèi)容傳遞給片內(nèi)RAM從60H開(kāi)始的連續(xù)32個(gè)單元。 ORG 1000H
MOV R7,#20H
MOV R0, #30H MOV R1,#60H
LOOP:MOV A,@R0 MOV R1,A INC R0
INC R1
DJNZ R7, LOOP SJMP $ END
2. 將4個(gè)單字節(jié)數(shù)放片內(nèi)30H~~33H,它們求和結(jié)果放在片內(nèi)40H,41H單元。
ORG 1000H
MOV R7,#04H MOV R0,30H CLR A
MOV 41H,A
LOOP: ADD A,@R0 JNC NEXT
INC 41H
NEXT:INC R0
DJNZ R7,LOOP MOV 40H,A SJMP $ END
3. RAM中40H單元內(nèi)存有一個(gè)十六進(jìn)制數(shù),把這個(gè)數(shù)轉(zhuǎn)換為BCD碼的十進(jìn)制數(shù),BCD
碼的十位和個(gè)位放在累加器A中,百位放在R2中。 ORG 2200H MOV A,40H MOV B,#H DIV AB
MOV R2,A MOV A,#0AH XCH A,B DIV AB SWAP A ORL A,B SJMP $ END
4. 編程序?qū)⑵瑑?nèi)40H-46H單元內(nèi)容的高4位清零,保持低4位不變。 ORG 1000H MOV R7,#07H
MOV R0,#40H
LOOP:MOV A,@R0 ANL A,#0FH MOV @R0,A INC R0
DJNZ R7,LOOP SJMP $
END
因篇幅問(wèn)題不能全部顯示,請(qǐng)點(diǎn)此查看更多更全內(nèi)容
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2
違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬(wàn)商天勤律師事務(wù)所王興未律師提供法律服務(wù)