串行口方式0扩展8位并行输入口
- 格式:doc
- 大小:37.50 KB
- 文档页数:2
第6章单片机串行通信系统习题解答一、填空题1.在串行通信中,把每秒中传送的二进制数的位数叫波特率。
2.当SCON中的M0M1=10时,表示串口工作于方式 2 ,波特率为 fosc/32或fosc/64 。
3.SCON中的REN=1表示允许接收。
4.PCON 中的SMOD=1表示波特率翻倍。
5.SCON中的TI=1表示串行口发送中断请求。
6.MCS-51单片机串行通信时,先发送低位,后发送高位。
7.MCS-51单片机方式2串行通信时,一帧信息位数为 11 位。
8.设T1工作于定时方式2,作波特率发生器,时钟频率为11.0592MHz,SMOD=0,波特率为2.4K时,T1的初值为 FAH 。
9.MCS-51单片机串行通信时,通常用指令 MOV SBUF,A 启动串行发送。
10.MCS-51单片机串行方式0通信时,数据从 P3.0 引脚发送/接收。
二、简答题1.串行口设有几个控制寄存器?它们的作用是什么?答:串行口设有2个控制寄存器,串行控制寄存器SCON和电源控制寄存器PCON。
其中PCON 中只有PCON.7的SMOD与串行口的波特率有关。
在SCON中各位的作用见下表:2.MCS-51单片机串行口有几种工作方式?各自的特点是什么?答:有4种工作方式。
各自的特点为:3.MCS-51单片机串行口各种工作方式的波特率如何设置,怎样计算定时器的初值? 答:串行口各种工作方式的波特率设置:工作方式O :波特率固定不变,它与系统的振荡频率fosc 的大小有关,其值为fosc/12。
工作方式1和方式3:波特率是可变的,波特率=(2SMOD/32)×定时器T1的溢出率 工作方式2:波特率有两种固定值。
当SM0D=1时,波特率=(2SM0D/64)×fosc=fosc/32当SM0D=0时,波特率=(2SM0D/64)×fosc=fosc/64计算定时器的初值计算:4.若fosc = 6MHz ,波特率为2400波特,设SMOD =1,则定时/计数器T1的计数初值为多少?并进行初始化编程。
一、填空题1.单片机是把中央处理器、存储器、定时器/计数器以及I/O接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机。
2.除了单片机这一名称之外,单片机还可称为微控制器、嵌入式控制器。
3.计算机的系统总线有地址总线、控制总线和数据总线。
4.80C51单片机基本型内部RAM有 128 个字节单元,这些单元可以分为三个用途不同的区域,一是工作寄存器区、二是位寻址区、三是数据缓冲区。
5.8051单片机有2 个16位定时/计数器。
6.单片机存储器的主要功能是存储程序和数据。
80C51含4 KB掩膜ROM。
7.80C51在物理上有4个独立的存储器空间。
8.通常、单片机上电复位时PC= 0000H,SP= 07H;而工作寄存器则缺省采用第00 组,这组寄存器的地址范围是从00H~ 07H。
9.8051的堆栈是向地址的高端生成的。
入栈时SP先加1,再压入数据。
10.使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。
11.MCS-51特殊功能寄存器只能采用直接寻址方式。
12.汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。
13.半导体存储器的最重要的两个指标是存储容量和存储速度。
14.当PSW4=1,PSW3=0时,工作寄存器Rn,工作在第2组。
15.在8051单片机中,由 2 个振荡(晶振)周期组成1个状态(时钟)周期,由 6个状态周期组成1个机器周期。
16.假定累加器A的内容30H,执行指令:1000H:MOVC A,@A+PC 后,把程序存储器1031H单元的内容送累加器A中。
17.MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。
18.内部RAM中,位地址为30H的位,该位所在字节的字节地址为26H。
19.若A中的内容为63H,那么,P标志位的值为0。
20.在基址加变址寻址方式中,以累加器A作变址寄存器,以DPTR 或PC作基址寄存器。
单片机并行I/O口的扩展方法摘要:由于在MCS-51单片机开发中P0口经常作为地址/数据复用总线使用,P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等)使用,所以对于51单片机的4个I/O口,其可以作为基本并行输入/输出口使用的只有P1口。
因此在单片机的开发中,对于并行I/O口的扩展十分重要,主要分析3种扩展并行I/O口的方法。
关键词: MCS-51单片机; 并行I/O口; 扩展MCS-51单片机有4个并行的I/O口,分别为P0口、P1口、P2口和P3口,4个并行I/O 口在单片机的使用中非常重要,可以说对单片机的使用就是对这4个口的使用。
这4个并行I/O口除了作为基本的并行I/O口使用,还常作为其他功能使用,如P0口经常作为地址/数据复用总线使用[1], P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等等)使用。
这样,单片机只有P1口作为基本的并行I/O口使用,如果在单片机的使用中对并行I/O口需求较多,对于并行I/O口的扩展就非常重要了。
下面通过具体的实例(8位流水灯设计)来给出几种不同的并行I/O口扩展方法。
为了更好地说明以下几种不同的并行I/O口扩展方法,假设利用单片机实现流水灯的设计。
采用单片机的P1口设计流水灯,电路。
由图1可知,8只LED直接连接在单片机的P1口上,通过对单片机进行编程即可以实现8只发光二极管产生流水灯。
1 使用单片机的串行口扩展并行I/O口单片机有一个全双工的串行口[2],这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为移位寄存器使用。
当单片机的串行口工作在模式0时,若外接一个串入/并出的移位寄存器(74LS164),就可以扩展一个8 bit并行输出口;若外接一个并入/串出的移位寄存器(74LS165),就可以扩展一个8 bit并行输入口。
,单片机外接一个串入/并出的移位寄存器(74LS164),这样就可以扩展8 bit并行输出口。
《单片机原理及应用》习题一、填空1、MCS-51单片机访问外部存储器时,利用 ALE 信号锁存来自 P0 口的低8位地址信号。
2、MCS-51系统中,当PSEN 信号有效时,表示从P0口稳定地读入了 低8位地址 。
3、通常单片机上电复位时PC=0000H ,SP= 07H ;而工作寄存器则缺省采用第 00 组,这组寄存器的地址范围是从 00H~07H 开始。
4、MCS-51单片机的存储器从物理结构上可划分 4 个空间,从逻辑上分别可划分 3 个空间。
5、MCS-51单片机8031中有 2 个16位的定时/计数器,可以被设定的工作方式有 4 种。
6、MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 加以选择。
7、当/EA 接地时,MCS-51单片机将从_ 外部程序的存储器_____的地址0000H 开始执行程序。
8、中断请求信号有 电平 触发和 边沿 触发两种触发方式。
9、用串行口扩展并行口时,串行接口的工作方式应选为 0 。
10. MCS -51复位后·CPU 从 0000 H 单元开始执行程序。
·SP 的内容为 07 H , 第一个压入堆栈的数据将位于 片内 RAM 的 08 H 单元。
·SBUF 的内容为 不定 。
·ADDC A , #54H 指令执行后 , PSW 寄存器的内容将等于 01 H 。
11. 8051AH·片内设置有4KB 的ROM , 当EA 端保持高电平时 , PC (程序计数器)值超过 OFF H时 , 将自动转向执行外部程序存储器的程序。
·可做通用I/O 的至少有_P1_口的8条I/O 线。
_P0_口作地址/数据总线, 传送地址码的_低_8位 , _P2 口作地址总线 , 传送地址码的高__8位。
12.存储器组织·8051片内RAM 有 128 个字节 , 片外RAM 寻址范围为 64K 个字节。
一、选择题1.( B)在家用电器中使用单片机应属于微计算机的(A)辅助设计应用 (B) 测量、控制应用 (C)数值计算应用 (D) 数据处理应用2.( A )对程序计数器PC的操作(A) 是自动进行的 (B) 是通过传送进行的(C) 是通过加“1”指令进行的 (D) 是通过减“1”指令进行的3.( B )单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS-51的PC为16位,因此其寻址范围是(A) 4KB (B) 64KB (C) 8KB (D) 128KB4.( C )假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为(A) 36H (B) 37H (C) 38H (D) 39H5.( A)设置堆栈指针SP=30H后,进行一系列的堆栈操作。
当进栈数据全部弹出后SP应指向(A)30H单元 (B) 07H单元 (C) 31H单元 (D) 2FH单元6.( C )PC的值是(A) 当前指令前一条的地址 (B) 当前正在执行指令的地址(C) 下一条指令的地址 (D) 控制器中指令寄存器的地址7.( B )第2组通用寄存器的字节地址为(A) 00H—07H (B)10H—17H (C) 08H—0FH (D) 18H—1FH8.( C )DPTP是多少位的寄存器(A) 8位(B) 32位(C) 16位(D) 64位9、( D )MCS-51单片机,一个机器周期包含(A)2个状态周期(B)4个状态周期 (C) 8个状态周期 (C) 6个状态周期10.( A )当震荡脉冲频率为12MHz时,一个机器周期为(A) 1us (B) 2us (C) 8us (D) 4us11、( C )80C51的内部RAM的哪些字节可进行位寻址(A) 10H-20H (B) 10H-1FH (C) 20H-2FH (D) 30H-40H12、( A)单片机复位后堆栈指针SP的值为(A) 07H (B) 0FH (C)18H (D) 30H13、( B )单片机复位后堆栈指针PC的值为(A) 0030H (B) 0000H (C) FFFFH (D) 0003H14、( C )已知累加器ACC的字节地址是E0H,可位寻址,其D0~D7的位地址是(A)D0H~D7H (B)A0H~A7H (C)E0H~E7H (D)F0H~F7H15、( D )已知PSW中的RS1 RS0 = 10 ,则R0~R7对应的字节地址是(A) 00H~07H (B) 08~0FH (C) 20H~27H (D) 10H~17H16、( C )MCS-51单片机的入栈操作应该是(A)先入栈,后SP-1 (B)先入栈,后SP+1 (C)先SP+1,后入栈(D)先SP-1,后入栈17、( C )对MCS-51单片机I/O口描述正确的是(A) P1是双向口,P0P2P3是准双向口(B)P2P3是双向口,P0P1P是准双向口(C) P0是双向口,P1P2P3是准双向口 (D) P0P2是双向口,P1P3是准双向口18.( B )MCS-51单片机的复位控制是(A)低电平复位(B)高电平复位(C)脉冲下降沿复位(D)脉冲上升沿复位19.( A )内部RAM中的位寻址区定义的位是给(A) 位操作准备的 (B) 移位操作准备的 (C) 控制移位操作准备的 (D) 以上都对20.( C )MCS-51中(A) 具有独立的专用的地址线 (B) 由P0口和P1口的口线作地址线(C) 由P0口和P2口的口线作地址线 (D) 由P1口和P2口的口线作地址线21.( B )在MCS-51中,需双向传递信号的是(A) 地址线 (B) 数据线 (C) 控制信号线 (D) 电源线22.( A )在MCS-51中,为实现P0口线的数据和低位地址复用,应使用(A) 地址锁存器 (B) 地址寄存器 (C) 地址缓冲器 (D) 地址译码器23、( B )三态缓冲器的输出应具有三种状态,其中不包括(A) 高祖抗状态 (B) 低祖抗状态 (C) 高电平状态 (D) 低电平状态24、( A )51单片机的复位信号是( )有效。
单片机判断题1`当EA脚接高电平时,对ROM的读操作只访问片外程序存储器。
错2`80C51单片机包含4K的ROM,256字节的RAM,6个中断源。
错3`单片机内部RAM和外部RAM是统一编址的,它们的访问指令相同。
错4`MCS-51的程序存储器用于存放运算中间结果。
错5`单片机系统扩展时使用的锁存器,是用于锁存高8位地址。
错6`cpu的时钟周期为振荡器频率的倒数。
对7`外部中断0中断的入口地址是0004h。
错8`当EA脚接高电平时,对ROM的读操作只访问片外程序存储器。
错9`8155是一种8位单片机。
错10`低优先级不能中断高优先级,高优先级不能中断优先级。
错11`mcs-51的产品8051与8031的区别是:8031片内无rom。
对12`单片机的复位有上电自动复位和按钮手动复位两种,当单片机运行出错或进入死循环时,可按复位键重新启动。
对14`每个特殊功能寄存器都既有字节地址,又有位地址。
错我国的市电是220V,因此单片机直接使用220v交流电更方便。
错在计算机中,人们更多使用十进制数,因为十进制符合人的一般思维。
错()必须有中断源发出中断请求,并且CPU开中断,CPU才可能响应中断。
对单片机体积很小,所以只能用在小型仪器中,大型仪器不能使用。
错数码管动态显示能够同时显示多位数码管,但实际上仍然一次只点亮一位数码管。
对利用Proteus软件可以实现虚拟仿真,大大提高开发效率。
对()MCS-51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。
错单片机P3口每个引脚都具备第二功能,有时候会引起混乱。
错()mcs-51单片机的特殊功能寄存器集中布置在片内数据存储器的一个区域中。
对因为片外数据存储区容量比较大,所以程序可以存放到该处。
错在AT89S51中,中断请求的撤销是可以自动实现的。
错()特殊功能寄存器SP内装的是栈顶首地址单元的内容。
错INTEL8051的PSW中CY为进位标志,OV为溢出标志,P为奇偶标志。
【技能训练5-2】串行口方式0扩展8位并行输入口
目的:串行口方式0
内容:利用串行口工作方式0扩展8位并行输入口,指拨开关状态经并转串芯片74LS165输入到单片机,再将其状态由P0口输出到发光二极管显示,如图5-7所示。
模仿型项目,参考文件:51-165.DSN。
图5-7串行口扩展8位输入口
汇编语言参考源程序:
;165.ASM;串行口方式0,扩展165输入一个字节
PL BIT P2.7
ORG 0000H
LJMP START
ORG 0100H
START: MOV SCON,#10H ;方式0,允许串行口接收数据
START1: CLR PL ;PL=0,165读入并行数据
SETB PL ;PL=1,可以移位输出
WAIT: JNB RI,WAIT
CLR RI ;清除接收中断标志
MOV A,SBUF ;读取数据
MOV P1,A ;接收到的数据送P1口显示
ACALL DELAY
SJMP START1
DELAY: MOV R4,#00FH
AA1: MOV R5,#0FFH
AA: DJNZ R5,AA
DJNZ R4,AA1
RET
END
C语言程序:
/*利用串行口工作方式0扩展出8位并行输入口,指拨开关状态经并转串芯片74LS165输入到单片机,其状态并由P0口输出到发光二极管显示。
查询*/
//===================声明区=================================
#include<reg51.h> //定义8051寄存器头文件
#include<INTRINS.H>
unsigned char i=0;
sbit PL=P1^0;
//===================主程序==================================
main() // 主程序开始
{
while(1)
{
PL=0;
_nop_();
_nop_();
_nop_();
PL=1;
SCON=0x10; // 串行口方式0,允许串行口接收数据
while(!RI);
P0=SBUF;
RI=0;
_nop_();
_nop_();
}
} // 主程序结束
思考:如何用串行口扩展16位的输入口?
操作步骤:
1、利用proteus软件绘制原理图(如图5-7所示)
2、添加驱动程序,编译通过。
3、执行仿真,点击指拨开关,改变输入内容,观察P0口输出情况。
4、注意:74165的移位是从D0->D1->......->D7,就是高位在前,51单片机是低位在前
5、填写项目实施记录单。