喜欢单片夹的伙伴一定会想自己开发上位机,这期就详细介绍,效果如下。作用是点击上位机按钮,控制下位机的一个【灯】开与关 这个软件是用VS2015开发的 第一步 选择【文件】添加【项目】 第二步 选择c#窗口 第三步 第四步 添加按钮控件,在TEXT属性更改按钮名字 第五步 添加串口控件,【COM1是默认串口端口】,需要根据你的单片机端口号而相应更改 第六 步 双击按钮控件,会出现代码区 第七步 写入如图的代码,就可以 第十步 更改一下图标字体属性 工作原理如下 根据发送一个字节,跟下位机代码做比较,如果下位机有发送的字节,就执行,如图发送的是0x01 现在是上位机的代码 private void button1_Click(object sender, EventArgs e) { byte[] buffer = new byte[1];//实例化 buffer[0] = 0x01;//发送的数据 try { serialPort1.Open();//打开串口 serialPort1.Write(buffer,0,1);//发送数据 serialPort1.Close();//关闭串口 } catch { if (serialPort1.IsOpen)//判断串口是否正确 serialPort1.Close();//不正确就关闭串口 MessageBox.Show('端口打开错误', '错误'); } } } } 下位机源代码,下载到单片机 #include<reg51.h> #define uint unsigned int #define uchar unsigned char uchar i ; sbit K=P1^3; void DELAY _MS (unsigned int a) { unsigned int i ; while (a--!=0) { for (i=0; i<600; i++); } void dd( ) { TMOD=0X20; SCON=0X50; TH1=0XFD; TL1=0XFD; TR1=1; ES=1; } void main (void) { DELAY_MS(1000); dd( ); while ( 1 ) { while ( ! RI ); RI=0; i=SBUF; switch( i ) { case 0x01: K=~K; break ; default: break; } } } 代码注意英文大小写 |
|