找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1730|回复: 0
打印 上一主题 下一主题
收起左侧

两个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。

电路:


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表