导航:首页 > 编程大全 > 单片机程序数据读取数据库

单片机程序数据读取数据库

发布时间:2022-09-28 09:08:12

⑴ 单片机的数据怎样进入到sql server的数据库

你需要做个个串口通讯,将单片机的数据上载到电脑端,电脑端要写一个上位机。可讲通讯过来的数据存入 sql server的数据库中

单片机端需要写串口程序,PC 端需要些上位机软件 VB可以写用MSComm1 控件
通讯例子如下

Dim i As Integer

Dim a As Integer
Dim t() As Byte

Private Sub Command1_Click()

If Command1.Caption = "打开串口" Then
'Shape1.Visible = True
Shape1.FillColor = &HFF&
Shape1.BackColor = &HFF&
Shape1.BorderColor = &HFF&

Command2.Enabled = True
Command3.Enabled = True
Command1.Caption = "关闭串口"
'MSComm1.CommPort = 1 '设定Com1口
MSComm1.CommPort = Combo1.Text '设定Com1口
If MSComm1.PortOpen = False Then
'MSComm1.Settings = "4800,N,8,1" '4800波特率,无校验,8位数据位,1位停止位
MSComm1.Settings = Combo2.Text & "," & Combo3.Text & "," & Combo4.Text & "," & Combo5.Text '4800波特率,无校验,8位数据位,1位停止位

MSComm1.InputLen = 1 '读取接收缓冲区的所有字符
MSComm1.InputLen = 5
MSComm1.InBufferSize = 5 '设置接收缓冲区为1024字节
MSComm1.OutBufferSize = 5 '设置发送缓冲区为512字节
MSComm1.SThreshold = 0 '不触发发送事件
MSComm1.RThreshold = 1 '每一个字符到接收缓冲区都触发接收事件
MSComm1.PortOpen = True '打开串口
End If
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区
Dim temp() As Byte
Else
'Option2.Value = False
'Option1.Value = False
'Shape1.Visible = False
Shape1.BackColor = &H808080
Shape1.BorderColor = &H808080
Shape1.FillColor = &H808080

Command2.Enabled = False
'Command3.Enabled = False
MSComm1.PortOpen = False
Command1.Caption = "打开串口"

End If

End Sub

Private Sub Command2_Click()
'Command2.Enabled = False
'Option2.Value = False
'Option1.Value = False

'Shape2.Visible = False
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区

't(0) = "255"

' MSComm1.Output = t

MSComm1.Output = Text2.Text
End Sub

Private Sub Command3_Click()
Text1.Text = ""

End Sub

Private Sub Command5_Click() '退出
End
End Sub

Private Sub Command6_Click()
Text2.Text = ""
End Sub

Private Sub Command7_Click()
If Command7.Value Then
'Command7.Visible = False
Command1.Visible = True
Command2.Visible = True
Command3.Visible = True
Command6.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
Label7.Visible = True
Combo1.Visible = True
Combo2.Visible = True
Combo3.Visible = True
Combo4.Visible = True
Combo5.Visible = True

Text1.Visible = True
Text2.Visible = True
Frame1.Visible = True
Frame2.Visible = False
'Command3.Visible = False
'Option1.Value = False
Shape1.Visible = True

Else
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
Label7.Visible = False
Combo1.Visible = False
Combo2.Visible = False
Combo3.Visible = False
Combo4.Visible = False
Combo5.Visible = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = False
Text1.Visible = False
Text2.Visible = False
Frame1.Visible = False
Frame2.Visible = False
End If
End Sub

Private Sub Form_Load()

MSComm1.InBufferCount = 0 '清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
ReDim t(0)
t(0) = "0"
Combo1.AddItem "1"
Combo1.AddItem "2"
Combo1.AddItem "3"
Combo1.AddItem "4"
'Combo1.Text = "1"
Combo2.AddItem "300"
Combo2.AddItem "600"
Combo2.AddItem "1200"
Combo2.AddItem "2400"
Combo2.AddItem "4800"
Combo2.AddItem "9600"
Combo2.AddItem "19200"
Combo3.AddItem "N"
Combo3.AddItem "O"
Combo3.AddItem "E"
Combo4.AddItem "8"
Combo4.AddItem "7"
Combo4.AddItem "6"
Combo5.AddItem "1"
Combo5.AddItem "2"
Combo5.AddItem "3"

End Sub

Private Sub MSComm1_OnComm()
Dim s1 As String
Dim s2 As String
Select Case MSComm1.CommEvent

Case comEventOverrun '数据丢失
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEventRxOver '接收缓冲区溢出
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEventTxFull '发送缓冲区已满
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEvReceive '接收字符数据
Dim Buffer As Variant
MSComm1.InputLen = 1
MSComm1.InputMode = comInputModeBinary '二进制传输
Buffer = MSComm1.Input
'Text1.Text = Buffer(0)
's2 = Buffer(1)

Text1.Text = Text1.Text & (Val(MSComm1.Input)) & " "

Case Else

End Select

End Sub

Private Sub Option1_Click()

End Sub

⑵ 51单片机E2PROM数据读取问题

整体看没啥问题,建议楼主用串口看看,也可以先把num1写入,再接着读出来然后显示看看是不是之前的数据,确保数据被正确写入
楼主要注意数据类型的使用,num1是(uint)而write_byte(uchar data)
要做到数据类型的统一以免出现莫名奇妙的问题

uchar read_byte(uint byte_add)

{
ISP_TRIG=0XB9;
return ISP_DATA;
ISP_CONTR=0;//这句放在这不会被执行的,如果有用要放到return之前
}
没用过单片机的E2PROM(我一直以为误认为单片机的E2PROM是用来下载存程序代码用的-_-!),网络了才知道啊
STC单片机EEPROM读写 http://www.51hei.com/bbs/dpj-32639-1.html
楼主自己对比看看是不是存储操作上有地方不对导致显示不对

⑶ 单片机怎么去读取它内部的数据

单片机有自身的程序,在程序控制下工作,它读取外部的数据或状态(输入),经过内部运算后,再输出到外部去显示或控制电子设备的开关,内部数据你是看不到的。
不知道你读取内部数据干什么用的。
是想得到其程序?程序一般都 是加密的,找专门解密的公司才可以读出,但这是不道德的,也是不合法的

⑷ 如何从单片机寄存器中读取数据,相应的C程序怎么写

51单片机的话,直接写:
a=P1;
b=TH0;
其中a b是你自己定义的变量,P1 TH0就是单片机内的特殊功能寄存器

⑸ 单片机读保护怎么才能读取数据

需要程序调用关闭读保护。
启动读保护后,用户就不能再读写程序了,所以需要程序调用关闭读保护才能读取程序,关闭读保护后,会自动清空flash上的程序。
C语言文件读取的内容,C语言代表文件读取-需要理解的知识点包括:数据流、缓冲区、文件类型、文件存取方式。

⑹ 单片机怎样把采集的数据上传到网站的数据库中

1、直接:单片机配以太网接口,移植个tcp/ip协议站,单片机直接登陆服务器上传数据;

2、间接:单片机通过串口、USB等其他接口把数据传给有以太网的模块或设备(如电脑),在传到服务器。

⑺ 单片机STC12C5A60AD存储读取数据有几种方式

STC12C5A60AD存储读取数据是用EEPROM,这是最好的方式了,在EEPROM中存储的数据是有掉电保护的。除此之外,就没有再好的保存方式了。在内部RAM中是可以保存数据的,但是不能掉电保护。在没有STC单片机时,是用IIC的芯片,如AT24CXX系列芯片,可是IIC芯片的程序太麻烦了,而且在片外储存数据也并不能保证更稳定。

⑻ 单片机接收到的数据如何连接数据库

上位机用或VC编程,先会接收数据,会保存到TXT文本文件中。再学会保存到EXCEL中,就 算成功,EXCEL表格本身就 是数据库的一部分。至于数据库的操作,用高级语言是很简单的,它和单 片机关系不大。我整过VB编程,串口接收,先保存到TXT文本文件中, 再学会保存到EXCEL中,挺简单的,网上搜几次就 成功了。
下面是我的串口接收程序的一部分:
Select Case MSComm1.CommEvent '事件发生
Case 2
inbuff = MSComm1.Input '读入到缓冲区

ll = UBound(inbuff)
Label10.Caption = Label10.Caption + UBound(inbuff) + 1
ReDim indata(1 To (ll + 1))
For ii = 0 To UBound(inbuff)

strHex = strHex & Right("0" & Hex(inbuff(ii)), 2) & " " '如果只有一个字符,则前补0, 如F显示0F,最后补空格方便显示观察如: 00 0F FE
TextReceive = strHex ‘显示到 文本框
Next ii
Open "12.txt" For Append As #1 ‘打开 文本文件
m = (ll + 1) / 2
Print #1, Now; "收到"; m; "个数据"
Close #1
For ii = 1 To Len(strHex) Step 6
indata((ii + 5) / 6) = Val("&H" & Mid(strHex, ii, 2)) * 4 + Val("&H" & Mid(strHex, ii + 3, 2))
Next ii
n1 = Val(Text1.Text) '电源电压
n2 = Val(Text2.Text) '第一路电压衰减倍数
n3 = Val(Text3.Text) '第二路电压衰减倍数
na = n1 * n2 / 1024
nb = n1 * n3 / 1024
X = (ll + 1) / 2 - 1
For ii = 1 To X Step 2 '存入文本中,每行两个数据
V1 = indata(ii) * na
V2 = indata(ii + 1) * nb
V3 = Format(V1, "0.000")
V4 = Format(V2, "0.000")
Open "12.txt" For Append As #1
Print #1, ii & "电压 " & V3 & " v " & (ii + 1) & "电压 " & V4 & " v"
Close #1
Next
'写入EXCEL表格中
Set xlsApp = New Excel.Application
Set xlsBook = xlsApp.Workbooks.Open(App.Path & "\Book3.xls")
Set xlsSheet = xlsBook.Worksheets(1)
range = 2 '第二列为起始列,但每次写入时,range并不一定是2,而是在原有基础上另起1列
'第一列,写入奇数数据
Do Until xlsSheet.Cells(2, range) = ""
range = range + 1
Loop
xlsSheet.Cells(1, range) = Date '第1行
xlsSheet.Cells(2, range) = Time '第2行
xlsSheet.Cells(3, range) = "回路1电压(V)" '第3 行
For ii = 1 To X Step 2 '从第4行开始存数据
V1 = indata(ii) * na
V3 = Format(V1, "0.000")
xlsSheet.Cells((ii + 1) / 2 + 3, range) = V3 '第4行
Next ii
'另起一列,写入偶数数据
Do Until xlsSheet.Cells(2, range) = ""
range = range + 1
Loop

xlsSheet.Cells(2, range) = Time '第2行
xlsSheet.Cells(3, range) = "回路2电压(V)" '第3行
For ii = 2 To X + 1 Step 2 '从第4行开始存数据
V2 = indata(ii) * nb
V4 = Format(V2, "0.000")
xlsSheet.Cells(ii / 2 + 3, range) = V4
Next ii
xlsBook.Save
xlsBook.Application.Quit
strHex = "" '处理完成后清空字符串,等待下一次接收
'TextReceive = ""
End Select

⑼ 51单片机如何读取sql数据库

你需要做个个串口通讯,将单片机的数据上载到电脑端,电脑端要写一个上位机。可讲通讯过来的数据存入 sql server的数据库中

单片机端需要写串口程序,PC 端需要些上位机软件 VB可以写用MSComm1 控件
通讯例子如下

Dim i As Integer

Dim a As Integer
Dim t() As Byte

Private Sub Command1_Click()

If Command1.Caption = "打开串口" Then
'Shape1.Visible = True
Shape1.FillColor = &HFF&
Shape1.BackColor = &HFF&
Shape1.BorderColor = &HFF&

Command2.Enabled = True
Command3.Enabled = True
Command1.Caption = "关闭串口"
'MSComm1.CommPort = 1 '设定Com1口
MSComm1.CommPort = Combo1.Text '设定Com1口
If MSComm1.PortOpen = False Then
'MSComm1.Settings = "4800,N,8,1" '4800波特率,无校验,8位数据位,1位停止位
MSComm1.Settings = Combo2.Text & "," & Combo3.Text & "," & Combo4.Text & "," & Combo5.Text '4800波特率,无校验,8位数据位,1位停止位

MSComm1.InputLen = 1 '读取接收缓冲区的所有字符
MSComm1.InputLen = 5
MSComm1.InBufferSize = 5 '设置接收缓冲区为1024字节
MSComm1.OutBufferSize = 5 '设置发送缓冲区为512字节
MSComm1.SThreshold = 0 '不触发发送事件
MSComm1.RThreshold = 1 '每一个字符到接收缓冲区都触发接收事件
MSComm1.PortOpen = True '打开串口
End If
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区
Dim temp() As Byte
Else
'Option2.Value = False
'Option1.Value = False
'Shape1.Visible = False
Shape1.BackColor = &H808080
Shape1.BorderColor = &H808080
Shape1.FillColor = &H808080

Command2.Enabled = False
'Command3.Enabled = False
MSComm1.PortOpen = False
Command1.Caption = "打开串口"

End If

End Sub

Private Sub Command2_Click()
'Command2.Enabled = False
'Option2.Value = False
'Option1.Value = False

'Shape2.Visible = False
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '清空接收缓冲区

't(0) = "255"

' MSComm1.Output = t

MSComm1.Output = Text2.Text
End Sub

Private Sub Command3_Click()
Text1.Text = ""

End Sub

Private Sub Command5_Click() '退出
End
End Sub

Private Sub Command6_Click()
Text2.Text = ""
End Sub

Private Sub Command7_Click()
If Command7.Value Then
'Command7.Visible = False
Command1.Visible = True
Command2.Visible = True
Command3.Visible = True
Command6.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
Label7.Visible = True
Combo1.Visible = True
Combo2.Visible = True
Combo3.Visible = True
Combo4.Visible = True
Combo5.Visible = True

Text1.Visible = True
Text2.Visible = True
Frame1.Visible = True
Frame2.Visible = False
'Command3.Visible = False
'Option1.Value = False
Shape1.Visible = True

Else
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
Label7.Visible = False
Combo1.Visible = False
Combo2.Visible = False
Combo3.Visible = False
Combo4.Visible = False
Combo5.Visible = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = False
Text1.Visible = False
Text2.Visible = False
Frame1.Visible = False
Frame2.Visible = False
End If
End Sub

Private Sub Form_Load()

MSComm1.InBufferCount = 0 '清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
ReDim t(0)
t(0) = "0"
Combo1.AddItem "1"
Combo1.AddItem "2"
Combo1.AddItem "3"
Combo1.AddItem "4"
'Combo1.Text = "1"
Combo2.AddItem "300"
Combo2.AddItem "600"
Combo2.AddItem "1200"
Combo2.AddItem "2400"
Combo2.AddItem "4800"
Combo2.AddItem "9600"
Combo2.AddItem "19200"
Combo3.AddItem "N"
Combo3.AddItem "O"
Combo3.AddItem "E"
Combo4.AddItem "8"
Combo4.AddItem "7"
Combo4.AddItem "6"
Combo5.AddItem "1"
Combo5.AddItem "2"
Combo5.AddItem "3"

End Sub

Private Sub MSComm1_OnComm()
Dim s1 As String
Dim s2 As String
Select Case MSComm1.CommEvent

Case comEventOverrun '数据丢失
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEventRxOver '接收缓冲区溢出
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEventTxFull '发送缓冲区已满
Text_SEND.Text = "" '清空发送缓冲区
Text_RECV.Text = "" '清空接收缓冲区
Text_SEND.SetFocus
Exit Sub
Case comEvReceive '接收字符数据
Dim Buffer As Variant
MSComm1.InputLen = 1
MSComm1.InputMode = comInputModeBinary '二进制传输
Buffer = MSComm1.Input
'Text1.Text = Buffer(0)
's2 = Buffer(1)

Text1.Text = Text1.Text & (Val(MSComm1.Input)) & " "

Case Else

End Select

End Sub

Private Sub Option1_Click()

End Sub

⑽ 单片机通过串口助手读来的码怎么传到MYSQL数据库中求大神!

基本的数据库的操作。
你可以参考如下方式一步步来:
1、先参考mysql的编程的基本例子,按照最简单的方式实现固定数据(比如说字符串“12345678”),进行基本的插入、删除、查询等操作。当然这个前提是首先建立一个数据库。
2、第一步成功实现后,将你原来的模拟数据,替换成真实的数据,重新完成第一步的操作。
3、编写一个从PC端获取RFID数据的接口,真正实现数据的对接。

个人给你的建议:
1、不要求捷径,这样即使你能很快完成任务,但是也会没有什么收获。
2、数据库的操作不难,尤其是PC端的数据库,网上有大量的资源。
3、通过这个项目的锻炼,你不仅问题会解决,你以后分析问题、解决问题和搜索资料的能力都会大大提高。

阅读全文

与单片机程序数据读取数据库相关的资料

热点内容
如饥似渴电影完整手机观看 浏览:171
母乳汁理沦片 浏览:796
烧烤聚会2电影中文字 浏览:185
谁有手机小电影网址 浏览:514
在线高清影视网站入口 浏览:332
日本电影女明星和女助理戴面具的 浏览:614
泰国船长罪孽在线sb影视 浏览:416
影视解析网站 浏览:750
余男《狂怒之拳》 浏览:372
韩国爱情电影中文版推荐 浏览:327
尺度大的欧美同性恋电影 浏览:751
童鞋真好妖精世界 浏览:990
秀秀鬼电影 浏览:238
台湾同人电影有哪些 浏览:780
有多条线路可以投屏的影视网站 浏览:58
关于狮子的电影 浏览:167
罗莎卡拉乔洛最后一战 浏览:81
比爱奇艺更新快的网站 浏览:405
大尺度微电影《证明你存在的价值 浏览:118
你们镇上有电影院吗用英语怎么说 浏览:405

友情链接