导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→vb与单片机串口通信[冷火]

 *第49478篇: vb与单片机串口通信

  
楼 主:冷火 2007年6月4日11:36
 vb与单片机串口通信
vb与单片机实现串口通信。。
从vb发送一个数据到单片机。。。
请问各位大哥  
vb中MCScomm控件的    oncomm事件如何编程。。。
不胜感激
。。。
  
2楼:autooy 2007年6月4日17:18
 不是吧
呵呵,刚看了一个好的,这个比较简单,是网上的,可以搜到,希望作者不骂我:
vb的串口通讯程序精简 简单 功能齐少但完全够用版 包括源代码 外加详细的源代码
2007-05-18 00:51
Private Sub Command1_Click() '点击按钮1(发送按钮)触发
Dim aaa(0) As Byte '定义一个字节型一维数组aaa,
aaa(0) = "&h" + Text1.Text '组合16进制以便发送
MSComm1.OutBufferCount = 0 '清空输出寄存器
MSComm1.Output = aaa '发送
End Sub

Private Sub Command2_Click() '点击按钮2(清屏)时触发
Text2.Text = "" '清屏
End Sub
Private Sub Form_Load() '加载窗体时触发
MSComm1.CommPort = 1 '用Com1口
MSComm1.Settings = "4800,n,8,1" '通讯参数 波特率 奇偶校验 数据位 停止位
MSComm1.PortOpen = True '开串口
End Sub
Private Sub MSComm1_OnComm() '有数据传送时触发
Select Case MSComm1.CommEvent 'CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性值的查询,我们就可以获得通讯事件和通 讯错误的完整信息。当其值是comEvReceive时表示接收到数据。
Case comEvReceive '有接收事件
Dim a As Variant '定义1个可变类型
Dim b(0) As Byte '字节数组
a = MSComm1.Input '接收到的数据存放到a里
b(0) = AscB(a) ' 返回a的值   asc()返回字符串第一个字母的值

Text2.Text = Text2.Text & " " & Hex(b(0)) '组合显示&    并且转换成16进制hex()
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
***************************************************
ORG 0000H
LJMP abc
abc:MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#00H;smod为0
MOV TH1,#0FAH;初值设定
MOV TL1,#0FAH;初值设定
SETB TR1;启动定时器T1
ljmp main
MAIN:
mov a,sbuf;接收以后放到a
MOV P0 ,a;接收到的数据通过p1 p0显示
MOV P1 ,a
ACALL DEL;延时一会 大概0.5s
ACALL DEL;多延时一会 又0.5s

mov sbuf,a;刚才接收到的数据再发送出去
clr ti;清寄存器
clr ri;清寄存器
mov p0,#0ffh;让p0灭一下
mov p1,#0ffh;让p1灭一下 代表数据发送
ACALL DEL;延时...
ACALL DEL;又延时...
AJMP MAIN
DEL: MOV R5,#04H;延时子程序
F3: MOV R6,#0FFH
F2: MOV R7,#0FFH
F1: DJNZ R7,F1
DJNZ R6,F2
DJNZ R5,F3
RET
END
 
 


如果你不懂VB或者单片机不是我的错啊!:)


>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:问一个伟福仿真器的问题

[下一篇主题]:恒颐打造ARM精品世界——ARM9嵌入式控制器模块