欢迎来到天天文库
浏览记录
ID:22888156
大小:53.50 KB
页数:5页
时间:2018-11-01
《单片机与vb串行通信的实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、51单片机与VB串行通信的实现编辑导读:MCS-51汇编语言的程序格式
2、基于aduc842瞬态波形存储器
3、单片机学习实例:广告灯的左移右移
4、一种新型多点测温系统的设计
5、单片机红外遥控声光测试器设计
6、KeilC51开发系统基本知识(3)
7、1课:单片机简叙
8、STC89C51RC/RD+系列从ISP程序切换到应用程序
9、单片机应用之摩斯密码电子锁
10、PCF8563实时时钟/日历芯片介绍
11、正文:单片机与PC机串行通信的实现方法,串行存储器24C256的读写操作流程,并给出了具体通信接口电路、单片机串行通信程序流程以及利用VB6.0的通信控件
12、MSComm实现PC机串行通信的程序。系统经过实际应用,效果令人满意单片机;VisualBasic6.0;MSComm;24C256单片机,分别用于对左右减振器实施控制,同时将测量的温度、电流、速度等信号按一定采样时间保存在E2PROMATC256中。为了能测试控制器的工作情况,包括初始安装时的状况测试和读取历史记录并做测试诊断以及能根据参数变化情况进行故障诊断,为此,同时开发了通信系统,上位机采用便携式PC机,上、下位机之间通过MAX485芯片实现串行数据通信。单片机AT89C52的串行数据发送端TXD和串行数据接受端RXD分
13、别与MAX485驱动器输入端DI和驱动器输出端D0,接受器输出使能端RE接地,驱动器输出使能端DE接单片机的T1端(P3.5脚)。存储器ATC256的串行数据线SDA和串行时钟线SCL分别AT89C52的P3.7和P3.6相连,具体硬件电路框图如图1所示: 单片机相连,不需要其它器件和外围电路。它具有256Kbit的位存储容量,按8位一个字节的方式可提供32K字节的存储空间。对ATC256的读写操作完全符合I2C总线的数据传送,传送的每一帧数据为一个字节,要求每传送一个字节后,对方回应一个应答位。发送时先放送数据最高位,每次
14、传送开始有起始信号,结束时有停止信号。在系统的设计中,对ATC256的写操作采用字节写,读操作采用顺序读的方式。根据系统要求,每到一分钟就向ATC256中写入1条记录(包括三个温度、电流、速度等5个数据),上位机需要读取数据时,可根据上位机的读取指令读取任意条记录。对ATC256的读/写程序流程如图2所示: 单片机串行口按方式1工作,波特率由定时器T1控制, PC机串口波特率通过VB通讯控件的Settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。单片机)串行通信及程序设计单片机可以采用中断方式或查询RI(接
15、受中断标志位)或TI(发送中断标志位)方式进行数据通信②。设计采用查询方式,在定时器T2中断子程序中查询RI,一旦检测到RI=1则转入接受数据子程序,在子程序中单片机读取从上位机发送的通信指令、读取记录个数等数据,经校验正确后,即从ATC256存储器中将历史记录数据上传给PC机,单片机发送数据子程序流程图如图3: 图3单片机发送数据子程序流程图单片机和串行通信口的选择通过两组单选按纽完成。在发送命令按纽的Click事件中,将通信指令通过串行口发送给上位机,当选择左侧单片机时(变量LR(1)=1),通信指令为“ET”,选择右侧单片
16、机时(变量LR(1)=2),通信指令为“DT”,数据传送以回车符(十进制ASCII码为13)作为结束标记。 下面是MSComm控件的初始化程序、部分数据发送和接受程序:MSComm控件的初始化(属性设置)程序:MScomm1.ComPort=1 ;设置串行端口(com1)MScomm1.Settings=2400,n,8,1;设置波特率及数据帧格式MScomm1.InputMOde=1;数据接受按字节(binary)方式MScomm1.InbufferSize=40
17、00;数据接受缓冲区大小为4000字节MScomm1.InputLen=0;INPUT读取缓冲区的所有内容数据发送程序:PrivateSubCommand1_Click()Dimoutbuf(1To6)AsByteDimlstr1AsStringDimhstr2AsStringDimlen1AsIntegerCommand1.Enabled=Falselen1=Len(Hex(Val(Text2.Text)))………IfLR(1)=1Thenoutbuf(1)=69 ;对应字符“E”Elseoutbuf(1)=68
18、 ;对应字符“D”EndIfoutbuf(2)=84 ;对应字符“T”outbuf(3)=LR(1)outbuf(4)=stoby(hstr2) outbuf(5)=stoby(lstr1)outbuf(6)=13MScomm1.RThr
此文档下载收益归作者所有