内容正文:
项目7 甲机串口控制乙机彩灯
显示系统设计
任务7-1甲机串口控制乙机彩灯显示系统设计
1.任务分析
本任务要求采用单片机甲机作为主机,乙机作为从机,制作一个甲机串口控制乙机彩灯显示系统设计,其重点是掌握单片机的简单双机通信功能的操作控制。
2.电路设计
#include<reg51.h>
#include<intrins.h>
void Delay(unsigned char a)
{ unsigned char i;
while(--a)
{ for(i=0;i<125;i++);
}
}
void main(void)
{unsigned char b,i;
while(1)
{
b=0xfe;
for(i=0;i<8;i++)
{ P1=b;
Delay(250);
b=_crol_(b,1);
}
}
}
相关知识
7.1 串行通信介绍
通信的基本方式有两种,分别是串行通信和并行通信。串行通信是数据的各位依次逐位发送或接收,只需要一到两根数据线,其传输成本低,但在长距离传送时,由于每次只传送一位因而速度较慢;并行通信是数据的各位同时发送或同时接收。在多位数据并行传送时,至少需要多位数据线、一根公共线、控制线等,因而成本相对较高但其传送速度较快。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.1.1 串行通信方式
串行通信按同步方式可分为异步通信和同步通信。
异步通信
异步通信方式不要求接收端时钟和发送端时钟同步。发送端发送完一个字符帧后,可经过任意长的时间间隔再发送下一个。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2.同步通信
同步通信时接收端和发送端必须先建立同步(即双方的时钟要调整到同一个频率),才能进行数据的传输。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.1.2 串行通信的制式
1.单工制式
单工制式是指主机与从机通信时只能单向传送数据。这种制式的系统组成后,发送方和接收方都是固定的,即只允许数据从一个设备发送给另一个设备,即数据传送是单向的。
2.半双工制式
半双工制式是指通信双方都可以传送和接收数据,但不能同时接收和发送,即发送时不能接收,接收时不能发送。
3.全双工制式
全双工制式是指通信双方都可以接收和发送数据,且发送和接收也可以同时进行。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.1.3 串行通信波特率
在电子通信领域,波特率即调制速度,是指信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。它是对符号传输速率的一种度量。在串行通信中,每位数据的传送时间(即位宽)是固定的,一般用Td表示。Td的倒数称为波特率,表示每秒传送的二进制代码的位数,它是衡量传输通道频宽的指标。
1波特=1位/秒(1bit/s)
假设数据传输的速率为100字符/秒,而每个字符包括10个代码位(1个起始位、1个终止位、8个数据位),此时波特率为100×10=1000波特。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.1.4 RS-232C串行通讯协议
RS-232C美国电子工业协会(EIA)-制定,是目前使用最多的一种异步串行通信总线标准。其中“RS”是Recommended Standard(推荐标准)的缩写,“232”是该标准的标识,“C”表示此标准已修改了三次。
RS-232C定义了数据终端设备(DTE)和数据通信设备(DCE)之间的物理接口规范。
RS-232C通信接口又称为RS-232C总路线标准。RS-232C的电气标准采用负逻辑。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.2 MCS-51串行接口
7.2.1 串行口的结构
MCS-51单片机串行接口是一个可编程的全双工串行通信接口,通过引脚RXD (P3.0)和引脚TXD (P3.1)与外界通信。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.2.3 串行口控制寄存器
1.串行数据缓冲器SBU
MCS-51系列单片机串行中有两个串行数据缓冲器,一个用于发送数据即发送寄存器,另一个用于接收数据即接收寄存器,可以同时用来发送和接收数据。
2.串行口控制寄存器SCON
SCON用于控制串行口的工作方式,同时还发送和接收到的第9位数据及串行口中断标志位。SCON的字节地址为98H,可进行位寻址。
3.电源控制寄存器PCON
PCON主要是为CMOS型单片机电源控制而设置的专用寄存器。PCON的最高位SMOD是串行口的波特率倍增位.当SMOD=1时,串行口方式1、2、3的波特率加倍;当SMOD=0时,原设定的波特率不变。低四位用于电源控制,与串行接口无关。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.2.2 串行口工作方式
MCS-51串行通信共P3.0有4种工作方式,由串行控制寄存器SCON中的SM0、SM1决定,即方式0、方式1、方式2和方式3。
1. 方式0
当SM=0、SM=0时,串行口工作于方式0。在工作方式0下,RXD(P3.0)作为数据输入/输出端,TXD(P3.1)作为同步脉冲输出端。发送或接收的数据为8位为一帧,不设置起始位和停止位,低位在前,高位在后。其固定的波特率是fosc/12。
2.方式1
当SM=0、SM1=1时,串行口工作于方式1。方式1是波特率可变的8位异步通信方式,由TXD发送,RXD接收。一帧数据是10位,1位起始位是低电平、8位数据位是低位在前、1位停止位是高电平。波特率=2SMOD╳(T1溢出率)/32。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.2.2 串行口工作方式
3.方式2和方式3
当SM=1、SM1=0时,串行口工作于方式2。当SM=1、SM1=1时,串行口工作于方式3。这两种方式适用于多机通信,区别只是它们的波特率不同。在方式2和方式3下,数据由TXD发送,RXD接收。都是一帧数据由11位组成,1位起始位,8位数据,1位可编程控制的第9位数据(TB8/RB8)和1位停止位。
4.串行口四种工作方式的比较
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.3 MCS-51单片机多机通信
进行双机通信时,两个单片机是平等的,但是在多机通信中,有主机和从机之分,多机通信是指一台主机和多台从机之间的通信。
7.3.1多机通信电路连接
在多机进行通信时,主机发送的信息可以传送到各个从机上,但是各个从机发送的信息只能被主机所接收,其中的关键问题就是怎么识别地址和怎样保持主机与相关应从机之间的通信。
在串行方式2或方式3下,可以实现一台主机与多台从机之间的通信。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.3.2多机通信连接原理
多机通信时,主机向从机发磅的信息分为地址帧和数据帧两种数据。将第9位可编程TB8位作区分标志,当TB8=0时,表示数据帧;当TB8=1时,表示地址帧。
多机通信利用了MCS-51单片机串行控制寄存器SCON中的通信控制位SM2的特性。当SM2=1,CPU接收的前8位数据是否送入SBUF取决于接收的第9位RB8(RB8=1,将接收到的前8位数据关入SBUF,并置位RI产生中断请求;RB8=0,将接收到的前8位数据丢弃)。当从机SM2=1时,从机只能接收主机发送的地址帧(RB8=1),对数据帧(RB8=0)不予接收;当从机SM2=0时,可以接收主机发送的所有信息。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.3.3多机通信过程及协议
1.多机通信过程
1)各从机在初始化时置SM2=1,都只能接收主机发送的地址帧(RB8=1)。
2)主机发送地址帧(TB8=1),指出接收从机的地址。
3)各从机接收到主机发送的地址帧后,与自身地址比较,相同则置SM2=0, 不同则保持SM2=1。
4)主机发送数据帧(TB8=0),由于指定从机的SM2=0,可以接收主机发送的数据帧,但其余从机仍置SM2=1,对主机发送的数据帧不接收。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
7.3.3多机通信过程及协议
2.多机通信协议
从机通信协议是一个比较复杂的通信过程,必须有通信协议来保证多机通信的可操作性和操作秩序。这些通信协议,除了设定相同的波特率和帧格式外,还应该包括从机地址、主机控制命令、从机状态字格式和数据通信格式的约定,在此不作详细说明。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
项目小结
本项目叙述了MCS-51系列单片机串行口结构、MCS-51单片机四种工作及波特率的设置、RS-232C通信协议等内容,练习了C语言结构化设计方法。主要内容包括:
1.串行通信方式:
2.串行通信的制式。
3.串行通信波特率。
4.RS-232C串行通讯协议。
5.MCS-51串行接口。
6.串行口控制寄存器。
7.串行口工作方式。
8.MCS-51单片机多机通信。
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
$$