51单片机的串行口扩展方法

[09-12 18:13:41]   来源:http://www.88dzw.com  单片机学习   阅读:8251

文章摘要: MOV@R1,A INCR1 RETI 图(1) AT89C52与SP2538的电路连接 2.2 基于Intel8251的串行口扩展方法 上面基于SP2538的串口扩展方法可以说是一种串行的扩展方法,这里基于Intel8251的扩展方法则是一种并行的方法。Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置。能够以同步或异步串行通信方式工作,能自动完成帧格式。 Intel8251具有独立的接收/发送器。在异步方式下,用于产生8251内部时序的时钟CLK输入至少应为发送或接收时钟的4.5倍。接收/发

51单片机的串行口扩展方法,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
    MOV@R1,A
    INCR1
    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的程序段:
    MOVA,#36H ; 计数器0输出方波控制字
    MOVDPTR,#0FFFFH; 指向控制字寄存器
    MOVX @DPTR,A
    MOVDPTR,#0FFFCH; 指向0计数器地址
    MOVA,#0DH
    MOVX @DPTR,A
    MOVA,#0
    MOVX DPTR,A
    SETB P1.0
    操作8251的程序段:
    …
    START: MOVDPTR,#7FFFH;8251控制、命令口地址
    MOVA,#5EH;一个停止位,奇校验,8位数据,异步*16
    MOVX @DPTR,A;写入方式字
    MOVA,#15H
    MOVX @DPTR,A;命令字,启动发送和接收器
    …
    LOOP: SJMP LOOP ;等待8251中断
    8251_INT: ;现场保护
    MOVDPTR,#7FFFH
    MOVA,@DPTR
    JBACC.0,TX_INT
    JBACC.1,RX_INT
    INT_EXIT: ;恢复现场
    RETI
    发送数据
    TX_INT:MOVDPTR,#7FFEH ;8251数据口地址
    MOVA,20H
    MOVX @DPTR,A
    …
    AJMP INT_EXIT
    接收数据
    RX_INT:MOVDPTR,#7FFEH
    MOVX A,@DPTR
    MOV30H,A
    …
    AJMP INI_EXIT
     
    图(2)用8251扩展串行通道的硬件电路原理
    3 结束语
    以单片机为核心的多级分布式系统的应用越来越广泛,上面讨论的两种串行口的扩展方法为此类多串口应用领域提供了一个良好的解决方案。笔者在实际中采用基于SP2538的扩展方法,设计了采场瓦斯积聚模拟试验台的多级分布式采控系统,效果良好。

上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行