文档介绍:3
3
第31 卷第6 期东华大学学报(自然科学版) Vol. 31 , No. 6
2005 年12 月 J OU RNAL O F DON GHUA UN IV ERSIT Y Dec. 2005
5 1 系列单片机多串口通讯任务的实现
吴佳1 ,钱伟康2
(1. 上海理工大学中德学院,上海,200093 ;2. 上海理工大学电气工程学院,上海,200093 )
摘要在 51 系列单片机系统应用日益广泛的今天,数据通讯是单片机实现自动化控制的主要方式之一。而串口通讯
又是单片机的主要通讯方式,然而传统 51 单片机的串口已很难满足当今高速、多串口通讯的应用要求,因此寻找一种
新的串口通讯方式就显得尤为重要了。本文就如何利用 51 汇编语言来实现软件模拟串口进行分析和讨论。
关键词: 单片机,串口通讯,汇编语言
中图分类号: TP 520
在单片机系统的应用中, 串口通讯是单片机的步串行通讯)。8051通过引脚RXD(P3. 0,串口数
主要通讯方式,它的基本原理是通过对单片机输出据接收端)和引脚TXD(P3. 1,串口数据发送端)与
引脚 T XD 和 R XD 每隔一定时间输出高电平或低外界进行通讯[1]。其内部结构可简化为如图1所
电平来实现数据的通讯。因此单片机的串口受到示。图中有两个物理上独立连接的接收、发送缓冲
定时器 T 的影响,往往传送速度会受到很大限制,
1 器SBUF,他们占用同一地址99H,可同时发送、接
当波特率大于 19 . 2 k 时, 传统串口就很难实现了收数据。发送缓冲器只能写入,不能读出;接收缓
( 表 1 所示为常用串口通讯模式) 。此外现今的单冲器只能读出,不能写入。
片机系统不但要求要和下位机通讯而且还要同时
, 串行发送与接收的速率与移位时钟同步。51
和上位机通讯一般为机。由此可见为了满
( P C ) , 单片机用定时器T 作为串行通信的波特率发生
足现今单片机系统的多级通讯要求传统的单片机 1
, 器,T 溢出频率经二分频后又经过16分频作为串
串口在功能和应用上已经显得捉襟见肘了因此用 1
, 行发送或接收的移位脉冲。移位脉冲的速率即是
软件来模拟串口通讯就有了很大的应用价值。波特率。
表 1 常用波特率与其他参数设置从图中可以看出,接收器是双缓冲结构,在前
定时器一个字节被从接收缓冲器读出之前第二个
T1 SBUF ,
串口工作波特率晶振频率/ 字节即开始被接收,但是在第二个字节接收完毕而
方式/(bit · s - 1) MHz SMOD 模式定时器
初值前一个字节CPU未读取时,会丢失前一个字节。
62. 5 k 12 1 2 0FFH 串行口的发送和接收都是以特殊功能寄存器
19. 2 k 11. 059 2 1 2 0FDH SBUF的名义进行读或写的。当向SBUF发“写”命
9. 6 k 11. 059 2 0 2 0FDH 令时即执行“MOVSBUF,A”指令,发送缓冲器SBUF
方式 1 和
4. 8 k 11. 0592 0 2 0FAH
方式 3 自动装载并开始由TXD引脚向外发送一帧数据,发
2. 4 k 11. 059 2 0 2 0F