51单片机和arduino接收到的数据如何通过上位机软件连接数据库

查看: 273|回复: 2
如何用51单片机实现串口通信并上传电脑上位机显示超声波数据
如何用51单片机实现串口通信,并上传电脑的上位机软件实现超声波传感器的数据显示
(888.86 KB, 下载次数: 3)
20:58 上传
我最近在做的时候,也遇到了这个问题,头疼,求解答,也算是帮你顶一下吧
你好!上位机软件要求采用什么语言开发呢?可以加我QQ
Powered by单片机接收到的数据如何通过上位机软件连接数据库?
我的图书馆
单片机接收到的数据如何通过上位机软件连接数据库?
之前回答过一个类似问题,就是单片机如何跟电脑通信,有线的方式包括UART,usb,网线,无线的方式包括蓝牙和WIFI。这个问题主要是给出上位机软件处理的方案。我之前做过这类的东西,把自己的经验跟大家分享一下吧。上位机软件上位机软件一般要求有较好的人机交互界面,通常使用VB,VC和C#来编写,现在比较流行的开发工具是QT,除了可视化的操作界面,还要有数据通信、处理及保存能力。数据通信可以通过调用现成的组件或动态链接库实现。对于数据量较少的软件,我们可以直接保存成本地数据文件,但是当保存的数据量较大,而且有查询等需求时,就要用到数据库了。数据库常用的数据库有SQLServer,Oracle,MySQL等等,也有轻型数据库例如Access,sqlite,mongodb等,可以根据项目的具体需求来选择。上位机软件中,可以通过sql语句来对数据库进行各种操作,比如查询,添加,删除,建表等等,非常的方便。每种开发工具中都有数据库的相关接口和数据结构,我们只要按照格式对数据进行解析就可以了。希望我的分享对大家有所帮助,欢迎大家多评论,多交流!
喜欢该文的人也喜欢编写上位机软件,通过上位机将要显示的数据的发送给单片机系统显示_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
编写上位机软件,通过上位机将要显示的数据的发送给单片机系统显示
&&通过串口将VB与单片机联系起来,进行简单的数据的发送与显示。首先,焊接好电路板,用中断编好C程序,再用STC-ISP将C程序下载到单片机上;其次,用串口调试软件检验单片机是否能够正常的发送和显示数据;再者,调试好后用VB编写发送程序;完成这三步后,可以用VB的exe文件发送字符,然后该字符在1602液晶上显示。
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢>> VB编写的上位机程序,接收来自单片机传来的参数
VB编写的上位机程序,接收来自单片机传来的参数
所属分类:
下载地址:
VB上位机程序.rar文件大小:24.14 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
PC端接收来自单片机的数据,并在PC端实时显示温度,湿度,二氧化碳,光强等参数。还可将数据实时存放在excel中。代码有详细注解。
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
Form1.frm20.94 kB09-03-14 21:12
okay.exe44.00 kB09-03-14 15:21
okay1.exe44.00 kB09-03-14 15:37
工程1.vbp883.00 B09-03-14 21:27
工程1.vbw50.00 B26-04-14 20:03
&3&0.00 B09-03-14 21:27
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
嗯,很完整! 还是有一部分不能够理解,但是大意能动
评价成功,多谢!
下载VB上位机程序.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:339.213ms - init:0.1;find:0.7;t:0.5;tags:10.2;related:131.3;comment:33.2; 5.8
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧下位机单片机c语言发送数据到串口,上位机pc机java语言获取端口数据
Windows7 64b,jdk64b,myeclipse8.5,rxtx开发包,STC,keil,格西烽火,51单片机,rs232USB转串口线。
下位机c代码
#include &reg51.h&
#include &string.h&
#define INBUF_LEN 7
//数据长度
unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3,count=0;
read_flag=0;
unsigned char com[]="hellon";
void init_serialcomm(void)
TMOD=0x20;//设置定时器1为模式2TH1=0//装初值设定波特率TL1=0TR1=1;//启动定时器SM0=0;//串口通信模式设置SM1=1;
void delay_1s()
for(i=0;i&45000;i++)
void delay_1us()
for(i=0;i&45;i++)
//向串口发送一个字符
void send_char_com(char ch)
while(TI==0);
delay_1us();
//向串口发送一个字符串,strlen为该字符串长度
void send_string_com(char *str,int strlen)
send_char_com(*(str + k));
} while(k & strlen);
//串口接收中断函数
void serial () interrupt 4 using 3
unsigned char ch1;
inbuf1[count++]=ch1;
if(count==INBUF_LEN)
read_flag=1;
//如果串口接收的数据达到INBUF_LEN个,且校验没错,count=0;
//就置位取数标志
init_serialcomm();
//初始化串口
delay_1s();send_string_com("10.7",4);return 1;
上位机java代码
import gnu.io.CommP
import gnu.io.CommPortI
import gnu.io.SerialP
import java.io.FileD
import java.io.IOE
import java.io.InputS
import java.io.OutputS
import java.sql.*;
public class TwoWaySerialComm
public TwoWaySerialComm()
void connect ( String portName ) throws Exception
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if ( portIdentifier.isCurrentlyOwned() )
System.out.println("Error: Port is currently in use");
CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);
if ( commPort instanceof SerialPort )
SerialPort serialPort = (SerialPort) commP
serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
System.out.println("Error: Only serial ports are handled by this example.");
public static class SerialReader implements Runnable
public SerialReader ( InputStream in )
public void run ()
byte[] buffer = new byte[1024];
int len = -1;
String com_get="";
DBInsert DI=new DBInsert();
while ( ( len = this.in.read(buffer)) & -1 )
//延时10秒
try {Thread.sleep(10000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}//com_get保存串口数据com_get=new String(buffer,0,2);
System.out.print(com_get);
catch ( IOException e )
e.printStackTrace();
public static class SerialWriter implements Runnable
public SerialWriter ( OutputStream out )
this.out =
public void run ()
int c = 0;
while ( ( c = System.in.read()) & -1 )
this.out.write(c);
catch ( IOException e )
e.printStackTrace();
public static void main ( String[] args )
(new TwoWaySerialComm()).connect("COM3");
catch ( Exception e )
// TODO Auto-generated catch block
e.printStackTrace();
可能出现的问题
获取到的是乱码
可能是没打开单片机的开关按钮
提示open方法错误
可能是没关闭格西烽火或者myeclipse,两者不能同时打开。
提示找不到串口
检查下你的STC和代码,看是否端口正确。
没有更多推荐了,

我要回帖

更多关于 51单片机和arduino 的文章

 

随机推荐