单片机程序分析试题与答案.docx
- 文档编号:8974864
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:14
- 大小:41.13KB
单片机程序分析试题与答案.docx
《单片机程序分析试题与答案.docx》由会员分享,可在线阅读,更多相关《单片机程序分析试题与答案.docx(14页珍藏版)》请在冰豆网上搜索。
单片机程序分析试题与答案
六、设计题
1.某单片机控制系统有8个发光二极管。
试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。
答:
图(5分)构思(3分)
MOVA,#80H(1分)
UP:
MOVP1,A(1分)
RRA(2分)
SJMPUP(1分)
2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。
试画出8051与外设的连接图并编程实现上述要求。
答:
图(5分)构思(3分)
程序(4分)
ORG0000H
LJMPMAIN
ORG0003H
LJMPAINT0
ORG0013H
LJMPBINT1
MAIN:
MOVIE,#83H
SETBIT0
SETBIT1
MOVR0,#00H
MOVDPTR,#TAB
UP:
MOVA,R0
MOVCA,@A+DPTR
MOVP1,A
SJMPUP
AINT0:
INCR0
CJNER0,#10,AINT01
MOVR0,#0
AINT01:
RETI
BINT1:
DECR0
CJNER0,#0FFH,BINT11
MOVR0,#9
BINT11:
RETI
1.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。
1.SQR:
1NCA
MOVCA,@A+PC
RET
TAB:
DB0,1,4,9,16
DB25,36,49,64,81
2.请使用位操作指令实现下列逻辑操作:
BIT=(
∨P1.0)∧(11H∨CY)
2.ORLC,11H
MOV12H,C
MOVC,P1.0
ORLC,/10H
ANLC,12H
MOVBIT,C
RET
3.已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。
Y=
3.MOVA,VAR
CJNEA,#0,COMP
SJMPRES;x=0,Y=0
COMP:
JNCPOSI;x>0,Y=1
MOVA,#0FFH;x<0,Y=-1
SJMPRES
POSI:
MOVA,#01H
RES:
MOVFUNC,A
RET
4.已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。
4.MOVR0,#SUM
MOVA,R2
ANLA,#OFH
MOV@R0,A;存低字节BCD
MOVA,R2
ANLA,#0F0H
SWAPA
1NCR0
MOV@R0,A;存高字节BCD
RET
5.将存于外部RAM8000H开始的50H数据传送0010H的区域,请编程实现。
5.MOVDPTR,#8000H
MOVR0,#10H
MOVR2,#50H
LOOP:
MOVXA,@DPTR;取数
MOVX@R0,A;存数
1NCDPTR
1NCR0
DJNZR2,LOOP
RET
1.已知如图,8155的PA口用于输出,PB口用于输入,PC口用于输出,请:
(1)写出8155的各I/O口的口地址和存储器的地址范围。
1.
(1)
(2)编写出8155初始化程序。
B155命令字格式:
(2)初始化程序:
MOVDPTR,#0100H
MOVA,#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:
MOVDPTR,#7FFOH
MOVR0,#0A0H
MOVR2,#8
MOVA,#0
LOOP:
MOVX@DPTR,A
JBP3.3,$
MOVXA,@DPTR
MOVX@R0,A
1NCDPTR
1NCR0
DJNZR2,LOOP
AJMPADC
说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写)
1.ANLA,20H直接寻址
2.ADDCA,#20H立即寻址
3.JZrel相对寻址
4.CLRC位寻址
5.RRA寄存器寻址
六、使用简单指令序列完成以下操作(12分)
1.请将片外RAM20H—25H单元清零
MoVR0,#20H
MOVR7,#06H
CLRA
LOOP:
MOVX@R0,A
INCR0
DJNZR7,LOOP
2.请将ROM3000H单元内容送R7
MOVDPTR,#3000H
CLRA
MOVCA,@A+DPTR
MOVR7,A
1有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。
要求将该字符串中每一个字符加偶校验位。
(以调用子程序的方法来实现。
)
源程序如下:
ORG1000H
MOVR0,#40H
MOVR7,#10
NEXT:
MOVA,①@R0
ACALLSEPA
MOV@R0,A
INCR0
DJNZ②R7,NEXT
SJMP$
SEPA:
ADDA,#00H
③JNBPSW.0,SRET
ORLA,④#80H
SRET:
⑤RET
2.从内部RAM30H单元开始,有10个单字节数据。
试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。
(10分)
答:
MOVR0,#30H
MOVR1,#40H
MOVA,#50H
MOVR7,#10
LOOP:
MOV20H,@R0
JB20H.7,FSHU
ZSHU:
MOV@R1,20H
INCR1
SJMPNEXT
FSHU:
XCHA,R1
MOV@R1,A
XCHA,R1
INCA
NEXT:
DJNZR7,LOOP
SJMP$
七:
将内部RAM20H为首的16个单元的8位无符号数排序写出程序,并作适当注释
SORT:
MOVR0,#20H
MOVR7,#07H
CLRTR0;交换标志位复位
LOOP:
MOVA,@R0
MOV2BH,A
INCR0
MOV2AH,@R0
CLRC
SUBBA,@R0;比较前后两个数
JCNEXT;
MOV@R0,2BH
DECR0
MOV@R0,2AH
INCR0
SETBTR0;置交换标志位有效
NEXT:
DJNZR7,LOOP
JBTR0,SORT;若交换标志位有效,继续进行
HERE:
SJMP$
八、读图题(20分)
阅读下列硬件图,补齐连接线(5分),并回答问题(各5分):
(1、 ALE、PSEN、WR、RD的功能
ALE作地址锁存的选通信号,以实现低八位地址的锁存,PSEN信号作扩展程序存储器的读选通信号
WR、RD作为扩展数据存储器和I/O端口的读写选通信号。
(2、 图中各芯片的功能
74LS373:
地址锁存器,用来锁存P0口发送的地址低8位
2764:
容量为8KB的程序存储器(EPROM)用来存储程序
6264:
容量为8KB的数据存储器(RAM)用来存储数据
8031:
不含程序存储器的8位单片机芯片,是不带I/O设备的微型计算机。
(3、2764、6264的地址范围(P2.5取”0”)
1.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。
ORG1000H
MOVR7,#20H
MOVR0,#30H
MOVR1,#60H
LOOP:
MOVA,@R0
MOVR1,A
INCR0
INCR1
DJNZR7,LOOP
SJMP$
END
2.将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。
ORG1000H
MOVR7,#04H
MOVR0,30H
CLRA
MOV41H,A
LOOP:
ADDA,@R0
JNCNEXT
INC41H
NEXT:
INCR0
DJNZR7,LOOP
MOV40H,A
SJMP$
END
3.RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R2中。
ORG2200H
MOVA,40H
MOVB,#64H
DIVAB
MOVR2,A
MOVA,#0AH
XCHA,B
DIVAB
SWAPA
ORLA,B
SJMP$
END
4.编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。
ORG1000H
MOVR7,#07H
MOVR0,#40H
LOOP:
MOVA,@R0
ANLA,#0FH
MOV@R0,A
INCR0
DJNZR7,LOOP
SJMP$
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序 分析 试题 答案