您的位置:首页 > 编程语言 > VB

vb制作单片机 上位机 (1) 控制单个电灯开关

2015-12-16 16:26 651 查看
单片机源码

vb上位机程序编写
vb程序 基本构造

vb源码

单片机源码

#include <reg52.h>
sbit led = P1^0; // led灯为P1^0
void init(void){
SCON = 0X50; //设置usp串口中断寄存器
TMOD = 0X20; //设置中断
TH1 = 0XFD;//存放 定时器初值 11111101
TL1 = 0XFD;
TR1 = 1;
ES = 1;
EA = 1;
}

void main(void){
init();
while(1);
}

void  interr(void) interrupt 4{
if(RI == 1){ //RI 终端接收完全的标志
RI = 0;
if(SBUF == 0X02)//subf串行口数据缓冲寄存器  subf中数据在vb中被定义
led = 1;
if(SBUF == 0X01)
led = 0;
}
}


vb上位机程序编写

vb上位机有一个非常重要的东西



我们可以在单片机的源码中看到 SBUF=0x02 时 led会点亮 SBUF=0

x01时又灭

所以我们在vb程序中要体现这一点

vb程序 基本构造



其实 只需要一个command 就行了 shape 是拿来提醒自己的 

电话机就是上面提到的 控制上位机与单片机之间通信的协议集

在程序运行中不会显示

vb源码

Dim buff(0) As Byte
Private Sub Command1_Click()
If Command1.Caption = "打开灯泡" Then
Shape1.BackColor = RGB(255, 0, 0)//灯泡颜色
Command1.Caption = "关闭灯泡"
buff(0) = &H2
MSComm1.Output = buff
Else
Command1.Caption = "打开灯泡"
Shape1.BackColor = RGB(0, 255, 0)
buff(0) = &H1
MSComm1.Output = buff
End If
End Sub

Private Sub Form_Load()
Shape1.BackColor = RGB(0, 255, 0)
MSComm1.PortOpen = True
End Sub


在上面有个bug

mscomm1.outport 不能在程序调试 所以需要再加点东西

我们加一个comboBox

Dim buff(0) As Byte

Private Sub Command1_Click()
If Command1.Caption = "打开灯泡" Then
MSComm1.CommPort = Combo1.ListIndex + 1 // ListIndex为0是com1
Shape1.BackColor = RGB(255, 0, 0)
Command1.Caption = "关闭灯泡"
buff(0) = &H2
MSComm1.Output = buff
Else
Command1.Caption = "打开灯泡"
Shape1.BackColor = RGB(0, 255, 0)
buff(0) = &H1
MSComm1.Output = buff
End If
End Sub

Private Sub Form_Load()
Shape1.BackColor = RGB(0, 255, 0)
MSComm1.PortOpen = True
Combo1.AddItem "com1"   //在comboBox中加入com选项
Combo1.AddItem "com2"
Combo1.AddItem "com3"
Combo1.AddItem "com4"
Combo1.AddItem "com5"
Combo1.ListIndex = 0
End Sub


至此 vb上位机 控制 单个灯泡开关便完成了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单片机 vb 源码