亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4967|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

求大神指點兩單片機串口傳輸數(shù)據(jù)的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:801010 發(fā)表于 2020-7-10 15:59 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
100黑幣
要做一個數(shù)據(jù)采集傳輸系統(tǒng),采集以做出,不知道怎樣實現(xiàn)串口通信。下面是找的相似的程序,不知怎么改

#include<reg51.h>
unsigned char code Tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}
void Send(unsigned char dat)
{
SUBF=dat;
while(TI==0);
TI=0;
}
void dely(void)
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++)
;
}
void main{void}
{
unsigned char i;
TMOD=0x20;
SCON=0x40;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TR1=1;
while(1)
{
for=(i=0;i<8;i++)
{
Send(Tab[ i]);
dely();
}
}
}

最佳答案

查看完整內(nèi)容

// 1.不要 Tab[] // 2 while(1) 改成: while(溫度讀好) { //清溫度讀好標志; P23 = 1; //置485發(fā)送模式 Send(溫度低字節(jié)); dely(); Send(溫度高字節(jié)); } // 接收那邊 U3P20 = 0 ; 置485發(fā)送模式 // 串口接收數(shù)據(jù),2個字節(jié),判斷一下高低字節(jié)。送顯示。 // 這個只是簡單的通訊測試。實際應(yīng)用是要有通訊協(xié)議的,一般RS485用Modebus通訊協(xié)議。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:767423 發(fā)表于 2020-7-10 15:59 | 只看該作者
// 1.不要 Tab[]
// 2 while(1) 改成:
while(溫度讀好)
{
    //清溫度讀好標志;
    P23 = 1; //置485發(fā)送模式
    Send(溫度低字節(jié));
    dely();
    Send(溫度高字節(jié));
}
// 接收那邊 U3P20 = 0 ; 置485發(fā)送模式
// 串口接收數(shù)據(jù),2個字節(jié),判斷一下高低字節(jié)。送顯示。
// 這個只是簡單的通訊測試。實際應(yīng)用是要有通訊協(xié)議的,一般RS485用Modebus通訊協(xié)議。
回復(fù)

使用道具 舉報

板凳
ID:332444 發(fā)表于 2020-7-10 16:25 | 只看該作者
這是發(fā)送程序,接收的?
回復(fù)

使用道具 舉報

地板
ID:767423 發(fā)表于 2020-7-10 17:30 | 只看該作者
如果數(shù)據(jù)比較多,可以保留Tab[],數(shù)據(jù)放Tab[]里面
while(溫度讀好)
{
    //清溫度讀好標志;
    for=(i=0;i<個數(shù);i++)
   {
      Send(Tab[i]); // 你的文件少了 [i]
     dely();
   }
}
回復(fù)

使用道具 舉報

5#
ID:197385 發(fā)表于 2020-7-10 17:53 | 只看該作者
void Send(unsigned char dat) { SUBF=dat; while(TI==0); TI=0; }
回復(fù)

使用道具 舉報

6#
ID:197385 發(fā)表于 2020-7-10 17:57 | 只看該作者
如果不想保存在單片機內(nèi)部的話可以直接將得到的數(shù)據(jù)直接通過串口發(fā)出去
void Send(unsigned char 采集到的數(shù)據(jù))
{
SUBF=采集到的數(shù)據(jù);
while(TI==0);
TI=0;
}
將send函數(shù)放到你程序中的while(1)函數(shù)中不斷輪詢,串口初始化就不用再說了,在程序初始化時加上
回復(fù)

使用道具 舉報

7#
ID:801010 發(fā)表于 2020-7-10 17:57 | 只看該作者
hsl32 發(fā)表于 2020-7-10 17:21
// 1.不要 Tab[]
// 2 while(1) 改成:
while(溫度讀好)

溫度讀好用代碼怎么表示呀,還有溫度低字節(jié),高字節(jié),清溫度讀好標志,
回復(fù)

使用道具 舉報

8#
ID:332444 發(fā)表于 2020-7-11 07:58 | 只看該作者
2個蛋騙雞加載同一個程序,本程序甲乙蛋騙雞互發(fā)數(shù)字在數(shù)碼管中顯示。



回復(fù)

使用道具 舉報

9#
ID:767423 發(fā)表于 2020-7-11 08:14 | 只看該作者
ll66m 發(fā)表于 2020-7-10 17:57
溫度讀好用代碼怎么表示呀,還有溫度低字節(jié),高字節(jié),清溫度讀好標志,

你不是讀了溫度,在LCD1液晶上顯示了嘛,把這個溫度發(fā)出去就好了。MAX6675讀出來的溫度是12位的,一般占用2個字節(jié),而串口一次只能發(fā)送一個字節(jié),所以要發(fā)兩次。先發(fā)高還是低字節(jié)自己定義。串口不是一直發(fā)數(shù)據(jù),而是讀出MAX6675的溫度一次,就發(fā)一次數(shù)據(jù),我要一個讀好標志是因為讀溫度和串口發(fā)送是獨立分開的,所以要一個標志告訴串口發(fā)送程序可以發(fā)送了(標志要清除,不然會一直發(fā)不停)。如果讀溫度和串口發(fā)送合在一起就不用標志了,也就是讀溫度程序和串口發(fā)送都放在while()里面(還有LCD顯示),讀溫度然后接著串口發(fā)送,一直循環(huán)。
回復(fù)

使用道具 舉報

10#
ID:801010 發(fā)表于 2020-7-11 10:29 | 只看該作者
hsl32 發(fā)表于 2020-7-11 08:14
你不是讀了溫度,在LCD1液晶上顯示了嘛,把這個溫度發(fā)出去就好了。MAX6675讀出來的溫度是12位的,一般占 ...

好的,我試試
回復(fù)

使用道具 舉報

11#
ID:801010 發(fā)表于 2020-7-11 11:16 | 只看該作者
hsl32 發(fā)表于 2020-7-11 08:14
你不是讀了溫度,在LCD1液晶上顯示了嘛,把這個溫度發(fā)出去就好了。MAX6675讀出來的溫度是12位的,一般占 ...

怎樣把我測得的十二位數(shù)據(jù)放在Tab里啊
回復(fù)

使用道具 舉報

12#
ID:801010 發(fā)表于 2020-7-11 12:02 | 只看該作者
ll66m 發(fā)表于 2020-7-11 11:16
怎樣把我測得的十二位數(shù)據(jù)放在Tab里啊

會放了。
回復(fù)

使用道具 舉報

13#
ID:767423 發(fā)表于 2020-7-11 12:36 | 只看該作者

如果只有這12位可以不用Tab,直接發(fā)兩個字節(jié)就好了。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表