《单片机原理与应用》A卷答案
《单片机原理与应用》A卷参考答案
一、简答题(共28分)
1、(4分)MCS-51的存储器组织结构是怎样的? MCS-51单片机的程序存储器和数据存储器共处同一地址空间为什么不会发生总线冲突?
答:MCS-51采用哈佛存储结构,即核外XRAM与程序存储器分别寻址的方式。 ....1’访问不同存储器,使用不同的指令,如访问ROM用MOVC,……1’访问片内RAM则用MOV,……1’片外RAM用MOVX。……1’不同的指令控制信号有所不同,故可避免总线冲突。
2、(4分)看门狗电路的作用?简述看门狗电路的原理?
答:作用:看门狗电路是用来监测微处理器是否正常工作的,如果单片机应用系统工作不正常,程序飞掉,看门狗电路的输入端就会被触发,那么看门狗电路的输出端就可以产生一个复位脉冲使系统复位。……2’工作原理:在预先设定的时间内使CPU复位计数器,即预先设定的时间要小于计数器的溢出时间,如计数器一旦溢出,即认为CPU目前的运行状态出现问题,可用计数器溢出信号去复位CPU,使单片机系统重新工作,从而使系统纳入正常的工作状态。……2’3、(4分)简述堆栈的作用?堆栈操作遵循什么原则?
答:堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。……2’堆栈操作遵循的原则是按照先进后出的原则存取数据,这里的进与出是指进栈与出栈操作。……2’4、(4分)简述8051单片机中断响应过程。
答:一旦响应中断,8051首先对相应的优先级有效触发器置位,……1’然后由硬件执行一条长调用指令,把当前的PC值压入堆栈,以保护断点,……1’再将相应的中断服务的入口地址送入PC,同时清除中断请求标志(串行中断和外部电平触发中断除外),从而程序便转移到中断服务程序。……2’
5、(4分)怎样利用门控位GATE配合定时器的其它部件来测量外部正脉冲宽度?答:设置GATE=1,将TMOD中的T/C设置为1,此时为定时器模式,也可以看作
INT
是对机器周期的计数器,将TCOM中的TR0或TR1设置为1,当外部中断引脚0 INT输入正脉冲时,就会启动T0或T1开始计数工作,通过T0或T1测得振或1
荡周期的个数来测量外部正脉冲宽度。……4’(4分)请画出MCS-51单片机与微型计算机通信的原理图。
答
51单片机与计算机通信原理图……4’7、(4分)教材图10.4中的74HC165是如何将键值读入CPU的?
答:读74HC165需要3位接口线完成,即数据锁存线(PL)、数据输入线(Q7)、时钟线(CP/CE)。3线分别与单片机C8051F360的P1.2、P1.5和P1.4相接。其中通过控制单片机KEYSH(P1.2)将键盘数据所存到74HC165中,通过控制P1.5和P1.4口将所存的数据送到C8051F360进行处理。数据通过串行移位方式送到8位74HC165,再由74HC164并行输出驱动数码显示器。……4’
二、分析题(共33分)
1、(4分)指出下列指令源操作数的寻址方式
(1)MOV A,40H 直接寻址……1’(2)MOV R0,A 寄存器寻址……1’(3)MOV @R0,30H 直接寻址……1’(4)MOV DPTR,#3848H 立即数寻址……1’2、(4分)已知SP=25H,PC=2345H,标号LABEL所在的地址为3456H。问执行
长调用指令“LCALL LABEL”后,堆栈指针和堆栈内容发生什么变化?PC的值等于什么?
解:SP=27H,……1’(26H)=48H,……1’(27H)=23H,……1’PC=3456H ……1’
3、(8分)设R0的内容为32H,A的内容为48H,片内RAM的32H内容为80H,40H的内容为08H。请指出在执行下列程序段后各单元的内容变化。
解:MOV A, @R0 ;((R0))=80H→A
MOV @R0, 40H ;(40H)=08H→(R0)
MOV 40H, A ;(A)=80H→40H
MOV R0, #35H ;35H→R0
(R0)=35H, ……2’
(A)=80H, ……2’
(32H)=08H, ……2’(40H)=80H ……2’4、(8分)阅读下列程序,写出每条指令执行后涉及寄存器及存储器的结果。(61H)=F2H,(62H)=0CCH
MOV A, 61H ;F2H→A
MOV B,#02H ;02H→B
MUL AB ;F2H×02H=E4H→A
ADD A, 62H ;积的低8位加上CCH→A
MOV 63H,A ;结果送63H
MOV A,#00H ;清A
ADDC A, B ;积的高8位加进位位→A
MOV 64H,A ;结果送64H
答:(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H A,B各2剩余各1’,共8’
三、设计与编程题(共37分)
1.(12分)编写程序,要求从外部中断引脚/INT1输入10个负脉冲信号后,
自动点亮P1.2口上的LED灯,1S(采用软件延时)后灯自动熄灭,系统开始重新等待脉冲,如此循环。注意:必须采用中断法对负脉冲计数。
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP INT1
ORG 0030H
MAIN: SETB IT1
SETB EA
SETB EX1
MOV 30H,#0
AJMP $
;
INT1: INC 30H
MOV A,30H
CJNE A,#10,FANHU
CLR P1.2
ACALL DELAY
SETB P1.2
MOV 30H, #0
FANHUI: RETI
;
DELAY: MOV R4, #25 ;延时子程序,12M晶振延时1.001秒L3: MOV R2 , #200
L1: MOV R3 , #248
L2: DJNZ R3 , L2
DJNZ R2 , L1
DJNZ R4 ,L3
RET
2.(12分)编制一个通信程序,要求连续发送片内RAM40H开始的32个单元
中的数据,发送完毕,通过P1.0口上的LED灯指示。发送波特率为1200b/s,晶振为11.0592MHz,发送要求串行口中断方式。
ORG 0000H
AJMP MAIN ;上电,转向主程序
ORG 0023H ;串行口的中断入口地址
AJMP SERVE ;转向中断服务程序
ORG 0100H ;
MAIN: MOV SCON ,#11010000B
MOV PCON ,#00H
MOV TH1 ,#0E8H ;赋循环计数初值
MOV TL1 ,#0E8H 赋计数值
SETB TR1
SETB EA ;CPU允许中断
SETB ES ;允许串行口中断
MOV R0 ,#40H
MOV R7 ,#32
MOV A , @R0
MOV SBUF ,A ;发送第一个数据
AJMP $
SERVE: CLR TI
DJNZ R7,JXF
CLR P1.0
CLR ES
CLR EA
RETI
JXF: INC RO
MOV A , @R0
MOV SBUF ,A
RET
3.(12分)编制一个用DAC0832产生三角波的程序,波形幅度在1~2之间,
频率100Hz。
答案 ORG 2200H
START: MOV A,#64H
MOV DPTR,#7FFFH
UP: MOVX @DPTR,A ;线性上升段
ACALL DELAY
INC A
CJNE A,#C8H,UP ;(A)≠100时,转UP
MOV A,#C8H
DOWN: MOVX @DPTR,A ;线性下降段
ACALL DELAY
DEC A
CJNE A,#64H,DOWN ;(A)≠200时,转DOWN
SJMP DOWN ;完成一轮循环后,再次进行循环DELAY: MOV R0,#25 ;延时子程序,12M晶振延时50us DJNZ R0,$
RET
4.(12分)自主设计一个钟表。
答案:使用8051单片机作为时钟控制芯片,应用单片机内部的定时/计数器T0
实现软时钟的目的。首先将T0设定工作于定时方式,选中方式一,重复定时,
定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms
计数,计20次则对秒单元加一。秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单
元清0,标志一天时间计满。在对各单元计数的同时,把他们的值放到存储器单
元的指定位置。并对机器周期计数形成基准时间,然后用另一个定时/计数器T1
对基准时间计数形成秒,妙计60次形成分,分计60形成小时,小时计到12。
最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。
还要实现对时间的调整功能,8051的P0.0、P0.1、P0.2外接三个独立按键,当按下P0.0按键时,系统进入调时间的状态或启动时间显示的功能;当按下P0.1
按键时,对显示的数码管进行加一的功能;当按下P0.2按键时,对显示的数码
管进行减一的功能,达到调整时间的目的。
系统框图