台达变频器和C51单片机ASCII标准通讯.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
台达变频器和C51单片机ASCII标准通讯 台达VFD全系列变频器和C51单片机通讯采用串行异步原理。通讯速度用波特率表示。 波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。通讯方向:在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。 8051 单片机 串行 异步 通讯的方式用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。在异步通讯中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。 2?通讯约规 2.1? 台达VFD变频器通讯约规 (1)台达变频器通讯字符格式。台达变频器通讯字符格式有ASCII和RTU格式,如图1所示。 图1? 台达变频器通讯字符格式 (2)台达变频器通讯格式的表格描述。台达变频器通讯格式的表格描述参见下表。 表 台达变频器通讯格式的表格描述 3?单片机通讯设计 3.1?C52 单片机的串行接口结构 8051串行接口是一个可编程的全双工串行通讯接口。它可用作异步通讯方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进行全双工的8051多机系统也可以通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。 ? 台达变频器接受的RS485信号,单片机输出的是TTL电平。因此要变频器和单片机通讯要有通讯转换芯片,目前常用的RS485芯片有MAX485、MAX483,S75176等。在本例子中采用了MAX485和S75176芯片,同时电路图中预留了RS232电路的接口,方便单片机以RS232通讯方式和其他外设进行通讯。主单片机采用ATMEL公司的AT89C52单片机。 3.2?软件调试界面 ?????单片机程序通过在KEIL环境下开发编译的,调试界面如下: 3.3通讯源程序 /********************************************************* *??本程序是AT89C52单片机和台达B系列、M系列、L系列、F系列通讯例子. *??通讯协议ASCII格式,帧格式为“1位起始位、7位数据、奇偶位(或无)、结束位”共10位. *??台达VFD系列变频器一帧的通讯格式:第0位:“:”起始位;第1,2位:站号地址. *??第3,4位:功能号码;第5,6,7,8位:写入的地址;第9,10,11,12位:传输数据. *??第13,14位:校验码;第15,116位:停止0X0D,0X0A. *??该程序通过向2000H地址写入0012H数据来启动变频器;向2000H地址写入0012H数据来停止变频器. *??由P1.0来控制MCU发送数据,P2来控制通讯指示灯.* *??编译环境:KEIL?V3.30 *??作者:刘元刚 *??部门:中达电通股份有限公司AMD产品处 *??编写时间:2008.1.8 *??修改时间: *??修改内容: **********************************************************/ #include?reg51.h char?send[17]={0}; char?send1[8]={0x01,0x06,0x01,0x00,0x17,0x70,0x86,0x22}; char?count; int??temp; bit?motor_flag=0; /*********ASCII格式变量定义**********/ char?number?;?????//设备站号 char?function?;???//功能 char?address_h;???//地址高 char?address_

文档评论(0)

wuailuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档