51系列单片机多串口通讯任务的实现

51系列单片机多串口通讯任务的实现

ID:17904058

大小:1.35 MB

页数:10页

时间:2018-09-09

51系列单片机多串口通讯任务的实现_第1页
51系列单片机多串口通讯任务的实现_第2页
51系列单片机多串口通讯任务的实现_第3页
51系列单片机多串口通讯任务的实现_第4页
51系列单片机多串口通讯任务的实现_第5页
资源描述:

《51系列单片机多串口通讯任务的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第31卷第6期2005年12月东华大学学报(自然科学版)JOURNALOFDONGHUAUNIVERSITYVol.31,No.6Dec.200551系列单片机多串口通讯任务的实现吴 佳1,钱伟康2(1.上海理工大学中德学院,上海,200093;2.上海理工大学电气工程学院,上海,200093)51系列单片机系统应用日益广泛的今天,又是单片机的主要通讯方式,然而传统51单片机的串口已很难满足当今高速、多串口通讯的应用要求,新的串口通讯方式就显得尤为重要了。本文就如何利用51关键词:单片机,串口通讯,汇编语言中图分类号:TP520  在

2、单片机系统的应用中,串口通讯是单片机的主要通讯方式,它的基本原理是通过对单片机输出TXD和RXD每隔一定时间输出高电平或低电平来实现数据的通讯。因此单片机的串口受到定时器T1的影响,往往传送速度会受到很大限制,当波特率大于19.2k时,传统串口就很难实现了(表1所示为常用串口通讯模式)。此外现今的单片机系统不但要求要和下位机通讯,而且还要同时和上位机通讯(一般为PC机)。由此可见,为了满足现今单片机系统的多级通讯要求,传统的单片机串口在功能和应用上已经显得捉襟见肘了,因此用软件来模拟串口通讯就有了很大的应用价值。表1 常用波特率与其他参数

3、设置串口工作方式波特率/(bit・s-1)晶振频率/MHz定时器T1SMOD模式定时器初值62.5k12120FFH19.2k11.0592120FDH9.6k11.0592020FDH方式1和方式34.8k11.0592020FAH2.4k11.0592020F4H1.2k11.0592020E8H137.5k11.0592021DH…………………………1 多串口通讯原理首先讨论串口通讯的工作原理(这里只讨论异步串行通讯)。8051通过引脚据接收端)TXD(P3.1,外界进行通讯[1]器SBUF,他们占用同一地址收数据。发送缓冲器只能写

4、入,冲器只能读出,不能写入。单片机用定时器T1器,T1波特率。从图中可以看出一个字节被从接收缓冲器SBUF,前一个字节CPU未读取时,SBUF的名义进行读或写的。当向令时即执行“MOVSBUF,A”,TXD送完便使发送中断标志位满足串口接收中断标志位,数据并装载到接收缓冲器SBUF并申请中断。当执行“了一次读操作。由此可见,8051脚TXD和RXD以T1数据一位一位的发送或接收。因此摘要 在数据通讯是单片机实现自动化控制的主要方式之一。而串口通讯因此寻找一种汇编语言来实现软件模拟串口进行分析和讨论。引脚RXD(P3.0,串口数和引脚串口数

5、据发送端)与。其内部结构可简化为如图1所示。图中有两个物理上独立连接的接收、发送缓冲99H,可同时发送、接不能读出;接收缓串行发送与接收的速率与移位时钟同步。51作为串行通信的波特率发生溢出频率经二分频后又经过16分频作为串行发送或接收的移位脉冲。移位脉冲的速率即是,接收器是双缓冲结构,在前读出之前,第二个字节即开始被接收但是在第二个字节接收完毕而会丢失前一个字节。串行口的发送和接收都是以特殊功能寄存器SBUF发“写”命指令发送缓冲器SBUF自动装载并开始由引脚向外发送一帧数据,发TI(SCON.1)=1。同理在RI(SCON.0)=0的

6、条件下置允许接收位REN(SCON.4)=1就会接收一帧中,同时使RI=1,MOVA,SBUF”指令后便完成串口通讯是通过引经分频后作为波特率把一帧的,我们完全可以用6期吴 佳,等:51系列单片机多串口通讯任务的实现图1 串口内部结构示意图图2 发送字节5AH流程图 63软件的方式来模拟一个串口。这里我们假设使用的单片机为ATMEL89C51RC2[2]。具体做法为:使用89C51RC2自带的定时器T2为波特率发生器,利用外部中断INT0作为中断源,通过引脚INT0(P3.2)和INT1(P3.3)向外接收发送数据。其原理由图2所示。

7、图2中我们可以看出一个字节的发送完全是按照这个字节每个位的数据(0或1)来发送的。例如5AH这个字节的二进制为01011010B,加上起始位为低电平,停止位为高电平,一共十位,按照从低到高的顺序一位一位地发送。另外用T2作为定时器又可做到波特率可调控的特点。当波特率为9600时,即它每秒能传送9600bit的数据,所以他传送一个bit的时间为1/9600=104μs。为了确保数据采样的准确率,我们取52μs为一个单位时间,这样就能保证是在高电平或低电平的中间点的位置上来取值,以保证准确性。图3所示为数据采样示意图。在接收数据时,由于起始

8、位为电平0信号,这样正好能触发外部中断来模拟串行口中断。接下来就可通过硬件和软件来实现串行口的模拟。图3 数据采样示意图©1994-2006ChinaAcademicJournalElectr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。