欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4644|回復: 12
打印 上一主題 下一主題
收起左側

求大神指點兩單片機串口傳輸數據的程序

[復制鏈接]
跳轉到指定樓層
樓主
100黑幣
要做一個數據采集傳輸系統,采集以做出,不知道怎樣實現串口通信。下面是找的相似的程序,不知怎么改

#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();
}
}
}

最佳答案

查看完整內容

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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



回復

使用道具 舉報

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

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

使用道具 舉報

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

好的,我試試
回復

使用道具 舉報

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

怎樣把我測得的十二位數據放在Tab里啊
回復

使用道具 舉報

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

會放了。
回復

使用道具 舉報

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

如果只有這12位可以不用Tab,直接發兩個字節就好了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表