用VB控制单片机串口(正确版).docVIP

  • 25
  • 0
  • 约 5页
  • 2017-01-30 发布于重庆
  • 举报
用VB控制单片机串口(正确版)

如何用VB实现电脑串口通信 无协技术顾问: 陈文斯 什么是串口,为何要学习串口 串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。任务1:软件界面上有一个文本框和按钮,当点击按钮时,文本框上显示“爱电子,爱生活。 华南理工大学电子爱好者协会” 运行VB,在新建程序的界面上画出一个文本框(textbox)和按钮(command botton)。如图2所示; 双击按钮,出现代码编辑窗口。并在其中输入代码,如图3所示; 运行程序,点击按钮,即可看到如图4所示的效 果:是不是很简单呢?! 个人建议大一大二的师弟师妹应该学习如何用VB操作串口,特别是学会如何实现电脑跟单片机的通信。这样子,我们日后设计的电子作品必定增色不少。现在详细讲解一下如何用VB操作串口。(读者可去图书馆借阅相关图书,掌握串口跟VB的基础知识) 要用VB操作串口,需要用到Mscomm控件 Microsoft Comm Control 6.0”,添加该控件。 在开始使用MSComm控件之前需要先了解其属性事件属性 描述 CommPort 设置或返回通信端口号 Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位 PortOpen 设置或返回通信端口的状态。也可以打开和关闭端口 Input 返回和删除接收缓冲区中的字符 Output 将字符串写入发送缓冲区通信事件包含了下面的设置: 常量 值 描述 ComEvSend 1 发送缓冲区中的字符数比Sthreshold值低 ComEvReceive 2 接收到了Rthreshold个字符。持续产生该事件,直到使用了Input属性删除了接收缓冲区中的数据 ComEvCTS 3 CTS(Clear To Send)线改变 ComEvDSR 4 DSR(Data Set Ready)线改变。当DSR从1到0改变时,该事件发生 ComEvCD 5 CD(Carrier Detect)线改变ComEvRing 6 检测到响铃信号ComEvEOF 7 收到了EOF字符(ASCII字符26)ComEvSend和ComEvReceive事件。 学习过单片机串口通讯的同学都知道,读写串口数据有两种方法:事件驱动(中断)和查询方式。VB方面也是如此。另外,Mscomm控件110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 256000”,默认为9600。那我们看看如何编写单片机和电脑的代码来完成这个任务。 单片机端源代码: #include reg52.h //单片机的寄存器说明的头文件 #includestdio.h //printf函数的头文件 void main() { SCON=0X40;//串口:方式1 TMOD=0X20;//定时器1:模式2,8位自动重装模式,用于产生波特率 TH1=0XFD; //初值设定 波特率为9600,晶振:11.0592M TL1=TH1; EA=1; //开启总允许开关 TR1=1; //开启定时器1 printf (%s ,我love你); //调用printf函数,将文本从串口输出 while(1); } 电脑端源代码:(只需在前面的例子中添加Mscomm控件Private Sub Form_Load() ‘窗体加载时运行的函数 MSComm1.CommPort = 4 ‘我用的是USB转串口,设备管理器中看到端口号为4 MSComm1.Settings = 9600,n,8,1 ‘波特率为9600,无检验,8位数据,1位停止位 MSComm1.InputMode = comInputModeText ‘该任务中只用到文本,使用文本模式 MSComm1.RThreshold = 1 ‘串口每收到1字节的数据,即产生接收中断 MSComm1.PortOpen = True ‘打开串口 End Sub Private Sub MSComm1_OnComm() ‘串口中断事件入口函数 If (MSComm1.CommEvent = comEvReceive) Then ‘如果串口收到数据 Text1.Text = Text1.Text +

文档评论(0)

1亿VIP精品文档

相关文档