基于单片机的多串口实现方案
- 格式:doc
- 大小:30.50 KB
- 文档页数:10
摘要本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理、实现方法和相应的通信硬件、软件设计。
该设计是由单片机与单片机组成的主从控制系统,其中单片机做为上位机对下位单片机是实现控制和监视功能。
它包括通信和控制两个功能模块。
单片机作为下位机在整个系统中属于从属地位,主要用来接收上位机的命令。
由于此通信的单片接口是RS232的9针接口,且下位机数目有限(32台)。
所以本设计采用了RS485总线以及RS232转RS485的协议芯片以满足长距离多机通信,本文讨论了总线接口转换、主从式通信协议设计方法,给出了采用中断式处理的通信过程流程图,并叙述了设计过程中必备的绘图软件Protel DXP的应用,以及编辑源代码软件keil uVision2的应用,实现了单片机对多个单片机组成采集终端的通信与管理。
关键词:单片机单片机RS-485 通信AbstractThe communication 、realized method and corresponding design of hardware and software between 单片and multiple MCUs based on RS-485 is described in detai in the article. This design instroduces a pincipal and subordinate control system which is composed of 单片and single chip. Divided from its function, it includes two parts: communication and control, in which 单片is used as master, and MCUs is used as slave so as to receive the single order from the master.The bus interface conversion and the design of master-slave communication protocol is introduced and The program flowchart of communication with interrupt process is also given. In the process of design, the use of unnecessary painter software and code editor software is depicted so that realize the communication and administration between 单片and multiple MCUs which composed collection terminal.Keywords: 单片MCUs RS-485 communication目录第一章绪论 (1)第二章课题实施方案 (2)2.1 系统硬件设计 (2)2.2 系统软件设计 (3)第三章硬件电路设计 (9)3.1 C51单片机结构 (9)一CPU结构 (10)二ROM存储器 (11)三I/O端口 (11)四定时器/计数器 (12)五中断系统 (13)3.1.2 51单片机引脚功能及其连接 (13)3.1.3 51 中断系统 (15)3.1.4 C-51的串行通信 (15)3.2.1串行接口RS232结构与引脚功能 (21)3.3 Protel DXP 2004原理图设计 (23)3.3.1 Protel 2004的基本操作 (23)3.3.2绘制原理图 (25)3.3.3制作芯片原理图库 (27)第四章软件电路设计 (30)4.1 系统的通信协议 (31)4.2 C51编程实现单片机与单片机之间的串行通信 (31)4.3 Windows集成开发环境uVision2 (35)4.3.1启动uVision2 (35)4.3.2创建程序 (36)总结 (41)致谢 (42)参考文献 (43)第一章绪论单片机由于其具有控制功能强、设计灵活和性能价格比高的特点。
科技资讯科技资讯S I N &T NOLOGY I NFO RM TI ON 2008N O .15SCI ENC E &TECH NOLOG Y I N FOR M A TI ON 信息技术1系统的体系结构1.1系统要求与总体方案设计该系统中有单相、三相、机械式和电子式等各种型号电能表,要求实时、准确、快速、可靠地采集各分散电能表的用电量数据,适应各种复杂的工业生产现场条件,连续运行、操作简便、维修快捷。
硬件系统要具有通用性、可扩展性,并能适应各种大中型发电、用电企业的电量管理。
故应重点考虑:实时性、高可靠性、环境的适应性、通用性、可扩展性、经济性等。
集散控制系统D CS 是一种分散控制、集中信息管理系统。
因该系统是在电厂使用,并已有DC S 平台,故采用DC S 作为主站,也可采用单独的上位机来管理。
DCS 中采用了双前置机热后备的冗余系统设计方法,2台前置机可相互替换以提高系统可靠性。
本DC S 采用I nt er l l ut i on i Fox 工控组态软件,使用工业标准总线RS422将集抄系统硬件连入前置机,进行电量分析,负荷管理,并具有图形、曲线、报表打印输出功能,可与其他网络接口。
本系统中的RS422,RS232、红外通讯均使用通用工业标准M odBus 协议。
1.2系统组成与功能集抄系统由电量采集模块、数据集中器、专用掌上电脑和DC S 经R S422和R S485总线灵活配置而成。
集抄系统组成图如图1所示。
采集模块通过检测机械式电表表盘的转数或电子式电表输出的脉冲数,转换成电表用电量,经RS485总线将用电量数据上传。
采集器中保存的用电量数据与原有电表上的用电量窗口显示值相一致。
安装采集器后不改变原有电表的整体结构和计量精度。
集中器负责各电表用电量数据的集中收集,处理和存储。
通过R S485总线与采集模块通讯,读取每个采集模块中存储的用电量数据。
每台集中器最多可管理256台电表。
单片机串口通信设计方案1.绪论1.1课题背景及意义目前,单片机的发展速度大约每两、三年要更新一代,集成度增加一倍,功能翻一番。
其发展速度之快、应用范围之广已达到了惊人的地步,它已渗透到生产和生活的各个领域,应用非常广泛。
在汽车、通信、智能仪表、家用电器和军事设备的智能化以及实时过程控制等方面,单片机都扮演着非常重要的角色[1]。
因此单片机的设计开发具有广阔的前景。
所以,对于电气类学生而言,学习一种单片机的开发是十分必要的。
而51系列的单片机,随着半导体技术的发展,其处理速度更快,性能更优越,在工业控制领域上占据十分重要的地位,通过对51系列单片机的学习而掌握单片机开发的过程是一种不错的选择。
然而单片机是一门综合性、实践性都很强的学科,其学习涉及的实验环节比较多,硬件设备投入比较大,对于大多数人而言很难投入大笔资金去购买实验器件。
而且要进行硬件电路测试和调试,必须在电路板制作完成、元器件焊接完毕之后进行,但这些工作费时费力。
因此引入EDA软件仿真系统建立虚拟实验平台,不仅可以大大提高单片机的学习效率,而且大大减少硬件设备的资金投入,同时降低对硬件设备的维护工作。
EDA设计思路是:从元器件的选取到连接、直至电路的调试、分析和软件的编译,都是在计算机中完成,所用的工作都是虚拟的。
虽然现在的电路设计软件已经很多,诸如PROTEL、ORCAD、EWB 、Multisim等,不过这些软件之间的差别都不大:都有原理图和PCB制作功能,都能进行诸如频率响应,噪音分析等电路分析,主要用于模拟电路、数字电路、模数混合电路的性能仿真与分析,但对于单片机设计及软件编程,最重要的是两者的联调,这些软件都无法实现,所以造成了单片机系统设计周期长、设计费用高等缺点[2]。
新款的EDA软件Proteus解决了上述软件的不足,成为目前最好的一款单片机学习仿真软件。
Proteus 软件是由英国Lab Center Electronics 公司开发的EDA 工具软件。
单片机指令的串口通信实现方法串口通信是指通过串行通信接口实现的数据传输方式。
在单片机系统中,串口通信是一种重要的通信方式,可以实现与外部设备(如PC 机、传感器等)的数据交互。
本文将介绍单片机指令的串口通信实现方法,包括硬件连接和软件编程两方面。
一、硬件连接串口通信需要通过发送器和接收器两个设备来完成数据的发送和接收。
在单片机系统中,可使用通用异步收发器(UART)作为串行通信接口。
下面是串口通信的硬件连接步骤:1. 将单片机与UART连接:首先,确保单片机具有UART接口,并根据其引脚定义将UART的发送线(TXD)连接到单片机的接收引脚,接收线(RXD)连接到单片机的发送引脚。
2. 选择波特率:波特率指每秒钟传送的位数,通常使用的波特率有9600、115200等。
在发送和接收数据时,单片机和外部设备需要使用相同的波特率,以保证数据的正确传输。
3. 连接外部设备:根据实际需求,将UART的发送线和接收线分别连接到外部设备的接收引脚和发送引脚。
二、软件编程实现单片机指令的串口通信需要编写相应的软件程序。
下面是基于C语言的软件编程实现方法:1. 初始化串口:在程序开始时,需要对串口进行初始化设置。
通过设置寄存器来配置波特率、数据位、停止位等参数。
2. 发送数据:使用发送指令将待发送的数据写入UART的数据寄存器,等待数据传输完成。
3. 接收数据:通过接收指令读取UART接收到的数据,并进行相应的处理。
可以使用中断或轮询方式进行数据接收。
4. 错误处理:在数据传输过程中,可能会出现错误,例如帧错误、奇偶校验错误等。
需要进行相应的错误处理操作,例如重新发送数据或发出错误提示。
5. 通信协议:根据通信需求,可以制定相应的通信协议。
通信协议包括数据帧结构、数据格式、数据校验等内容,用于确保数据的可靠传输。
三、实例演示下面通过一个简单的示例来演示单片机指令的串口通信实现方法。
假设我们需要实现从单片机向PC机发送一条消息,并接收PC机返回的确认信息。
51 单片机串口多机通信的实现和编程
一、51 单片机的主从模式,首先要设定工作方式3:(主从模式+波特率可变)
SCON 串口功能寄存器:SM0=1;SM1=1(工作方式3)
注:主机和从机都要为工作方式3。
【工作方式2 (SM0 SM1 :1 0):串行口为11 位异步通信接口。
发送或接收
一帧信息包括1 位起始位0、8 位数据位、1 位可编程位、1 位停止位1。
发
送数据:发送前,先根据通信协议由软件设置TB8 为奇偶校验位或数据标识位,然后将要发送的数据写入SBUF,即能启动发送器。
发送过程是由执行任何一条以SBUF 为目的寄存器的指令而启动的,把8 位数据装入SBUF,
同时还把TB8 装到发送移位寄存器的第9 位上,然后从TXD(P3.1)端口输出
一帧数据。
接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI 清0。
然后再根据SM2 的状态和所接收到的RB8 的状态决定此串行口在
信息到来后是否置R1=1,并申请中断,通知CPU 接收数据。
当SM2=0 时,
不管RB8 为0 还是为1,都置RI=1,此串行口将接收发送来的信息。
当
SM2=1 时,且RB8=1,表示在多机通信情况下,接收的信息为地址帧, 此时
置RI=1,串行口将接收发来的地址。
当SM2=1 时,且RB8=0,表示在多机通
信情况下,接收的信息为数据帧, 但不是发给本从机的,此时RI 不置为1,。
基于51单片机的多机通信系统设计多机通信系统是指通过一台主机与多台从机之间进行数据交互和通信的系统。
在本设计中,我们将使用51单片机实现一个基于串行通信的多机通信系统。
系统硬件设计如下:1.主机:使用一个51单片机作为主机,负责发送数据和接收数据。
2.从机:使用多个51单片机作为从机,每个从机负责接收数据和发送数据给主机。
3.串口:主机和从机之间通过串口进行通信。
我们可以使用RS232标准通信协议。
系统软件设计如下:1.主机设计:a.初始化串口:设置串口参数,如波特率、数据位、停止位等。
b.发送数据:将需要发送的数据存储在发送缓冲区中,通过串口发送给从机。
c.接收数据:接收从机发送的数据,并存储在接收缓冲区中。
2.从机设计:a.初始化串口:设置串口参数,如波特率、数据位、停止位等。
b.接收数据:接收主机发送的数据,并存储在接收缓冲区中。
c.发送数据:将需要发送的数据存储在发送缓冲区中,通过串口发送给主机。
系统工作流程如下:1.主机启动,执行初始化操作,包括初始化串口。
2.从机启动,执行初始化操作,包括初始化串口。
3.主机发送数据给从机:主机将需要发送的数据存储在发送缓冲区中,通过串口发送给从机。
4.从机接收并处理数据:从机接收主机发送的数据,并存储在接收缓冲区中,对接收到的数据进行处理。
5.从机发送数据给主机:从机将需要发送的数据存储在发送缓冲区中,通过串口发送给主机。
6.主机接收并处理数据:主机接收从机发送的数据,并存储在接收缓冲区中,对接收到的数据进行处理。
7.主机和从机循环执行步骤3-6,实现多机之间的数据交互和通信。
多机通信系统的设计考虑到以下几个方面:1.硬件设计:需要合理选择单片机和串口的类型和参数,确保系统的稳定性和可靠性。
2.软件设计:需要设计适应系统需求的通信协议和数据处理提取方法,保证数据的准确性和完整性。
3.通信协议:需要定义主机和从机之间的通信协议,包括数据的格式、传输方式等,以便实现正确的数据交互。
基于WinCE和ARM的多串口扩展及485通信设计贾继鹏;张永坚;胡延凯【摘要】Along with the book evaluating standards for renewable energy building’s application projects implements in our country, we are in urgent need of the operational datas about the renewable energy building’s application demonstration projects. The data acquisition system of the renewable energy building’s application demonstration projects has one demand of multiple serial ports and a 485 bus communication. This paper uses ARM9 S3C2440 embedded microcontroller and VK3234 with four channel UART/SPI interface to extend serial. What’s more, it achieves the 485 communication between the field detection device and data acquisition device with MAX3485. This paper states the interface and software and hardware between S3C2440, VK3234 and MAX3485E specifically. The practical running test in the laboratory shows that the system is stable and reliable, and it has been applied in the data monitoring system of the renewable energy demonstration projects.%随着我国《可再生能源建筑应用工程评价标准》的实施,对已建可再生能源建筑应用示范项目运行数据的需求越来越迫切,为了解决可再生能源建筑应用示范项目数据采集系统中对多串口及485总线通信的需求,采用 ARM9嵌入式微控制器 S3C2440和具备 UART/SPI 接口的4通道芯片VK3234进行串口的扩展,并利用MAX3485E芯片,实现了现场检测设备与数据采集器之间的485通信。
基于单片机的串口通信模块设计
一、背景
基于单片机的串口通信模块是现在最常用的通信技术之一、它是一种常见的无线传输技术,利用串口通信模块可以快速传输大量的信息,减少数据传输时间。
串行技术的性能有很大的提高,不仅仅可传输单个字符,还可以传输字符串,实现点对点的串口通信。
二、基本原理
串口通信模块基于单片机的设计,是一种总线式的数据传输方式,通过共享的串口数据线来进行通信,可以实现多设备之间的快速数据传输。
串口模块通常是模拟的,它对接收到的信号进行解码,然后将数据放入的串行总线上,并将其发送到目标设备。
控制对象在接收到数据后,控制板会将所有的控制信号装入串口总线中,最后将开关量的控制信号转换为目标设备的控制信号,实现了两设备之间的通信。
三、串口模块的设计
1.串口通信模块的设计首先需要选择合适的单片机,单片机要求数据传输率足够高,同时有足够的外设接口,能够满足多种应用场景的需求。
2.电路设计要求尽量不要增加多余的外设,并且考虑到硬件可靠性,如电源电路要采用高效率的电源设计,数据线的板载电感要求周围有足够的空间;串口数据线要求可靠性高,考虑到信号的丢失。
51单片机模拟串口的三种方法单片机模拟串口是指通过软件实现的一种串口通信方式,主要应用于一些资源有限的场合,如单片机中没有硬件UART模块的情况下。
下面将介绍三种常用的单片机模拟串口的方法。
1.轮询法轮询法是最简单的一种模拟串口方法,其原理是通过轮询方式不断查询接收和发送的数据。
在接收数据时,单片机通过忙等待的方式查询接收端是否有数据到达,并且处理数据。
在发送数据时,单片机通过检查发送端是否空闲,然后发送数据。
这种方法的优点是实现简单,占用资源少。
缺点是轮询过程可能会浪费一定的时间,同时由于忙等待可能会占用CPU资源,影响其他任务的执行。
2.中断法中断法是一种基于中断机制实现的模拟串口方法,其原理是通过外部中断或定时器中断触发,单片机响应中断并进行串口数据的接收和发送。
在接收数据时,单片机通过外部中断或定时器中断来检测串口接收中断,并处理接收到的数据;在发送数据时,单片机通过定时器中断来定时发送数据。
这种方法的优点是能够及时响应串口的数据接收和发送,不会浪费过多的时间。
缺点是中断处理可能会占用一定的CPU资源,同时中断嵌套可能会引起一些问题。
3.环形缓冲法环形缓冲法是一种基于环形缓冲区的模拟串口方法,其原理是通过环形缓冲区来缓存接收和发送的数据。
在接收数据时,单片机将串口接收到的数据放入环形缓冲区,并使用指针指示当前读取位置和写入位置,然后通过轮询或中断方式从缓冲区中读取数据并进行处理;在发送数据时,单片机将要发送的数据放入环形缓冲区,并通过轮询或中断方式从缓冲区中读取数据并发送。
这种方法的优点是能够有效地处理串口数据的接收和发送,不会浪费过多的时间,并且能够缓存一定量的数据。
缺点是需要额外的缓冲区,占用一定的内存空间。
综上所述,通过轮询法、中断法和环形缓冲法三种方法,可以实现单片机的串口模拟功能。
根据实际需求,选择合适的方法来实现串口通信。
基于单片机的多串口实现方案摘要:针对pc和cpu通常只有一个串行接口的问题,本文介绍了基于单片机的多串口实现方案,该方案能扩展出5个不同电平标准的通用串口,并且选用了一种应用到实践当中,试验证明,设计可靠,性能稳定,解决了单片机单个串口的局限性。
关键词:单片机串行接口多串口串口通信协议中图分类号:tp334.7 文献标识码:a 文章编号:1007-9416(2012)01-0082-031、总述随着控制技术的发展,控制系统的数字化在生产过程中的应用越来越普遍。
作为控制核心的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个完全独立且每个子串口波特率、奇偶效验方式、数据帧长度都可独立设置的全双工子串口(子串口波特率最高可达115.2kbps,满足数据高速传输要求)。
sp3539采用分时复用技术将一个全双工串口(上位机自带串口)扩展成5个完全独立的全双工串口(子串口),在上电默认模式下母串口的波特率是各子串口波特率的6倍,即:各子串口可在特定的时间段内独占母串口,因此即使所有子串口都有连续不断的数据输入也不会发生数据丢失。
母串口和各子串口内部都分别有8字节的接收和发送fifo缓存,即使5个子串口同时接收到数据和启动数据发送也不会丢失数据。
3.2 基于sp3539串口扩展的硬件电路设计本文采用了经典的8051单片机(at89s52)作为主控芯片。
该芯片与sp3539相连时接口非常简单。
sp3539共有六个串口,即一个母串口,五个子串口,它们都是全双工的串行通信口,允许同时接收和发送数据。
母串口与单片机的串口相连,子串口与其他串口设备相连,这样就实现了只有一个串口的单片机可与五个串口设备相连。
sp2338有一套发送地址线,一套接收地址线,用以选择发送串口和接收串口。
当单片机要向串口设备发送数据时:a单片机先发送地址信息(子串口地址)到sp3539的输入地址“adri2”、“adri1”、“adri0”(如图1),即选中待发送数据对应的子串口。
b将待发送的数据由单片机通过母串口发送到sp3539。
sp3539的母串口收到单片机串口送来的数据后就根据adri0、adri1和adri2的状态,把数据送往对应的子串口。
c对应的子串口再把数据经过电平转换变成对应的电平标准发给对应的设备。
当串口设备向单片机发送数据时,其数据流程为:a sp3539的将子串口收到的数据缓存到fifo里面,并发送到母串口。
b 单片机接收到数据后,必须尽快读取adro2、adro1、adro0三位输出地址的状态,并由此来判断接收到的数据来自哪个子串口。
由于sp3539的母串口和各子串口内部都分别有8 字节的接收和发送fifo缓存,因此扩展后的五个串口就可以完全独立地同时通信。
sp3539各子串口都支持10位及11位数据帧格式,允许上位机更改各子串口数据帧长度,初次上电后各子串口默认数据格式都为10位。
sp3539母串口波特率为:k5 = 3600﹡fosc_in各子串口波特率为:k = 600﹡fosc_in/n式中“fosc_in”为sp3539输入时钟(osci),单位为“mhz”,n 为对应子串口设置的分频系数,默认状态为“1”。
本文采用的输入时钟为16.0mhz,则上电默认状态下:母串口波特率:k5 = 3600﹡16.0 = 57600 bps,k0~4 = 600﹡1﹡16.0/1 = 9600 bps。
如果想要子串口的波特率工作在其它频段,就必须根据上面的公式重新计算fosc_in,同时也要改变sp3539和单片机的晶振。
3.3 基于sp3539串口扩展的程序设计采用sp3539扩展串口程序简单,占用资源少,不占用单片机的外部中断和数据总线,5个子串口共享单片机串口中断实现数据收发。
但在使用过程中一定要注意:sp3539的地址总线一定要区分读写,否则会发生错误,造成芯片异常发热;串口中断里面对各个子串口操作的代码一定要尽量优化,否则在大数据量收发时会造成子串口数据丢失。
下面是sp3539的接口程序,采用c语言编写,程序分为串口中断,系统初始化和主程序三个部分。
bit bdata buartbusy;bit bdata binstructflag;uchar idata uart0rbuf…………….//子串口接收bufuchar idata uart0coef…………..//子串口分频系数波特率控制寄存器uchar idata uart0coefbuf…………..//分频系数缓冲寄存器sbit adrin0 =p2 ; //可以设置为任意io sbit adrin1 =p2;sbit adrin2 =p2;sbit adrout0=p2;sbit adrout1=p2;sbit adrout2=p2;serial () interrupt 4 { //串口中断函数if(ri){ //接收中断函数ri=0;switch(p2&0x07){ //解析接收到的数据来自于哪个子串口case 0:{uart0rbuf=sbuf; //缓存子串口0收到的数据break;}case 1: …..case 2: ……case 3: …….case 4: ……. //其它case语句除了地址和对应的缓冲区不一样,其它操作一样}else{ //发送中断函数ti=0;switch(uartpointer){ //判断向哪个子串口发送数据case 0:{ //向子串口0发送数据uartpointer++; //下一次发送中断准备向子串口1发送数据if((--uart0coefbuf)==0){ ,uart0coefbuf=uart0coef;if(uart0tnum){//判断串口0发送缓存区是否有数据需要发送adrout0=0;adrout1=0;adrout2=0;sbuf=uart0tbuf[--uart0tnum];//将串口0发送缓存中的一个字节break; //由子串口0发送到下位机}else goto t_nopinstruction; //子串口0没有数据发送发送空指令}else goto t_nopinstruction;}case 1: …….case 2: …….case 3: …….case 4: …….. //其它case语句除了地址和对应的缓冲区不一样,其它操作一样}}void instructset (uchar instructword){ //入口参数:操作sp3739的命令字while(binstructflag); //等待操作sp3739的其它命令结束instructbuf=instructword; //加载命令字binstructflag=1; //置发送命令请求标志if(buartbusy==0){ti=1; //判断中断服务程序中的发送部分是否处于激活状态,buartbusy=1; //否则将主动激活上位机中断服务程序的数据发送程序}}void init_serialcom(void){scon = 0x50; //串口工作在模式1t2con |= 0x34; //定时器2工作在模式2,自动重装载rcap2h = 0xff; //波特率:57600 晶振为11.0592mhz rcap2l = 0xfa;ie |= 0x90; //使能串口中断ip = 0x10; //只允许串口中断为最高优先级,其它为次优先级。
uart0coef=0x01; //由于子串口0的波特率为9600bps,所以uart0coefbuf=0x01; //程序中不用定义和使用这两个变量instructset(0x1f); //设置子串口1的波特率为4800bps uart1coef=0x02; //置子串口1的分频系数为”2”uart1coefbuf=0x01; //分频系数临时缓存,初始化为”1”…………… //依照datasheet设置对应的字串口参数}main(){init_serialcom(); //初始化mcu串口波特率和所有子串口波特率while(1);}4、结语本文成功运用硬件方式实现了串口扩展并应用到实际当中,该方案经过了长时间的工作考核验证,实践证明,稳定可靠,性能稳定,实现简单,大大降低系统的软件开销,由于采用c语言开发,所以可以很方便地移植到avr、pic、arm等其它高速cpu。
参考文献[1]sp3539 数据手册[z].成都视普科技有限公司,2005.12.[2]李华.mcs-51系列单片机应用接口技术[m].北京:北京航空航天大学出版社,2002.[3]刘毓梅,彭琦,赵广宇.通用异步串口扩展芯片gm8125的原理和应用.21ic中国电子网.[4]景鑫.51单片机的串行口扩展方法[j].微计算机信息,2005,(13):63-64+155.作者简介甘宇红,女,南宁职业技术学院讲师,研究方向电子技术及自动控制。