導航:首頁 > 編程大全 > 單片機程序數據讀取資料庫

單片機程序數據讀取資料庫

發布時間: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、通過這個項目的鍛煉,你不僅問題會解決,你以後分析問題、解決問題和搜索資料的能力都會大大提高。

閱讀全文

與單片機程序數據讀取資料庫相關的資料

熱點內容
javaapi文檔工具 瀏覽:296
系統修復部分文件 瀏覽:653
電腦上文件格式怎麼改pdf 瀏覽:923
如何在伺服器上共享文件夾 瀏覽:960
有什麼好看的漫畫網站 瀏覽:507
斗羅單女主是寧榮榮 瀏覽:736
帶著現代武器打鬼子小說 瀏覽:566
大尺度男同裸露電影 瀏覽:513
雙女主同性戀電影泰劇 瀏覽:594
影院後排選不了 瀏覽:428
鳳梨蘋果筆游戲 瀏覽:826
下載一部電影大概多少GB 瀏覽:714
看yellow有哪些網址 瀏覽:523
李采潭和池恩瑞演的電影 瀏覽:900
php企業網站 瀏覽:429
360不是原版文件 瀏覽:527
舊版安卓酷狗音樂下載 瀏覽:391
數控用g75下料怎麼編程 瀏覽:948
張雪峰客串電影完整版 瀏覽:439

友情鏈接