单片机综合复习第一部分答案仅供参考文档格式.docx
- 文档编号:8067678
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:29
- 大小:43.78KB
单片机综合复习第一部分答案仅供参考文档格式.docx
《单片机综合复习第一部分答案仅供参考文档格式.docx》由会员分享,可在线阅读,更多相关《单片机综合复习第一部分答案仅供参考文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
若RI=0、SM2=1,且停止位为0,则所接收的数据不装入SBUF,即数据丢失。
若RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。
6.51单片机的寻址方式有哪些?
各寻址空间有哪些?
序号
寻址方式
1
寄存器寻址
R0~R7
A、B、C(CY)、AB(双字节)、DPTR(双字节)、PC(双字节)
2
直接寻址
内部RAM低128字节(00H~7FH)
特殊功能寄存器
内部RAM位寻址区的128个位
特殊功能寄存器中可寻址的位
3
寄存器间接寻址
内部RAM(采用@R0,@R1或SP)
外部RAM(采用@R0,@R1或@DPTR)
4
立即寻址
ROM程序存储器(常数)
5
变址寻址
程序存储器(@A+PC,@A+DPTR)(只限于访问ROM)
6
相对寻址
ROM(PC当前值的-128~127字节)
7
位寻址
可寻址位(内部RAM、20H~2FH单元位和部分SFR位)
备注:
(1)特殊功能寄存器只能用直接寻址方式操作。
(2)各寻址方式例子:
立即寻址:
MOVA,#30H
直接寻址:
MOVA,30H
寄存器寻址:
MOVA,R0
寄存器间接寻址:
MOVA,@R0
变址寻址:
MOVCA,@A+DPTR;
MOVCA,@A+PC;
JMP@A+DPTR;
相对寻址:
JZrel;
JCrel;
位寻址:
MOVC,00H
7.若(SP)=30H,标号“XADD”表示的实际地址为1111H,PC的当前值为2222H。
执行指令LCALLXADD后返回地址为多少?
(SP)=?
返回地址为:
2225H;
(SP)=30H;
说明:
调用子程序时,断点将会自动存入堆栈中,而断点就是单片机调用完子程序后下一条将执行的指令的入口地址,而指令LCALLXADD为三个字节的指令,所以返回的地址为:
2222H+3=2225H;
执行指令LCALLXADD后,堆栈指针将指回原来调用子程序前的位置。
8.以80C31为主机,用1片6264扩展片外RAM,1片27128扩展片外ROM,试画出接口电路,说明CPU控制信号作用、译码方式和芯片地址范围。
(题目很变态,不会做。
个人认为书本第50页中的“应用实例”(译码方式为全译码方式)比较重要,因为作业题2.8与其类似)
9.设计81C55实现的的键盘及显示接口,若在最左一位显示3,如何设计程序?
设计有无健按下的识别程序?
10.基本型单片机有SFR是什么?
如何分布?
哪些可以位寻址?
SFR区是专用寄存器区(也称特殊功能寄存器区),位于内部RAM高128单元。
程序计数器PC虽然也是专用寄存器,但它在物理上是独立的,没有地址,故不可寻址,它不属于内部RAM的SFR区。
其他可寻址的(共21个)寄存器离散分布于80H~0FFH。
寄存器符号
地址
寄存器名称
ACC
E0H
累加器
P3
B0H
I/O口3
B
F0H
B寄存器
PCON
87H
电源控制及波特率选择寄存器
PSW
D0H
程序状态字
SCON
98H
串行口控制寄存器
SP
81H
堆栈指示器
SBUF
99H
串行口数据缓冲区
DPL
82H
数据指针低8位
TCON
88H
定时器控制寄存器
DPH
83H
数据指针高8位
TMOD
89H
定时器方式控制寄存器
IE
A8H
中断允许控制寄存器
TL0
8AH
定时器0低8位
IP
B8H
中断优先控制寄存器
TL1
8BH
定时器1低8位
P0
80H
I/O口0
TH0
8CH
定时器0高8位
P1
90H
I/O口1
TH1
8DH
定时器1高8位
P2
A0H
I/O口2
数据指针即是DPTR。
上表中,寄存器地址能被8整除的都是可以位寻址的(即十六进制地址的最后一位数是“8”或“0”的)
即:
ACC,B,PSW,IE,IP,P0,P1,P2,P3,SCON,TCON;
11.8031、8032、8051单片机的供应状态如何?
系统复位时,各寄存器状态是怎样的?
8031、8032、8051单片机都是总线型单片机,它们的资源配置如下
芯片型号
类型
ROM
RAM
并口
串口
定时/计数器
中断源
80C31
基本型
无
128B
4个
1个
2个
5个
80C32
增强型
256B
3个
6个
80C51
4KB掩模
单片机复位后,部分寄存器复位状态如下:
寄存器
值
PC
0000H
00H
07H
DPTR
P0~P3
0FFH
×
00000
0×
TL0、TL1
TH0、TH1
不定
0000
比较需要注意的是SP和P0~P3的值。
12.51单片机中断标志如何复位?
(中断标志复位应该是指中断撤销)定时/计数器中断标志、下降沿触发的外部中断标志是在中断响应后硬件自动清除的;
串口中断标志是需要软件清除的;
低电平触发的外部中断标志由于与外部信号的电平相反,不能由单片机硬件自动清零,也不能软件清零,只能通过使外部信号变为1来撤销申请。
13.画出内部定时器/计数器的内部结构?
分析其工作原理?
控制信号如何确定?
各方式有何特点?
工作方式2、3时,将T0、T1有何特点?
(定时/计数器的内部结构图在书本135页,个人认为了解即可。
最重要的是理解第138、139、141页中的三个结构图。
工作原理的话·
·
看书吧,不懂的问高手:
大神罗彬、大侠梓炜、大虾晓滨)定时/计数器的工作方式选择如下表:
M1M0
工作方式
00
方式0,13位定时/计数器
01
方式1,16位定时/计数器
10
方式2,自动重装的8位定时/计数器
11
方式3
定时/计数器0,分成两个8位计数器
定时/计数器1,停止计数
只有定时/计数器0可以工作在方式3;
需要重点掌握的控制信号有:
(1)IE(中断允许控制寄存器,128页)中的各个中断控制位;
(2)TCON(定时器控制寄存器,137页)中的各个控制位,其中IE1、IE0比较次要;
(3)SCON(串行口控制寄存器,151页)中的各个控制位;
(4)IP(中断优先控制寄存器,129页)各个控制位,参考126页中的结构图更有利于理解;
(5)TMOD(定时器工作方式寄存器,136页),重点,需要记住各个位作用以及位置,因为TMOD
的地址为89H,不能按位寻址,只能对整个寄存器编程。
(6)定时/计数器各种工作方式初值的计数,理解应用定时/计数器的程序的编写;
(7)各个中断源的自然优先级及其入口地址(129页);
(8)记住并掌握串行口4种工作方式波特率的计数公式
(9)PCON(电源控制寄存器,152页)中设置波特率是否加倍的SMOD;
14.51单片机内部定时计数器在作计数器使用时,读数有何要求?
计数时钟下降沿有效。
由于采用一个下降沿需要两个机器周期,因此外部计数时钟的最高频率是fosc/24(其中fosc是系统时钟频率)。
15.89C51中可以用作间接寻址的寄存器有哪些?
R0、R1、SP、DPTR;
16.51单片机堆栈区只可设置在哪里?
组织原则是什么?
SP始终指向哪里?
SP的地址是多少?
(62页)堆栈通常设置在内部RAM的30H~7FH之间(当系统复位后,SP的内容为07H)。
堆栈的原则是“后进先出”。
SP的内容就是堆栈“栈顶”的存储单元地址,即始终指向栈顶单元。
17.当RS1RS0=10时,当前工作寄存器组是第几组?
对应R0的地址为多少?
如何改变寄存器组?
(59页)第2组,对应R0的地址为10H,寄存器组的选择由程序状态寄存器PSW中RS1、RS0位的状态组合来确定。
18.利用51单片机内部定时/计数器T0方式2实现外部脉冲宽度的测量,TMOD该如何设置,编写给T0TMOD赋值又不影响T1TMOD原来设置的指令序列。
分析:
(136页)用于计算外部脉冲宽度,即定时/计数器的计数启动要受到外部的影响,工作在定时器模式,工作方式为方式2,所以GATE=1,C/T=0,M1M0=10。
T0的TMOD赋值程序段如下:
ANLTMOD,#F0H;
按位“与”运算,将TMOD中关于T0的设置清零
ORLTMOD,00001010B;
按位“或”运算,保留T1的设置,更改T0的设置
19.51单片机的中断申请标志是如何复位的?
外部中断如何定义?
如何撤销?
答案在12题。
20.已知10010110是一个补码,真值为多少?
,若为BCD码,则其真值为多少?
-89的补码是多少?
10010110的真值为-21。
若为BCD码,其真值为96。
-89的补码为10100111。
21.键盘扫描有哪些方法?
对于非编码键盘,如何去抖?
行列扫描的原理是怎样的?
(独立键盘的扫描方法要看电路连接而定)矩阵式键盘扫描控制方式有:
(1)程序扫描方式;
(2)定时控制扫描方式;
(3)中断控制方式;
按键消抖有两种方式:
一种是硬件消抖,另一种是靠软件延时来消抖;
硬件消抖就是在电路中加入硬件电路来对按键出现的抖动信号进行处理,常见的方式有加入触发器电路,或者采用滤波电路。
软件消抖的方式,就是当单片机检测到有按键按下后,则调用一个延时10ms子程序,延时后再来确认该键是否确实按下,从而消除抖动带来的不良影响。
(行列扫描程序在230页,程序的第一条指令时错误的,应改为:
MOVP1,#0F0H)
行列扫描的原理是:
1、读取列线的编号。
先置行线低电平,置列线高电平。
然后读取行列线的值(即程序中的P1。
如果有按键按下的话,其中一条列线将会被拉低为低电平,即为“0”),将数值取反,再将行线的值屏蔽掉后,检测列线的值是否不为零,(因为如果有按键按下的话,数值取反后,列线的值是不为零的),若不为零,则说明有按键按下,即需继续获取行线的编码。
若为零,则跳出键盘扫描程序。
2、读取行线的编号。
与获取列线的编号类似。
3、延时消抖后,再读取一遍列线、行线的编号,确定按键是否确实按下。
4、确定有按键按下后,利用列线、行线的编号计数出被按下按键的编号,并执行相应程序指令。
22.中断优先级是什么?
中断响应时间是什么?
什么情况下中断受阻?
中断优先级是不同中断源对应的不同优先权等级。
从中断申请到执行第一条中断服务程序的最短时间是3个机器周期(优先权扫描1个机器周期,LCALL指令2个机器周期),在没有执行同级或更高级别的中断服务子程序的情况下,中断响应最长的等待时间不超过8个机器周期。
(131页)
23.设计51单片机与81C55实现的的键盘及显示接口,说明8155RAM及I/O口地址为多少?
(设地址译码无关位为1),试完成8155的初始化,请设计循环动态显示程序。
24.设计将内部RAM起始地址为50H的数据串传送到外部RAM中起始地址为8000H的存储区域,直到发现‘$’字符停止传送。
(字符‘$’的值为24H)
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR0,#50H
MOVDPTR,#8000H
TMD:
MOVA,@R0
MOV@DPTR,A
INCR0
INCDPTR
CJNE@R0,#24H,TMD
SJMP$
END
25.中断控制器IE、IP如何设置?
地址为多少?
如何设置(128~129页),地址:
IE的地址为A8H,IP的地址为B8H。
26.单片机系统扩展时,地址与数据总线是如何分离的?
依靠什么信号来实现?
设计扩展2片27256、2片6116的电路图。
单片机系统扩展时,数据总线为单片机的P0口。
而P0又是一个分时复用的地址/数据线,所以地址总线的低8位地址线为P0口,高8位地址线为P2口。
而单片机的P0口与地址锁存器的输入端相连接,地址锁存器的输出端与所扩展的存储器的低8位地址A0~A7相连接。
地址锁存允许端ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
扩展电路·
关于6116的扩展电路在202页。
27.51单片机系统读外部ROM由什么信号选通?
在外部ROM中取数只能采用什么方式寻址?
有哪些指令来实现?
是读外部ROM的选通信号;
只能采用变址寻址方式;
对应的读取外部ROM的指令有:
MOVCA,@A+DPTR
MOVCA,@A+PC
28.MCS-51单片机系统晶振为12MH,则时钟周期、机器周期、最长指令执行时间为多少?
时钟周期约为0.083us;
机器周期为1us;
最长指令执行时间为4us(即4个机器周期)(70页)
29.地址线12根可选多少个存储单元?
4KBROM的首地址为6000H,则末地址为多少?
.
可选
个存储单元;
末地址为6FFFH。
30.访问片外RAM时采用哪些指令?
是什么寻址方式?
选通信号是什么?
访问片外ROM时采用什么指令?
是什么哪些方式?
访问片外RAM时采用的指令有:
(1)MOVXA,@Ri
(2)MOVXA,@DPTR
(3)MOVX@Ri,A(4)MOVX@DPTR,A
是寄存器间接寻址方式,片外RAM的选通信号不确定(也许是ALE);
访问片外ROM是采用的指令有:
(1)MOVCA,@A+DPTR
(2)MOVCA,@A+PC
是变址寻址方式,选通信号是
。
31.MOVXA,@R0能将访问64KB的存储器吗?
如何编写指令序列来实现?
不能。
(因为RO只是一个字节(即8位)的存储单元,最多能访问256B的存储器)。
访问64KB的存储器可以采用指令:
(1)MOVXA,@DPTR(读外RAM)
(2)MOVX@DPTR,A(写外RAM)
32.I2C总线是如何来选通扩展器件?
如何确定寻址字节?
I2C总线中的器件既可以作为主控器,也可以作为被控器,系统中每个器件均具有唯一的地址,各器件之间通过寻址确定数据交换方。
),“1”为读,“0”为写。
33.JCrel发生跳转时,目标地址如何计算?
RETI,RET指令时如何操作的?
二者有何区别?
用在哪里?
目标地址为PC=(PC)+2+rel;
(因为JCrel为两字节指令)。
RETI,RET指令时,向把栈顶的一个数弹出赋给PC的高8位,然后调整栈顶位置,在把栈顶的一个数弹出赋给PC的低8位,再次调整栈顶位置。
(区别是·
RETI比RET多了一个“I”)RET是(普通)子程序返回指令,而RETI是中断服务子程序返回指令。
RET用于恢复断点,使程序返回主程序继续执行。
RETI用于恢复断点和清除中断优先级状态触发器。
34.MOVA,P1和ANLA,P1指令,源操作数P1分别来自哪里?
前者来自P1口的状态(即单片机P1引脚的状态,受外部电路影响而改变的),后者来自特殊功能寄存器I/O口1(地址为80H)。
35.在访问外部数据存储器时,DPH,DPL,A是如何进行输入输出的?
从时序上予以分析。
DPL(地址低8位)的数据从P0传送到地址锁存器的输入端锁存,再从地址锁存器的输出端传送到外部数据存储器,而DPH(地址高8位)的数据直接从P2口传送到外部数据存储器。
外部数据存储器地址与DPH,DPL相对应的存储单元的内容从P0口读入,然后再从P0口传送到累加器A。
36.51单片机串行口各方式的波特率分别是如何确定的?
串行口各方式的波特率为:
(1)方式0的波特率=fosc/12;
(固定的)
(2)方式1的波特率=(
/32)×
(T1溢出率)
(3)方式2的波特率=(
/64)×
fosc(固定的)
(4)方式3的波特率=(
37.51单片机执行片内ROM与外部ROM中是如何确定的?
。
(55页)由程序存储器地址允许输入端
/Vpp来确定。
当
为高电平时,CPU执行片内程序存储器(即ROM)指令,但当PC中的值超过0FFFH(即超出4KB时),将自动转向执行片外程序存储器指令。
为低电平时,CPU只执行片外程序存储器指令。
(对于8031,由于其无片内ROM,故
必须接低电平)。
38.寄存器寻址与寄存器间接寻址能相互传送吗?
片内RAM二单元能直接传送吗?
片外RAM二单元能直接传送吗?
寄存器寻址与寄存器间接寻址不能相互传送。
片内RAM二单元可以直接传送。
片外RAM二单元不能直接传送。
39.I2C数据传输格式是怎样的?
SDA,SCL在数据传输时有何要求?
I2C数据传输格式是怎样的?
(答案在第3题)。
I2C总线的技术条件规定,在时钟线SCL为高电平期间,数据线SDA上的数据状态必须保持稳定。
只有在时钟线SCL为低电平期间,SDA线上的数据才允许发送变化。
I2C起始信号:
在SCL为高电平期间,SDA出现下降沿,表明数据传送开始;
I2C停止信号:
在SCL为高电平期间,SDA出现上升沿,表明数据传送结束;
40.堆栈指针SP占据片内哪个单元?
当执行完指令RET后,SP内容如何变化?
堆栈指针SP占据片内RAM的30H~70H单元;
SP的内容会减2(因为执行完指令RET时,程序断点要出栈,断点占两个字节)。
41.KK:
MOVR2,#3;
2个机器周期
DEL3:
PUSH02H;
2个机器周期
DEL4:
DJNZR2,DEL4;
POP02H;
DJNZR2,DEL3;
RET;
1个机器周期
KK子程序是如何运行的?
如何计算执行时间?
如何运行·
看程序吧。
执行时间共·
最有可能的答案是无数个机器周期。
因为执行“DJNZR2,DEL4”指令循环跳出后,R2的值为零,再执行“DJNZR2,DEL3”指令后,原数值为零的R2再减1,则是变成了FFH(不为零),满足跳转条件,又跳回到DEL3,在“DJNZR2,DEL4”指令循环跳出后,R2的值又变回了零·
,如此循环下去,子程序KK变成了死循环。
所以执行时间为无数个机器周期。
42.阅读懂单片机MOVX操作时序,与其接口一起搞清信号传输原理与时序。
MOVX指令用于访问外部数据存储器。
(书本201页~203页)。
43.单片机定时计数器启动受哪些信号控制?
单片机定时计数器启动受哪些信号控制由计数器门控位GATE来确定。
GATE=0,则外部输入信号对计数器不产生影响,只要启动控制位TRx=1(x=1或0),计数器就开始计数;
GATE=1,则外部中断输入
(x=1或0)为高电平时,且启动控制位TRx=1(x=1或0),计数器才开始计数,这种设置可以用于测量
引脚输入高电平的脉冲宽度。
44.设计0809、0832与51单片机接口,说明接口芯片完成的功能,各接口信号线的作用?
设计转换程序?
0809是一个8位逐次逼近型A/D转换器,其连接原理图在247页。
0832是一个8位T形电阻网络D/A转换器,其连接原理图在240页。
43.80C51各中断源的中断入口地址为多少?
80C51中断入口地址如下表所示:
入口地址
非中断源,程序复位后开始执行程序的地址
0003H
外部中断
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 综合 复习 第一 部分 答案 仅供参考