標(biāo)題: 我想通過51串口通信 將 溫濕度的數(shù)值返回到電腦上 應(yīng)該怎樣寫程序 急急急 [打印本頁]

作者: a1159900630    時(shí)間: 2017-4-11 14:51
標(biāo)題: 我想通過51串口通信 將 溫濕度的數(shù)值返回到電腦上 應(yīng)該怎樣寫程序 急急急
我想通過51串口通信  將  溫濕度的數(shù)值返回到電腦上       應(yīng)該怎樣寫程序   急急急


作者: imxuheng    時(shí)間: 2017-4-11 15:36
串口通信的程序你有吧,電腦端用串口調(diào)試助手就行了
作者: 你像風(fēng)兒來了    時(shí)間: 2017-4-11 17:51
/*********************************************************************************                                                                                           
*  往串口發(fā)送一字節(jié)數(shù)據(jù)(可通過串口助手出來,
                  串口助手波特率選為9600)。
                  超級終端設(shè)置好后,每按下一次S4鍵,松開后均會(huì)在超級終端
                  上顯示一個(gè)字母"a"。   
                  入口參數(shù):d: 要發(fā)送的字節(jié)數(shù)據(jù)。 接受的時(shí)候請選擇文本模式
*  說明:免費(fèi)開源,不提供源代碼分析.
**********************************************************************************/

#include <reg52.h>
#define jingzhen     11059200UL                         /*使用22.1184M晶體*/         //
#define botelv   9600UL                     /*波特率定義為9600*/
unsigned char zifu='a';                        //待顯示字符。
volatile unsigned char sending;
sbit S4=P3^2;

void delay(unsigned char i)
{
        unsigned char j,k;
        for(j=i;j>0;j--)
                for(k=90;k>0;k--);
}
void init(void)                                //串口初始化
{
EA=0; //暫時(shí)關(guān)閉中斷
TMOD&=0x0F;  //定時(shí)器1模式控制在高4位
TMOD|=0x20;    //定時(shí)器1工作在模式2,自動(dòng)重裝模式
SCON=0x50;     //串口工作在模式1
TH1=256-jingzhen/(botelv*12*16);  //計(jì)算定時(shí)器重裝值
TL1=256-jingzhen/(botelv*12*16);
PCON|=0x80;    //串口波特率加倍
ES=1;         //串行中斷允許
TR1=1;        //啟動(dòng)定時(shí)器1
REN=1;        //允許接收
EA=1;         //允許中斷
}

void send(unsigned char d)                  //發(fā)送一個(gè)字節(jié)的數(shù)據(jù),形參d即為待發(fā)送數(shù)據(jù)。
{

SBUF=d; //將數(shù)據(jù)寫入到串口緩沖
sending=1;         //設(shè)置發(fā)送標(biāo)志
while(sending); //等待發(fā)送完畢
}

void main()
{
        init();
        while(1)
        {
                if(S4==0)
                {
                        delay(20);
                        if(!S4)
                        {
                                while(!S4);                  
                                send(zifu);
                        }
                }
        }
}

void uart(void) interrupt 4                 //串口發(fā)送中斷
{
if(RI)    //收到數(shù)據(jù)
{
  RI=0;   //清中斷請求
}
else      //發(fā)送完一字節(jié)數(shù)據(jù)
{
  TI=0;
  sending=0;  //清正在發(fā)送標(biāo)志
}
}
作者: admin    時(shí)間: 2017-4-11 18:17
這個(gè)程序適合你用51單片機(jī)驅(qū)動(dòng)DHT21通過串口發(fā)送溫濕度數(shù)據(jù):http://www.torrancerestoration.com/bbs/dpj-20083-1.html
作者: 姚永輝0    時(shí)間: 2017-4-11 19:24
百度搜吧,類似的有很多
作者: a1159900630    時(shí)間: 2017-4-11 20:54
admin 發(fā)表于 2017-4-11 18:17
這個(gè)程序適合你用51單片機(jī)驅(qū)動(dòng)DHT21通過串口發(fā)送溫濕度數(shù)據(jù):http://www.torrancerestoration.com/bbs/dpj-20083-1.html

這個(gè)返回 也是亂碼啊
作者: a1159900630    時(shí)間: 2017-4-11 20:54
admin 發(fā)表于 2017-4-11 18:17
這個(gè)程序適合你用51單片機(jī)驅(qū)動(dòng)DHT21通過串口發(fā)送溫濕度數(shù)據(jù):http://www.torrancerestoration.com/bbs/dpj-20083-1.html

這個(gè)返回 也是亂碼啊        
作者: a1159900630    時(shí)間: 2017-4-11 20:55
姚永輝0 發(fā)表于 2017-4-11 19:24
百度搜吧,類似的有很多

百度不到啊     求解    是不是因?yàn)?溫濕度是個(gè)定值啊
作者: 51Lovers    時(shí)間: 2017-4-12 07:30
串行通信程序到處可以參考,最重要的是與計(jì)算機(jī)的接口轉(zhuǎn)換,用RS232或RS485。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1