单片机期末考试试题含答案11doc.docx
《单片机期末考试试题含答案11doc.docx》由会员分享,可在线阅读,更多相关《单片机期末考试试题含答案11doc.docx(6页珍藏版)》请在冰豆网上搜索。
单片机期末考试试题含答案11doc
《单片机原理与应用》试题011
一、填空题(共20分,每题4分)
1、开启微机电源,在软件所在目录键入MD51命令,选择对应串口号,进入集成操作软件环境。
2、对源文件进行汇编,生成浮动目标文件,文件扩展名是.R03。
3、用B命令设置断点。
4、将立即数3052H送数据指针DPTR,使用MOVDPTR,#3052H指令。
5、两寄存器交换数据,使用XCHA,R4指令。
二、程序分析题(共20分,每题10分)
1、程序存储器空间表格如下:
地址
002H
2000H
2003H...
2001H
2
内容
3FH
06H
5
BH
4FH...
已知:
片内RAM的20H中为01H,执行下列程序后
(30H)二?
MOVINC
MOV
DPTR,#2000H
MOVC
A,@A+DPTR
CPL
A
MOV
30H,A
END:
SJMP
END
执行程序后,(30H)=
2、分析程序段:
CLR
C
MOV
A,#91H
SUBB
A,61H
ADD
A,61H
DA
A
MOV
62H,A
(1)程序执行何种操作?
(2)若已知初值:
(60H)=24H,(61H)=72H,则运行后,
62H)
三、编程题(共60分,每题30分)
a)编程实现下列逻辑运算Z=(M+N)*(O+P)。
设M,N,O,P为片内RAM30H-33H单元,输出结果单
元Z地址为34H
(1)将下列程序输入到实习装置参考
START:
MOVA,MXRLA,NMOVB,AMOVA,0ORLA,PANLA,BMOVZ,A
(2)在M—P(30H—33H单元)装入待进行逻辑运算的数据(自设X
(3)单步或带断点运行该段程序。
(4)运行过程中注意检查程序的变化,并在最后验证(Z)是否与理论值相符。
2、设从内存BLOCK单元开始存放一无符号数的数据块,其长度为LEN0试找出其最小数,并存入MIN单元。
(1)输入所编程序。
COMP:
MOVA,#OFFH;置比较的初始值
置数据块长度
MOVR1,#BLOCK
置地址指针
LOOP:
CLRC
SUBB
a,@ri;比较
JC
NEXT;若小,
则恢复原值
MOV
A,@R1
SJMP
NEXT1
NEXT:
ADDA,@R1
NEXT1:
INCR1,•若
大,则取下个数比较
DJNZ:
DJNZR2,LOOP
MOV
MN,A;存最小数
SJMP
$
(2)确定好数据块的起始地址和长度,并在相应的内部RAM单元存入数据,同时作好记录。
(3)单步或断点运行程序,注意循环次数是否等于数据块长度。
(4)观察PC,A和计数单元的变化并作好记录。
(5)验证运行结果。
《单片机原理与应用》试题011答案
二、程序分析题(共20分,每题10分)
已知:
片内RAM的20H中为01H,执行下列程序后(30H)=?
1、程序存储器空间表格如下:
地址
2000H
2001H
2
002H
2003H...
内容
3FH
06H
5
BH
4FH...
(30H)=?
MOVA,20H;01
H->A
INCA;01
H+1=02H->A
MOVDPTR,#2000H;20
00H-»DPTR
MOVCA,@A+DPTR;(20
00H+2)=5BH-»A
CPLA;5B
H求反等于A4H
-»(30H)
END:
SJMPEND
答执行程序后,(30H)=A4
2、分析程序段:
CLRC
MOVA,#91H
SUBBA,61H;求6OH内的BCD数的补数,9AH-24H=76H
ADDA,61H;76H+72H=E8HDAA;CY=1、A=48H
MOV62H,A
解根据9AH=99=1的特殊性,该程序功能为单字节BCD数减法运算,即完翻是(61H)-(60H)->(62HX所以运行后,(62H)=48H,意即72-24=48
I、编程题(共60分,每题30分)a)编程实现下列逻辑运算Z=(M+N)*(O+P)。
设M,N,O,P为片内RAM30H—33H单元,输出结果单
元Z地址为34H。
(5)将下列程序输入到实习装置
参考程序
START:
MOVA,MXRLA,NMOVB,AMOVA,0ORLA,PANLA,BMOVZ,A
(6)在M—P(30H—33H单元)装入待进行逻辑运算的数据(自设X
(7)单步或带断点运行该段程序。
(8)运行过程中注意检查程序的变化,并在最后验证(Z)是否与理论值相符。
2、设从内存BLOCK单元开始存放一无符号数的数据块,其长度为LEN。
试找出其最小数,并存入MIN单元。
(1)输入所编程序。
COMP:
MOVA,#OFFH;置比较的初始值
置数据块长度
MOVR1,#BLOCK
置地址指针
LOOP:
CLRC
SUBB
A,@R1,•比较
JC
NEXT;若小,
则恢复原值
MOV
A,@R1
SJMP
NEXT1
NEXT:
ADDA,@R1
NEXT1:
INCR1;若
大,则取下个数比较
DJNZ:
DJNZR2,LOOP
MOV
MN,A;存最小数
SJMP
$
(2)确定好数据块的起始地址和长度,并在相应的内部RAM单元存入数据,同时作好记录。
(3)单步或断点运行程序,注意循环次数是否等于数据块长度。
(4)观察PC,A和计数单元的变化并作好记录。
(5)验证运行结果。