标题: 我想通过51串口通信 将 温湿度的数值返回到电脑上 应该怎样写程序 急急急 [打印本页]

作者: a1159900630    时间: 2017-4-11 14:51
标题: 我想通过51串口通信 将 温湿度的数值返回到电脑上 应该怎样写程序 急急急
我想通过51串口通信  将  温湿度的数值返回到电脑上       应该怎样写程序   急急急


作者: imxuheng    时间: 2017-4-11 15:36
串口通信的程序你有吧,电脑端用串口调试助手就行了
作者: 你像风儿来了    时间: 2017-4-11 17:51
/*********************************************************************************                                                                                           
*  往串口发送一字节数据(可通过串口助手出来,
                  串口助手波特率选为9600)。
                  超级终端设置好后,每按下一次S4键,松开后均会在超级终端
                  上显示一个字母"a"。   
                  入口参数:d: 要发送的字节数据。 接受的时候请选择文本模式
*  说明:免费开源,不提供源代码分析.
**********************************************************************************/

#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; //暂时关闭中断
TMOD&=0x0F;  //定时器1模式控制在高4位
TMOD|=0x20;    //定时器1工作在模式2,自动重装模式
SCON=0x50;     //串口工作在模式1
TH1=256-jingzhen/(botelv*12*16);  //计算定时器重装值
TL1=256-jingzhen/(botelv*12*16);
PCON|=0x80;    //串口波特率加倍
ES=1;         //串行中断允许
TR1=1;        //启动定时器1
REN=1;        //允许接收
EA=1;         //允许中断
}

void send(unsigned char d)                  //发送一个字节的数据,形参d即为待发送数据。
{

SBUF=d; //将数据写入到串口缓冲
sending=1;         //设置发送标志
while(sending); //等待发送完毕
}

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

void uart(void) interrupt 4                 //串口发送中断
{
if(RI)    //收到数据
{
  RI=0;   //清中断请求
}
else      //发送完一字节数据
{
  TI=0;
  sending=0;  //清正在发送标志
}
}
作者: admin    时间: 2017-4-11 18:17
这个程序适合你用51单片机驱动DHT21通过串口发送温湿度数据:http://www.51hei.com/bbs/dpj-20083-1.html
作者: 姚永辉0    时间: 2017-4-11 19:24
百度搜吧,类似的有很多
作者: a1159900630    时间: 2017-4-11 20:54
admin 发表于 2017-4-11 18:17
这个程序适合你用51单片机驱动DHT21通过串口发送温湿度数据:http://www.51hei.com/bbs/dpj-20083-1.html

这个返回 也是乱码啊
作者: a1159900630    时间: 2017-4-11 20:54
admin 发表于 2017-4-11 18:17
这个程序适合你用51单片机驱动DHT21通过串口发送温湿度数据:http://www.51hei.com/bbs/dpj-20083-1.html

这个返回 也是乱码啊        
作者: a1159900630    时间: 2017-4-11 20:55
姚永辉0 发表于 2017-4-11 19:24
百度搜吧,类似的有很多

百度不到啊     求解    是不是因为 温湿度是个定值啊
作者: 51Lovers    时间: 2017-4-12 07:30
串行通信程序到处可以参考,最重要的是与计算机的接口转换,用RS232或RS485。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1