东莞理工学院单片机考试必过综合练习131216.docx
- 文档编号:5501675
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:20
- 大小:203.23KB
东莞理工学院单片机考试必过综合练习131216.docx
《东莞理工学院单片机考试必过综合练习131216.docx》由会员分享,可在线阅读,更多相关《东莞理工学院单片机考试必过综合练习131216.docx(20页珍藏版)》请在冰豆网上搜索。
东莞理工学院单片机考试必过综合练习131216
第一部分
1.MOVC指令是什么指令?
会产生/PSEN信号吗?
产生/PSEN信号干什么用?
MOVC指令c51单片机汇编中的查表指令,会产生该信号,对外部程序存储器进行读操作。
当使用MOVC和MOVX对外部存储器(外部程序存储器和外部数据存储器)进行读写操作时,会产生地址锁存ALE信号,接在地址锁存器的使能端G;
当对外部程序存储器进行读操作,即MOVC指令,会产生PSEN信号;
当对外部数据存储器进行读/写操作,即MOVX指令,会产生WR和RD信号
2.I2C总线数据传送是如何规定的?
数据传送以帧为单位,每帧含一个字节数据和一位应答信号位,数据字节的传送次序为先高位后低位,传送数据帧的数量没有限制,直到停止信号为止。
3.串行口方式0收发过程?
TB8、RB8有什么作用?
奇偶校验如何定义?
答:
串行口在工作方式0下为8位同步移步寄存器输入/输出方式,波特率固定为fosc/12。
方式0下的串行口本身相当于“并入串出”(发送状态)或“串入并出”(接收状态)的移位寄存器。
此时,串行数据由RXD(P3.0)逐位移出/移入(低位在先,高位在后);TXD(P3.1)输出移位时钟,频率为系统时钟频率fosc的1/12。
发送/接收数据时,每发送/接收8位数据TI/RI自动置1;需要用软件清零TI/RI。
TB8:
在方式2、3中,是要发送的第9位数据;在双机通信中,用于对接收到的数据进行奇偶校验;在多机通信中,用作判断地址帧/数据帧,TB8=0表示发送的是数据,TB8=1表示发送的是地址。
RB8:
在方式2、3中,用于存放收到的第9位数据;在双机通信中,作为奇偶校验;在多机通信中,用作区别地址帧/数据帧的标志。
在方式1时,SM2=0,RB8接收的是停止位。
在方式0时,RB8不用。
约定发送采用奇校验时,若发送的8位有效数据中“1”的个数为偶数,则要人为在附加位中添加一个“1”一起发送;若发送的8位有效数据中“1”的个数为奇数,则要人为在附加位中添加一个“0”一起发送。
约定接收采用奇校验时,若接收到的9位数据中“1”的个数为奇数,则表明接收正确,取出8位有效数据即可;若接收到的9位数据中“1”的个数为偶数,则表明接收出错,应当进行出错处理。
采用偶校验时,处理方法与奇校验类似。
方式0下的串行口相当于并入串出(发送状态)或串入并出(接收状态)的移位寄存器。
串行口的发送条件是TI=0,接收条件是TI=0并且REN=1
TB8是发送数据的第9位,在方式2或方式3中,根据发送数据的需要由软件置位或复位。
它在许多通信协议中可用作奇偶校验位;在多机通信中作为发送地址帧或数据帧的标志位。
RB8是接收数据的第9位,在方式2或方式3中接收到的第9位数据放在RB8位。
它或是约定的奇偶校验位,或是约定的地址/数据标示位。
奇偶校验是一种校验代码传输正确性的方法,奇校验规定8为有效位数据连同1为附加位中,二进制1的个数为奇数,为偶数为偶校验。
4.试述51单片机串行口方式1的接收过程(含RI、SM2不同情况下数据的装载情况)。
答:
(详细答案在书本153页)接收过程是在RI=0且REN=1条件下启动,此时接收器开始工作。
当接收电路采样到输入信号从1到0的负跳变时,确认是开始位0,就启动接收控制器接收数据。
如果接收到的起始位的值不是0,则起始位无效,复位接收电路。
如果起始位为0,则开始接收本帧其他各位数据。
控制器发出内部移位脉冲将RXD上的数据逐位移入移位寄存器,当8位数据及停止位全部移入后,在开始操作。
操作时,根据状态的不同,可以有以下不同操作:
若RI=0、SM2=0,则接收控制器发出“装载SBUF”信号,将8位数据装入接收数据缓冲器SBUF,停止位装入RB8,并置RI=1,向CPU发出中断请求信号。
若RI=0、SM2=1,则只有在停止位为1时才发生上述操作;
若RI=0、SM2=1,且停止位为0,则所接收的数据不装入SBUF,即数据丢失。
若RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。
5.起止范围是3000H~6FFFH的存储器的容量是多少KB?
。
6FFFH-3000H=3FFFH,3FFFH=0011111111111111=2^14=16kb
2^10=1KB;2^11=2kb;2^12=4kb;2^13=8kb
6.CPU的数据线是16根,地址线是20根,则其为多少位的计算机?
2^20*16=1M*16
现代电子计算机内部采用二进制数,位指的是一位二进制数。
比如说8位指的就是8位二进制数。
如10100101
计算机硬件设备有传输数据和地址的线路,有的计算机数据线和地址线是公用的,就要采用分时处理的方式,有的计算机实际地址线路数少于集成电路的地址线路数,就要采用分段寻址的方式。
因为要共用,所以叫总线(bus)有数据总线和地址总线。
一般情况数据总线与地址总线的位数相同,也有不同的。
比如早期的16位的IBM-AT数据总线是16位的,地址总线是24位的,可以寻址的最大值是16M。
CPU的位也是同一个意思,32位总线是指数据总位和地址总线是32位。
也就是说同时传送的数据是32位的二进制数和由这块CPU组成的系统最大寻址内存地址是2的32次幂。
7.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
附:
位寻址其实是直接寻址方式的一种
8阅读下图说明电路功能,引用了哪些CPU资源,编写程序实现电路功能
ORG0000H
MOVSCON,#00H
MOVP1,#0FFH
LOOP:
MOVA,P1
MOVSBUF,A
JNBTI,$
CLRTI
SJMPLOOP
END
利用单片机串行口扩展并行输出接口,程序完成将SW1~SW8的状态反应在移位寄存器74LS164所接的LED上(如SW1闭合时L0应点亮)。
9.以80C31为主机,用1片6264扩展片外RAM,1片27128扩展片外ROM,试画出接口电路,说明CPU控制信号作用、译码方式和芯片地址范围。
解:
接口电路图上图所示,只要把上图的27C56改为27C128和把A14改为A13就行了。
CPU控制信号:
(1)ALE信号作为低8位地址的锁存控制信号;
(2)
信号作为扩展程序存储器的读选通信号。
(3)
信号作为内外程序存储器的选择控制信号。
(4)/RD和/WR信号作为扩展数据存储器和I/O口的读选
通,写选通信号。
译码方式采用的是线选法
芯片ROM27C128的地址范围为:
0000H-3FFFH,4000H-7FFFH
芯片RAM62C64的地址范围为:
8000H-9FFFH,A000H-BFFFH,C000H-DFFFH,E000H-FFFH
10.51单片机外部RAM、ROM的最大寻址空间为多少?
外部RAM寻址,用的是DPTR寄存器,DPTR是16位的,所以能表示的地址范围是2的16次方,也就是65536个单元,即64K,范围是0000H---FFFFH
外部RAM寻址,用的是DPTR寄存器,DPTR是16位的,所以能表示的地址范围是2的16次方,也就是65536个单元,即64K,范围是0000H---FFFFH
因为针对ROM寻址的PC是16位的,寻址RAM的DPTR也是16位的,16位地址空间就是64K范围。
11.51单片机系统复位后,SP初始化为多少?
压的第一个数放在哪里?
堆栈区域只能设置在哪里?
系统复位后,SP初始化为07H关于堆栈中第一个数不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题MCS-51单片的堆栈原则上可以设在内部RAM的任意区域内。
但是,一般设在31H~7FH的范围之间
堆栈通常设置在内部RAM的30H~7FH之间(当系统复位后,SP的内容为07H)。
堆栈的原则是“后进先出”。
SP的内容就是堆栈“栈顶”的存储单元地址,即始终指向栈顶单元。
12.若(SP)=30H,标号“XADD”表示的实际地址为1111H,PC的当前值为2222H。
执行指令LCALLXADD后返回地址为多少?
(SP)=?
答:
返回地址为:
2225H;(SP)=32H;
说明:
调用子程序时,断点将会自动存入堆栈中,而断点就是单片机调用完子程序后下一条将执行的指令的入口地址,而指令LCALLXADD为三个字节的指令,所以返回的地址为:
2222H+3=2225H;
13.在51单片机中,与外部RAM进行数据交换都必须通过谁?
A累加器
在MOVXA,@DPTR指令时序中,ALE的第一次、第二次锁存的是什么?
什么沿有效?
,/PSEN的上跳作什么用?
,/RD上跳作什么用?
第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。
下降沿有效/PSEN是ROM选通信号,/RD是外部RAM读选通信号。
典型的51单片机内部RAM是256B,8根地址线(8位),这256B共分为高128位和低128位,用户使用的区域是低128位(即00H~7FH),通过程序计数器PC寻址。
51单片机的外部RAM可扩展到64KB,16根地址线(16位),使用DPTR作为外部RAM的寻址指针。
程序存储器:
也就是ROM,是存放用户程序(如汇编程序或C程序)的地方,典型的51单片机内部ROM为4KB,若是使用外部ROM可以扩展到64KB。
数据存储器:
是存放用户程序运行过程中的中间结果或者运算结果,也就是内部RAM或外部RAM。
MOV:
单片机内部RAM的数据传送指令
MOVX:
单片机外部RAM的数据传送指令
在MOVXA,@DPTR指令时序中,ALE的第一次、第二次锁存的是什么?
什么沿有效?
,/PSEN的上跳作什么用?
,/RD上跳作什么用?
14如何用51单片机定时计数器测量外部脉冲信号的高电平时间?
15.51单片机串行通信中比特率的定义?
BCD码加法中若相加后的低4位大于9或大于15,则应对低4位需做什么操作?
。
答:
比特率是指每秒传送二进制数的信号数(即二进制数的位数),单位是bps(或b/s);波特率是指每秒传送信号的数量,单位是波特(B)。
每秒传送二进制数的信号数
附:
只有在二进制通信系统中,波特率和比特率在数值上才相等。
十进制调整规则:
(1)若两个BCD数相加结果大于1001,则要加0110进行调整;
(2)若两个BCD数相加结果在本位上并不大于1001,但却产生了进位,相当于计算结果大于9,则也要加0110进行调整;
(3)两个BCD数相减,若低4位向高4位有借位,则低4位要做减0110的调整。
16.51单片机的ALE是什么信号,什么沿跳有效?
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
ALE有效时,P0口送出低8位地址,其后P0送出8位数据,而P2口一直送出高8位地址。
17.全译码是如何译码的?
部分译码是如何译码的?
线译码是如何译码的?
全译码:
使用全部系统地址总线进行译码。
特点是地址唯一,一个存储单元只对应一个存储器地址(反之亦然),组成的存储系统其地址空间连续。
部分译码:
只使用部分系统地址总线进行译码。
其特点:
有一个没有被使用的地址信号就有两种编码,这两个编码指向同一个存储单元,出现地址重复。
线选法就是用其中剩余一条地址线做为单片机选择其它芯片的片选信号线,连接简单,但当单片机外围芯片较多时,由于单片机剩余地址线数量有限,有可能不够用。
这时可以使用译码方式,对单片机剩余的高位地址线进行译码,用译码器的输出线做为单片机芯片的片选。
18.RETI与RET指令的功能有何异同?
通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。
两条指令都能从堆栈中弹出断点地址并装入PC中,使CPU回到原来主程序的断点处继续运行。
然而,RET和RETI有本质的区别:
当某一中断源响应后,单片机中的标志寄存器flagH和flagL其中的一个将会自动置位,用于阻止比它低级或同级的中断触发。
RETI可以清除“优先级激活触发器”(即flag寄存器),以保证后续中断源的及时响应。
所以,当把RETI替换为RET后,该程序在第一次运行时可能不会出错,但在第二次运行时就会出错了!
解:
RET指令的功能是从堆栈中弹出由调用指令压入堆栈保护的返回地址,并送入指令计数器PC,从而结束子程序,继续执行原来的程序。
RETI专用于中断服务程序返回,它具有清除内部相应的中断状态触发器(以保证正确的中断逻辑)的功能。
温馨提示:
可参考课本81页。
19.中断优先权、中断嵌套是什么?
系统复位时允许中断嵌套吗?
中断优先级
当多个中断源同时申请中断时,处理器一次只能响应一个中断源,若给不同的中断源设置不同优先权等级,多个中断源同时申请中断,处理器则优先响应优先级高的中断。
这就是处理器的中断排队原则。
80X86:
有256个中断优先权等级。
80C51:
只有2两个优先权等级。
(2)中断嵌套
如果中断发生时,处理器正在执行的是一个中断服务子程序,处理器是否响应中断,有2种处理方式:
处理器不响应中断,中断在执行过程中,不响应其他任何新的中断申请。
这可以保证中断处理的及时性。
但是这种机制有时会导致比较严重的后果,例如:
掉电就可能导致硬件损坏。
处理器响应中断,这时就会出现中断嵌套。
用户可以用关中断指令(或复位)来屏蔽所有的中断请求,
系统复位后,就没有中断了!
!
20阅读程序填空回答
0000758130QQ:
MOVSP,#10H
0003753044MOV30H,#44H
0006754411MOV44H,#11H
00097F0ALWOP1:
MOVR7,#0AH
000B759077MOVP1,#77
000E04INCA
000F1132ACALLXN
标号LWOP1对应的首地址是多少?
,指令ACALLXN占用几个个字节?
执行完指令ACALLXN后SP的内容为多少?
,MOV44H,#11H指令的操作码为多少?
21.执行MOVC,P0.0,CPLP1.1,MOVA,P1,ANL,P3,#12H,各条指令中I/O口读的是什么?
(锁存器还是锁存器)。
引脚锁存器引脚锁存器引脚
22.单片机/EA线的功能是什么?
当EA‘为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。
当EA’为低电平时,CPU只执行片外程序存储器指令。
对于8031,EA必须接低电平。
23.ACALL指令执行时,被调用的子程序的首址必须设在包含当前指令(即调用指令的下一条指令)的第一个字节在内的多少字节范围内的程序存储器中?
2KB2^11
24.51单片机复位后,系统默认的中断设置是怎样的?
单片机复位后,IE寄存器被清零,所有的中断都
被屏蔽。
25.I2C总线数据传送时和51单片机串行口发送数据时,数据位传送的顺序?
先高位后低位低位到高位
26.DAC0832片内有哪些资源?
8位输入锁存器,8位DAC转换器,8位D/A转换器
27.键盘扫描有哪些方法?
对于非编码键盘,如何去抖?
行列扫描的原理是怎样的?
答:
(独立键盘的扫描方法要看电路连接而定)矩阵式键盘扫描控制方式有:
(1)程序扫描方式;
(2)定时控制扫描方式;(3)中断控制方式;
按键消抖有两种方式:
一种是硬件消抖,另一种是靠软件延时来消抖;
硬件消抖就是在电路中加入硬件电路来对按键出现的抖动信号进行处理,常见的方式有加入触发器电路,或者采用滤波电路。
软件消抖的方式,就是当单片机检测到有按键按下后,则调用一个延时10ms子程序,延时后再来确认该键是否确实按下,从而消除抖动带来的不良影响。
(行列扫描程序在230页,程序的第一条指令时错误的,应改为:
MOVP1,#0F0H)
行列扫描的原理是:
1、读取列线的编号。
先置行线低电平,置列线高电平。
然后读取行列线的值(即程序中的P1。
如果有按键按下的话,其中一条列线将会被拉低为低电平,即为“0”),将数值取反,再将行线的值屏蔽掉后,检测列线的值是否不为零,(因为如果有按键按下的话,数值取反后,列线的值是不为零的),若不为零,则说明有按键按下,即需继续获取行线的编码。
若为零,则跳出键盘扫描程序。
2、读取行线的编号。
与获取列线的编号类似。
3、延时消抖后,再读取一遍列线、行线的编号,确定按键是否确实按下。
4、确定有按键按下后,利用列线、行线的编号计数出被按下按键的编号,并执行相应程序指令。
28.中断优先级是什么?
中断响应时间是什么?
什么情况下中断受阻?
答:
中断优先级是不同中断源对应的不同优先权等级。
从中断申请到执行第一条中断服务程序的最短时间是3个机器周期(优先权扫描1个机器周期,LCALL指令2个机器周期),在没有执行同级或更高级别的中断服务子程序的情况下,中断响应最长的等待时间不超过8个机器周期。
(131页)
29.设计51单片机与81C55实现的的键盘及显示接口,说明8155RAM及I/O口地址为多少?
(设地址译码无关位为1),试完成8155的初始化,请设计循环动态显示程序。
解:
8155RAM的地址为:
7E00H-7EFFH
I/O地址为:
7F00H-7F05H
8155的初始化程序
MOVA,#03H
MOVDPTR,#7F00H
MOVX@DPTR,A
从左到右循环动态显示0,1,2,3,4,5的显示子程序
DIS:
MOVR0,#00H;第0个数
MOVR2,#01H
MOVA,R2
LOOP:
MOVDPTR,#7F01H
MOVX@DPTR,A
INCDPTR
MOVA,R0
ADDA,#0DH;因为下面指令到列表一共有13个字节,所以这里加0DH
MOVCA,@A+PC;1个字节
MOVX@DPTR,A;1个字节
ACALLD10MS;2个字节
INCR0;取下个数,1个字节
MOVA,R2;1个字节
JBACC.5,DIS;若显示完6个数,从头开始再次循环,3个字节
RLA;1个字节
MOVR2,A;1个字节
AJMPLOOP;2个字节
DB60H,66H,4FH,5BH,06H,3FH;从左到右分别为5,4,3,2,1,0
D10MS:
MOVR6,#10
D1MS:
MOVR5,#249
DL:
NOP
NOP
DJNZR5,DL
DJNZR6,D1MS
RET
30.设计将内部RAM起始地址为50H的数据串传送到外部RAM中起始地址为8000H的存储区域,直到发现‘$’字符停止传送。
答:
ORG0100H
MAIN:
MOVR0,#50H
MOVDPTR,#8000H
LOOP:
MOVA,@R0
CJNEA,#24H,LOOP1;其中24H是‘$’字符的ASCII码
SJMPLOOP2
LOOP1:
MOVX@DPTR,A
INCR0
INCDPTR
SJMPLOOP
LOOP2:
END
31.中断控制器IE、IP如何设置?
地址为多少?
答:
如何设置(128~129页),地址:
IE的地址为A8H,IP的地址为B8H。
32.单片机系统扩展时,地址与数据总线是如何分离的?
依靠什么信号来实现?
设计扩展2片27256、2片6116的电路图。
答:
单片机系统扩展时,数据总线为单片机的P0口。
而P0又是一个分时复用的地址/数据线,所以地址总线的低8位地址线为P0口,高8位地址线为P2口。
而单片机的P0口与地址锁存器的输入端相连接,地址锁存器的输出端与所扩展的存储器的低8位地址A0~A7相连接。
地址锁存允许端ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
扩展电路·····关于6116的扩展电路在202页。
33.奇偶校验指的是结果中“0”还是“1”的个数奇偶特性。
,51单片机中奇偶校验是如何规定的?
8位有效数据连同1位附加位中,二进制1的个数为奇数–奇校验
34.数据传送的速率为80个字符每秒,每个字符由1个起始位、8个数据位和1个停止位组成,则其传送波特率为多少波特?
80*10=800B
35.51单片机的中断申请标志是如何复位的?
外部中断如何定义?
如何撤销?
答:
(中断标志复位应该是指中断撤销)定时/计数器中断标志、下降沿触发的外部中断标志是在中断响应后硬件自动清除的;串口中断标志是需要软件清除的;低电平触发的外部中断标志由于与外部信号的电平相反,不能由单片机硬件自动清零,也不能软件清零,只能通过使外部信号变为1来撤销申请。
36.已知10010110是一个补码,真值为多少?
,若为BCD码,则其真值为多少?
-89的补码是多少?
111010101001011010100111
37编程中断初始化,外部中断1电平触发,打开外部中断1、定时器0中断和串口中断,串口中断具有最高优先级。
最低优先级是外部中断1。
6.16
38编程将外部RAM1000H开始的n个单元初始化为11H。
编程将外部RAM3000H-3010H单元的数据搬运到内部RAM30H-40H。
39.下图采用了什么方式译码?
有地址重迭吗?
若有则有多少套重迭的地址?
373有何作用?
ALE是什么信号有效?
8个通道是如何区分的?
编写顺序采集8个通道的程序(分别用查询方式和中断方式)?
40.设计81C55实现的的键盘及显示接口,若在最左一位显示3,如何设计程序?
设计有无健按下的识别程序?
解:
最左一位显示3程序
ORG0100H
MAIN:
MOVA,#03H;前三行为8155初始化,即PA、PB为基本输出,PC为输入
MOVDPTR,#7F00H
MOVX@DPTR,A
DIS:
MOVA,#20H;20H为最左一位的位选信号
MOVDPTR,#7F01H
MOVX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东莞理工学院 单片机考试 必过综合练习131216 东莞 理工学院 单片机 考试 综合 练习 131216