基于MCS51的两片单片机之间的串行通信接口设计

发布时间 : 星期三 文章基于MCS51的两片单片机之间的串行通信接口设计更新完毕开始阅读

基于MCS51的两片单片机之间的串行通信接口设计

2.7 51单片机串行通信格式及波特率

51单片机串口通信协议有4种方式,其中对1方式(8位),2,3方式(9位)的格式,中在每发送一个字节数据前都有一个起始位0,发送完毕一个字节后有一个停止位1,当想要在SBUF写一个字节的数据流时,单片机会自动加上起始位,当TI==1时,就会自动加上停止位。也就是在串口通信时只需要设置,串口中断,串口模式,以及串口中断函数的处理,还有就是波特率。在本次设计的串行通信中,发送和接收数据时,们要对数据的速率肯定要有一个约定,我通过软件可以对MCS-51单片机的串行口编程制定四种工作方式。这其中,方式0及方式2的波特率是固定不变的,但是方式1和方式3的波特率是可以变的,它是由定时器T1溢出率决定。

方式0时,移位时钟脉冲由56(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或者接收一位数据。所以,波特率就可以是振荡频率的十二分之一,并不受PCON寄存器中SMOD的影响,即:方式0的波特率=fosc/12。

方式1及方式3的移位时钟脉冲是由定时器T1的溢出率决定的,故波特率是由定时器T1的溢出率和SMOD的值共同决定,也就是方式1及方式3的波特率就可以写成2SMOD/32*T1溢出率。这其中,溢出率是取决于计数的速率和定时器预置的值。计数速率与TMOD寄存器中C/T的状态有关。当C/T=0时,计数速率=fosc/2;当C/T=1时,计数速率取决于外部输入时钟频率。

7

基于MCS51的两片单片机之间的串行通信接口设计

第三章 系统设计

3.1系统整体框图

要实现两MCS51单片单片机之间的串行通信就需要两RS232,分别接在各自的单片机上,然后再通过他们相连,两单片机实现了通信,才可以继而实现开关控制LED闪烁和控制温度显示等。总之本课题研究的内容最主要是实现两单片机的通信,LED闪烁和温度控制是他实现的表现形式。由温度传感器给单片机发送温度,然后在LCD上显示,而后是控制LED闪烁需要一个开关或按钮,和需要另外一个开关或按钮来实现控制数码管显示加1,这些通信都是两单片机之间的收发通信,而且是串行通信,所以我们不可能同时实现这些程序,当我们控制LED闪烁后,需要控制数码管显示加1就得关闭控制LED闪烁的开关,然后打开控制数码管的开关才能实现数码管显示加1。下面是整个系统的设计思想,用图形表示出来就是如图3-1。

图3-1系统框图

8

基于MCS51的两片单片机之间的串行通信接口设计

3.2两个RS232串口服务器之间的连接

3.2.1 MAX232芯片

图3-2 设计中采用的MAX232芯片

图3-2 MAX232芯片其内部是由一个电源电压变换器组成的,它可以将输入的+5V电压转换成RS-232输出电平时所需的±12V的电压。所以采用这种芯片来实现接口电路特别方便,只需单一的+5V电源输入即可。MAX232芯片的引脚结构如上图所示。其中芯片的管脚1~6(C1+、V+、C1-、C2+、C2-、V-)是用于电源电压的转换,只要在外部接入相应的电解电容就可以了;管脚7~10及管脚11~14构成了两组TTL电平与RS-232电平之间的转换电路,这些相对应的管脚就可以直接和单片机串行口的TTL电平引脚直接相连接了。 3.2.2 RS232 连接方式

两RS232把他们连接起来就可以构成一个实用的系统,用一个图就可以很清晰的看清楚他们之间的连接,如图3-3。

9

基于MCS51的两片单片机之间的串行通信接口设计

DTE(甲)DTE(乙)TXDRXDRTSCTSDSRSGDCDDTRRITXDRXDRTSCTSDSRSGDCDDTRRI

图3-3 两RS232的连接

如果甲方准备好之后,乙方就会产生呼叫(RI)有效,同时也准备好(DSR)。同时甲方RTS和CTS相连接,而且还要和DCD互连。也即是,如果甲方请求发送(RTS),就会得到允许(CTS),同时,也可以使乙方DCD有效,这是就是检测到了载波信号。甲方的TX和乙方的RXD相连接,就是一发一收。

串行通信中,线路空闲时,线路的TTL电平总是高的,经反向RS232的电平总是低的,一个数据的开始RS232线路为高电平,结束时RS232线路为低电平,数据总是总低位向高位一位一位的传输。TTL电平串行数据帧格式如图3-6:

图3-4 TTL电平串行数据帧格式

10

联系合同范文客服:xxxxx#qq.com(#替换为@)