预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共72页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章MCS-51的串行通信随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。 通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。并行通信通常是将数据字节的各位用多条数据线同时进行传送。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。通信协议:指通信双方对数据传送控制的一种约定。约定中包括对数据格式、同步方式、传送速率、传送步骤、检纠错方式以及控制字符定义等问题作统一规定,通信双方必须共同遵守。异步串行通信和同步串行通信特点:异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信:字符/字节是一帧一帧的传送,每帧字符必须靠起始位来同步,在异步通信的数据传送中,允许空字符。b.波特率(bps)——传送数据位的速率(单位:位/秒)。将许多字符组成一个信息组(称为帧),字符一个接一个地传输。在每帧的开始处加上同步字符,没有信息传输时,填上空字符,同步传输不允许字符与字符之间有间隙。利用同步字(SYN)获得双方的同步信息,数据之间无间隔符(数据流),所以传输速率较高。 按照数据流的方向,串行通信分成三种方式: 单工:只能单方向传送信息。如键盘与主机之间。 半双工:可以双向传送信息;由于通过同一个通道传送信息,所以同一时刻只能单向传送; 全双工:采用两条通道,可以同时发送和接收信息。如计算机之间的通信。远距离传输,需要MODEM将数字信号→模拟信号,利用电话线传输(称为调制)。接收方用MODEM将模拟信号转换为数字信号(称为解调),局域网不用调制解调器,用网卡即可。1.调制解调器的调制方式有以下三种:2.数据终端设备(DTE)和数据通讯设备(DCE)3.过程特性 过程特性规定了信号之间的时序关系,以便正确地接收和发送数据。近程通信连接MCS-51单片机内部有1个全双工串行口,可同时发送和接收数据。它有4种工作方式,可供不同场合使用。波特率由软件设置,通过片内的定时/计数器产生。 接收、发送均可工作在查询方式或中断方式,使用十分灵活。MCS-51的串行口除了用于数据通信外,还可以非常方便地构成一个或多个并行输入/输出口,或作串/并转换,用来驱动键盘与显示器。 一、51串行口的结构1.发送和接收控制电路2.串行口的特殊功能寄存器2)串行口控制寄存器SCON SCON寄存器用来控制串行口的工作方式和状态,它可以是位寻址。在复位时所有位被清0,字地址为98H。SCON的格式为:SM0、SM1:定义串行口的操作模式,对应4种模式。其中fOSC是振荡器频率,UART为通用异步接收和发送器的英文缩写。3)特殊功能寄存器PCON二、串行口的工作方式⑴方式0发送2.方式13.方式24.方式3串行口每秒钟发送或接收的数据位数称为波特率。假设发送一位数据所需时间为T,则波特率为1/T。(3)方式1和方式3的波特率,除了与SMOD位有关之外,还与定时器T1的溢出率有关。定时器T1作为波特率发生器,常选用定时方式2(8位重装载初值方式),并且禁止T1中断。此时TH1从初值计数到产生溢出,它每秒钟溢出的次数称为溢出率。于是常用波特率和定时器T1初值例:假设某MCS-51单片机系统,串行口工作于方式3,要求传送波特率为1200Hz,作为波特率发生器的定时器T1工作在方式2时,请求出计数初值为多少?设单片机的振荡频率为6MHz。若工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。串行口方式1和方式3都是异步通信方式,方式1为8位数据位,方式3为9位数据位,两种方式的波特率都是受定时器T1的溢出率控制。 方式1或方式3实现串行异步通信时,初始化程序:要设定串行口的工作方式,并对定时器T1实现初始化,即设定定时器方式和定时器初值。此外,还要编写发送子程序和接收子程序。例1:用8051串行口外接74LS165移位寄存器扩展8位输入口,输入数据由8个开关提供,另有一个开关K提供联络信号。电路如图所示。当开关K合上时,表示要求输入数据,输入8位开关量,处理不同的程序。程序如下: ORG2000H START:JBP1.0,$;开关K未合上,等待 SETBP1.1;165并行输入开关量 CLRP1.1;开始串行移位 MOVSCON,#10H;串行口方式0并启动接收 JNBRI,$;查询RI,等待接收 CLRRI;查询结束,清RI MOVA,SBUF;输入数据 MOV20H,A;存储在20H单元 ACALLOTHER;根据A处理不同任务 SJMPSTART;准备下一次接收。例2:用中断法编出8051单片机串行口方式1下的发