单片机与组态王的通信实例

上传人:新** 文档编号:505301903 上传时间:2022-11-04 格式:DOC 页数:10 大小:405.50KB
返回 下载 相关 举报
单片机与组态王的通信实例_第1页
第1页 / 共10页
单片机与组态王的通信实例_第2页
第2页 / 共10页
单片机与组态王的通信实例_第3页
第3页 / 共10页
单片机与组态王的通信实例_第4页
第4页 / 共10页
单片机与组态王的通信实例_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机与组态王的通信实例》由会员分享,可在线阅读,更多相关《单片机与组态王的通信实例(10页珍藏版)》请在金锄头文库上搜索。

1、单片机与组态王的通信组态王(ingiew)内置了通用单片机通信模块,这样,我们自己开发的单片机仪表就可以挂接在ingView上了。因为这样,所以对这个东西有了些兴趣,做了些研究.(1)研究环境组态王6。53,免费下载,当然有使用限制,不过用于研究是没有问题的。下载地址: el软件,Portes,这些就不多说了。Virual Srial Prts DrierXP5。1 虚拟串口软件,用此软件可以生成一对相互联接的虚拟串口,这样,初期的研究工作就在电脑上完成了,省得用硬件电路板了.(2)资料KingView提供了一份简单的说明材料,就在下载后的解压缩文件包中。具体的位置是:aue Pack技术资料

2、常用协议单片机ASCII码通讯协议()电路搭建注意单片机的TXD与虚拟串口的TXD,单片机的D与虚拟串口的RXD是连在一起的,不要交叉哦,我在这上面可吃了不少的苦头。.。这个虚拟串口元件的设置如下图所示:说明:这里选COM2,是因为我事先用Vspd生成了一对虚拟串口,com和com4,至于其他参数则应该选得和kgview中的一致,这个到下面再说。什么,这个元件不知哪里找?这里啦(4)VSPD的使用现如今的电脑很少有两个串口的了,人呢也是越来越懒了,虽然手边的电路板是现成的,写片子是容易的,但是仍然还是嫌麻烦的,所以就发动狗狗搜一搜,找到了这个VSP,当然它是很容易用的在firt后面选一个串口名

3、,然后在econd后面再选一个串口名,然后点一下dd Par就行啦。怎么选都可以,就算是选com也是可以的,虽然com1是真实存在的物理串口,但是这个VSPD照样把它给虚拟了。这里我选的是co2和om4,大家可以看到在左侧的窗口中出现了这样一对互联的串口了,也就是说,我从串口2发数据,然后串口4就能收到。同样,我从串口4发数据,串口就能收到.(5)组态王置根据自己屏幕选择演示项目中的一个找到设备D,双击“新建.。”选择:智能模块(上面的图中看不到)单片机通用单片机ASII串口起个名字,然后选择串口号,我们选择co4这一步选择地址,需要为自己的单片机设备确定一个地址,这有点麻烦。需要看一看地址帮

4、助,这里简单说明一下。如果在同一个串口上连接多个单片机设备,那么就需要确定究竟与哪一个设备通信,这就需要有个地址,这是上面我取的地址2。0中的2的由来,而小数点后面可取0,按kingi的介绍是打包还是不打包。我还没有理解打包是什么,所以先取0.现在“设备”下面多出来了co4,并且在右侧多出了一个“我的单片机”的图标,这是我为自己的单片机设备起的名字.右击该图标,在弹出的快捷菜单中选择“测试我的单片机”,打开对话框。在这里选择通信参数,为简单起见,我们将校验选为“无”,其他按图上选择,然后单击“设备测试”进入到设备测试页面。增加一个寄存器,寄存器X后面加个0,数据类型选择“BYT,SHORT,F

5、LAT”三者之一.我们选择BE,选择添加.OK,至此igviw也设置好了。下面就是编程了.1通讯口设置: 通讯方式:3,485,R422均可。 波特率: 由单片机决定(20,4800,900ad1200ps)。字节数据格式:由单片机决定.起始位数据位校验位停止位注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致2在组态王中定义设备地址的格式格式:. 前面的两个字符是设备地址,范围为025,此地址为单片机的地址,由单片机中的程序决定 ;后面的一个字符是用户设定是否打包,“0为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变

6、量时数据打包的工作。3在组态王中定义的寄存器格式寄存器名称d上限dd下限数据类型dd655350FOA/BYTE/UNT斜体字dd代表数据地址,此地址与单片机的数据地址相对应。注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(YE,UIN,FOT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。为提高通讯速度建议用户使用连续的数据区。组态王与单片机通讯的命令格式:读写格式(除字头、字尾外所有字节均为ASCII码)字头设备地址标志数据地址数据字节数数据异或说明; 字头:字节1个SCI码,0H设备地址: 1字节2个A

7、SCII码,-255(即0-00ffH)标志:1字节2个ASI码,bit0b,b0= 0:读,bi0= 1:写。bit :不打包. bit3bit2= 00,数据类型为字节. itit 01,数据类型为字。 it3bit2 1,数据类型为浮点数。数据地址: 2字节4个ASCII码,0x0000xfff数据字节数:字节个SII码,1-100,实际读写的数据的字节数。数据:为实际的数据转换为ASCII码,个数为字节数乘2.异或:异或从设备地址到异或字节前,异或值转换成2个ACII码R:0d。-有了这些资料,程序就不难编写了。先测试一下。到proteus中,全速运行,这就打开了串口窗口。在kingw

8、中单击“读取”(见上一篇的最后一个图),可以看到如下字串:02E00076 这个数据字串与地址,数据类型等有关,解读如下:变量名类型字头设备地址标志数据地址数据字节异或CR0BTE 0E00000017CRX1YE 02001017CRSORT A4000075 CRX1HOR 02A400010274CRX0OAT 0000000CR1FLOAT 02C00010401CR如果切换成HEX显示,则可以看到字头和字如:02A00074H显示为:40 3 32 1 34 30 30 013 32 37 34 D其中取异或的,不包括字头0H,即从30H开始的1个字符,异或算出来后,转换成SCII码

9、成为其后的2个字符,即0D前的两个字符。以上面的数字为例,异或算出来为74H,转换成ASII码为7和34H。不多说啦,上一个写好的程序:#inclue ”reg1.059M9200 bs*/tpeefnsigned car ucr;typedef unigd int in;定时器2的波特率:fosc/32(636(rcap2h rcap2)按此,可得波特率是。2时,要求65536(rp2rca2l)=18即(rcap2h rcapl)618oidserial_init () SCON =05; /*de1: 8it UART,naberver * C_T20; /imer2 runn inTm

10、er me*/ RCL=1; TCLK=”; RC2H=0xf; CAP2=0xe; R21; /eable Tmr2 run */ ES = 1;EN=”; EA;SM21; /SM21时收到的第9位为1才置位RI标志/通过串行口发送数据 */vidUartSed(ucar Dt) SBF=Dat;or(;)if(TI) brea; =; charRcuf1;bit RecOk=; /一次接收工作结束oidei() interrut atic bit StatRec=”0; /如果收到的首个字符是0H,则该值取0 sicucha Cunt=”0; /计数器 uchr Ret;RecDtSBU

11、F; /取得SBUF中的数据f(!SttRc) 新的一次接收开始 if(RecD40) /首字符正确 tartRec=1; /开始新的一次接收工作 else BufCon=Ra; Count+; i(RcDa=0x0) StRec0; /准备下一次接收 o0; /计数器清零 ReOk; /一次接收正确 RI=0;vidUarnds(char B,uchr Le) uc i;f(;ien;i) rtSen(Bufi);oid mDlay(uit layTm) ur i;fr(;DelayTim0;eyTm-) or(i0;i1;i+);ucarSndBuf0040,00,0x3,0x3,x31,

12、x6,0x,30,x31,0xd;v mi() uhr i; uchar Recont=0”;ucha endCunt=”0; uchar xrt; uhar Tmp1,cTm2; uchar cTmp; chr ndDt1;/这个是程序中准备传递给inview的,可以自行更改. seral_it (); /定时器,串口初始化 fr(;) if(eO) /一次完整的接收 Reck=0; /本次接收后的应答处理完毕 xrDatRecBuf; for(i=1;i0;i+) xort=RecBuf; /异或 cTmp1xD&00; /取高4位 cmp14; /右移4次移到低4位 cm1+=0x30; cTmp2=xoDt0x0f; /取低4位 cTmp+=030; if((mp1=Recu10)&(cTmp=ec1)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号