久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6463|回復: 4
收起左側

怎樣用一個SBUF傳輸兩個數據到上位機,比如一個實時溫度,一個是設定溫度值

[復制鏈接]
ID:187588 發表于 2017-4-14 14:47 | 顯示全部樓層 |閱讀模式
實時溫度傳到上位機要實現曲線表示   設定溫度就是一根直線
回復

使用道具 舉報

ID:123289 發表于 2017-4-15 01:25 | 顯示全部樓層
本帖最后由 yzwzfyz 于 2017-4-15 22:26 編輯

對于SBUF來說它只是收或發一個字節的數字:0-255,你寫入一個它就發一個,管你是不是溫度,它全然不介意,都認為是一個0-255之間的數據。
所以你需給這此數據作出規定,比如:以AAH,65H開頭,以后是兩個字節表示溫度,再以后是……,最后以26H作為結束。這就叫協議!
你需要制定一個協議,規則一切由你所需要表達的數據形式及含意而定。收、發端都按照此協議編碼、解碼,就可以了。
當若干個溫度值,發生時間,設定值,被收存之后,就可以畫出曲線了。如EXCEL一樣作出曲線。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:159015 發表于 2017-4-15 10:14 | 顯示全部樓層
如上樓所述,首先自己制定一個協議,分別代表實時溫度和設定溫度,實時溫度與設定溫度可以交替發送注意延時,上位機進行接收判斷
回復

使用道具 舉報

ID:47286 發表于 2017-4-15 10:44 | 顯示全部樓層
定義變量時定義一個數組

uchar data[2]={0}; //定義數組 位數2 第一位放實時溫度 第二位放設定溫度

程序中在采集后分別把兩個值賦值給數組

data[0]=GetADC(實時溫度);  //把AD采集的實時溫度賦值給數組data位0
data[1]=設定值;                  //把設定溫度賦值給數組data位1

發送函數里 順序發出去

Send1Byte(data[0]); //發送 實時溫度
Send1Byte(data[1]); //發送 設定溫度

上位機的緩沖區收到2位 就解釋第1位 給實時溫度位置顯示 第2位給設定溫度顯示 然后清除緩沖區 準備下次接收

當然 有樓上說的協議會更好
回復

使用道具 舉報

ID:151348 發表于 2017-4-15 11:01 | 顯示全部樓層
舉個例子,定義一個數組dat[8],前4個元素分別儲存實時溫度的百位、十位、個位、小數位,后4個元素分別儲存設定溫度的百位、十位、個位、小數位,
unsigned char code digit[ ]={"0123456789"}; //定義字符數組顯示數字
void Send()
{
for(i=0;i<8;i++)
SBUF = diget[dat[i]];
while(!TI);
      TI = 0;
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区影院 | 免费亚洲网站 | 黄色日本片 | 欧美成人精品在线 | 草久免费视频 | 本道综合精品 | 亚洲三区在线观看 | 日韩精品一区二区久久 | 亚洲欧美日韩一区 | 国产精品福利在线观看 | 成人国产精品免费观看视频 | 欧美一级免费 | 国产精品一区二区三区四区五区 | 中文字幕视频在线 | 亚洲天天干| 91高清免费 | 婷婷五月色综合 | 日韩欧美国产一区二区三区 | 久久午夜视频 | 日韩欧美一区二区三区在线播放 | 九九九视频在线 | 一区二区三区欧美大片 | 日韩精品一区二区三区在线播放 | 欧美综合在线视频 | 久久精品国产一区二区电影 | 亚洲成人精品一区 | 中文字幕在线国产 | 免费一区二区三区在线视频 | 在线观看国产视频 | 一区二区三区国产精品 | 国产精品a久久久久 | 超碰操| 野狼在线社区2017入口 | 亚洲精品在线免费看 | 亚洲欧美日本在线 | 欧美aⅴ| 亚洲一区自拍 | 久久精品国产久精国产 | 国产精品视频一区二区三区 | 日韩欧美国产一区二区 | 日韩欧美国产不卡 |