找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7151|回复: 8
收起左侧

我想通过51串口通信 将 温湿度的数值返回到电脑上 应该怎样写程序 急急急

[复制链接]
ID:169261 发表于 2017-4-11 14:51 | 显示全部楼层 |阅读模式
我想通过51串口通信  将  温湿度的数值返回到电脑上       应该怎样写程序   急急急

回复

使用道具 举报

ID:151348 发表于 2017-4-11 15:36 | 显示全部楼层
串口通信的程序你有吧,电脑端用串口调试助手就行了

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:148552 发表于 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;  //清正在发送标志
}
}

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-4-11 18:17 | 显示全部楼层
这个程序适合你用51单片机驱动DHT21通过串口发送温湿度数据:http://www.51hei.com/bbs/dpj-20083-1.html
回复

使用道具 举报

ID:188586 发表于 2017-4-11 19:24 | 显示全部楼层
百度搜吧,类似的有很多
回复

使用道具 举报

ID:169261 发表于 2017-4-11 20:54 | 显示全部楼层
admin 发表于 2017-4-11 18:17
这个程序适合你用51单片机驱动DHT21通过串口发送温湿度数据:http://www.51hei.com/bbs/dpj-20083-1.html

这个返回 也是乱码啊
回复

使用道具 举报

ID:169261 发表于 2017-4-11 20:54 | 显示全部楼层
admin 发表于 2017-4-11 18:17
这个程序适合你用51单片机驱动DHT21通过串口发送温湿度数据:http://www.51hei.com/bbs/dpj-20083-1.html

这个返回 也是乱码啊        
回复

使用道具 举报

ID:169261 发表于 2017-4-11 20:55 | 显示全部楼层
姚永辉0 发表于 2017-4-11 19:24
百度搜吧,类似的有很多

百度不到啊     求解    是不是因为 温湿度是个定值啊
回复

使用道具 举报

ID:187614 发表于 2017-4-12 07:30 | 显示全部楼层
串行通信程序到处可以参考,最重要的是与计算机的接口转换,用RS232或RS485。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表