51单片机串行口扩展法

发布者:tony520最新更新时间:2018-01-17 来源: eefocus关键字:51单片机  串行口  扩展法 手机看文章 扫描二维码
随时随地手机看文章

1 引言 

在研究采场瓦斯积聚模拟试验台的过程中,笔者设计了主从式多机采控系统结构。主从式多机控制系统是实时控制系统中较为普遍的结构形式,它具有可靠性高,结构灵活等优点。当选用单串口51 单片机 构成这种主从式多机系统时,51单片机一方面可能要和主机Computer通信,一方面又要和下位机通信,这时就需要扩展串行通道。本文具体介绍了两种串行通道的扩展方法。 

2 串行口的扩展方法 

 

常用的标准51 单片机 内部仅含有一个可编程的全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。当以此类型单片机构成分布式多级应用系统时,器件本身的串口资源就不够用了。笔者在实际开发中,查阅了有关资料,总结出如下两种常用而有效的串行通道扩展方法。 
2.1 基于SP2538的扩展方法 
SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而 单片机 或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。使用方法简单、高效。 
在应用SP2538扩展串行通道时,母串口波特率K1=2880*Fosc_in,单位是MHz,且Fosc_in小于20.0MHz, 在SP2538输入时钟Fosc_in =20.0MHz时母串口可自适应上位机的56000bps和57600bps两种标准波特率输入。子串口波特率K2=480*Fosc_in。 
母串口和所有子串口都是TTL电平接口,可直接匹配其他 单片机 或TTL数字电路,如需连接PC机则必须增加电平转换芯片如MAX202 、MAX232 等。SP2538具有内置的上电复位电路和可关闭的看门狗监控电路。上位机写命令字0x10可实现喂狗,写命令字0x15关闭看门狗,初次上电后看门狗处于激活状态或写命令字0x20激活看门狗监控功能。上位机可通过芯片复位指令0x35在任何时候让芯片进行指令复位,也可通过芯片睡眠指令0x55在任何时候让芯片进入微功耗睡眠模式以降低系统功耗。初次上电后芯片不会自行进入睡眠模式,但只能由上位机通过母串口任意发送一个字节数据将其唤醒,其他子串口不具备这一功能。 
图(1)是AT89C52 单片机 与SP2538的电路连接,图中,AT89C52的全双工串口与SP2538的母串口5相连,该串口同时也作为命令/数据口。SP2538的ADRI0、ADRI1、ADRI2分别与AT89C52的P2.3、P2.4、P2.5口相连,可用于选择发送数据是选择相应的串口0~4;ADRO0、ADRO1、ADRO2与P2.0、P2.1、P2.2相连,用于判断接收的数据来自哪一个串口。 SP2538的时钟频率选为20.0MHZ,此时母串口5的波特率为57600bps,串口0~4的波特率为9600bps。 
下面是与上述硬件电路相关的接口程序,该程序用A51汇编语言编制,程序仅说明了中断方式下对子串口0(TX0、RX0)的操作,其它子串口类似。 
TBLOCK DATA 20H 
RBLOCK DATA 30H 
LENGTH DATA 14H 
… 
TXR_REV_SEND: CLR ES 
JBC RI,RECEIVE 
CLR TI 
MOV A,@R0 
CLR P2.0 ; 写数据到"SBUF"前必须先置欲发送子串口的地址 
CLR P2.1 
CLR P2.2 
MOV SBUF,A 
DJNZ R2,NEXT 
SJMP $ 
NEXT: INC R0 
RETI 
RECEIVE: MOV A,P2 
AND A,#31H ;判断是否为子串口0 
JNZ ELSE 
MOV A,SBUF 
MOV @R1,A 
INC R1 
RETI 
 
图(1) AT89C52与SP2538的电路连接 

2.2 基于Intel8251的串行口扩展方法 
上面基于SP2538的串口扩展方法可以说是一种串行的扩展方法,这里基于Intel8251的扩展方法则是一种并行的方法。Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置。能够以同步或异步串行通信方式工作,能自动完成帧格式。 
Intel8251具有独立的接收/发送器。在异步方式下,用于产生8251内部时序的时钟CLK输入至少应为发送或接收时钟的4.5倍。接收/发送(RXC/TXC)时钟应为波特率的1倍、16倍或64倍(由8251的工作方式字设定)。 
图(2)是用Intel8251扩展一个串行通道的电路原理,图中,11.0592MHZ晶振经ALE6分频后于 、组合,产生1.8432MHZ的时钟频率,分别作为8251与8253的时钟输入,若设定8251通信波特率为9600bps,波特率因子为16,则需要 153.6KHZ的接收/发送时钟频率,该频率可由8253的OUT0产生。 
下面的A51程序段说明了如何设置8253使其产生153.6KHZ的方波,以及如何用8251收/发数据: 
;设置8253的程序段: 
MOV A,#36H ; 计数器0输出方波控制字 
MOV DPTR,#0FFFFH ; 指向控制字寄存器 
MOVX @DPTR,A 
MOV DPTR,#0FFFCH ; 指向0计数器地址 
MOV A,#0DH 
MOVX @DPTR,A 
MOV A,#0 
MOVX DPTR,A 
SETB P1.0 
;操作8251的程序段: 
… 
START: MOV DPTR,#7FFFH ;8251控制、命令口地址 
MOV A,#5EH ;一个停止位,奇校验,8位数据,异步*16 
MOVX @DPTR,A ;写入方式字 
MOV A,#15H 
MOVX @DPTR,A ;命令字,启动发送和接收器 
… 
LOOP: SJMP LOOP ;等待8251中断 
8251_INT: ;现场保护 
MOV DPTR,#7FFFH 
MOV A,@DPTR 
JB ACC.0,TX_INT 
JB ACC.1,RX_INT 
INT_EXIT: ;恢复现场 
RETI 
;发送数据 
TX_INT: MOV DPTR,#7FFEH ;8251数据口地址 
MOV A,20H 
MOVX @DPTR,A 
… 
AJMP INT_EXIT 
;接收数据 
RX_INT: MOV DPTR,#7FFEH 
MOVX A,@DPTR 
MOV 30H,A 
… 
AJMP INI_EXIT 

 
图(2)用8251扩展串行通道的硬件电路原理 

3 结束语 
以 单片机 为核心的多级分布式系统的应用越来越广泛,上面讨论的两种串行口的扩展方法为此类多串口应用领域提供了一个良好的解决方案。笔者在实际中采用基于SP2538的扩展方法,设计了采场瓦斯积聚模拟试验台的多级分布式采控系统,效果良好。 

参考文献 

[1] 孙和平,杨宁,白晶 单片微机原理与接口技术 冶金工业出版社 2003.1 
[2] 胡汉才 单片机 原理及其接口技术 清华大学出版社 1996.7 
[3] SP2538数据手册 成都视普科技有限公司 2003.2.12 


关键字:51单片机  串行口  扩展法 引用地址:51单片机串行口扩展法

上一篇:LabTool-48编程器对SST89C58编程经验
下一篇:DS1302的原理及应用

推荐阅读最新更新时间:2024-03-16 15:53

汇编写51单片机之循环点亮LED
二话不说,先上代码: ORG 0000H AJMP MAIN MAIN:SETB P1.0 LCALL DELAY CLR P1.0 LCALL DELAYA AJMP MAIN DELAY: MOV R7,#255 D1: MOV R6,#255 D2: DJNZ R6,D2 DJNZ R7,D1 RET DELAYA: MOV R7,#100 K1: MOV R6,#100 K2: DJNZ R6,K2 DJNZ R7,K1 RET END 让我从头到尾来分析这整个程序:首先,这段程序是用于循环点亮P1.0这个灯的。 ORG 0000H ;这句话我们说过他的作用了,不懂的往前看。 AJMP MAIN ;这句话分成两个部
[单片机]
51单片机与CF卡的接口设计与实现
1 引言 电子存储设备的不断涌现,使许多便携设备大容量数据的实时处理和存储成为可能,CF卡( Compact Flash card)因具有容量大、体积小、性能优良、携带方便等优点,已广泛应用在数据采集系统和许多消费类电子产品中。然而目前所开发的产品成本高,电路复杂,所需元器件数目多,严重制约了CF卡在更广阔领域内的应用。本文给出了一种简洁实用的硬件接口电路.成功实现了单片机对CF卡标准文件的读写。 2 接口电路设计 接口电路如图1所示,采用与80C51兼容的SST89C54型单片机。SST89C54程序存储器分为block0和block1两块,前者为16 KB,后者为4 KB,block0和block1的地址
[单片机]
<font color='red'>51单片机</font>与CF卡的接口设计与实现
20-基于51单片机的遥控开关仿真
具体实现功能 实现功能: 本课题研究的是一款遥控开关,采用51单片机进行发射电路与接收电路的设计,发射电路由单片机最小系统及四个按键构成, 接收电路由单片机最小系统、继电器及LED灯构成。 由于仿真无法模拟无线模块通信,故利用单片机RXD、TXD端口,通过发射电路的开关实现对接收电路LED灯的控制, 仿真实现LED灯的远程点亮及熄灭。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,
[单片机]
20-基于<font color='red'>51单片机</font>的遥控开关仿真
51单片机实现在在定时中断里动态扫描数码管的程序
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: LED-74HC595 ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200605 ---- @ModifiedTime: 20200605
[单片机]
<font color='red'>51单片机</font>实现在在定时中断里动态扫描数码管的程序
MCS-51单片机串行通讯口IP核的实现
script language=javascript src="http://www.dqjsw.com.cn/plus/ad_js.php?aid=10000" /script script type=text/javascript /*300*250,创建于2014-1-17 内容页中 dqjsw*/ var cpro_id = "u1457042"; /script script src="http://cpro.baidustatic.com/cpro/ui/c.js" type=text/javascript /script script src="http://pos.baidu.com/ecom
[单片机]
MCS-<font color='red'>51单片机</font>串行通讯口IP核的实现
51单片机程序——数码管全部亮起来
#include reg52.h unsigned char code table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};// 显示数值表0-9 void Delay(unsigned int t); void main (void) { unsigned char i; P1 = 0xff; while (1) { for(i=0;i 10;i++) //加入 for循环,表明for循环大括号中的程序循环执行10次 { P0=table ; //循环调用表中的数值
[单片机]
51单片机入门led闪烁程序
简介:51单片机入门led闪烁程序 这一节简单讲下proteus仿真软件的使用,关键在于需要的元器件的代号,比如电阻是resistor,电容是capacitor等等,不过不用刻意去记,用得多了自然就记住了,碰到新的元器件就网上查找。 上图中的例子是单片机的最小系统以及LED灯,...... 这一节简单讲下proteus仿真软件的使用,关键在于需要的元器件的代号,比如电阻是resistor,电容是capacitor等等,不过不用刻意去记,用得多了自然就记住了,碰到新的元器件就网上查找。 上图中的例子是单片机的最小系统以及LED灯,左侧栏里显示了这一原理图的元器件列表,如果要添加某元器件,那么就单击“P”,就会弹出选择元器件的
[单片机]
<font color='red'>51单片机</font>入门led闪烁程序
51单片机做的PWM无级调光程序
#i nclude reg51.h #i nclude user.h #define uchar unsigned char unsigned int value=100; unsigned int del=0; uchar value_temp=4; uchar temp=0; uchar code tab ={0x88,0xbe,0xc4,0x94,0xb2,0x91,0x81,0xbc,0x80,0x90,0xf7}; sbit pwm_port=p3^1; sbit key=p3^7; bit lamp_enable=0; void display(uchar dat) { p1=tab ; } void timer_i
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved