




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机与台式电脑串行通信的实现学 院 专 业 学生姓名 学 号 摘 要基于串口通信的原理,分析和讨论了台式电脑与AT89SC52RC单片机如何编程以及硬件连接实现串行通信的。本设计主要介绍如何使用台式机与一台单片机通过串口实现串行通信。在本设计中单片机采用AT89C52,台式机的高12v电平由1489芯片实现和单片机的5v电压转化;软件设计方面,台式机采用串口调试助手实现发送,单片机方面用中断方式完成数据的接收和发送,程序开发采用Keil C语言。关键字:台式机,AT89SC52RC单片机,1489芯片,串行通信第一部分:设计目的通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据
2、从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米 。随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。台
3、式机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过台式机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。本文所介绍的单片机和PC机的串行通信方法,电路简单,兼容性好,可移植性强,能够极好的实现串行通信的功能。第二部分:设计内容2.1.1串行通信的基本知识 串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。 要使串行通信工作,需要一根三根线的电缆1根发送,1根用来接收,1根接地即可。开始传输时,设备先发送一
4、个起始位,其次是数据位。该数据位可以是五,六,七,或8位,基于商定而定。两个发送方和接收器必须设置为相同的数据通信比特或正确的比特率。数据位被发送完后,就会发送一个停止位。一个停止位可以是一位,一个半位,或两位。波特率是数据从一个设备到另一个的传输速度。波特率通常以每秒的位数(bps)来计量。2.1.2串行通信工作模式如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。如图(a)。如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。如图(b)。如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。如图(c)(a)(b)
5、(c)2.1.3异步传输和同步传输串行传输中,数据是一位一位按照到达的顺序依次传输的,每位数据的发送和接收都需要时钟来控制。发送端通过发送时钟确定数据位的开始和结束,接收端需要在适当的时间间隔对数据流进行采样来正确的识别数据。接收端和发送端必须保持步调一致,否则数据传输就会出现差错。为了解决以上问题,串行传输可采用以下两种方法:异步传输和同步传输。1.异步传输通常,异步传输是以字符为传输单位,每个字符都要附加1位起始位和1位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关
6、系。起始位对应于二进制值0,以低电平表示,占用1位宽度。停止位对应于二进制值1,以高电平表示,占用12位宽度。一个字符占用 58位,具体取决于数据所采用的字符集。例如,电报码字符为5位、ASCII码字符为7位、汉字码则为8位。此外,还要附加1位奇偶校验位,可以选择奇校验或偶校验方式对该字符实施简单的差错控制。发送端与接收端除了采用相同的数据格式(字符的位数、停止位的位数、有无校验位及校验方式等)外,还应当采用相同的传输速率。典型的速率有:9600 b/s、19.2kb/s、56kb/s等。异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字符的、低速的异步通信场合。例如,计算机与
7、Modem之间的通信就是采用这种方式。它的缺点是通信开销大,每传输一个字符都要额外附加23位,通信效率比较低。例如,在使用Modem上网时,普遍感觉速度很慢,除了传输速率低之外,与通信开销大、通信效率低也密切相关。2.同步传输通常,同步传输是以数据块为传输单位。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如16位或32位CRC校验码),以便对数据块进行差错控制。所谓同步传输是指数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。和异步传输相比,数据传输单位的加长容易引起时钟漂移。为了保证接收端能够正确地区分数据流
8、中的每个数据位,收发双主必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。这种技术在短距离传输时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。2.2 台式机与单片机的通信设计实现单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能
9、(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。通过单片机和台式机实现此次的数据通信,并用C51程序进行调试,程序简单,硬件实现也不复杂,性对于纯粹的使用C+来实现更具有说服力,该设计中使用的单片机是STC89C52RC,由于单片机的收发引脚电平为TTL的5V 电平,但是台式机的电平为12V(为RS232电平),因此,要想实现计算机和单片机的正常通信必须要通过MAX232或者MC1489芯片实现电平转换。将单片机的自发自收程序通过Keil和STP程序烧写器烧进单片机之后,可以实现台式机与51
10、单片机的自发自收。2.2.1:STC89C52单片机的引脚及其单片机寄存器介绍单片机是微型集成器件,其功能强大,使用灵活。下图是51系列单片机的最小系统及其单片机的内部引脚:51单片机最小系统及其引脚图其中,在最小系统中,晶振和容微系统提供外接时钟,接在XTAL2和XTAL1上,晶振的频率为11.0592M,XTAL1和XTAL2:接外部晶振和微调电容,在片内它是振荡器反相放大器和时钟发生器的输入端;RST,引导内部复位程序或电路。要求RST保持高电平一段时间,对总体电路是实现复位。开发板中,10和11引脚表示数据的接收和发送引脚。2.2.2:单片机常用寄存器介绍单片机在实现相关功能(如定时计
11、数、中断查询等)时,必须要设置相应的寄存器状态才能实现,较为主要的寄存器有以下几个:寄存器地址实现功能TMOD 89H定时器/ 计数器方式控制寄存器TH1 8DH 定时器/ 计数器1 (高8 位)TL1 8BH 定时器/ 计数器0 (高8 位)SCON98H串行口控制寄存器PCON87H电源控制寄存器其中:定时器工作模式寄存器:TMODGATE 当GATE置位时,定时器仅当TR=1并且INT=1时才工作,如果GATE=0置位TR定时器就开始工作。C/T 定时器方式选择 如果C/T=1定时器以计数方式工作C/T=0时以定时方式 工作M1 模式选择位高位M0 模式选择位低位串行控制器:SCONSM
12、0 串行模式选择SM1 串行模式选择SM2 多机通讯允许位当模式0 时此位应该为0 模式1时当接收到停止位时该 位 将 置位模式2或模式3时当接收的第9位数据为1时将置位REN 串行接收允许位TB8 在模式2和模式3中将被发送数据的第9 位RB8 在模式0中该位不起作用在模式1中该位为接收数据的停止位在模式2 和 模式3中为接收数据的第9位TI 串行中断标志位由软件清零RI 接收中断标志位有软件清零中断使能寄存器:EAEA 使能标志,位置位则所有中断使能, 复位则禁止所有中断- 保留ET2 定时器2中断使能ES 串行通信中断使能ET1 定时器1中断使能EX1 外部中断1使能ET0 定时器0中断
13、使能EX0 外部中断0 电源控制寄存器:PCON在常见单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。(程序如果不设置,则默认SMOD为0)2.2.3波特率计算 在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准9600 不是每秒种可以传送9600个字节,而是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1
14、 传输时,每秒传输的字节数是960010960 字节。 51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定在fosc/64 或fosc/32。模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片溢出速率,就是说定时器1每溢出一次,串口发送一次数据。C Y-Mm|#Z |0电子爱好者社区2evuIH 通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准
15、确。在这个定时模式2下定时器1溢出速率的计算公式如下:,g TbJv f+r0溢出速率(计数速率)/(256TH1初值) 电子爱好者社区 u2R;qe.iX;N溢出速率fosc/12*(256-TH1初值)电子爱好者社区 wF$RneqB 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时器启动后会在每一个机器周期使定时寄存器TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知
16、道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为0,分别看看所要求的TH1 为何值。代入11.0592M电子爱好者社区(?,upX)5oN 9600(132)(11.0592M/12)/(256-TH1)电子爱好者社区vTXu zx H TH12538Rdou.j|012M0NwO0 9600(132)(12M/12)/(256-TH1)B:Asol(Qy#m0 TH1252.7电子爱好者社区H J4/f Ie b 上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生
17、精确的9600 波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。因此在程序中设计TH1=0XFDH.2.2.4电平转换器件MC1489由于MCS-51采用TTL电平,若用RS-232C标准接口通信必须进行电平转换。目前RS-232C与TTL电平转换最常用的集成电路芯片是MC1489。其内部结构和引脚如下图所示:1489引脚图MC1489可完成由RS-232C到TTL电平转换,输入为RS-232C电平,输出为TTL电平。其内部有4个反相器,采用+5V电源供电。
18、MC1489中每个反相器都有一个控制端,高电平有效,可作为RS-232C操作的控制端。2.2.5 RS232串行口DB9接口定义其中,主要将其中的2号和3号收发端口和电平转换器件MC1489的收发端口相连接,实现数据收发。第三部分:设计实现3.1设计程序及其相关解释单片机程序采用C51语言来实现程序的自发自收,单个字符的收发,同时在收到字符之后显示“I get ”,程序代码如下:该程序由keil编译并生成hex文件,并通过STP61单片机烧写器烧进51单片机中,经由串口调试助手实现单个字符的串口自收通信。3.2 具体的硬件实现:1:设计使用的51单片机2:设计使用的MC14893:设计使用的DB964:系统的总体连接图3.3 实验结果:使用串口调试助手选择串口的COM1端口,同时注意波特率和系统设计的相同(9600),输入单个字符可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025分布式光伏发电屋顶租赁合同
- 2025年度空调设备供应合同
- 2025存量房买卖合同附件样本
- 阴茎癌的临床护理
- 《中医诊断学题》课件
- 《公共卫生法规与传染病管理》课件
- 《深度解析医疗制度》课件
- 2025年陕西货运从业资格证模拟考试下载
- 塔里木职业技术学院《教学统计软件》2023-2024学年第二学期期末试卷
- 上海市长宁区高级中学2025届初三年级第一次质量检测试题化学试题含解析
- DB65-T 4765-2024 农牧区标准化羊场建设规范
- 城轨行车课程设计
- 2024年南京市中考历史试题及答案
- 2024羽毛球教案36课时
- A类供应商绩效评价表
- 摄影摄像知识竞赛考试题库500题(含答案)
- 2024至2030年中国丹参行业市场发展监测及投资潜力预测报告
- GB/T 44218-2024微型扬声器测量方法
- (正式版)JB∕T 14666-2024 钢质汽车转向节臂锻件 工艺规范
- AQ/T 9009-2015 生产安全事故应急演练评估规范(正式版)
- 《无人机测绘技能训练模块》课件-模块7:无人机航测影像获取
评论
0/150
提交评论