当前位置:文档之家› CD4052 单片机串行口扩展技术应用

CD4052 单片机串行口扩展技术应用

CD4052 单片机串行口扩展技术应用
CD4052 单片机串行口扩展技术应用

CD4052 单片机串行口扩展技术应用

CD4052 是一种数字控制的模拟数据选择/ 分配器,本文将它用于UART串口扩展,解决了普通单片机UART串口太少的问题。文中给出该器件的主要特性、引脚说明及电气特性,并以A T89C51 单片机为例给出多串口扩展应用电路。

1 概述

当前,以单片机为核心构成的智能化测控系统及电子产品不断涌现,为了满足数字化及智能化要求,许多外围电路功能模块、部件、器件及传感器也具备了UART 串口通信功能,而现阶段的8 位、16 位、32位单片机却大部分仅提供一个UART 串口,这样就很难满足系统中一方面要与具有UART 功能的串口部件通信,另一方面又要与上位机通信的要求。利用CD4052 做多串口扩展器,可很好地解决此问题。

2 封装及引脚功能

该器件具有SOP、SOIC、TSSOP和PDIP四种封装形式,皆是16 个引脚。图1 所示为其PDIP封装引脚分布图,图2 是CD4052 的逻辑图,数字控制真值表见表1。

图1 CD4052PDIP引脚分布图

3 工作特性

CD4052 模拟数据选择/ 分配器是数字控制的模拟开关,具有低导通阻抗和非常低的关断泄漏电流。315V 的数字信号可以控制15VP- P 的模拟信号。例如,若VDD = 5V , VSS = 0V , VEE = - 5V ,则的数字信号可以控制- 5V + 5V 的模拟信号输入输出。数据选择器在整个VDDVSS 和VDDVEE 范围具有非常低的静态功耗,而且与控制信号的逻辑状态无关。

图2 CD4052 的逻辑图

表1 真值表

CD4052 是一个独立的4 通道数据选择器,具有二进制控制输入端A、B 和一个禁止输入INH。A、B的四种二进制组合状态用来在四对通道中选择其中的一对,当逻辑“1”加到INH 输入端时,所有的通道都关闭。CD4052 的器件特性为:

1) 宽范围的数字和模拟信号电平:数字315V ,模拟可达15VP- P。

2) 低导通阻抗:在VDD - VEE = 15V 的条件下,整个15V P - P信号输入范围的典型值为80Ω。

3) 高截止阻抗:在VDD - VEE = 10V 的条件下,通道漏电流的典型值为±10 pA。

4) 逻辑电平转换:315V ( VDD - VSS = 315V) 的数字地址信号转换成15VP- P ( VDD - VEE = 15V) 的开关模拟信号。

5) 匹配开关特性:在VDD - VEE = 15V 的条件下,RON 的典型值为5Ω。

6) 极低的静态功耗:在VDD - VSS = VDD - VEE =10V 条件下,静态功耗的典型值为1μW。

7) 片上二进制地址解码。

4 应用说明

1) 可将一个UART 串口扩展为4 个UART 串口:从逻辑图可以说明,CD4052 其实是数字控制的双向传输门,从总体功能上来

看,从X、Y输入,则是2 个一分四的数据分配器;若从X、Y输出,则是2 个四选一的数字选择器。分别将X、Y接单片机的RXD 和TXD ,则可以将一个串口扩展为4 个。

2) 全双工异步工作:4 个UART 串口都是全双工异步工作模式。

3) 高工作速度:工作速度取决于单片机的工作速度。

4) 与单片机的接口:其控制输入引脚A、B 和INH在VDD = 5V 的条件下,要求低电平输入电压VILF1.5V ,高电平输入电压

VIHE3. 5 ,与CMOS 单片机芯片电平兼容,不需外加其他元器件。其他输入/ 输出引脚,在VDD = 5V , VEE = 0V 的条件下, RON 的典型值为270Ω, RON 的典型值为10Ω,相对于较大的负载值,导通电阻上的压降可以忽略不计。

5 典型应用电路

利用CD4052 可将仅具有一个UART 串口的单片机扩展为具有4 个UART 串口的单片机。下面以A T89C51 单片机为例,给出相应的串口扩展电路,如图3 所示。

图3 利用CD4052 扩展的4 串口电路

图3 中A T89C51 的全双工串口与CD4052 的XY相连,另外任意两条空闲串口线与AB 相连,用来选择通道,在这里连接的是P2. 6 和P2. 7。INH 直接接地,即通道一旦选定,总是处于导通状态。如此接法简化操作,要与哪个扩展串口进行通信,只需

设置A、B 值打开相应通道开关即可,而不需其他软件操作。

6 结束语

CD4052 用作多串口扩展器可广泛应用于工业控制、数据采集、仪器仪表、智能家电、计算机RS232 口扩展、有线及无线数据传输等领域。由该器件构成的多串口电路与专用串口扩展器相比具有硬件成本低、性价比高、工作速度高、零外设等特点,因而选择该器件是多串口应用系统的良好解决方案。

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

51单片机的串行口扩展方法 -------------------------------------------------------------------------------- 摘要:在以单片机为核心的多级分布式系统中,常常需要扩展单片机的串行通信口,本文分别介绍了基于SP2538专用串行口扩展芯片及Intel8251的两种串行口扩展方法,并给出了实际的硬件电路原理及相应的通信程序段。 关键词:串口扩展;单片机;SP2538;Intel8251 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。

利用单片机串行口实现多个LED显示的方法

利用单片机串行口实现多个LED显示的方法 在单片机系统中,常常用数码管(LED)做显示器。一般的显示器为4位或8位,即需要4个或8个LED。实现这种显示的方法比较多,也比较简单。但是,对于多个LED显示,就必须采取必要的措施才能实现。本文介绍一种设计方法,利用该方法设计的多路LED显示系统具有硬件结构简单,软件编程方便,价格低廉的特点,经在储蓄所大屏幕利率显示屏中应用,效果很好。 1硬件电路 80C31单片机是MCS-51系列单片机的一种,它广泛应用于各种小型控制系统中。我们知道,80C31单片机有一个串行口可用于串行通讯,笔者发现它在方式0状态下,还可以扩展并行I/O口,从而实现多个LED显示,其硬件原理如图1所示。其中,74HC164为串行输入、并行输出移位寄存器,74HC164为单向总线驱动器,LED采用5EF1183KR型共阴极数码管。 当80C31单片机复位时,串行口为方式0状态,即工作在移位寄存器方式,波特率为振荡频率的十二分之一。参看图2,器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。第一帧(8位)数据发送完毕时,各控制信号均恢复原状态,只有TI保持高电平,呈中断申请状态。第一个74HC164把第一帧数据并行输出,LED1显示该数据(发送时序如图2所示)。然后,用软件将TI清零,发送第二帧数据。第二帧数据发送完毕,LED1显示第二帧数据,第一帧数据串行输入给第二个74HC164,LED2显示第一帧数据。依此类推,直到把数据区内所有数据发送出去。应该注意,数据全部发送完后,第一帧数据在最后一个LED显示。由于TXD端最多可以驱动8个TTL门,当LED显示器超过8个时,我们采用74HC244芯片驱动。每个74HC244有8路驱动,每一路可驱动8个LED,即每增加一个74HC244,可增加64个LED驱动。 2软件编程 该软件程序采用MCS-51系列单片机汇编语言编制,并把显示程序作为一个子程序,以便在主程序中调用。设LED为共限极显示器,共有64个,显示区首地十在内部RAM20H单元,需显示的数据以BCD码依次存放在显示区。 LED照明https://www.doczj.com/doc/3510597014.html,

单片机系统扩展

第六章单片机系统扩展 通常情况下,采用MCS-51单片机的最小系统只能用于一些很简单的应用场合,此情况下直接使用单片机内部程序存储器、数据存储器、定时功能、中断功能,I/O端口;使得应用系统的成本降低。但在许多应用场合,仅靠单片机的内部资源不能满足要求,因此,系统扩展是单片机应用系统硬件设计中最常遇到的问题。 在很多复杂的应用情况下,单片机内的RAM ,ROM 和 I/O接口数量有限,不够使用,这种情况下就需要进行扩展。因此单片机的系统扩展主要是指外接数据存贮器、程序存贮器或I/O接口等,以满足应用系统的需要。 6.1 单片机应用系统 按照单片机系统扩展与系统配置状况,单片机应用系统可以分为最小应用系统、最小功耗系统、典型应用系统等。 最小应用系统,是指能维持单片机运行的最简单配置的系统。这种系统成本低廉、结构简单,常用来构成简单的控制系统,如开关状态的输入/输出控制等。对于片内有ROM/EPROM 的单片机,其最小应用系统即为配有晶振、复位电路和电源的单个单片机。对于片内无ROM/EPROM的单片机,其最小系统除了外部配置晶振、复位电路和电源外,还应当外接EPROM 或EEPROM作为程序存储器用。最小应用系统的功能取决于单片机芯片的技术水平。 单片机的最小功耗应用系统是指能正常运行而又功耗力求最小的单片机系统。 单片机的典型应用系统是指单片机要完成工业测控功能所必须具备的硬件结构系统。 6.1.1 8051/8751最小应用系统 MCS-51系列单片机的特点就是体积小,功能全,系统结构紧凑,硬件设计灵活。对于简单的应用,最小系统即能满足要求。 8051/8751是片内有ROM/EPROM的单片机,因此,用这些芯片构成的最小系统简单、可靠。 图6-1 8051/8751最小应用系统 用8051/8751单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图6-1所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点: (1)有可供用户使用的大量I/O口线。因没有外部存储器扩展,这时EA接高电平,P0、P1、P2、P3都可作用户I/O口使用。

基于SPI的多串口扩展方案

基于SPI的多串口扩展方案(1扩8) 前言 随着电子技术的发展,以微处理器(MCU),PC机组成的主从分布式测控系统已成为当今复杂的测控系统的典型解决方案。单片机以其独特的串口通信功能为主,从设备之间的数据传输提供了便利。但是51系列单片机只提供了一个全双工的串行通信接口,这对于一个实时性要求较高,测控功能复杂的系统而言是一个美中不足之处。在我们设计的智能密集测控系统中,就需要测控工具有多个实时全双工的串行通信接口。我们现在只能是选择有多个串口的单片机或者是进行串口扩展,选择多串口的单片机肯定成本比较高,而且局限性比较大;那么最好的方案还是进行串口扩展。根据本人的对多款串口扩展芯片在性能、价格上的比较,个人认为维肯电子的VK3266这款串口扩展芯片还是相当不错的,下面我们就也VK3266来对单片机的串口进行扩展。以单片机的一个串口,扩展为4个全双工的串口。

1、系统原理框图 2、 硬件原理图 硬件原理框图介绍:本设计主要依赖的硬件是2块VK3224串口扩展芯片实现一个spi 接口扩展8个uart 接口,外部电路实现简单。主要是晶振电路,复位电路,spi 接口电路。

3、VK3224芯片介绍 1.产品概述 VK3224是SPI TM接口的4通道UART器件。VK3224实现SPI桥接/扩展4个串口(UART)的功能。 扩展的子通道的UART具备如下功能特点: 每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1Mbps的通信速率。 每个子通道可以独立设置工作在IrDA红外通信。 每个子通道具备收/发独立的16 BYTE FIFO,FIFO的中断为4级可编程条件触发点。 VK3224采用SOP20绿色环保的无铅封装,可以工作在2.5~5.5V的宽工作电压范围,具备可配置自动休眠/唤醒功能。 [注]:SPI TM为MOTOLORA公司的注册商标。 2.基本特性 2.1 总体特性 低功耗设计,可以配置自动休眠,自动唤醒模式 宽工作电压设计,工作电压为 2.5V~5.5V 精简的配置寄存器和控制字,操作简单可靠 提供工业级和商业级产品 高速CMOS工艺 采用符合绿色环保政策的SOP20无铅封装

MCS-51单片机串行口工作方式与波特率计算举例

MCS-51单片机串行口工作方式与波特率计算举例 1)方式0 方式0是外接串行移位寄存器方式。工作时,数据从RXD串行地输入/输出,TXD 输出移位脉冲,使外部的移位寄存器移位。波特率固定为fosc/12(即,TXD每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。每当发送或接收完一个字节,硬件置TI=1或RI=1,申请中断,但必须用软件清除中断标志。 实际应用在串行I/O口与并行I/O口之间的转换。 2)方式1 方式1是点对点的通信方式。8位异步串行通信口,TXD为发送端,RXD为 接收端。一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。波特率由T1或T2的溢出率确定。 在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断标志,否则,下一帧数据无法发送或接收。 (1)发送:CPU执行一条写SBUF指令,启动了串行口发送,同时将1写入 输出移位寄存器的第9位。发送起始位后,在每个移位脉冲的作用下,输出移位寄存器右移一位,左边移入0,在数据最高位移到输出位时,原写入的第9位1的左边全是0,检测电路检测到这一条件后,使控制电路作最后一次移位,/SEND 和DATA无效,发送停止位,一帧结束,置TI=1。 (2)接收:REN=1后,允许接收。接收器以所选波特率的16倍速率采样RXD 端电平,当检测到一个负跳变时,启动接收器,同时把1FFH写入输入移位寄存器(9位)。由于接、发双方时钟频率有少许误差,为此接收控制器把一位传送时间16等分采样RXD,以其中7、8、9三次采样中至少2次相同的值为接收值。接收位从移位寄存器右边进入,1左移出,当最左边是起始位0时,说明已接收8位数据,再作最后一次移位,接收停止位。此后: A、若RI=0、SM2=0,则8位数据装入SBUF,停止位入RB8,置RI=1。

用多路复用器扩展MCU串口

用多路复用器扩展MCU串口 多微控制器(MCU)/微机组成的分布式、主从式系统是现代复杂通信、控制系统的典型解决方案。分布式环境下的多机协同,要求系统状态和控制信息在多机间进行快速传递,这通常借助简单有效的串行通信方式。现有的微控制器一般所带的串行接口非常适用于点对点通信的场合;但对于实时性要求高的多机通信场合,这类接口必须在串口数量和功能上进行扩展,才能满足对实时性要求较高的应用场合的需要。 ?本文讨论了一种适用于多机实时环境下的、新的可重配置串口扩展方案。图1为本方案框图。多路复用器是本方案的硬件核心。方案的要点是利用Mux动态地将MCU的串口在串行通道间切换,以达到串口扩展的目的。本文中MCU 以89C51为例,Mux 以MAX353为例。 ?MAX353 是Maxim公司推出的高性能多路复用器,实际可构成两对单刀单掷模拟开关,两对开关状态由一个引脚控制。MAX353基本参数为导通电阻小于35Ω;导通时间小于175ns,关断时间小于145ns。以上参数完全满足本方案的使用要求。 ?以下介绍本串口扩展方案的基本工作原理。 ?两串行通道和MAX353、89C51的连接两串行通道CH1,CH2通过多路复用器MAX353接到89C51的串口,多路复用器MAX353由89C51的一个I/O引脚控制。其中串行通道CH2的输出TXD2同时接到89C51的外部中断输入请 求INT0或INT1上。为了适应各种串口通信协议的需要,可在电路中加上电平转换器件,如图1所示。 ?中断源的使用和设置CH1仍旧使用串口中断,而CH2使用外部中断INT0或INT1(下面以INT0为例)。当CH2有信息来时,TXD2上将出现起始标志:

CD4052 单片机串行口扩展技术应用

CD4052 单片机串行口扩展技术应用 CD4052 是一种数字控制的模拟数据选择/ 分配器,本文将它用于UART串口扩展,解决了普通单片机UART串口太少的问题。文中给出该器件的主要特性、引脚说明及电气特性,并以A T89C51 单片机为例给出多串口扩展应用电路。 1 概述 当前,以单片机为核心构成的智能化测控系统及电子产品不断涌现,为了满足数字化及智能化要求,许多外围电路功能模块、部件、器件及传感器也具备了UART 串口通信功能,而现阶段的8 位、16 位、32位单片机却大部分仅提供一个UART 串口,这样就很难满足系统中一方面要与具有UART 功能的串口部件通信,另一方面又要与上位机通信的要求。利用CD4052 做多串口扩展器,可很好地解决此问题。 2 封装及引脚功能 该器件具有SOP、SOIC、TSSOP和PDIP四种封装形式,皆是16 个引脚。图1 所示为其PDIP封装引脚分布图,图2 是CD4052 的逻辑图,数字控制真值表见表1。 图1 CD4052PDIP引脚分布图 3 工作特性 CD4052 模拟数据选择/ 分配器是数字控制的模拟开关,具有低导通阻抗和非常低的关断泄漏电流。315V 的数字信号可以控制15VP- P 的模拟信号。例如,若VDD = 5V , VSS = 0V , VEE = - 5V ,则的数字信号可以控制- 5V + 5V 的模拟信号输入输出。数据选择器在整个VDDVSS 和VDDVEE 范围具有非常低的静态功耗,而且与控制信号的逻辑状态无关。 图2 CD4052 的逻辑图

表1 真值表 CD4052 是一个独立的4 通道数据选择器,具有二进制控制输入端A、B 和一个禁止输入INH。A、B的四种二进制组合状态用来在四对通道中选择其中的一对,当逻辑“1”加到INH 输入端时,所有的通道都关闭。CD4052 的器件特性为: 1) 宽范围的数字和模拟信号电平:数字315V ,模拟可达15VP- P。 2) 低导通阻抗:在VDD - VEE = 15V 的条件下,整个15V P - P信号输入范围的典型值为80Ω。

MCS-51单片机串行接口

第七章MCS-51单片机串行接口 第一节串行通信的基本概念 (一)学习要求 1.掌握串行通信的基本概念。 2. 掌握异步通信和同步通信的区别。 (二)内容提要 一:基本概念及分类 串行通信是将数据的各位一位一位地依次传送。适合于计算机之间、计算机与外部设备之间的远距离通信。 串行通信从传输方式分为: 单工方式、半双工方式、全双工方式。 从接收方式来说,串行通信有两种方式: 异步通信方式、同步通信方式。 二:串行口的功能 MCS-51单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、CPU终端等)实现双机、多机通信。 串行口有4种工作方式,见表7-1。方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行I/O接口的功能。该方式又称为移位寄存器方式。方式1、方式2、方式3都是异步通信方式。方式1是8位异步通信接口。一帧信息由10位组成,其格式见图7-2a。方式1用于双机串行通信。方式2、方式3都是9位异步通信接口、一帧信息中包括9位数据,1位起始位,1位停止位,其格式见图7-2b。方式2、方式3的区别在于波特率不同,方式2、方式3主要用于多机通信,也可用于双机通信。 表7-1 (三)习题与思考题 1、什么是并行通信?什么是串行通信?各有何优缺点? 答:并行通信指数据的各位同时传输的通信方式,串行通信是指各位数据逐位顺序传输的通信方式。 2、什么是异步通信?什么是同步通信?各有何优缺点? 3、什么是波特率?某异步串行通信接口每分钟传送1800个字符,每个字符由11位组成,请计算出传送波特率。 第二节MCS-51串行接口的组成 (一)学习要求

AT89C51单片机串行输出

来源:《单片机与嵌入式系统应用》 摘要:介绍使用AT89C51单片机扩展高速串行同步移位输出口的方法,给出基于分立TTL 元器件和可编程逻辑器件PLD两种电路的实现方案,在LED点阵显示屏系统中已得到应用。 关键词:串行口 单片机可编程逻辑器件 AT89C51(与MCS-51兼容)单片机的串行口在方式0工作状态下,使用移位寄存器芯片可以扩展多个8位并行I/O口。在LED点阵显示屏应用系统中,一般都采用数据同步移位输出方式,并使用移位寄存器芯片(如74LS595)扩展并行I/O口驱动LED点阵显示。 LED点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送50屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部分,这就要求单片机能够快速地输出数据。AT89C51单片机的串行口在方式0工作状态下,数据以fosc/12的波特率输出,1个字节数据写入SBUF后,需检查中断标志位TI是否为“1”并清“0”TI或延时几个机器周期后才能继续写入了一个数据,输出速度慢。在LED点阵显示屏应用系统中,系统与PC机之间的通讯需要使用单片机的串行口,显示数据的同步移位输出口只有另外扩展。本文介绍的高速串行同步移位输出口(以下简称扩展串行口)电路,采用模块化设计,给出基于TTL和PLD两种电路的实现方案,波特率提高到fosc,数据输出不需要等待或延时。 一、扩展串行口与单片机的连接 扩展串行口电路框图如图1所示。与并行存储器芯片类似,扩展串行口被视为一个外部RAM地址单元,直接挂接在AT89C51的外部数据总线上,D0~D7为数据线,CE为片选信号,WE为写脉冲信号,也是扩展串行口的输出控制信号。AT89C51外接晶体振荡器的振荡信号经二个与非门整形后为扩展串行口提供时钟脉冲XTAL2。DAT和CLK分别是扩展串行口的数据输出端和同步移位脉冲输出端。

基于单片机的系统扩展

基于单片机的系统扩展 一、实验目的1、学习片外存贮器扩展方法。2、学习数据存贮器不同的 读写方法。3、学习片外程序存贮器的读方法。二、实验内容1.实验原理图: 2、实验内容(1)使用一片2764EPROM,作为片外扩展的程序存贮器,对 其进行读。(2)使用一片6264RAM,作为片外扩展的数据存贮器,对其进 行读写(使用键盘监控命令和程序运行两种方法)。3、实验说明(1)在使用键 盘监控命令读片外扩展的程序存贮器2764 中内容时,由于本系统中该程序存 贮器作为用户目标系统的程序存贮器,因此DVCC 系统必须处于仿真2 状态, 即H.....态,用MEM 键即可读出。(2)在使用键盘监控命令读写片外扩展的 数据存贮器6264 中的内容时,由于本系统中该数据存贮器作为用户目标系统 的数据存贮器,因此DVCC 系统处于仿真1 态(P.....态)或仿真2 态(H.....态),用ODRW 键即可读写。(3)读写数据的选用。本实验采用的是 55H(0101,0101)与AAH(1010,1010),一般采用这两个数据的读写操作就可 查出数据总线的短路、断路等,在实验调试用户电路时非常有效。(4)在仿 真1 态即P.....状态下,编写程序对片外扩展的数据存贮器进行读写,若L1 灯 闪动说明RAM 读写正常。三、程序程序清单:ORG 0C80H MOV DPTR,#8000H MOV R6,#0FH MOV A,#55HRAM1: MOV R7,#0FFHRAM2: MOVX @DPTR,A CLR P1.0 INC DPTR DJNZ R7,RAM2 DJNZ R6,RAM1 MOV DPTR,#8000H MOV R6,#0FHRAM3: MOV R7,#0FFHRAM4: MOVX A,@DPTR CJNE A,#55H,RAM6 SETB P1.0 INC DPTR DJNZ R7,RAM4 DJNZ R6,RAM3RAM5: CLR P1.0 CALL DELAY SETB P1.0 CALL DELAY SJMP RAM5DELAY: MOV R5,#0FFHDELAY1: MOV R4,#0FFH DJNZ R4,$ DJNZ R5,DELAY1 RETRAM6: SETB P1.0 SJMP RAM6 END 四、实验步骤1、片外

单片机多串行口设计方案

单片机多串行口设计方案 在以单片机为核心的测控系统中.微控制器往往需要两个或两个以上的串行口与其他主机或外设进行通讯,如何使系统具备多个串行接口,是一个具有普遍性的问题。尤其在航空航天领域,由于GPS、大气数据系统、数字罗盘、无线电高度表、甚至陀螺等航空电子设备普遍采用串行通讯方式,单片计算机系统就更需要有多个串行口以满足与外界信息交换的需要。常用的多串行口设计方法 ①选用多串行口单片机 直接选用多串行口单片机作为系统的CPU,显然是最直接有效的方法。现在有许多新型CPU配备两个或两个以上串行口,如W77E58、DS80C320、MSP430F149、C8051F020单片机和数字信号处理器TMS320C30有两个串行口,而cygnal的C8051F系列单片机有4-5个全双工的异步串行口。 ②用CPU的I/O模拟串行口 当串行口的波特率设为9600波特时,传送一个bit需要100us左右,对于一般的单片机而言,软件定时器完全有能力按异步串行通讯协议模拟出串行口的时序。所以,用CPU的两个I/O口和一个软件定时器,就可以纯粹用软件模拟出一个串行口来。文献介绍了一种具体的实现方法,发送时,只需按时序一位一位输出数据即可,接收时,首先利用外部中断检测到I/O接收口上的起始电平,然后利用定时器按半个bit的时间长度延时接收第一个bit的数据,再按一个bit的时间长度延时依此读取其他位的信号。 ③基于高速输入输出的软件串行口 80C196系列单片机配备了高速输入HSI和高速输出HSO接口.可以利用HSI和HSO来模拟串行口。数据的输出利用HSO,只要在HSO的定时器里写入与波特率对应的延迟时间,HSO每中断一次,输出一个数据位,直到停止位输出完毕。接收时,利用HSI自身的信号跳变检测功能检测起始位,并产生中断通知CPU开始接收数据,后续的数据位由软件定时器按波特率定时读取。文献详细介绍了实现方法,并给出了完整

51单片机串行口扩展法

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分别与A T89C52的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

单片机实验报告串行口

单片机实验报告 实验名称:串行通信实验 姓名:魏冶 学号:090402105 班级:光电一班 实验时间:2011-11-29 南京理工大学紫金学院电光系

一、实验目的 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD、RXD口; 3、了解MAX232芯片的使用。 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。它有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。 要发送的字节数据直接写入发送缓冲器,SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行接口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号做接收或发送移位寄存器的移位时钟。TI和RI分别发送完数据和接收完数据的中断标志,用来向CPU发中断请求。 三、实验内容 1、学会DPFlash软件的操作与使用,以及内部内嵌的一个串口调试软件的使用。 2、用串口连接PC机和DP-51PROC单片机综合仿真实验仪。 3、编写一个程序,利用单片机的串行口发送0x55,波特率为9600。 程序设计流程图

4、程序下载运行后,可在PC机上的串口调试软件上(内嵌在DPFlash软件的串口调 试器,设置通信口为COM1口,波特率为9600,数据位8,停止位1)看到接收到“UUUUUU……”,出现这样的结果就基本达到要求。 (1)代码: #include void main() { long int i; SCON=0x40; PCON=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; TI=1; TR1=1; star:for(i=0;i<5000;i++); SBUF=0x55; goto star; } (2)电路图; 5、在单片机接收到0x55时返回一个0x41,在PC机一端,以接收到0x41完成,波特率2400。

51单片机串口通信讲解

51系列单片机串口通信实例教程 单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了.而前面学习过的定时器与中断将是单片机通信的基础. 单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤,而串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来指定采用哪一种方式进行通信,而在通信的过程中,我们还要设定通信的波特率,不然的话,单片机是没办法进行采样的,这样也不会得到正确的结果了.我在实验过程中用到的是1号定时器来设定的波特率,用到了计时器方式2,也就是8位自动重装,这样可以简化编程,她的实现思想就是将常数放入TH,而TL中则是初始化参数,当溢出时,单片机会自动将TH中的常数装入TL中. 再来说说波特率,我们为什么要设定波特率,因为单片机会以16倍波特率的速度进行采样,而在实验中我们用的是10位异步收发方式,因此要将SM0置0,SM1置1.而其中的10位

有8位数据位,第一位和最后一位是发送数据的起始与结束.采用高的皮特率就不会出错啦.而波特率是有一个公式的: 方式0的波特率 = fosc/12 方式2的波特率 =(2SMOD/64)· fosc 方式1的波特率 =(2SMOD/32)·(T1溢出率) 方式3的波特率 =(2SMOD/32)·(T1溢出率) T1 溢出率= fosc /{12×[256 -(TH1)]} 根据公式我们很容易就算出当晶振为110592HZ时,要达到9600的波特率,我们只需要将TL1置FDH即可,如下图: 除此之外,你还要将SCON中的REN位置1,不然的话,单片机是不会接收数据的. 还有不要忘了选择定时器的工作方式,设置TMOD为0x20既是工作方式2,8位自动重装定时器. 这样一来,初始批工作算是差不多了.而串口通信分为中断方式,和查询方式,如果你想用查询方式你也不用设置IE寄存器了. 在串口通信中,还有一个很重要的寄存器SBUF,其实也不是一个,是两个,只是它们共用同一个地址,再热气表达式的不同,单片机会自动选择使用哪一个SBUF. 下面是我写的一个例子程序,产生的效果是:向单片机发送任一个0~255之间的数,将会被显示到数码管上.并且单片机还会自动把刚才传过去的数又发送回来 ,实验过程中用到了几个工具如下:

51单片机的串行接口

51单片机的串行接口 串行接口的一般概念 单片机与外界进行信息交换称之为通讯。 8051单片机的通讯方式有两种: 并行通讯:数据的各位同时发送或接收。 串行通讯:数据一位一位顺序发送或接收。参看下图: 串行通讯的方式 异步通讯:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。 在异步通讯中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。 波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。 同步通讯:在同步通讯中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。 通讯方向:在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。 2.8051单片机的串行接口结构 8051串行接口是一个可编程的全双工串行通讯接口。它可用作异步通讯方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进行全双工的8051多机系统也可以通过同步方式,使用TTL或CMOS 移位寄存器来扩充I/O口。 8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。 串行口的控制与状态寄存器 串行口控制寄存器SCON 它用于定义串行口的工作方式及实施接收和发送控制。字节地址为98H,其各位定义如下表:

51单片机串口通信(相关例程)

51单片机串口通信 1./*打开串口调试程序,将波特率设置为9600,无奇偶校验 晶振11.0592MHz,发送和接收使用的格式相同,如都使用 字符型格式,在发送框输入hello,I Love MCU ,在接 收框中同样可以看到相同字符,说明设置和通信正确*/ #include /*主程序*/ void main (void) { SCON = 0x50; /* SCON: 模式1, 8-bit UART, 使能接收*/ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload*/ TH1 = 0xFD; /* TH1: reload value for 9600 baud @ 11.0592MHz */ TR1 = 1; /* TR1: timer 1 run */ EA = 1; /*打开总中断*/ ES = 1; /*打开串口中断*/ while (1) /*主循环不做任何动作*/ { } } void UART_SER (void) interrupt 4 //串行中断服务程序 { unsigned char Temp; //定义临时变量 if(RI) //判断是接收中断产生 { RI=0; //标志位清零 Temp=SBUF; //读入缓冲区的值 P1=Temp; //把值输出到P1口,用于观察 SBUF=Temp; //把接收到的值再发回电脑端 } if(TI) //如果是发送标志位,清零 TI=0; } 2.51单片机与电脑串口通信的C程序,最好是中断方式的 #include #include unsigned char ch; bit read_flag= 0 ; void init_serialcom( void ) //串口通信初始设定 { SCON = 0x50 ; //UART为模式1,8位数据, 允许接收 TMOD |= 0x20 ; //定时器1为模式2,8位自动重装 PCON |= 0x80 ; //SMOD=1; TH1 = 0xFD ; //Baud:19200 fosc="11".0592MHz IE |= 0x90 ; //Enable Serial Interrupt TR1 = 1 ; // timer 1 run

基于单片机的多串口实现方案

基于单片机的多串口实现方案 摘要:针对pc和cpu通常只有一个串行接口的问题,本文介绍了基于单片机的多串口实现方案,该方案能扩展出5个不同电平标准的通用串口,并且选用了一种应用到实践当中,试验证明,设计可靠,性能稳定,解决了单片机单个串口的局限性。 关键词:单片机串行接口多串口串口通信协议 中图分类号:tp334.7 文献标识码:a 文章编号: 1007-9416(2012)01-0082-03 1、总述 随着控制技术的发展,控制系统的数字化在生产过程中的应用越来越普遍。作为控制核心的cpu需要和多个检测及控制的相关设备进行通信。这就给控制系统带来一个问题,一般的cpu都是只有1个串口(单片机最多的有4个),如果外界串行口设备过多,设计上就会出现许多困难。笔者因此论述了几个多串口实现方案,并采用其中一种实现了5个全双工串口,并且可以兼容多种串行通信电平标准(rs232/rs485/rs422)。 2、几种多串口扩展实现方式 扩展串口的方法归纳起来主要分为两类:一是软件实现方式,二是硬件实现方式。 2.1 软件实现方式 软件实现方式一般有两种,一种是读写i/o,另外一种是读写端口。软件模拟法可根据串行通讯的传送格式,利用定时器和主机的

i/o口来模拟串行通讯的时序,以达到扩展串口的目的。接收过程中需要检测起始位,这可以使用查询方式,或者,在端口具有中断功能的主机中也可以使用端口的中断进行处理。接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。如今软件模拟以其价格低廉,使用方便,已经成为一种潮流。但同时也存在着通讯波特率低(一般不能超过4800bps),可靠性差(尤其是对于实时性要求很高的情形下)等缺点,并且不是所有的单片机都支持串口软件扩展。 2.2 硬件实现方式 硬件扩展方法主要是通过增加一个器件来实现,具体实现方法有2种:其一是采用串口扩展芯片实现,就是一个主串口带多个从串口,如gm8125(每个串口波特率必须是一致的)、视普科技的 sp3539(各个串口可以设置为不同的波特率)等;其二是分时复用将一个串口分时切换成多个串口使用,就是把并行数据转换成串行数据,器件有ti等的tl16c754等,该器件可与mcu的p0口和p2口及4个中断对接,经过扩展后,系统对外接口可增加4个,且均可设置为全功能的串行接口。 3、基于硬件方式实现的多串口扩展 3.1 sp3539的简介 sp3539是采用低功耗cmos工艺设计的通用异步串行口扩展芯片,它可轻松将主机原有的1个串行口扩展成5个完全独立且每个子串口波特率、奇偶效验方式、数据帧长度都可独立设置的全双工子串

51单片机模拟串口的三种方法

随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数据后进行处理、存储,再主动或被动上报给管理站。这种情况下下,采集会需要一个串口,上报又需要另一个串口,这就要求单片机具有双串口的功能,但我们知道一般的51 系列只提供一个串口,那么另一个串口只能靠程序模拟。 本文所说的模拟串口,就是利用51的两个输入输出引脚如和,置1或0分别代表高低电 平,也就是串口通信中所说的位,如起始位用低电平,则将其置0,停止位为高电平,则将其置 1,各种数据位和校验位则根据情况置1或置0。至于串口通信的波特率,说到底只是每位电平持续 的时间,波特率越高,持续的时间越短。如波特率为9600BPS,即每一位传送时间为 1000ms/9600=,即位与位之间的延时为为毫秒。单片机的延时是通过执行若干条 指令来达到目的的,因为每条指令为1-3个指令周期,可即是通过若干个指令周期来进行延时的, 单片机常用的的晶振,现在我要告诉你这个奇怪数字的来历。用此频率则每个指令周期 的时间为(12/us,那么波特率为9600BPS每位要间融多少个指令周期呢? 指令周期s=(1000000/9600)/(12/=96,刚好为一整数,如果为4800BPS则为 96x2=192,如为19200BPS则为48,别的波特率就不算了,都刚好为整数个指令周期,妙吧。至于 别的晶振频率大家自已去算吧。 现在就以的晶振为例,谈谈三种模拟串口的方法。 方法一:延时法 通过上述计算大家知道,串口的每位需延时秒,中间可执行96个指令周期。 #define uchar unsigned char sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; #define RXD P1_0 #define TXD P1_1 #define WRDYN 44 //写延时 #define RDDYN 43 //读延时 //往串口写一个字节 void WByte(uchar input) { uchar i=8; TXD=(bit)0; //发送启始 位 Delay2cp(39); //发送8位数据位 while(i--) { TXD=(bit)(input&0x01); //先传低位 Delay2cp(36);

单片机多串口扩展

单片机多串口扩展 07计本三班 汪庆 0704013005 设计要求:选定具体单片机,利用IO口模拟单片机的串口时序,该软串口具有修改波特率、设定串口通信数据格式等功能,对外提供串口电平。 报告要求:选定单片机和所有器件具体型号,报告需有设计过程、原理图、程序流程图和源程序。 功能分析: 针对大多数单片机都只有一个串口的局限,在多数情况下限制它们的应用。利用单片机串口扩展技术,以MCS51 系列单片机8751 为例进行串行接口扩展,包括扩展两个独立的串口、一点对多点分时串口、单片机与RS232/ RS422/RS485 的串行通信接口。实际应用证明,设计可靠, 稳定性好。用多种方法进行串口扩展, 解决了单片机在串行通信系统中的串口局限问题。 关键词: 单片机; 串行接口; 串口扩展; 串行通信 引言 随着单片机技术的不断发展, 特别是网络技术在测控领域的广泛应用, 由单片机构成的多机网络测控系统已成为单片机技术发展的一个方向。单片机的应用已不仅仅局限于传统意义上的自动监测或控制[ 1 ],而形成了向以网络为核心的分布式多点系统发展的趋势[ 2 ] 。大多数单片机都只有一个串行接口, 在多数情况下限制了这些单片机的进一步应用。要实现单片机在应用系统中的有效通信, 就必须利用单片机的串口扩展技术对单片机进行串口扩展。单片机串口扩展是根据应用系统设计的需要, 把一个串口扩展为多个同类型的串口或一个串口扩展为多个不同类型( RS232/ RS422/ RS458) 的串口,或扩展两个独立的串口, 以便与不同接口的计算机或设备进行串行通信。 1 单片机串口扩展的硬件总体设计 单片机与PC 机或外设的串行通信一般采用RS232/RS422/ RS485 总线标准接口[ 3 ] 。为保证通信可靠, 在选择接口时必须注意通信的速率、通信距离、抗干扰能 力、电平匹配和通信方式[ 4 ] 。本文为了解决在单片机串行通信时遇到的串口问题, 以MCS51 系列单片机8751为例, 进行串口扩展, 其串口扩展的逻辑框图如图1 所 示, 包括通过通信接口芯片8251 再扩展一个独立串口,通过16 ×1 的多路切换器CD4067 实现一点对多点分时串口通信, 以及通过电平转换器MAX232 , MAX488 ,MAX485 实现单片机与不同类型接口

相关主题
文本预览
相关文档 最新文档