利用单片机实现波特率自检测的设计.docx

上传人:罗晋 文档编号:11728265 上传时间:2021-09-01 格式:DOCX 页数:27 大小:315.72KB
返回 下载 相关 举报
利用单片机实现波特率自检测的设计.docx_第1页
第1页 / 共27页
利用单片机实现波特率自检测的设计.docx_第2页
第2页 / 共27页
利用单片机实现波特率自检测的设计.docx_第3页
第3页 / 共27页
利用单片机实现波特率自检测的设计.docx_第4页
第4页 / 共27页
利用单片机实现波特率自检测的设计.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《利用单片机实现波特率自检测的设计.docx》由会员分享,可在线阅读,更多相关《利用单片机实现波特率自检测的设计.docx(27页珍藏版)》请在三一文库上搜索。

1、摘要高速发展的计算机业需要新型人才,需要具有创新的技术、专业的知识和富有团队作业能力的人才, 踏着豪迈的脚步我们随着时间走进了 21 世纪 ,21 世纪科学技术的飞快发展,人们不但在学习 , 工作方面有了更高的追求。他们已经不再局限于仅能做到 , 而是追求着更高的质更高飞跃和省时, 省事 , 低成本成本的快捷方式。在当今社会, 各种智能化控制系统均离不开数据信息的传输。其中波特率自动检测应用技术在单片机应用中占有很重要的一部分。通过学习单片机技术, 解决实际生活中波特率自动检测的一种方案 , 性能 , 特点等 , 从而应用到实际当中去. 通过对单片机的学习 , 开发出一个完整的系统. 包括硬件

2、设计, 制作 ,独立运行及调试的软件及编程。关键词: 波特率 检测27摘 要 11. 前言 31.1 课题简介 31.2 单片机的生产与发展 41.3 单片机的特点及应用 51.4 AT89S51系列单片机介绍 61.4.1 基本特性 63. 总体设计电路图及工作原理 73.1 机型及器件的选择 73.2 软、硬件功能划分 73. 系统硬件设计 83.1 系统硬件电路设计 83.2 硬件设计电路原理图 93.3 各元件说明 93.3.1 AT89S51芯片 93.3.2 MAX232CPE 芯片 104. 系统软件设计 134.1 编程思路 134.1.1 详细设计 154.1.2 编写程序

3、154.2 七段数码显示电路 164.2.1 接口及写入电路 16总 结 17致 谢 错误!未定义书签。参考文献 18附录1 19附录2 20利用单片机实现波特率自检测1. 前言1.1 课题简介此课题的设计的目的和意义是以实用性的产品为设计对象, 通过完整的设计和制作过程 , 使我们进一步清楚了解波特率自检测设计制作的流程和特点。该设计项目采用了 AT89S51E片和MAX232CPE列芯片.以往设计波特率自检测产品常常需要相应的自动检测专业知识和昂贵的专业设备, 而且传统的电路方案不是电路太复杂就是调试困难而令人们望而却步 , 以致影响了用户的使用和新产品的开发研制工作. 自从波特率MCUJ

4、出现,使人们摆脱了传统的自动检测产品设计的困扰.波特举MC性能优异,小巧灵活 , 价格低廉等, 其显著特点是所需外围元件少 , 线路简单 . 因而设计非常方便. 该系统不仅可以很轻松的实现波特举的自动检测 , 而且可以使用于不同的单片机上.随着电子技术的发展,由单片机构成的测控系统,利用PCL的串口测试模拟系统进行定时 , 灵活的控制以成为测控技术发展的一个方向 . 针对实际工作系统中存在的串口波特率自检测问题.提出了利用MAX232CPE解决的一种实现波特率自检测的方法.工作原理通是过本课题的研究,可以让我们了解到 AT89S51E片,并且深刻了解由AT89S51K片和MAX232CPE片性

5、能,特点等,从而应用到实际当中去.通过对单片机的学习, 开发出一个完整的系统. 包括硬件设计, 制作 , 独立运行及调试的软件的编程。串行通信是终端和主机之间的主要通信方式,通信波特率一般选择 1800、 4800、 9600和 19200等。终端的类型有很多种,其通信速率也有很多种选择。主机怎样确定终端的通信速率呢?本文给出了一种简单、 易行的方法: 设定主机的接收波特率 (以 9600波特为例),终端发送一个特定的字符(以回车符为例) ,主机根据接收到的字符信息就可以确定终端的通信波特率。通讯线上的字符是按位传送的 , 每一位信号持续的时间是由数据传送速率决定的既为波特率。89S51的波特

6、率的计算公式是波特率=定时器的溢出率*2smod/32由上面公式可知我们只要得到传送数据中一位的持续时间 , 那么波特率就可以求出 来。在方案确定之前我们已经了解本项目的目的和意义,本次设计可能用到的知识和可以使用的芯片等元件, 要进一步的了解。介绍一些可以使用的芯片类型。对项目有一个初步的了解。接下来查阅资料,比较各种方案,同时到市场上查询元器件,从而确定一套最优的方案。 针对课题, 实现所涉及到的应用软件讲解和项目设计所容易出现的问题进行分析:即在项目实施过程中,在调试过程中加以具体研究和学习。尤其对于在电路调试运行过程中出现的问题,请教老师共同探讨解决。在本课题中 , 自检测芯片主要担当

7、测控系统中单片机和微机之间的数据传输中的波特率进行检测出来. 可以说, 自检测芯片相当于是单片机测控系统中的一个特殊的执行元件 .单片机与微机之间的数据传输过程是: 单片机处理需要发送的数据, 利用串口将数据传输到数据传输模块的发送端, 数据接收后进行自动检测出波特率数值并计算其数值并显示出来。按照系统设计功能的要求初步确定设计系统包括初始化,接收发送和校验等功能模块,可以在各种复杂的工业现场高效而准确地进行计算出波特率数据。主控芯片采用51系列AT89S5惮片机.自检测芯片采用MAX232CPE片,是自检测科技 推出的一种产品。其要求是PCfg够完成发出信号白组织和处理时 ,由MAX232C

8、PE片进行检测波特率数 据 , 计算并显示出来. 根据我们得到的数值即波特率。1.2 单片机的生产与发展电子计算机是20 世纪人类最伟大的发明之一 . 自从 1946 年第一台电子计算机诞生以来 , 计算机得到了飞速的发展与广泛的应用 , 对人类社会起到了极大的推动作用 . 然而 , 使 计算机的应用能够真正深入到社会的各方面, 促使人类社会大步跨入电脑时代的一个重要原因 , 是微型计算机的生产和发展。随着半导体技术的发展, 集成电路的集成度越来越高 .1971 年 11 月 ,Intel 公司成功的将运算部分和逻辑控制功能集成在一起,制成了第一片中央处理器 Intel4004 微处理 器。由

9、此揭开了微型计算机发展的序幕。随着集成电路集成度的提高 . 微处理器的发展除了不断增强芯片的处理能力 , 提高产品的性能价格比 , 发展高性能的通用微型计算机之外, 还在一块芯片上不断提高集成更多的功能部件, 从而使微型计算机的硬件系统更加简化 , 使得微型计算机以但片机控制系统的形式不断的深入仪器仪表, 家用电器 , 设备控制等领域。早期的 4 位单片机 , 内部结构简单, 功能较少 , 主要用于简单的控制。1974年 12月仙童公司首先推出了 8位单片计算机F8. 随后各公司纷纷推出了各自的 8位单片机产品,有Intel公司的MCS-48型系列,Zilog 公司的Z-8系列,Rockwel

10、l公司的 6500 系列等 . 这时的单片机性能有所提高 , 主要应用在简单的工业控制和早期智能仪器仪 表及计算机外部设备。1980年Intel公司开发出MCS-51型系列单片机,这种芯片带有用行口,定时/计数器, 寻址范围64KB,被称为高档8位单片机.这些芯片功能强,适用范围宽,成为单片机的主流产 品。在8位单片机之后,16位单片机也陆续开发出来.1983年Intel公司推出MCS-96单 片机产品,与8位单片机相比,8096单片机不仅字长曾加一倍,而且还集成了 10位A/D转换 电路 ,其性能也有了很大提高 1988 年 Iintel 公司推出了具有 8 位的价格 16 位机性能的 80

11、98芯片 . 由于有极高的性能价格比 ,8098 的芯片应用越来越广。进入 90 年代 , 各厂家又推出更加强大的单片机。现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8 位、 16 位到 32 位,数不胜数,应有尽有,有与主流C51 系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1)低功耗CMOStMCS-51系列的8031推出时的功耗达630mW而现在的单片机普遍都在 100mWfc右, 随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CM

12、O%补金属氧化物半导体工艺)。象80C51就采用了 HMO卸高密度金属氧化物半导体工艺)CHMOSf 补高密度金属氧化物半导体工艺)。CMOS!然功耗较低,但由于其物理特征决定其工作速 度不够高,而CHMOS具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象 电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。2) 微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAMb只读程序 存储器(ROM并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的 芯片上,增强型的单片机集成了如A/D转换器、PMWW宽调制电路)、WDT看门狗)、

13、有些单片机将LCD儆晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多, 功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的 单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMg面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。1) 主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以 8051 为核心的单片机占主流,兼容其结构和指令系统的有 PHILIPS公司的产品,ATME公司的产品和中国台湾的 Winbond系 列单片机。所以C

14、8051为核心的单片机占据了半壁江山。而 Microchip公司的PIC精简指 令集(RISC)也有着强劲的发展势头,中国台湾的HOLTE0司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天 下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。1.3 单片机的特点及应用由于单片机是把微型计算机主要部件都集成在一块芯片上 , 既一块芯片就是一个微型 计算机。因此有以下特点。1) 片内存储量小,受集成度限制 , 片内存储器容量小 , 但可在芯片外扩展。2)

15、可靠性好,通常按工业要求设计 , 抗噪声能力强。3) 易扩展4) 控制能力强5) 系统内无监控或系统管理程序。单片机的主要应用领域有:1) 机电一体化产品2) 智能仪表3) 测控系统4) 只能中端5) 智能化通信产品6) 智能化家电单片机应用的意义不仅在它的广阔范围及所带来得经济效益。更重要的意义在于 , 单 片机的应用从根本上改变了传统的控制系统设计思想和设计方案。以前采用电路实现的大部分控制功能 , 正在用单片机通过软件方法来实现。1.4 AT89S51 系列单片机介绍1.4.1 基本特性AT89S51 一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-syst

16、emprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用 ATME公司的高 密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的 AT89S51可为 许多嵌入式控制应用系统提供高性价比的解决方案。51 型单片机一般采用双列直插封装。 40 个引脚大致分四类; 电源、时钟、控制和 I/O口引脚。引脚功能如下:1) 电源Vcc: 电源电压GND地2) 时钟XTAL1,XTAL2一晶体震荡电路反相输入端和输出端.使用内部震荡电路时,外接石英 晶体;外震荡输入时X

17、TAL1接地,XTAL2接外震荡脉冲。3) 控制线控制线共有4 根 , 其中3 根是复用线。a. ALE/PROG地址锁存允许/编程脉冲。正常使用时为 ALE功能,用来锁存PO口送出 的8位地址.PROG当8751单片机在片内EPRO端程期间。此引脚输入编程脉冲。b. PSEN-外ROMS选通信号。在51型单片机读外ROM1,每个机器周期内PSENS 次有效输出。也可以驱动8个LSTTL门电路。c. RST/Vpd- 复位 /备用电源。正常工作时 ,RST 端为复位信号输入端, 只要在该引脚上连续保持2 个机器周期以上的高电平,51 型单片机芯片既实现复位操作, 复位后一切从头开始,CPU从0

18、000开始执行命令。在VCC$电的tt况下,该引脚还可接上备用电源,由VPD 向内RAM%电,以保持内RAMfr的数据不丢失。d. EA/Vpp-内外ROMS择/EPROMS程电源.正常工作时,EA为内RO忧择端。对8751 芯片,在内EPROMS期间,此引脚用于施加编程电源。e. I/O 线51 型单片机共有4 个 8 为并行 I/O 端口 , 共 32 个引脚。P0 口:8 位双向 I/O 口,也即地址/数据总线复用口。作为输出口用时, 每位能驱动8个 TTL 逻辑门电路, 对端口写 1 可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时, 这组口线分时转换地址( 底八位 ) 和数据

19、总线复用 , 在访问期间激活内部上拉电阻。P1 口 : 8 位准双向I/O 口片。P2 口 : 8 位准双向I/O 口片。在访问外部存储器时,P2 口用来传送高8 位地址。P3口 8位准双向I/O 口片。可做一般I/O用,同时还具有第二功能用于特殊信号输入输出和控制信号. 第二功能如下:P3.0-RXD: 串行输入端;P3.1-TXD: 串行输出端;P3.2-INTO: 外部中断0 请求输入端;P3.3-INT1: 外部中断1 请求输入端;P3.4-TO:定时/计数器0外部信号输入端;P3.5-T1:定时/计数器1外部信号输入端;P3.6-WR:外RAMW选通信号输出端;P3.7-WD:外RA

20、M实选通信号输出端;上述4个I/O 口,各有各的用途,在一般情况下,P0 口专用来传送底8为地址信号和8 位数据信号,P2 口专用来传送高8位地址信号,P3 口根据需要常用于第二功能。3.总体设计电路图及工作原理电路设计工作原理图见附录一2.1 机型及器件的选择1)单片机单片机采用ATME公司生产的AT89S51单片机,该芯片与MCS5H(歹1单片 机兼容。内含:2 kB Flash E2PROM、128 B RAM 15根I/O引线、2个16位定时器/计数 器、1个5向量两级中断结构、1个全双工用行口和1个精密模拟电压比较器等。2)串行E2PROM6于基于SRAMT艺的可编程逻辑器件(CPL

21、D/FPGA的配置数据在 掉电后会丢失,需要外加存储器以保存配置数据。为了尽量减小电路板的面积,选用8脚的串行E 2PR0V AT24C256o AT24C2561 atme公司生产的2线制用行电可擦写只读存储 器,具有自定时写周期特性,容量 32 kB。该器件特别适合于对功耗有严格要求的应用场3)通信接口 采用MAXI泌司生产的串行接口芯片 MAX232等PC机与下载配置电路 连接起来。下载配置电路通过该串口接收PC机下传的命令,执行相应的操作再将处理结果上传到PC机。MAX2321通用+5 V供电的多通道RS232总线收发器,尤其适合在电池供 电的系统中应用。2.2 软、硬件功能划分单片机

22、应用系统的硬件设计包括两大部分内容:一是单片机系统的扩展部分设计。它 包括存储器扩展和接口扩展。二是各功能模块的设计。如信号测量功能模块、信号控制功 能模块、人机对话功能模块、通信功能模块以及根据各功能块要求配置相应的A/D、D/A、键盘、显示器、打印机等外围设计。软件设计是设计控制系统的应用程序。其任务是在总体设计和硬件设计的基础上,确 定程序结构,分配内RAMS源,划分功能模块,然后进行主程序和各模块程序的设计,最 后连接起来成为一个完整的应用程序。3. 系统硬件设计3.1 系统硬件电路设计硬件电路大致上可分成单片机系统及外围电路, 驱动电路两部分.单片机采用AT89S51或其兼容系列的芯

23、片,采用12MHZE更高频率的晶振,以获得较高的刷新频率, 使显示更稳定 . 单片机的串口与驱动电路相连, 用来送显示数据.AT89S51 是一个12分频的指令系统,它的机器周期=121FOSC其中FOS久晶振频率。通过定时器对一位数据持续时间定时。得到得计数值就是这位数据所持续的机器周期。假设该数值为N可得:N*12/FOSC波特率的例数。所以我们能够得到N值也就得到了波特率,也就确定了定时器的时间常数。再根据时间常数去确定波特率。以实现正确的数据传输。硬件设计应主意的几个方面。1) 尽量选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性。2) 尽量选用功能强,集成度高的电路和芯片

24、。可以减少元件数量、接插件和相互连线,增加系统的可靠性,也可以降低材料成本。3) 尽量采用新技术、新工艺具有先进的性能。4) 在满足应用系统功能的要求上,适当留有余地,以备修改,扩展。5) 充分考虑应用系统各部分间驱能力和阻抗能力。6) 工艺设计,包括机箱、面板、连线、接插件等,设计时要充分考虑安装、调试、维修的方便。3.2硬件设计电路原理图3.3各元件说明3.3.1 AT89S51 芯片AT89S51型单片机引脚结构图如下F1, 0 匚13 ccP1, 1 CZ39 PQ一 Q/ABOFL. 2 C33H3 ?0. If ADIP1. 3 C4371 F0. 2/AD2P1.4 C536 P

25、O. 3/ADSMJSI/P1, 5 C8351 F0.4ZAD4MISO/P1,6 C7343 PO. S/1D3SCK/P1, 7 E633h PO.B/1DGRST 9融3 PO.7/AB7EHD/F3, 0 E10313 EWPPTXD/F3. 1 匚1130口 ALE?POt2 匚1229 pe sirLHT1/F3. 3 匚1328 P2 77Al3T0/F3, 4 c14271 P2. 6/A14T1/P3, 5 C15261 P2. 5/A13皿F3, 6匚16251 F2.47112RD/PS. 7 C1724J F2. 8/111XTAL2 CIS 233 P2, 27A1

26、0mu E13223 P2 IZASPDIF 6加匚20213 P2. O/ASAT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机 存取数据存储器(RAM), 32个外部双向输入/输出(I/O) 口,5个中断优先级2层中断嵌 套中断,2个16位可编程定时计数器,1个全双工串行通信口,看门狗(WDT)电路,检 测电路等.片内时钟振荡器。止匕外,AT89S51设计和配置了振荡频率可为 0Hz并可通过软件设置省电模式。空闲模 式下,CPUB停工作,而RAM时计数器,用行口,外中断系统可继续工作,掉电模式冻 结振荡器而保存RAM勺数据,停止芯片

27、其它功能直至外中断激活或硬件复位。同时该芯片 还具有PDIP、TQF济口 PLC*主要功能特性:兼容MCS-51指令系统4k 可反复擦写(1000 次)ISP Flash ROM32个双向I/O 口4.5-5.5V工作电压2个16位可编程定时/计数器时钟频率0-33MHZ全双工UART串行中断口线128*8 内部 RAM2个外部中断源低功耗空中断唤醒省电模式中断唤醒省电模式3级加密位软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针3.3.2 MAX232CPE 芯片MAX232K片是MAXI泌司生产的、包含两路接收器和驱动电路的IC芯片,其内部结构有一个电源电压变换器,可以把输

28、入的 +5V电压变成为RS-232C输出电平所需的土 10V 电压。所以,采用此芯片接口的串行通信系统只需单一的+5V电源就可以了。MAX232E片的引脚结构如图所示G1+ |T*CG GND Tlgm RI IN Rtour rimT2iH 版 CHJTMAX232MAX232芯片的典型工作电路如图+iavCAPACRANCE(),刖正Ct豆F值一下阅可4/11tQ-i7丽阪jiF io7.01.0 i.oMAX232AOJ0.10.1 - 01 0.1OUTPUTSMAX232工作电路图中上部分电容 C1、C2、C3、C4及V+, V-是电源变换部分。在实 际应用中,器件对电源噪声很敏感。

29、因此,Vcc对地必须要加去耦电容 C5,其值为0.1uf o电容C1、C2、C3、C4取同样数值的电解电容1.0uf/16V ,用于提高抗干扰能力。其下半部分为发送和接收部分。实际应用中,T1in, T2in可直接接TTL/CMOS电平的MCS-51型单片机的串行接收端 TXD; R1OUT, R2OUT可直接接TTL/CMOS电平的MCS 51型单片机的串行接收端 RXT; T1our=t , T2out可直接接PC机的RS-232串口的接收 端RXD; R1in,R2in可直接接PC机的RS-232串口的发送端 TXD。实际应用中,可从MAX232芯片中两路发送接收器中任选一路作为接口,但

30、要主意其 发送和接收的引脚必须对应。如使 T1in接单片机的发送端TXD,则PC机的RS-232的接 收端RXD一定要对应T1out弓唧。同时,R1out接单片机的RXD弓唧,PC机的RS-232的 发送端TXD对应接R1in引脚。4.系统软件设计4.1编程思路串行通信是终端和主机之间的主要通信方式,通信波特率一般选择1800、480R 9600和19200等。终端的类型有很多种,其通信速率也有很多种选择。主机怎样确定终端的通 信速率呢?本文给出了一种简单、易行的方法:设定主机的接收波特率(以 9600波特为 例),终端发送一个特定的字符(以回车符为例),主机根据接收到的字符信息就可以确定 终

31、端的通信波特率。本文对这种方法予以详述。1)基本方法回车符的ASCII值为0x0Q串行通信时附加一个起始位和终止位,位的传输顺序一般 是 先传低位再传高位。此时回车符的二进制表示方式为:0 10 1 1 0 (J 0 0 1il 数据傥 I 起始位停止停图1回车符的位序列串行通信中一个二进制位的传输时间(记为 T)取决于通信的波特率,9600波特时一 个二进制位的传输时间是19200波特时一个二进制位传输时间的两倍,即:2叮1920尸T 9600。 因此,9600波特时一个位的传输时间,19200波特时可以传输两个位。同样地 ,9600波 特传输两个位的时间在4800波特时只能传送一个位。主机

32、设定接收波特率为9600,终端只有也以9600波特发送的字符,主机才能正确地接收。发送波特率高于或低于9600都会使主机接收到的字符发生错误。接收波特率为 9600,终端以不同的波特率发送回车符时, 主机接收到的二进制序列如表1所示。从表1中可以看出,除了 19200和1800波特时两种特例情况,其他情形的二进制序 列都是9600波特时二进制序列的变换。取前十个二进制位与9600波特时的二进制位相对 应。忽略缺 少停止位1引发的数据帧错误,把接收到的字符表示成字节方式(如表 1 的最右列所示)。例如:在发送速率为1200波特,接收速率为9600波特时,主机得到 的字节是0x80,而不是正确的回

33、车符0x0D因为在不同的发送速率下(960Q 4800, 2400, 1200)得到的字节 不同,所以通过接收字符的判定就可以确定发送波特率。发送波特率为19200时,其发送速度正好是接收速度(9600波特)的两倍,因此发送 端 的两个二进制位会被接收端看作一个。取决于不同的串行接口硬件,01和10这两种 二进制位组合可能被认为是1或者0。幸运的是,只有04位存在这样的 歧义问题, 后面的位因为都是停止位,所以都是1。因此,发送速率为19200波特时 接收到的字符其高半个字节为 0xFo低半个字节可能是多个值中的一个,但不会是 0x0, 因为0x0D中有相邻的两个1,这就会至少在低半个字节中产

34、生一个1。因此,整 个字节的形式为0xF?,且低半个字节不为0o表1不同波特率下的二进制序列波特率接收到的二进制位序列字节表小192000 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 110xF?96000 10 1100 0 010x0D48000 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 10xE6124000 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 110x7818000 0 0 0 0 x 1 1 1 1 x 0 0 0 0 0 1 1 110xE018000 0 0 0 0 x 1 1 1 1 x 0 0

35、0 0 0 1 1 110xF012000 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 000x806000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 110x003000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000x001500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000x001100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000x00发送速率为1800波特时,因为4800=飞600*16/3 ,而16/3不是整数,接收端二进制位的状态转换时刻和 9

36、600波特不一一对应,引起在接收 端的一个位接收周期内有状态发生变化的可能。表 1中给出的第六个位(表示为x)就是 这种情况。因为x有可能被看作1,也有可能被看作0,所以发送速率为1800波 特时接收到 的字节可能是0xE0或者0xF0。波特率为3600和7200时也有同样的问题,也 可以采用同样的方 法,但不确定的位数会增加,需要检测的字节种类也会更多。3600波特和7200波特的传输速 率几乎不采用,因此这个问题并不严重。只要发送波特率在120019200之间,我们都可以通过接收到的一个字符对此波特率进行唯一的判定。2)低波特率的检测当发送速率低于1200波特时,接收端收到的字节都是 0x

37、00,因此只能确定其速率低 于12 00波特,而不可能再得到更多的信息。为了解决这个问题,可以在 9600波特的速 率下继续接 收下一个字节信息。发送速率为 600波特或更低时,一个位的发送时间要大 于9600波特时整个字节的接收时间。因此,发送端每一个从1(终止位)到0(起 始位)的跳变都会 让接收端认为一个新的字节开始了。表2所示为600波特或更低的传输速率时接收端回车符的 二进制序列(只给出开始的一些位)。表2 低波特率回车符的接收方式波特率9600波特二进制序列时间差 (周期)时间差(实时间)60016 0s16 1s16 0s323.33ms30032 0s32 1s32 0s646

38、.66ms15064 0s64 1s64 0s12813.33ms11087 0s87 1s87 0s17418.13ms75128 0s128 1s128 0s25626.66ms50192 0s192 1s192 0s3844 0.00ms600波特时,第一个从1到0的跳变在初始化以后即刻发生。这个跳变让接收端 得到字节0x00。第二个跳变在初始化(16+16)*T 9皿秒以后发生,这会让接收端认 为另 外一个字节开始接收了。一个二进制位的接收时间是T9600,所以用行接口电路会在第一个跳变以后10* T 9600秒提示第一个字节接收完毕,在(16+16+10)* T 96 00秒以后提示

39、第二个字 节接收完毕。因此600波特时,第一个字节接收完毕和第二个字节接收完毕的时间差是(16+16+10-10)* T9600=32* T9600秒。表2的第三列所示 是把这个时间差以T9600的个数表示。 因为T9600=1/9600秒=104.16毫秒,相 乘可以得到两个字节接收完毕的实时间差。不同发 送波特率的时间差如表 2的最后一列所示。有了这个时间差信息,就可以确定低传输速 率时的波特率了:测定第一个和第二个字节的接收时间差,然后在时间差常数表(表 2)里查出哪个波特率下的时间差与之最相近,对应的就是终端发送波特率。即使测定的时间差有些误差,一般也可以正确地确定波特率。3)实现方式

40、通过以上分析,各种波特率都可以通过回车符的发送和接收信息来测定,算法实现的 伪 代码在本文的最后给出。应用实践证明了这种方法的有效性。4.1.1详细设计根据针对实际生活工作系统中存在的串口波特率自检测问题,提出了利用用行口电路 芯片MAX23维实现波特率自检测的一种方式。以单片机为核心的测控系统与上位计算机之间的数据交换通常采用串行通信方式,在实际工作系统中,人们常常忽略或不知道PC机所发出数据中波特率的数值,往往不能正常工作。因此,本课题的设计目的是利用单片机及串口电路 MAX232芯片设计一种波特率自检 测电路,而切适用与不同的单片机上.4.1.2 编写程序主程序流程图如图4-1所示。见附

41、录24.2编程流程框序232接 口4.2七段数码显示电路IF4.2.1接口及写入电路总结本人在指导教师的悉心指导下,阅读了大量的资料,尝试了各种相关实验,终于设计了一个波特率自检测系统、程序和显示为一体系的系统,从结果上来看,本设计比较简单适用,能够实现简单的波特率自检测,另外能够准确的采集到当前的波特率并且能够清晰 的将波特率当前的工作数值显示出来。单片机应用系统的设计,面临的是选择单片机的机型。从性能价格比、开发工具、设计人员熟悉程度等因素考虑来选择单片机单片机应用系统中,软件设计与硬件设计是紧密相关、互补互依的。有时,硬件的任务可由软件完成,软件的任务可由硬件完成,根据具体情况,选择最佳

42、方案,达到最佳 性价比。整个设计过程分三大部分,第一部分是硬件的选用与设计,第二部分是软件编程,第三部分为系统调试部分。此次设计首先根据任务书设计要求设计出电路原理图,然做出PROTELH,同时计算各种相关数据,选择好合适的元器件,以保证本设计能够正确而顺利的设计成功。元件和 电路图都准备好后开始焊接电路。当硬件电路正确搭接好后,开始进行软件设计。根据电路图中 I/O 口的分配,以及本设计所要达到的各种功能要求开始逐步设计汇编程序,首先将本设计分成两部分,将波特率检测出来为本设计的第一部分,将检测出来的波特率显示出来做为第二部分,将两部分融合在一起,使两部分相互配合完成一个整体的程序控制系统,

43、达到任务书所要求的各种 功能。当软硬件都设计完成后开始对系统进行调试。本次设计的调试方式如下:首先,为主电路板通入5V直流电。然后,软件程序采用WAV解程软件,将所编程序转化成“.HEX”文件,采用用WH-500_800Programme编程加密器将汇编好的机器码通过写入器写入单片机。最后观看效果,按下相应的控制键确认各种控制是否与我们想要达到 的效果相符,如果有出入,通过所呈现的不同异常效果认真分析,找出原因改正,进行下 一次调试,直至调试成功。另外,本设计也有许多缺点和改进的地方。比如说,只能检测比较简单的波特率;显示方面只能显示数字及不能语音报告;在主控方面,没有工作状态的显示,虽然此设

44、计重 点不在于次,但控制系统方面也是此设计的关键之所在,也是最容易改进的地方,如果真 正有条件有能力了,可以加装工作状态的显示及其语音说明及报告。设计调试成功后将本设计产品在当前市场中的地位,同类产品的发展情况,做此设计的意义,设计中所用到的各种知识,以及整个设计的原理,等都进行整理归纳。最后写入 本毕业论文之中。参考文献1 李光飞 , 胡佳文 . 单片机课程设计实例指导 . 北京 : 北京航空航天大学出版,20042 张志良 . 单片机原理与控制技术. 北京 : 机械工业出版社,20043赵亮,侯国锐.单片机Cf编程与实例.人民邮电出版社,20034 何立民 . 单片机应用系统设计. 北京

45、: 北京航空航天大学出版社,20015徐凤霞,赵成安.AT89C5li1片机温度控制系统.齐齐哈尔大学学报.2004,20(1)附录1ORG 0000HLJMP MAINORG 0050HMAIN: MOV SP,#60HMOV BaudRt,#00H ACALL AutoBaud ACALL BAUDZH ACALL SZZHACALL CHADUANMADISLOOP:ACALL DISPLAY SJMP DISLOOPBAUDZH:PUSH ACCMOV A,BaudRt CJNE A,#0,BZHN1 SETB RANGOUT SJMP BZHRETBZHN1: MOV A,BaudRt CJNE A,#1,BZHN2CLR RANGOU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1