付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机RS485通讯控制三菱变频器(RTU模式一、控制要120Hz230Hz351单片机RS485通讯控制三菱变频器(RTU模式一、控制要120Hz230Hz3451 单片机型号:STC89C52RC通讯格式设定:设为9600、8、N、2,为RTU 模式。二、程序说main.cdelayms.c(毫秒延时、RS485.C(RS485通讯处理)和display.c(数码管显示)组成。1、毫秒延时子程序:包含头文件(delayms.h)和源码文件头文件的书.H。头文件delayms.h #ifndef #define /#define /定义为#defineuchar unsigned voi
2、ddelayus(uchar /定义uchar为unsigned /void (1#define _DELYMS_H_(2_DELYMS_H_(1#define _DELYMS_H_(2_DELYMS_H_复 源码文件的书原码文件:在文件系统中一般以“.c和使用。例如对应于“delayms.hdelayms.cvoid /12MHz晶振下,j=1231/11.0592MHz晶振下,j=1131仿真所得u2、RS485 通讯处理子程(1)RS485.H#ifndef_RS485_H_ #define/init_serial()void voidUartWrite(charnumber,char)
3、 /RS485 void UartAction(char/extern unsignedchar (2sbit RS485_DIR= /RS485 (EN uchar cntRxd = 0; ucharidatabufRxd20; uchar send8=0;uchar /constsbit RS485_DIR= /RS485 (EN uchar cntRxd = 0; ucharidatabufRxd20; uchar send8=0;uchar /constuchar codeconstuchar code/CRC/CRCuidata:0 x00-0 xff 256 RAM128 data
4、 128 的方式不同。idataC的。C idata const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定code:程void init_serial(void)/设置RS485 /1/清零T1 /2,88位定时器/9600= /TR1 RE: 接收使能端 DI输入和同相发送器输输入和反相发送器输SCON:串行口控制寄串行口控制寄存器SCON/发送控制以及设置状态标志等。单片机复位时SCON 0。(1)SM0SM1-SM000110101SCON:串行口控制寄串行口控制寄存器SCON/发送控制以及设置状态标志等。单片机复位时SCON 0。(1)SM0SM1-SM00
5、01101010,同步移位寄存器方式(通常用于扩展I/O口1,10位异步收发(8位数据,波特率可变(1的溢出率控制)2,11 位异步收发(9 位数据,波特率固定3,11位异步收发(9位数据,波特率可变(1的溢出率控制SM223。通过控制SM20SM201时,若SM2=1,则只有接收到有效停止位时,RI 1(4)TB82、39239的奇偶校验位,或在多机通信中,作为地址帧/0 1 中,RB82、391 时,若SM2=0RB8 是接收到的停止位。TI08TI1CPU 008RI 1CPU 将0TMOD:定时器/计数器工作方式寄存-GATE=0,定时器/TCON寄存器中TRXGATE=1,定时器/T
6、CON中TRX011101013011101013位定时器/计数器116位定时器/288位定时器/3,仅适用于T08 位计数器,T1void uchar i; RS485_DIR=1;RS485_DIR=0;/函数RTU8N28,N2/RS485/4/8/1.5/RS485 4ms使用RTU3.5字符后,一个至少 3.5 个字符时间(约 4ms)的停顿标定了消息的结束,一个新消息可在传送一半时,RITI就已经置位并且马上进入中断(如果中断使能的话)函数了。所以uCRC16(ucharsg,uchar /CRC校验程序(查表法ucharuchCRCHi=0 xFF /高CRCucharuchCR
7、CLo=0 xFF; uchar uIndex ;while(usDataLen-uIndex=uchCRCLo /CRC /CRCsg+/uchCRCLo=uchCRCHiucharuchCRCLo=0 xFF; uchar uIndex ;while(usDataLen-uIndex=uchCRCLo /CRC /CRCsg+/uchCRCLo=uchCRCHiauchCRCHiuIndexuchCRCHi=auchCRCLouIndexreturn(uchCRCHi cntRxd) len = for(i=0; i cntRxd) len = for(i=0; ilen;*buf+=bu
8、fRxdi; cntRxd = 0;/将接收字节缓冲区的数据读到buf/void UartAction(charuchar idata buf7; data_h=0,data_l=0;/S_Addresserrupt/bufRxdcntRxd+ =constucharcodeauchCRCHi =省略constucharcodeauchCRCLo =省略bufRxdcntRxd+ =constucharcodeauchCRCHi =省略constucharcodeauchCRCLo =省略/ /CRC/*以下程序为计算程序(CRC_chk(unsignedchar*data,unsignedc
9、harreturn CRC 是先调入一值是全1的 16 位寄存器,然后调用一过程将消息中连续的 8 位字节各当前寄存器中的值进行处理。仅每个字符中的 8Bit 数据对 CRC 有效,起始位和停止位CRC8位字符都单独和寄存器内容相或(OR,结果向最低有效位方向移动,最高有效位以0 填充。LSB 被提取出来检测,如果LSB 1,寄存器单独和预置的值或一下,如果LSB 0,则不进行。 CRCCRC计算CRC(1)161(2)8CRC计算CRC(1)161(2)816CRC寄存器的低位相异或,把结果放于CRC(3)把寄存器的内容右移一位(朝低位)003 步(再次移位); 1CRC寄存器与多项式 (1
10、010 0000 00000001)3488258 最后得到的CRCCRC3、数码管显示子(1)#ifndef DISPLAY_H #define DISPLAY_H #include delayms.h externucharTempData8;externucharcodeDuanMa10; void Display();void / /8位共阴数码管动态扫描显示 #define DataPortP0 sbitsbit/DataPort 则用P0 /ucharcodeDuanMa10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f
11、,0 x6f;/uchar code/ucharTempData8;void ic uchar /; /DataPort=TempDatai/void ic uchar /; /DataPort=TempDatai/i=88位,最后一位没有显示,可将i7void TMOD|=/1,16 位定时器,使用|/voiderrupt1 /重新赋值 #includereg52.h #include#include #include /sbitFWD=P20; sbit REV= P21;sbitSTOP=/sbitled0=P10; sbitsbit#include /sbitFWD=P20; sbit
12、 REV= P21;sbitSTOP=/sbitled0=P10; sbitsbit/charfunction; uchar /void /20Hz/20Hz/20Hz频率/20ms说明:UartWrite 3 个变量分别为功能码、数据地址和数据内容。要写入频率数06(十进制,对应的单片机地址为 40014-40001=13,转成十六进制数为 07d010ms,在20ms,正常。/30Hz10ms,在20ms,正常。/30Hz/30Hz/说明:UartAction 为变频器响应函数,括号内的变量为变频器回应信息的首地址,读取设定频率值对应的保持寄存器地址为/说明:UartAction 为变频器
13、响应函数,括号内的变量为变频器回应信息的首地址,读取设定频率值对应的保持寄存器地址为 40205 ( 十进制), 对应的单片机地址为 40205-40001=204,转成十六进制数为 ccH;读回的两字节数据为设定频率值的高、低 8位,转换后的数值赋给setfre(设定频率值。不同地址中的数据也要间隔延时,20ms输出频率值对应的保持寄存器地址为 40201(十进制,对应的单片机地址为 40201-40001=200c8H;输出频率值对应的保持寄存器地址为 40009(十进制,对应的单片机地址为 40009-40001=808H8 3 分别取出取反后赋给led0 led1 led2b0=1b1=1led1=0,即led0 和led1 亮;b0=1b2=1Led2=0,即led0和led2变频器停止时,变频器面板的RU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门诊部上半年护理工作总结范文
- 公司上半年宣传思想工作总结
- 人际交往与心理学
- 2026年哈尔滨市17中学七年级下学期历史期中试卷及答案0522
- 机械能及其转化教学课件2025-2026学年初中物理人教版(2024)八年级下册
- 低血糖症的急救与护理
- 肾病综合征的护理
- 慢性呼吸疾病肺康复护理专家共识2026
- 重庆市铁路中学高2026届下学期考前模拟历史试卷(含答案)
- 现金支付场景全覆盖实施细则
- 部编版五年级下册道德与法治-期末测试卷及完整答案【易错题】
- 2024年黑龙江省大兴安岭塔河县小升初素养语文检测卷含答案
- 人教版六年级小升初数学考试试题(含答案)
- 美好生活劳动创造-中职生劳动教育教程全套教学课件
- 贵州大学-物理类专业-大学物理1-2模拟试卷
- 电气及热控专业施工方案
- AIAG-VDA-PFMEA表格模板(自动计算AP)
- 种植体周围炎的预防及治疗
- 22.CRH380A型动车组转向架轮对、轴箱及一系悬挂装置《高速铁路动车组机械设备维护与检修》教学课件
- 史上最详细工程报建报批手续办理全流程
- 腘窝囊肿的关节镜治疗-课件
评论
0/150
提交评论