- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DELPHIPC机和AT89C51单片机串行通信实现
基于DELPHIPC机和AT89C51单片机串行通信实现
摘要 工业控制系统软件在现代社会中应用越来越广,而串口通信是工业控制中必不可少的部分。本文主要讨论了PC机与单片机通讯的接口设计和利用Delphi开发环境实现PC机与单片机之间实现串口通信的方法。
关键词 单片机;串口通信;RS-232C;Delphi7.0;Spcomm控件
中图分类号TP368 文献标识码A 文章编号 1674-6708(2011)35-0200-02
在工业生产实践中,经常要对某些仪器仪表进行监测或是发送某些参数,串口编程就显得相当重要。PC机以其高的性价比、较强的数据处理能力、较快处理速度、以及单片机体积小、低功耗、低成本、高性能、使用灵活的特点,利用PC机作为上位机,单片机作为下位机的主从工作方式在工业控制领域中被广泛采用。
1 下位机设计
1.1 单片机与PC机的RS-232标准接口通信电路的设计
RS-232C是目前最常用的串行接口标准,RS-232C提供了单片机与单片机、单片机与PC机之间串行数据通信的标准接口。但RS一232C规定的逻辑电平与单片机的逻辑电平是不一致的。因此,在应用中必须把单片机的TTL电平和RS-232C电平进行相互转换,这里选用专用电平转换集成芯片MAX232来实现的。
1.2 MCS51单片机与PC机串行通信接口的硬件电路设计
用MAX232芯片实现PC机与AT89C51单片机串行通信的典型电路如图1所示。图中外接电解电容C1、C2、C3、C4用于电源电压变换,可提高抗干扰能力,它们可取相同容量的电容,一般取1.0μF/16V。电容C5的作用是对+5V电源的噪声干扰进行滤波,一般取0.1μF。选用两组中的任意一组电平转换电路实现串行通信,中选Tlin、Rlout分别与AT89C51的TXD、RXD相连,Tlout、Rlin分别与PC机中R232接口的RXD、TXD相连。这种发送与接收的对应关系不能接错,否则将不能正常工作。
与AT89C51单片机串行通信的典型电路
1.3 MCS51单片机与PC机串口通信协议设计
1.3.1 通信方式选择
通信方式上,采用异步方式,微处理器对PC机的通信采用串口中断方式。
AT89C51有一个标准的串行口,有4种工作方式,其中方式1是标准的10位异步通信方式,1O位数据和PC机的标准串口相对应,由串口控制寄存器SCON设置状态,设置SCON=0X50H???
1.3.2 89C51通信波特率设置
在串行通信中,一个重要的指标是波特率,它反映了串行通信的速率,也反映了对传输通道的要求。波特率越高,要求传输通道的频带越宽。由于异步通信双方各自用自己的时钟源,要保证捕捉到的信号正确,最好采用较高的时钟。一般选择时钟频率比波特率高16倍或64倍。如果时钟频率等于波特率,则频率稍有偏差便会产生接收错误。这里选用l1.059MHz晶振。
89c51的串行通信的波特率由定时器T1的溢出率获得,当串口工作于方式1时,波特率为:波特率=(2SMOD*TD)/32,其中SMOD为波特率加倍。取值为0或1。定时器工作于方式2时,波特率为9 600bit/s,令SMOD=0, THl=TL1=0Xfd。
传送方式:PC机采用查询方式接收数据,单片机采用中断方式接收、发送;校验方式:奇偶校验。
1.4 下位机通信软件的设计
单片机通信程序分为接收中断处理程序、发送中断处理程序和通信处理程序3部分,构成整个单片机的通信程序。
接收中断处理程序主要负责接收微机发送到单片机接收缓冲区的数据,接收数据时,串行数据的接收受到串行控制器SCON中的允许接收位REN控制。当REN为1时,接收控制器开始工作,对接收数据进行采样。当接收到规定的字符数之后,置接收中断位RI为1,以表明接收缓冲区中有待处理的数据并请求通信处理程序对其进行处理。
发送中断处理程序主要负责向微机发送数据,发送数据时,通信处理程序将需要发送的数据写入单片机的发送缓冲区SBUF,启动了发送工作,并将缓冲区数据逐一发送给微机。当发送完指定长度的数据后(发送缓冲区为空),发送中断处理程序将发送中断标志位TI置位为1,直到通信处理程序再一次发送数据。
只有在接收到上位机送来的一串数据,且接收完毕标志为“1”时,才能真正进行处理。首先对接收缓冲区SBUF中的内容进行校验,完全无误后再根据通信要求对缓冲区的内容进行相应处理,同时判断是否还需将发送缓冲区SBUF中的数据发送到微机,最后退出通信处理程序,执行其它程序。当接收中断程序再次接收到数据并将接收完标志置为“1”后,可再次进入通信处理程序进行相应的处理。
2 上位
原创力文档


文档评论(0)