RS485总线通信实验_第1页
RS485总线通信实验_第2页
RS485总线通信实验_第3页
RS485总线通信实验_第4页
RS485总线通信实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二 RS485总线通信实验一、实验目的学习单片机串行通信协议的设计,设计程序实现单片机与PC机间的RS485串口通信。二、实验设备及器件计算机(带串口) 一台单片机实验仪 一台三、实验内容在单片机上用定时器0实现编写电子钟程序,将时分秒在LCD上显示,同时编写串口程序,实现由PC机通过RS485总线修改和读取电子钟时间,通信采用ASCII码,波特率4800,协议如下: PC机发送单片机回送1、读取电子钟的“时分秒”#RT=XXYYZZ2、修改电子钟的“时分秒”#SXXYYZZ无回送四、实验步骤 图2、RS485转TTL接口1、RS485接PC机的串行口上的RS232转RS485模块,J9的

2、RXD、TXD分别接单片机的P3.0、P3.1;2、编写程序并仿真后,用STC下载器下载到单片机执行,首先验证电子种的功能。3、PC机上采用STC下载器中的串口助手,通过发送ASCII码的命令,进行电子钟时间的读取和修改。五、实验预习要求 学习单片机的串口设置的有关特殊寄存器的设置,学习ASCII码通信协议的有关知识。#include #define uchar unsigned char#define uint unsigned int#define tim0 -50000#define BPS4800 -13bit dis;sbit LT1=P20;sbit LT2=P21;/支持字节和字

3、类型,由于他的浮点怪异所以不支持idata uchar DatB8; /组态字节idata uint DatW8; /组态整数idata float DatF4; /组态浮点bit RECV=0;uchar Addr=1;idata uchar Rbuf40,Rptr,Rnum;idata uchar Tbuf40,Tptr,Tnum;code uchar asc=ABCDEF;uchar AscHex(uchar m) if(m=0 & m=A & m=a & m4; TbufTnum+=ascp&15;uchar ChkLRC() /ok uchar i,d,s=0; for(i=0;iR

4、num-2;i+) s=Rbufi; d=AscByte(Rnum-2); return sd;void SetLRC() /ok uchar i,s=0; for(i=0;iTnum;i+) s=Tbufi; ByteAsc(s); TbufTnum+=0x0d; SBUF=0x40;void serial() interrupt 4 using 2 uchar m; if(RI) RI=0; m=SBUF; if(m=0x40) Rptr=0; Rnum=0;else if(m=0x0D) RECV=1; else if(Rnum0) SBUF=TbufTptr+; Tnum-; /voi

5、d ModbusASC() uint p; uchar n,cmd,i; uchar *s; LT2=!LT2; p=AscByte(4)*256+AscByte(6); n=AscByte(8); cmd=AscByte(2)&0xf; if(cmd&1)=0) /Read from mcu Tnum=0; Tptr=0;ByteAsc(Addr);ByteAsc(n); switch(cmd&0x0c) case 0x00: /byte ok s=(uchar*)DatB+p; for(i=0;in;i+) ByteAsc(si);break; case 0x04: /word ok s=

6、(uchar*)DatW+2*p; for(i=0;in/2;i+) ByteAsc(s2*i); ByteAsc(s2*i+1);break;SetLRC(); else /Write to mcu switch(cmd&0x0c) case 0x00: /byte ok s=(uchar*)DatB+p; for(i=0;in;i+) si=AscByte(10+2*i);break; case 0x04: /word ok s=(uchar*)DatW+2*p; for(i=0;i8; TL0=tim0&0xff; TR0=1; TH1=BPS4800; TL1=BPS4800; TR1=1; DatB0=12; DatB1=34; DatB2=56; DatB3=78; DatB4=21; DatB5=43; DatB6=65; DatB7=87; DatW0=123; DatW1=234; DatW2=345; DatW3=456; DatW4=567; DatW5=678; DatW6=789; DatW7=890; DatF0=-1.123; DatF1=-1.145; Dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论