您好,欢迎来到九壹网。
搜索
您的当前位置:首页单片机程序分析试题与答案

单片机程序分析试题与答案

来源:九壹网
六、设计题

1.某单片机控制系统有8个发光二极管。试画出C51与外设的连接图并编程使它们由右向左轮流点亮。

答: 图 (5分) 构思 (3分) MOV A,#80H (1分)

UP:MOV P1,A (1分) RR A (2分) SJMP UP (1分)

2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。 答:图 (5分) 构思 (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中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。 1.SQR:1NC A

MOVC A,@A+PC RET

TAB:DB 0,1,4,9,16 DB 25,36,49,,81

2.请使用位操作指令实现下列逻辑操作: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单元,函数值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中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。 4. MOV R0,#SUM MOV A,R2 ANL A,#OFH

MOV @R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SWAP A 1NC R0

MOV @R0,A ;存高字节BCD RET

5.将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。 5. MOV DPTR,#8000H MOV R0,#10H MOV R2,#50H

LOOP:MOVX A,@DPTR ;取数 MOVX @R0,A ;存数 1NC DPTR 1NC R0

DJNZ R2,LOOP RET

1.已知如图,8155的PA口用于输出,PB口用于输入,PC口用于输出,请:

(1)写出8155的各I/O口的口地址和存储器的地址范围。1.(1) (2)编写出8155初始化程序。B155命令字格式: (2)初始化程序:

MOV DPTR,#0100H MOV A,#0DH MOVX @DPTR,A

2.已知如图并给出下列程序,请在读图并理解程序后回答下列问题: (1)程序功能为_巡回采集8个通道的数据 __。

(2)ADC0809的口地址为___ADC0809口地址为7FF0H~7FF7H(或7FF8~7FFFH)__。 (3)EOC的作用是_EOC为A/D转换结束信号,用来引起中断或查询,以便读取A/D的转换结果_。

(4)程序运行结果存于__外部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

说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写) 1.ANL A,20H 直接寻址 2.ADDC A, #20H 立即寻址 3.JZ rel 相对寻址 4.CLR C 位寻址

5.RRA 寄存器寻址

六、使用简单指令序列完成以下操作(12分)

1.请将片外RAM20H—25H单元清零 MoV R0,#20H MOV R7,#06H CLR A

LOOP:MOVX @R0,A INC R0

DJNZ R7,LOOP

2.请将ROM3000H单元内容送R7 MOV DPTR, #3000H CLR A

MOVC A,@A+DPTR

MOV R7,A

1有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。)

源程序如下:

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.从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。(10分)

答:

MOV MOV MOV MOV

R0,#30H R1,#40H A,#50H R7,#10 20H,@R0 20H.7,FSHU @ 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

七:将内部RAM20H为首的16个单元的8位无符号数排序写出程序,并作适当注释

SORT: MOV R0, #20H MOV R7,#07H

CLR TR0 ;交换标志位复位

LOOP: MOV A,@R0 MOV 2BH, A INC R0

MOV 2AH, @R0 CLR C

SUBB A, @R0;比较前后两个数

JC NEXT ; MOV @R0, 2BH

DEC R0

MOV @R0, 2AH

INC R0

SETB TR0 ;置交换标志位有效 NEXT: DJNZ R7, LOOP

JB TR0, SORT;若交换标志位有效,继续进行 HERE: SJMP $

八、读图题(20分)

阅读下列硬件图,补齐连接线(5分),并回答问题(各5分):

(1、 ALE、PSEN、WR、RD的功能

ALE作地址锁存的选通信号,以实现低八位地址的锁存,PSEN信号作扩展程序存储器的读选通信号

WR、RD作为扩展数据存储器和I/O端口的读写选通信号。 (2、 图中各芯片的功能

74LS373:地址锁存器,用来锁存P0口发送的地址低8位 27 :容量为8KB的程序存储器(EPROM)用来存储程序 62 :容量为8KB的数据存储器(RAM)用来存储数据

8031:不含程序存储器的8位单片机芯片,是不带I/O设备的微型计算机。 (3、27、62的地址范围(P2.5取”0”)

1.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。 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个单字节数放片内30H~~33H,它们求和结果放在片内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单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD

码的十位和个位放在累加器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. 编程序将片内40H-46H单元内容的高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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务