单片机试卷及答案2

  • 格式:doc
  • 大小:85.43 KB
  • 文档页数:3

2013级电气自动化专业
《单片机原理与应用试卷B 》
···················装························订·······················线·········· 题 号
一 二 三 四 五 六 总得分
得 分 一、指出指令的错误,并说明原因(每个2分,共20分)评分标准:指出1分,原因1分。

1、 MOV P0, #1010H
2、 MOV R1, @R0
3、 XCH A, #10H
4、 DEC DPTR
5、 CJNZ R7, #10H, LOOP
6、 MOV P1.0, P2.0
7、 RR 10H
8、 ANL 10H, R0
9、 MUL R0, A
10、MOV B, @DPTR
二、简要说明下列程序的功能。

(共20分,第1题5分,第2题5分,第3题10分)
1、粗略计算当外接晶振为6MHZ 时,下列程序所用的时间。

(5分)
DELL : MOV R7,#100
DELL1:MOV R6,#100
DELL2:MOV R5,#100
DELL3:DJNZ R5,DELL3
DJNZ R6,DELL2
DJNZ R7,DELL1
答:机器周期为2us(1分),时间t={[(2*100+1+2)*100+1+2]*100+1+2}*2us=4060606us≈4S (4分)
2、简要说明下列程序的功能。

ORG 0000H
MOV R7, #10
MOV R0, #20H MOV A, #0
LOOP:
MOV @R0, A
INC R0
INC A
DJNZ R7,LOOP
END
答:将内部RAM20H 开始的10个单元存入0-9.
3、简要说明下列程序的功能。

ORG 0000H
MOV R7,#20H ;次数
MOV R0,#20H ;首地址
MOV A,#0FFH
LOOP:MOV 10H,@R0
CJNE A,10H,NEPU ;不相等,转移
AJMP NDO
NEPU:JC NDO ;目的小于源,转移
MOV A,@R0;目的大于源,存小数
NDO:INC R0
DJNZ R7,LOOP
数据范围超限,最多为两位16进制数 以Rn 为目的时,源只能是A ,direct ,#data 源只能是Rn,@Ri,direct DEC 指今后只能接A ,Rn,@Ri,direct CJNE MOV BIT,C ,划线处只能是C A 源只能是A ,#data AB 源只能是A ,Rn,@Ri,direct,#data
MOV 41H,A
END
答:找出以20H 开始的20H 个单元的最小数,存入41H 中。

三、分析下列程序所应达到的功能,将程序中的错误指出并修正。

(共10分)
编写两个16位二进制数的减法程序,被减数存在20H 、21H 中,减数存在30H 、31H 中,结果存在40H 、41H 中,其中,高地址存低字节单元,低地址存高字节单元,如果被减数小于减数,R0为数值1。

ORG 0000H
MOV A,21H SUBB A,31H MOV 41H,A;低字节减法 CLR C MOV A,20H SUBB A,30H MOV 40H,A;高字节减法 JB CY,A1 AJMP A2 A1:MOV R0,1 A2:END
评分标准:指出各一分,改正各一分。

四、程序设计(共50分,第1题10分,第2题20分,第3题20分)
1、已知内部RAM20H 单元中存了一个十进制数据,编程实现将这个数据的百位、十位和个位分离出来,分别存在以50H 开始的单元中。

参考程序
ORG 0000H
MOV A,20H
MOV B,#100
DIV AB;分离百位
MOV 50H,A
MOV A,B
MOV B,#10
DIV AB;分离十位和个位
MOV 51H,A
MOV 52H,B
END
2、编程实现P0连接8个LED (采用共阳极的接法),以下表方式循环点亮,并画出流程图。

(流程图与程序各10分)
缺少CLR C
此处没有CLR C
JC A1
#1
A2:NOP END
ORG 0000H
LOOP0:MOV A,#0FEH
MOV R0,#8
LOOP:MOV P0,A
CLR C
RLC A
LCALL DELL
DJNZ R0,LOOP
AJMP LOOP0
DELL:MOV R7,#0
DELL1:MOV R6,#0
DELL2:MOV R5,#2
DELL3:DJNZ R5,DELL3
DJNZ R6,DELL2
DJNZ R7,DELL1
RET
END
3、用查表的方法,使P0连接的七段码显示器(采用共阳极的接法),循环显示9-0。

参考程序:
ORG 0000H
MOV DPTR,#TAB
LOOP0:MOV R3,#10;循环次数
MOV R4,#9;七段码显示器显示的初值
LOOP1:MOV A,R4
MOV P0,A
LCALL DELL
DEC R4
DJNZ R3,LOOP1
AJMP LOOP0
TAB:DB 0C0H ;"0"
DB 0F9H ;"1"
DB 0A4H ;"2"
DB 0B0H ;"3"
DB 99H ;"4"
DB 92H ;"5"
DB 82H ;"6"
DB 0F8H ;"7"
DB 80H ;"8"
DB 90H ;"9"
DELL:MOV R7,#0
DELL1:MOV R6,#0
DELL2:MOV R5,#2
DELL3:DJNZ R5,DELL3
DJNZ R6,DELL2
DJNZ R7,DELL1
RET
END
将A 的值带进位左移一位 将A 的值传送给P0 延时 开始 是否到8次 结束 A 赋初值,循环次数 否 是。