① 感測器採集的數據怎麼樣傳給單片機單片機
很簡單,將感測器和單片機共地,之後將感測器的信號埠接到單片機的IO口上,在程序上進行定時採集,但是信號線要接上啦電阻,因為你的輸出3v 不穩定。
② 單片機如何接收並使用電腦發送來的數據
你可以在你的電腦和單品機通信的時候,自己定義一個通信協議——也就是定義一種通信格式:以什麼字元作為一個數據包的開始如(0x66 0xab)代表數據幀的開頭,之後的一個自己單表數據幀的總長度(如果所有的數據包是定長的可以不需要該欄位),之後一個自己定義為命令的類型(如:0x01 表示電動機的轉動方向;0x02 代表轉動圈數等),之後跟上實際要發送給單品機的數據,如正傳還是反轉,轉動的圈數是多少等。如果不放心你可以在最後加上數據幀的校驗和,用來保證數據再傳輸過程中沒有出錯。
③ 單片機如何接收超聲波感測器的信號
單片機和超聲換能器之間,應該是有發射電路和小信號放大電路。單片機控制發射電路發射,小信號放大電路接收到超聲換能器的信號,進行放大後接入單片機。至於要怎麼採集,採集的時間,要看你具體要實現的功能。
④ 上位機數據採集系統接受單片機發過來的數據
下位機只有一個嗎,那你直接可以發送了,
Private Sub MSComm1_OnComm()
Dim temp As String
If MSComm1.CommEvent = comEvReceive Then
temp = Asc(MSComm1.Input)
//自定義
End If
MSComm1.InBufferCount = 0
End Sub
注意你自定義的協議問題和進制的問題即可
⑤ 如何讓單片機把實時採集到的數據傳送給上位機
串口發送,如果是8位二進制數據,一次即可發送,用串口調試助手即可接收顯示,如果數據比較大,可以用16位數據分2次發送,或化成十進制以ASCI碼發出,為了便於觀察和處理,要自編編上位機處理程序,用VB比較簡單,網上有很多介紹"VB串口通信"
⑥ 單片機如何進行數據採集
對於液壓設備中的8個待測參數選用相應的感測器來來檢測,試驗時選取應變式感測器作為測試現場的工具。這些選用的檢測元件輸出都是標準的4-20mA微弱的電流信號,電流信號又經過由LM324組成的放大轉換電路轉換成0-5V的電壓信號輸入到C8051F020的模擬輸入端,如圖2所示,經內部集成的A/D轉換器轉換成相應的數字量。C8051F020將8路采樣值作為液壓設備現場的狀況存入相應的內存單元。
3.2 LCD顯示
為了使數據採集系統小巧美觀,同時又獲得較高的性價比,選用德彼克公司生產的DMF-50174藍屏液晶顯示器,該顯示器是320×240點陣式液晶,圖形和文本都可以顯示。顯示驅動控制晶元採用EPSON 公司的一種高性能LCD 控制器SED1335。硬體電路採用間接接法,如圖3所示。用單片機的P5.0~P5.7口作為SED1335的DB0~DB7數據匯流排的輸入通道。P4.5作為SED1335的片選信號, 配合地址信號A0實現SED1335 通過數據匯流排接收來自單片機的指令和數據。當A 0= 0, P4.6(WR)=0,P4.7(RD)= 1時, 實現指令的寫入和從SED1335 中讀取數據。當A 0= 1, P4.6(WR)= 0, P4.7(RD)=1時, 則是顯示數據的寫入,該功能通過軟體實現。
3.3 數據通訊
單片機C8051F020的TX0、RX0及P0.2通過MAX485與上位機相連,進行串列通信,如圖3所示。P0.2控制MAX485的狀態或發送,用軟體控制。RX0為單片機的串列輸入端,接收上位機通過MAX485向單片機發送的數據。TX0為單片機的串列輸出端,通過MAX485發送給上位機。
4 系統軟體設計
4.1 軟體設計總體上由兩部分組成:一部分為單片機C8051F020
主程序設計,一部分為LCD液晶顯示程序設計。由於用C語言編程可以降低程序的復雜度,提高程序的可讀性和可修改性,所以本軟體採用C51進行編程,keil μVision2編譯器進行編譯。
⑦ 如何從單片機的一個引腳接收串列數據
這個簡單的很,你不用現成的TXD口,你模擬一個不就完了嗎?模擬一個串列口其實只要一個小函數就OK,幫你寫寫也成。
我只寫發送的,收你自己寫。
假設你用P0^0口做發送
void series(uchar byte)
{
uchar j=8;
do
{
byte= (byte<<1);
P0^0=CY;
}while(--j);
}
你要求BAUD率的話,就看你晶振了,自己算下需要多少延時,加進去就行。
這個挺簡單的。你要幾個位元組就往裡填好了,模塊化程序是你該學的,否則以後怎麼能寫出好程序呢。
⑧ 單片機接收數據
你的每次多一個是如何獲取的,這個每一次是什麼意思,是每一次單片機復位後,還是每一次單片機上電後,還是每一次電腦發送的一串數據?
如果是前兩個原因,那有可能是由於單片機復位後各個寄存器數據不穩造成的,特別是單片機上電,很可能造成第一個接收或發送一個232無效數據。