使用51微控制器與PC進行串列埠通訊時,怎麼將溫度值(帶兩位小數)傳送到VB編寫的上位機介面上顯示

時間 2021-06-25 02:56:42

1樓:匿名使用者

可以啊,你自己定個協議,然後pc解包就可以了,打個比方說

你發aa 00 xx,aa表示幀頭,00表示溫度高位,xx寫溫度高位數值

aa 01 yy,aa表示幀頭,01表示溫度低位,yy寫溫度低位數值當然這只是比較簡單的說法,還有字長啊,檢驗啊等等問題需要考慮

2樓:匿名使用者

使用51微控制器與pc進行串列埠通訊時,需將一個溫度值(帶兩位小數)按通訊協議規範組成的資料幀傳送到pc機,vb則按通訊協議規範組成的資料幀編寫的上位機程式,接收和處理資料幀,並顯示於執行程式介面或控制元件上。

資料幀組成:分幀長、幀首、資料和幀尾等。

資料:帶兩位小數的溫度值傳送需要制定好合適的資料約定,假釋溫度值是在1000攝氏度以內。

可以使將實際溫度值乘100倍取整,以兩位元組的整形變數傳送。

也可以使將實際溫度值乘100倍取整,以5個ascii字元直接傳送。

51微控制器按上述方案取一組成資料幀傳送給上位機串列埠。

vb編寫的上位機串列埠接收程式的資料接收處理**,按下位機採取的資料約定和資料幀格式接收和處理資料,取出資料除以100,獲得所需的帶兩位小數在程式介面顯示。

需要注意的是整形變數方式接收需要按二進位制模式接收,字串方式接收以文字模式接收。

3樓:匿名使用者

不需要分2次傳送,把小數點忽略,一般微控制器裡是二進位制數,你就全部作為一個整數傳送,上位機接收到後再分解加入小數點。你也可以微控制器裡轉化為ascii,就可以有小數點,再傳送。但很麻煩的,不如pc機接收到再處理。

4樓:匿名使用者

你可以移位,轉換成整數

然後再發。

5樓:匿名使用者

你問度本身開始就是數字量,為什麼你要先轉換成小數再發呢?還有,帶兩位小數,你可以先擴大100倍再發啊,位數不夠肯定得分兩次發了,辦法有很多,挑最簡便易行的就好了,只要得到正確結果就ok

51微控制器與vb通過串列埠通訊,微控制器為什麼只能傳送0至255的數?然後怎麼解決(發大於255的數)???

6樓:匿名使用者

傳送大數,你只能多次傳送,一次只能傳送一幀,而串列埠傳送的一幀可能是7、8、9位,由你設定而定。

7樓:

51微控制器是8位的,一次只能處理8位資料,也就是一個位元組,一個位元組只能表示0-255的大小的資料。

8樓:匿名使用者

一個位元組確實只能是0-255,但你可以連續發兩個位元組然後在vb裡面組成一個大於255的數。

比如發257就是0x01,0x01

9樓:匿名使用者

資料型別是char型只能是0-255

發int就會大了

串列埠最大一個資料是8位的,可以用多個位元組表示一個資料啊

10樓:匿名使用者

可以傳送多次,分別發這個數的個十百千萬位。然後用程式組合

微控制器與PC怎麼通訊,微控制器與PC用串列埠通訊需要什麼條件?

微控制器與pc通訊通常用於工業控制領域。工控指的是工業自動化控制,主要利用電子電氣 機械 軟體組合實現。即是工業控制 factory control 或者是工廠自動化控制 factory automation control 主要是指使用計算機技術,微電子技術,電氣手段,使工廠的生產和製造過程更加自...

51微控制器控制的小車如何與PC進行無線通訊

東吳小肥羊 可以用nrf24l01做通訊用,zgbe也可以。不過 距離遠了,可能會延遲。速度快了,微控制器會丟失資料。建議用arm。arm處理器是acorn計算機 面向低預算市場設計的第一款risc微處理器。更早稱作acorn risc machine。arm處理器本身是32位設計,但也配備16位指...

串列埠與微控制器通訊時好時壞,微控制器模擬串列埠通訊有什麼利弊??

首先試試串列埠好使不。拿pc機開啟個串列埠除錯軟體,將rxd與txd拿個導線短接一下。之後用軟體傳送隨便一些資料,由於txd與rxd是短接的,那麼軟體接收到的資料應該是和發射資料一致,如果不一致,線壞了,如果徹底就收不到,線懷了,多試幾次,時好時壞,線接觸不良。如果一切正常,那麼就得看微控制器的串列...