单片微机原理系统设计与应用课后部分习题复习资料.docx
《单片微机原理系统设计与应用课后部分习题复习资料.docx》由会员分享,可在线阅读,更多相关《单片微机原理系统设计与应用课后部分习题复习资料.docx(17页珍藏版)》请在冰豆网上搜索。
单片微机原理系统设计与应用课后部分习题复习资料
第二章MCS-51单片机硬件结构
2-5.8051单片机堆栈可以设置在什么地方?
如何实现?
答:
8051单片机堆栈可以设置在内部RAM中。
当系统复位时,堆栈指针地址为07H,只要改变堆栈指针SP的值,使其为内部RAM中地址量,就可以灵活的将堆栈设置在内部RAM中。
2-16.8051单片机内部数据存储器可以分为几个不同的区域?
各有什么特点?
2-21.复位后,CPU内部RAM各单元内容是否被清除?
CPU使用的是哪一组工作寄存器?
它们的地址是什么?
如何选择确定和改变当前工作寄存器组?
答:
复位并不清除CPU内部RAM单元中内容,掉电会清除内部RAM中内容。
复位以后因为PSW=00H,所以选择工作寄存器0区,所占地址空间为00H-07H。
工作寄存器组可以查询PSW中的RS1(PSW.4)和RS0(PSW.3)来确定,改变当前RS1和RS0的值即可改变当前工作寄存器组。
2-22.指出复位后工作寄存器组R0-R7的物理地址,若希望快速保护当前工作寄存器组,应采取什么措施?
答:
复位工作寄存器组R0-R7的物理地址为00H-07H。
如希望快速保护当前工作寄存器组,可以通过改变PSW中RS1(PSW.4)和RS0(PSW.3)的当前值来完成。
第三章MCS-51指令系统
3-6.设系统晶振为12MHz,阅读下列程序,分析其功能,并人工汇编成机器代码。
答:
因为AJMP指令必须有PC指针地址,所以本题解题时设程序开始地址为1000H。
本程序完成功能是使P1.0口输出方波:
T=2*((3*250+2+2)*10+1+2+2)=15090us=15.09ms
翻译成机器语言的难点在于AJMP一句,根据AJMP指令代码可知,该指令为2个字节,高8为字节构成为“A10A9A800001”,低8位字节构成为“A7-A0”。
又有设置了程序起始地址为1000H,很容易可以写出各指令的地址,AJMP的绝对转移目标地址为1002H,A10=0、A9=0、A8=0,所以机器代码为“0102”,目标地址在2区,因为A15-A11为“00010”。
3-8.简述下列程序段完成的功能,程序完成后SP指针应指向哪里?
3-12.用图示法分析分析MOVCA,@A+PC指令执行过程及结果。
设指令操作码在程序存储器1000H单元中,1031单元内容为3FH,A中内容为30H。
3-13.下列指令执行后,求(A)=?
PSW中Y、OV、AC为何值?
(1)当(A)=6BH
ADD
A,
#81H
(2)当(A)=6BH
ADD
A,
#8CH
(3)当(A)=6BH,CY=0,
ADDC
A,
#72H
(4)当(A)=6BH,CY=1,
ADDC
A,
#79H
(5)当(A)=6BH,CY=1,
SUBB
A,
#0F9H
(6)当(A)=6BH,CY=0,
SUBB
A,
#0FCH
(7)当(A)=6BH,CY=1,
SUBB
A,
#7AH
(8)当(A)=6BH,CY=0,
SUBB
A,
#8CH
注:
对于减法,当位7和位6不同时发生借位时,OV=1,否则OV=0。
在做带符号数减法时,只有当两个操作数符号位不同时,才有可能产生溢出。
(1)若一个正数减一个负数,差为负数,则一定有溢出OV=1。
(2)若一个负数减一个正数,差为正数,则一定有溢出OV=1。
3-17.如何计算相对转移的偏移量?
答:
相对偏移量是一个8位无符号编码数,范围是-128~+127。
rel=目标地址-当前PC地址;当前PC地址=原PC+指令字节数。
3-24.用布尔指令,求解逻辑方程。
(1).PSW.5=P1.3^ACC.2VB.5^P1.1
(2).PSW.5=/(P1.5^B.4VACC.7^P1.0)
(1)
ORG
0000H
LJMP
MAIN
ORG
0200H
MAIN:
MOV
C,
P1.3
ANL
C,
ACC.2
;P1.3·ACC.2
MOV
PSW.5,
C
;保存临时结果
MOV
C,
B.5
ANL
C,
P1.1
;PB.5·P1.1
ORL
C,
PSW.5
;和临时值求或
MOV
PSW.5
C
;保存结果
SJMP
$
;原地踏步
END
(2)
ORG
0000H
LJMP
MAIN
ORG
0200H
MAIN:
MOV
C,
P1.5
ANL
C,
B.4
;P1.5·B.4
MOV
PSW.5,
C
;保存临时结果
MOV
C,
ACC.7
ANL
C,
P1.0
;ACC.5·P1.0
ORL
C,
PSW.5
;和临时值求或
CPL
C
;求反
MOV
PSW.5
C
;保存结果
SJMP
$
;原地踏步
END
注:
本题要注意的是位运算有优先级概念。
位运算符的优先级从高到低依次是:
按位取反→左移和右移→按位与→按位异或→按位或。
第四章MCS-51汇编语言程序设计
4-1.若晶振为12MHz,试编制延时2ms和1s子程序。
(1)延时2ms子程序
4-7.在内部RAM的BLOCK开始的单元有一无符号数据块,数据块长度存入LEN单元。
试编程求其中的最小数并存入MINI单元。
4-12.在内部RAM的ONE和TWO单元各存有一带符号数X和Y。
试编程按下式要求运算。
4-18.试编一查表求平方子程序SQR。
功能:
用指令MOVCA,@A+PC求平方值(x<15)
入口:
(A)=x
出口:
(A)=x2
第五章存储器系统设计
5-11.试设计以8031为主机,用74LS138为译码器,采用1片27128作ROM,地址为0000H-3FFFH;采用2片6264作RAM,4000H-7FFFH的扩展系统(加1个与门),地址不允许重叠,画出电路图。
如果RAM地址为8000H-BFFFH或C000H-FFFFH,2片6264的片选/CE端与译码器的输出应如何连接?
27128地址为0000H-3FFFH,2片6264地址为4000H-7FFFH时,电路图如上如所示,27128的/CE端接地,为常选状态,地址为0000H-3FFFFH,74LS138的A、B、C端分别和A13、A14、A15相连,74LS138的/Y2和/Y3分别连接两片6264的/CE,实现6264的地址为4000H-7FFFH。
如果希望2片6264地址为8000H-BFFFH,可以将74LS138的/Y4和/Y5分别连接两片6264的/CE。
如果希望2片6264地址为C000H-FFFFH,可以将74LS138的/Y6和/Y7分别连接两片6264的/CE。
5-12.设计一个16KB的外部数据存储器RAM,若采用6116需要多少片?
应选择什么译码器?
试设计出电路图并写出各芯片所占有地址。
如果系统中还有1片27128作ROM,同时总线上还有其它I/O接口电路,系统设计时应注意什么问题?
电路图如上所示:
8片6116采用全译码的方式和74LS138连接。
U4-U7的地址分别为:
U4
6116
0000H-07FFH
U5
6116
0800H-0FFFH
U6
6116
1000H-17FFH
U7
6116
1800H-1FFFH
U8
6116
2000H-27FFH
U9
6116
2800H-2FFFH
U10
6116
3000H-37FFH
U11
6116
3800H-3FFFH
如果系统中还有一片27128作ROM,ROM的地址可以和RAM重叠,但是其它I/O接口电路的器件地址需要和RAM的地址分开。
第六章MCS-51定时/计数器
串行口及中断系统
6-8.在晶振主频为12MHz时,定时最长时间是多少?
若要定时1分钟,最简洁的方法是什么?
试画出硬件连线图并编程。
答:
在晶振主频12MHz时,机器周期为1us,所以定时最长时间为65536us。
6-29.试编写一段中断的初始化程序,使之允许/INT0、/INT1、T0、串行口中断,且使T0中断为高优先级中断。
第七章I/O接口扩展设计及应用
7-3.8255与8031的连接如图7-3所示,8255的A口作输入PA0-PA7接一组开关K0-K7,B口作输出PB0-PB7接一组发光二极管,要求当A口某位开关接高电平时,B口相应的二极管点亮。
试编制相应的程序。
根据上如所示,8255芯片的PA端口地址为7FFFCH,PB端口地址为7FFDH,PC端口地址为7FFEH,控制器寄存器的地址为7FFFH。
可以使用“MOVX”指令来访问这些端口。
根据题目要求,可以设置A口输入,B口输出,两者均采用工作方式0,控制字为90H。