51单片机串行口扩展法

上传人:夏** 文档编号:562958108 上传时间:2022-08-14 格式:DOC 页数:4 大小:58.50KB
返回 下载 相关 举报
51单片机串行口扩展法_第1页
第1页 / 共4页
51单片机串行口扩展法_第2页
第2页 / 共4页
51单片机串行口扩展法_第3页
第3页 / 共4页
51单片机串行口扩展法_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《51单片机串行口扩展法》由会员分享,可在线阅读,更多相关《51单片机串行口扩展法(4页珍藏版)》请在金锄头文库上搜索。

1、51单片机串行口扩展法1 引言 在研究采场瓦斯积聚模拟试验台的过程中,笔者设计了主从式多机采控系统结构。主从式多机控制系统是实时控制系统中较为普遍的结 构形式,它具有可靠性高,结构灵活等优点。当选用单串口51单片机构成这种主从式多机系统时,51单片机一方面可能要和主机Computer通信,一方面 又要和下位机通信,这时就需要扩展串行通道。本文具体介绍了两种串行通道的扩展方法。 2 串行口的扩展方法 常用的标 准51单片机内部仅含有一个可编程的全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存 器使用。当以此类型单片机构成分布式多级应用

2、系统时,器件本身的串口资源就不够用了。笔者在实际开发中,查阅了有关资料,总结出如下两种常用而有效的串行 通道扩展方法。 2.1 基于SP2538的扩展方法 SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。使用方法简单、高效。 在 应用SP2538扩展串行通道时,母串口波特率K1=2880*Fosc_in,单位是MHz,且Fosc_in小于20.0MHz, 在SP2538输入时钟Fosc_in =20.0MHz时母串口可

3、自适应上位机的56000bps和57600bps两种标准波特率输入。子串口波特率K2=480*Fosc_in。 母 串口和所有子串口都是TTL电平接口,可直接匹配其他单片机或TTL数字电路,如需连接PC机则必须增加电平转换芯片如MAX202 、MAX232 等。SP2538具有内置的上电复位电路和可关闭的看门狗监控电路。上位机写命令字0x10可实现喂狗,写命令字0x15关闭看门狗,初次上电后看门狗处 于激活状态或写命令字0x20激活看门狗监控功能。上位机可通过芯片复位指令0x35在任何时候让芯片进行指令复位,也可通过芯片睡眠指令0x55在任何 时候让芯片进入微功耗睡眠模式以降低系统功耗。初次上

4、电后芯片不会自行进入睡眠模式,但只能由上位机通过母串口任意发送一个字节数据将其唤醒,其他子串口 不具备这一功能。 图(1)是AT89C52单片机与SP2538的电路连接,图中,AT89C52的全双工串口与SP2538的母串口5相连, 该串口同时也作为命令/数据口。SP2538的ADRI0、ADRI1、ADRI2分别与AT89C52的P2.3、P2.4、P2.5口相连,可用于选 择发送数据是选择相应的串口04;ADRO0、ADRO1、ADRO2与P2.0、P2.1、P2.2相连,用于判断接收的数据来自哪一个串口。 SP2538的时钟频率选为20.0MHZ,此时母串口5的波特率为57600bps,

5、串口04的波特率为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: MO

6、V 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输

7、入至少应为发送或接收时钟的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的程序段: M

8、OV 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

9、 ;等待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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号