找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机+DHT11在LCD12864上的显示不稳定的问题

[复制链接]
跳转到指定楼层
楼主
10黑币
有没有大神可以帮忙看看呀?

问题一:温湿度显示不稳定(有事可以显示,有时会出现乱码),倘若把DHT11的显示代码放While(1)里面,那么当进行按键中断时,DHT11测试到的依然在屏幕二进行显示,如下图所示
问题二:当按了一次设置键时就直接可以对温度上限进行加或减操作。(理想的效果应该是:当按键中断的问题,当按第一次设置键时,LCD12864进行屏幕转换,当再按一次设设置键时设置最高温度,当按第三下设置键时,设置最低温度,以此类推,当设置键的按键次数大于5次时返回屏幕一。)

单片机源程序如下:
#include<reg52.h>
//#include<motor.h>
#include<DHT.h>
//#include<DHT.h>

#define uchar unsigned char
#define uint unsigned int
#define u8 unsigned char
#define u16 unsigned int

sbit RS = P1^0;    //12864的RS控制端,硬件接到P1.0,在此一定要写P1.0
sbit RW = P1^1;    //12864的RW控制端,硬件接到P1.1,在此一定要写P1.1
sbit E  = P1^2;    //12864的使能控制端,硬件接到P1.2,在此一定要写P1.2
sbit PSB = P1^3;//并串口选择信号
sbit RST = P1^4;//复位信号
sbit beep = P3^3;
sbit LED = P1^4;
sbit Kset = P3^2; //日期时间设置按钮,硬件接到P3.2
sbit Kadd = P1^5; //"加1"键,硬件接到P1.6
sbit Ksub = P1^6; //"减1"键,硬件接到P1.7
u8 ;Turn=0,WH=65,WL=12,SH=75,SL=21;//安全温湿度范围设置的变量
uchar j;

u8 table0[]="温度湿度控制系统";
u8 table1[]="湿度为:       %  ";
u8 table2[]="温度为:      ℃  ";
//u8 table3[]= "℃";
u8 table4[]="开发者:大白菜  ";
u8 table5[]="最高温:     ℃      ";
u8 table6[]="最低温:     ℃      ";
u8 table7[]="最高湿:      %    ";
u8 table8[]="最低湿:      %     ";
u8 table9[]="0123456789";

void delay_ms(uint z)
{
   uint i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}

  /**********************************************************************
函数名称:

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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