找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6153|回复: 4
打印 上一主题 下一主题
收起左侧

GY-39温湿度传感器

[复制链接]
跳转到指定楼层
楼主
ID:453596 发表于 2018-12-24 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
温湿度检测
  要求:能够将温度 湿度解析并且显示
   数码管 最高位 显示 C or H  C表示温度 H表示湿度
       后三位显示数据 保留1位小数
   温湿度交替显示 每个显示1s钟
   ex:
    C 09.2 = >当前温度为 9.2摄氏度
    H 52.6 => 当前湿度为 52.6%
  实现同烟雾 只是指令不同
   温湿度采集指令 0xa5 0x82 0x27 发送这三个数据即可
   然后中断接收数据!
   注意:GY-39是循环发送 也就当你接收到数据后需要 将串口中断 关闭
     再去解析 否则一直后中断

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2018-12-24 23:52 | 只看该作者

楼主这本质就是串口通讯+数码管哦,最简单的单片机入门知识
回复

使用道具 举报

板凳
ID:453596 发表于 2018-12-25 12:38 | 只看该作者
devcang 发表于 2018-12-24 23:52
楼主这本质就是串口通讯+数码管哦,最简单的单片机入门知识

温度显示的时候数码管数字显示不对
#include<reg52.h>         
unsigned char recv_flag;
unsigned char send_flag;
unsigned char c;
unsigned char num;
unsigned char  table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char  table2[]={0xc6,0x89};
unsigned char  table3[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
unsigned char  table4[];
unsigned  char buf[15];
void dingshi(void)
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        count++;
        if(count==20)
        {
                count=0;
        }
}
void delay(int n)

{
        int i,j;
        for(i=n;i>0;i--)
        for(j=114;j>0;j--);
}
void uart_init()
{
//        第一步:配置波特率的产生
//                1、定时器T1的工作方式2
                TMOD = 0x20;
//                2、装初值:
                TH1= TL1= 0xFD;//一般使用9600
//                3、启动定时器
                TR1 = 1;
//        第二步:串口工作方式确定
                SM0 = 0;
                SM1 = 1;
                REN = 1;
//或者将以上三句话替换为 SCON = 0x50;
//        第三步:开启总中断
                EA = 1;
//        第四步:开启串口中断
                ES = 1;

}
void send_char(char c)
{
        SBUF = c;
        while(!TI);
        TI = 0;
}
void main()
                {                float w,s;
                        uart_init();


               
                        while(1)
                        {
                                if(recv_flag == 1)
                                {       
                                        recv_flag = 0;
                                        w=(buf[4]<<8)|buf[5];
                                        s=(buf[10]<<8)|buf[11];
                                        ES = 1;
                                }
                       
                                P1=0xf7;
                                P0=table2[0];
                                delay(5);

                                P1 = 0xfb;
                                P0=table1[(int)(w*100/1000)];
                                delay(5);
                                P1 = 0xfd;
                                P0=table3[(int)(w*100/100)%10];
                                delay(5);
                                P1 = 0xfe;
                                P0=table1[(int)(w*100/10)%10];
                                delay(5);

                                dingshi(1)
//                                P1=0xf7;
//                                P0=table2[1];
//                                delay(5);
//                                P1 = 0xfb;
//                                P0=table1[(int)(s*100/1000)];
//                                delay(5);
//                                P1 = 0xfd;
//                                P0=table3[(int)(s*100/100)%10];
//                                delay(5);
//                                P1 = 0xfe;
//                                P0=table1[(int)(s*100/10)%10];
//                                delay(5);
                                }                    
               
                }
               
void UART_ISR(void) interrupt 4 using 2
{

          buf[num++] = SBUF;
          RI = 0;
        if(num == 15)
        {
                recv_flag = 1;
                num = 0;
                ES = 0;
        }                                         

}
回复

使用道具 举报

地板
ID:277876 发表于 2019-7-29 23:20 | 只看该作者
崇拜。好好学习。
回复

使用道具 举报

5#
ID:636676 发表于 2019-11-6 13:45 | 只看该作者
楼主,能否讲一下GY-39的各个引脚的功能?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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