當前位置:首頁 » 操作系統 » 單片機資料庫

單片機資料庫

發布時間: 2022-05-09 16:09:11

A. 單片機與資料庫通信

既然是資料庫,數據肯定比較多,應該藉助上位機的海量存儲能力和強大運算能力及豐富的軟體,最簡單的方法就是將單片機採集到的數據經過串口傳到上位機,由上位機保存到EXCEl表格中,EXCEL表格就是資料庫的一部分

B. 單片機怎樣把採集的數據上傳到網站的資料庫中

1、直接:單片機配乙太網介面,移植個tcp/ip協議站,單片機直接登陸伺服器上傳數據;

2、間接:單片機通過串口、USB等其他介面把數據傳給有乙太網的模塊或設備(如電腦),在傳到伺服器。

C. 單片機的數據怎樣進入到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

D. 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

E. 單片機與資料庫能進行數據查詢嗎

其實你說的那應該叫專家系統,而不是資料庫。資料庫是有特定格式的, 必須使用特殊的驅動才能訪問,而windows操作系統一般會內置這些驅動程序,但是你的單片機里又沒有,自己編太麻煩。
至於專家系統,其實和資料庫差不多的意思,只是需要存儲到單片機內部或者外擴的存儲器里,這樣存儲格式和查詢函數,自己定義自己編就可以了。
樓主做ECU啊,我以前也做ECU,是控制汽油發動機的。

F. 單片機的資料庫(database)有什麼用

這是常見的嵌入的晶元,裡面有一些編譯的參數等的

如果沒有,可以添加,但自己添加有些費勁,一般是官網提供好

G. 單片機課程設計需要運用到資料庫知識嗎

一般情況下,單片機課程設計與資料庫沒有任何關系的
除非你用單片機設計一個類似電表抄表設備,這個需要後台統計的,這個就要用資料庫了
但這個應該超出課設的范圍了,可以作為畢業設計了(若你就是學習單片機相關專業的)

H. 單片機接收到的數據如何連接資料庫

上位機用VB或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

I. atmega16單片機能添加資料庫嗎

不可能,單片機資源有限,還得裝一個嵌入式系統。我猜你想用單片機訪問數資料庫的內容。想做到這一步我知道的就是單片機做下位機,電腦做上位機,通過串口通信。這樣,資料庫在電腦里操作,把想要的數據通過上位機利用串口發送給單片機。

另外一種就是,你把寫好的數據做成一個表,把表寫到EEPROM中,可以實現實時讀寫,就是存儲嘛。

J. 怎樣在單片機內部建立資料庫

這不是資料庫好不好,這叫表。
你可以通過線性插值的方式解決。
double powV[Level];
double powPercent[Level];

通過電壓去百分百:
double getPercent(double vol)
{
for(int i=0;i<Level;i++)
if( vol <powV[i]){
...........
}
}

熱點內容
csgo和永劫無間哪個配置要求高 發布:2024-10-08 18:20:47 瀏覽:48
43資料庫 發布:2024-10-08 18:19:20 瀏覽:816
svn伺服器不能訪問 發布:2024-10-08 18:18:36 瀏覽:984
壓縮面膜多少錢 發布:2024-10-08 18:18:01 瀏覽:539
徐州少兒編程培訓機構 發布:2024-10-08 17:52:29 瀏覽:389
c語言常用函數大全 發布:2024-10-08 17:46:33 瀏覽:410
win10怎麼取消啟動密碼 發布:2024-10-08 17:29:22 瀏覽:211
c圖像演算法 發布:2024-10-08 17:02:13 瀏覽:238
android上傳圖片php 發布:2024-10-08 16:48:44 瀏覽:996
陽湖醫院的wifi密碼是多少 發布:2024-10-08 16:43:31 瀏覽:763