• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 求助大神,用LCD1602显示AD0804采集的湿度传感器的数据,显示的数据发生跳变

求助大神,用LCD1602显示AD0804采集的湿度传感器的数据,显示的数据发生跳变

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了求助大神,用LCD1602显示AD0804采集的湿度传感器的数据,显示的数据发生跳变等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 求助大神,用LCD1602显示AD0804采集的湿度传感器的数据,显示的数据发生跳变
描述:

传感器LCD1602AD0804

我的这个程序是用LCD1602显示AD0804采集的湿度传感器的数据,但是在液晶屏上数据发现跳变,复位时才显示当前湿度,但随后还是会跳变,从最高240可以跳变到最低0,跳变的间隔有时是8,16,之类的,求大神给予解答。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wr=P3^2;
sbit rd=P3^1;
sbit cs=P3^0;
sbit lcrw=P2^6;
sbit lcden=P2^7;
sbit lcdrs=P2^5;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{   lcrw=0; 
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{   lcrw=0;
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
}
  void AD_init() 
{      
cs=1; 
 wr=1; 
 rd=1;   
}   
 void AD_start() 
{
 
P1=0xff;     
cs=0; 
 wr=0; 
 wr=1;  
cs=1; 
} 
  
uchar AD_read()
 {
 uchar temp;      
 cs=0;  
 rd=0;  
 delay(1); 
 temp=P1; 
 rd=1; 
 cs=1;
  return(temp); 
}
void display(uchar bai,uchar shi,uchar ge)
{
write_com(0x80);
write_data(0x30+bai);
write_data(0x30+shi);
write_data(0x30+ge);
}
show(uchar DATA)      //显示
{
uchar a1,a2,a3,b1,b2,b3,i;/*定义变量*/
 //读取P1口之前先给其写全1
 //选通ADCS*/  
 //使AD读输入点使能
i=DATA;  //把AD数据读取的数据赋给P1口
a1 = i%16 ;  //分出数据的高位和低位转换成是进制
a2 = i/16*16 ;
a3 = a2+a3;  //得到十进制的数据
b1=a3/100;  //分出百,十,个位
b2=a3%100/10;
b3=a3%10;
display(b1,b2,b3);
}
//接着进入主函数:
main()
{
 uchar ADC0804_data;
 init();                                           
 while(1)
  {
  AD_init();
  AD_start();
  ADC0804_data=AD_read(); 
  show(ADC0804_data);
  delay(1000);  
  }                          
}


解决方案1:

你先确保你的延时时间比较长,比如200ms以上,从程序上看,延时还是比较短的.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 求助大神,用LCD1602显示AD0804采集的湿度传感器的数据,显示的数据发生跳变
  • 新手求助:怎么判断A/D转换的模拟输入量?
  • 求助,对我的工作单片机开发的前途很迷茫,望大神指点
  • 菜鸟求助I2C,V4L2,找不到设备

相关文章

  • 2017-06-05 大神help,串口通信在笔记本上一直没有问题,台式机就是不对
  • 2017-06-05 求助关于虚拟磁盘驱动的问题
  • 2017-06-05 at91sam9263linux的文件系统出了问题,貌似跟nandflash有关,不知道从哪下手,希望各位有经验的给提供帮助,谢谢。
  • 2017-06-05 如何声明或是确定代码是在非分面内存中?
  • 2017-06-05 非root用户修改给自己用的DNS
  • 2017-06-05 [STM32L0]STM32LO5读保护设置出错
  • 2017-06-05 嵌入式软件开发大讨论:另外,一般的开发人员的工资能否达到6K以上?干嵌入式能干到几岁?
  • 2017-06-17ARM体系结构的存储器格式
  • 2017-06-05 win2000ddK写的MODEM安装程序如何在XP中用
  • 2017-06-05 哪位能提供Windows2000下对IO和MEMORY的读写的代码?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 调光灯控制电路问题
    • 请问v24和rs232兼容吗?高手请教!
    • 求vxWorks部分源码
    • verilog如何用一个时钟的上升沿去启动一个计时器
    • 看来只有这里的人可以回答我的问题了,请大家帮忙2
    • 为什么一安装此inf文件不是说找不到文件就黑屏???请指点,急求!!
    • wince平台如何绘制圆弧
    • lua.dlllua新手入门问题?
    • ucguiListview控件显示问题
    • 无网状态手动添加Windows系统符号表

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有