标题:
两个mcs51之间的串口通信
[打印本页]
作者:
yys1997
时间:
2018-4-29 17:09
标题:
两个mcs51之间的串口通信
实现单主机和单从机之间的点对点的通信。该程序应分为主机通信子程序和从机通信子程序两个部分,双方约定采用串行口方式1进行通信,一帧信息为10位,其中有1个起始位、8个数据位和一个停止位;波特率为2400波特,T1工作在定时器方式2,振荡频率选用11.0592MHZ。
串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:确定T1的工作方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动T1(编程TCON中的TR1位);确定串行口控制(编程SCON寄存器);串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。串行口工作方式的设置和控制是通过PCON和SCON两个寄存器实现的。因为SCOM=1主机的PCON寄存器设置为#00H,在方式1下1号机2号机的SM2都应置0。程序起始部分,应首先关闭CPU的总中断,然后初始化(这一步可以使程序更加严谨,但通过查阅其他程序,发现也可以不写这句。)
在点对点通信中,单片机可工作在方式1。方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚。方式1的波特率是可变的,由定时器T1的溢出率来决定。方式1的波特率 =(2SMOD/32)·(T1溢出率)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。T1 溢出率 = fosc /{12×[256 -(TH1)]}使用的振荡频率为11.0592MHZ,查表可得TH1=TL1=0F4H,PCON寄存器的SMOD位为0。
8.png
(13.37 KB, 下载次数: 27)
下载附件
2021-9-14 18:26 上传
电路:
9.png
(69.16 KB, 下载次数: 27)
下载附件
2021-9-14 18:26 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1