微机原理复习题参考答案Word格式文档下载.docx
《微机原理复习题参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理复习题参考答案Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
2、一个串口
3、128B的RAM
4、4个IO口
5、8位数据总线
6、16位地址总线
7、2个外部中断
8031,没有ROM,只能扩展ROM才能写程序
8051,有4K的ROM
8751,有4K的EPROM
2.为什么要对键盘进行“去抖”处理?
机械式按键在按下或释放时,由于触点弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。
抖动时间的长短与开关的机械特性有关,一般为5~10ms。
CPU在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作。
为了克服按键触点机械抖动所致的检测误判,必须采取软件或硬件去抖动措施。
3.试写出设定INT0和定时器0的中断请求为高优先级和允许它们中断的程序。
如果INT0和定时器0同时有中断请求时,试问MCS-51先响应哪个中断请求?
为什么?
答:
可用字节操作指令对IE和IP进行设置:
MOVIE,#83H;
同时置位EA、ET0和EX0
MOVIP,#03H;
置位PX0和PT0
也可用位操作指令进行设置,此处从略。
因为本题中外中断0和定时器0同为高优先级,当它们同时发中断请求时,系统则按硬件设定的自然优先级顺序响应中断,因此MCS-51先响应外中断0的中断请求。
4.MCS-51系列单片机有哪7种寻址方式?
1.直接寻址2.位寻址3.立即数寻址4.寄存器寻址5.寄存器间接寻址6.变址寻址7.相对寻址
5.简述8051单片机部结构主要有哪些部件组成。
(1)一个8位微处理器CPU。
(2)数据存储器RAM和特殊功能寄存器SFR。
(3)部程序存储器ROM。
(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。
(5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。
(6)一个串行端口,用于数据的串行通信
6.MCS-51单片机外部中断申请有几种方式?
为什么外部中断一般不用电平触发方式?
MCS-51单片机外部中断请求申请信号可以是低电平触发方式,也可以是负脉冲触发方式。
对于采用负脉冲触发方式的外部中断请求标志位IE0或IE1的清“0”是由单片机硬件自动完成的,用户无需参与。
对低电平触发方式的外部中断请求信号,需要外加电路并配合指令,在中断响应后将INT0、INT1引脚电平从低电平强制为高电平,从而将INT0、INT1引脚的低电平中断请求信号撤除,可见低电平方式的外部中断请求信号的撤除比较麻烦,因此一般应尽可能采用负脉冲触发方式申请中断。
7.简述程序状态寄存器PSW的作用是什么?
常用标志有哪些位?
作用是什么?
PSW是一个8位寄存器,用来存放指令执行的有关状态信息。
PSW中各位的状态信息一般是在指令执行过程中形成的,也可以根据需要由用户采用传送指令加以改变。
a。
P(PSW.0):
奇偶标志位,用于表示累加器A中二进制数值为1奇偶性。
b。
F1、F0(PSW.1、PSW.5):
用户标志位,作为用户自行定义的一个状态标志
c。
OV(PSW.2)溢出标志位,用于指示算数运算中是否有溢出
d。
RS1、RS0(PSW.4、PSW.3):
工作寄存器选择控制位,用户通过软件选择CPU当前工作的寄存器组。
e。
AC(PSW.6):
辅助进位标志位,当进行加法或减法运算并产生由第四位向高四位进位或借位时,AC被硬件置1,否则清零
f。
CY(PSW.7):
进位标志位,用于表示加法或减法运算时最高位是否有进位或借位,如有则被置1。
在进行位操作时,CY还可作为位累加器使用,相当于累加器A。
8.I/O数据传送的方法有哪几种?
程序直接控制方式,中断控制方式,DMA方式
9.什么是堆栈?
堆栈和堆栈指针SP有什么作用?
堆栈是计算机存储数据的一种数据结构,通常由一块存储区和指向该存储区的指针SP构成。
SP的作用就是指示当前要出栈或入栈的数据,并在操作执行后自动递增或递减。
10.MCS-51系列中断系统包括几个中断源和几个中断优先级,写出所有的中断源的符号、名称及其入口地址。
11.简述89C51片RAM的空间分配。
89C51部256B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区、特殊功能寄存器组区。
各区域的特性如下:
(1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。
当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。
如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。
(2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。
当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。
(3)30H~7FH为堆栈、数据缓冲区。
(4)80H~FFH高128字节的RAM有21个特殊功能寄存器(SFR)。
访问SFR只允许使用直接寻址方式。
其中11个具有位寻址能力,它们的字节地址正好被8整除。
12.简述并行通信和串行通信的特点。
并行通信就是把一个字符的各数位用几条线同时进行传输。
并行接口最基本的特点是在多根数据线上以数据字节为单位与I/O设备或被控对象传送信息。
串行通信就是指通信的发送方和接收方之间的数据在单根通信线上逐位顺序传送。
计算机和外设之间只使用一根信号线传输信息,数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。
三、程序分析题。
1.执行下列程序段后,(P1)=___9BH____。
MOVP1,#5DH
CPLP1.1
CPLP1.2
CLRP1.6
SETBP1.7
2.已知(R0)=20H,(20H)=10H,(P0)=30H,(R2)=20H,执行如下程序段后(40H)=__45H__。
MOV
R0,#11H
A,R2
ADD
A,20H
PSW,#80H
SUBB
A,P0
XRL
A,#45H
40H,A
3.设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=_0F7H___。
ORLA,#27H
ANLA,28H
XCHDA,R0
CPLA
4.已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=_62H__,(61H)=__0345H_____,(62H)=_0123H___。
5.阅读下列程序,说明其功能。
MOVR0,#data
MOVA,R0
RLA
MOVR1,A
ADDA,R1
MOVR0,A
RET
1.设部RAM中69H单元的容为50H,写出当执行下列程序段后寄存器A=_35H___,R0=50H____,部RAM中(50H)=___00H_、(51H)=__35H__。
MOVA,69H
MOVR0,A
MOVA,#00H
MOVA,#35H
MOV51H,A
MOV52H,#80H
2.设A=40H,R1=23H,(40H)=05H。
执行下列两条指令后,累加器A=__25H__,R1=_40H,RAM(40H)=__03H__。
XCHA,R1
XCHDA,R1
3.如果SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
DPH=_3CH___,DPL=__5FH__,SP=_50H___。
POPDPH
POPDPL
POPSP
4.设A=83H,R0=17H,(17H)=34H;
写出下列程序中每条指令执行后的结果。
ANLA,#17H;
A=_17H___
ORL17H,A;
(17H)=_17H___
XRLA,R0;
A=__34H__
CPLA;
A=_0CBH___
5.程序存储空间表格如下:
地址
2000H
2001H
2002H
2003H
。
容
3FH
06H
5BH
4FH
已知:
片RAM的20H中为01H,执行下列程序后(30H)=__0A4H__。
MOVA,20H
INCA
MOVDPTR,#2000H
MOVCA,A+DPTR
CPLA
MOV30H,A
SJMP$
1.写出下列程序段执行后,相关寄存器或存储单元的容。
MOVR0,#30H
MOV30H,#40H
MOVA,R0
MOV60H,A
SJMP$
A=40H,R0=30H,(30H)=40H,(60H)=40H
2.写出下列程序段执行后,相关寄存器或存储单元的容。
MOVSP,6FH
MOV30H,#12H
MOV31H,#34H
PUSH30H
PUSH31H
POPB
POPACC
A=12H,B=34H,(30H)=12H,(31H)=34H,(70H)=12H,(71H)=34H
3.写出下列程序段执行后,相关寄存器或存储单元的容。
MOVR1,#30H
MOV30H,#78H
MOVA,#9AH
XCHA,30H
XCHDA,R0
SWAPA
A=0A7H,(30H)=98H
4.写出下列程序段执行后,相关寄存器或存储单元的容。
MOV35H,#03H
MOVDPTR,#TAB
MOVA,35H
MOVCA,A+DPTR
ORG1050H
TAB:
DB00H,03H,04H,10H,16H
A=10H,(DPTR)=1050H
5.设在31H单元存有#23H,执行下面程序后,则(41H)=__03H__,(42H)=__02H__。
MOVA,31H
ANLA,#0FH
MOV41H,A
ANLA,#0F0H
SWAPA
MOV42H,A
一.编写程序,进行两个16位数的减法:
6F5DH-13B4H,结果存入部RAM的30H和31H单元,30H存储低8位。
解:
org0000h
ajmpmain
org0030h
main:
movr0,#30h(间接寻址初值)
movr1,#40h(间接寻址初值)
movr2,#3(转移次数)
loop:
mova,r0
daa(对数据进行BCD码调整)
incr0
movr1,a
incr1
djnzr2,loop
sjmp$
end
二.已知单片机晶振频率为6MHz,要求用定时/计数器T0工作方式1,在P1.0脚输出周期为2ms的连续方波,如图所示,试采用中断方式编写程序
见书本P145例5-6
三.P1口的P1.0-P1.7分别通过反相器接8个发光二极管。
要求每隔1s循环点亮1只发光二级管,一直循环下去,系统晶振频率为6MHz。
画出电路图,并写出程序,要求软件延时。
见书本P148—例5-9
四.8255A与MCS-51单片机接口电路如图所示,8255A的B口外接8个开关,A口通过反相器接8个发光二极管,各端口均工作在方式0,要求编写程序从B口读入开关的状态,再从A口输出点亮发光二极管
见书本P176---例6-4
五.试编写程序,查找在部RAM的20H~50H单元中是否有0AAH这一数据。
若有,则将51H单元置为01H;
若未找到,则将51H单元清0。
解:
六.硬件连接如图所示,要求用定时器T1的工作方式2对外部脉冲进行计数。
每计满10个脉冲,就使P1.0引脚外接的发光二极管的状态发生变化,由亮变暗,或反之
见书本P136---例5-4
七.MCS-51单片机P1口的P1.0-P1.7分别通过反相器接8个发光二极管。
要求编写程序,每当外中断1有中断请求信号输入时,循环点亮下一个发光二极管,试编写程序。
END
八、如图所示的单缓冲方式接口电路,请编写出产生三角波的程序。
见书本P211---三角波程序
九.已知存单元有16个无符号数,分别存放在30H-3FH中,试求它们累加和,并将其和数存放在R4和R5中
十.要求用P1.6和P1.7脚上的两个开关S6,S7分别对应控制P1.0和P1.1脚上的两个发光二极管的亮暗,画出I/O接口电路并编写程序。
ORG0000H
AJMP4100H
ORG4100H
START:
MOVP1,#0FFH
MOVC,P1.6
MOVP1.0,C
NOP
MOVC,P1.7
MOVP1.1,C
SJMPSTART
十一.用定时器/计数器T1对外部脉冲计数,工作在方式2,并将T1的计数值从P1口输出,经反相器点亮发光二极管,以二进制数的形式显示出来。
①定时/计数器T1方式寄存器TMOD的设置
依题意,外部脉冲信号从T1(P3.5)脚输入,每发生一次负跳变计数器加1。
因为要求用T1计数、工作方式2、软启动,所以TMOD寄存器应按如下设置:
T1
T0
GATE
M1
M0
1
×
所以TMOD=60H。
②程序如下:
ORG0500H
MAIN:
CLREA;
关中断
MOVP1,#00H;
灯全暗
MOVTMOD,#60H
MOVTH1,#00H
MOVTL1,#00H;
初值为0
SETBTR1
OUT:
MOVP1,TL0;
计数值送P1口显示
SJMPOUT
十二。
MCS-51单片机外扩展一片8255A,若8255A的A口作输入,每一位外接一个开关;
C口作输出,每一位通过反相器接一个发光二极管。
要求当A口开关闭合(低电平)时C口对应位发光二极管点亮,画出接口电路图,列出8255A各I/O口地址并编写程序。