东莞理工学院单片机考试必过综合练习131216资料Word格式.docx
《东莞理工学院单片机考试必过综合练习131216资料Word格式.docx》由会员分享,可在线阅读,更多相关《东莞理工学院单片机考试必过综合练习131216资料Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
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
因为针对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的数据传送指令
14如何用51单片机定时计数器测量外部脉冲信号的高电平时间?
15.51单片机串行通信中比特率的定义?
BCD码加法中若相加后的低4位大于9或大于15,则应对低4位需做什么操作?
比特率是指每秒传送二进制数的信号数(即二进制数的位数),单位是bps(或b/s);
波特率是指每秒传送信号的数量,单位是波特(B)。
每秒传送二进制数的信号数
只有在二进制通信系统中,波特率和比特率在数值上才相等。
十进制调整规则:
(1)若两个BCD数相加结果大于1001,则要加0110进行调整;
(2)若两个BCD数相加结果在本位上并不大于1001,但却