资源简介
远程仓库湿度监测系统设计-Proteus仿真与C语言源码,经过测试,完全能够正常实现

代码片段和文件信息
//****************************************************
//SHT11温度+湿度传感器,测量结果用LCD1602显示
//操作的关键部分是1.对照SHT11的时序图操作
// 2.数值的转换
// 3.对SHT11的误差进行线性补偿
//****************************************************
#include
#include
#include
sbit SCK=P2^4;
sbit DATA=P2^5;
sbit LCD_RS=P2^0;
sbit LCD_EN=P2^2;
unsigned char RH_HRH_L; //接收的湿度的高位数据和低位数据
unsigned int ij;
unsigned char dispbuf[4];
void delay(unsigned int z)
{
unsigned int xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_GETRH(unsigned char GETRH)
{
LCD_RS=0;
P0=GETRH;
delay(1);
LCD_EN=1;
delay(1);
LCD_EN=0;
}
void write_DATA(unsigned char *date)
{
unsigned char n;
for(n=0;n<0x40;n++)
{
if(date[n]==‘*‘)break; //检测,如果字符输入“*“就终止
LCD_RS=1;
P0=date[n];
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
}
void init()
{
LCD_EN=0;
write_GETRH(0x38);
write_GETRH(0x0c);
write_GETRH(0x06);
write_GETRH(0x01);
}
//在SCK上发送n个脉冲信号
void nSCKPulse(unsigned int n)
{
for(i=n;i>0;i--)
{
SCK=0;
SCK=1;
}
}
//启动SHT11
void STARTSHT11()
{
SCK=1;
DATA=0;
SCK=0;
SCK=1;
DATA=1;
SCK=0;
}
//获得湿度数据
void GETRH(unsigned char GETRH) //测量湿度
{
unsigned char bei=0x80;
DATA=1;
SCK=0; //下面可以开始
for(i=8;i>0;i--)
{
if(GETRH&bei)
{
DATA=1;
SCK=1;
SCK=0;
}
else
{
DATA=0;
SCK=1;
SCK=0;
}
bei=bei/2;
}
}
//对SHT11进行读操作
void READSHT11()
{
unsigned char temp;
RH_H=0;
RH_L=0;
for(i=0;i<4;i++) //4个脉冲没数据
{
SCK=1;
SCK=0;
}
for(i=4;i>0;i--) //接收RH高4位数据
{
SCK=1;
temp=0x01;
if(DATA==1)
{
temp=(temp<<(i-1)); //右移动
RH_H=RH_H+temp;
}
SCK=0;
}
DATA=0; //拉低
SCK=1;
SCK=0;
DATA=1; //释放
for(i=8;i>0;i--) //接收RH低4位数据
{
SCK=1;
temp=0x01;
if(DATA==1)
{
temp=(temp<<(i-1)); //右移动
RH_L=RH_L+temp;
}
SCK=0;
}
P1=RH_H;
P3=RH_L;
DATA=0; //拉低
SCK=1;
SCK=0;
DATA=1; //释放(不做CRC校验,就此结束)
}
//阶乘函数
long FACTORIAL(int n)
{
long nn=1;
for(;n>0;n--)
{
nn=10*nn;
}
return(nn);
}
//SHT11的补偿算法
void COMPENSATIONSHT()
{
unsigned long ii;
char m;
ii=((((RH_H*256+RH_L)-221)*318878)/100000);
if(ii>5000)
{
ii=ii+((10000-ii)*620/5000);
}
else
{
ii=ii+ii*620/5000;
}
// printf(“%f\n“ii);
for(m=4;m>=0;m--)
{
if(m==1)
{
write_DATA(“.*“);
}
LCD_RS=1;
P0=(int)(ii/FACTORIAL(m))+0x30;
if(m==4&P0==0x30)
{
P0=0x20;
}
if(m==4&P0==0x31)
{
write_DATA(“100.00*“);
break;
}
if(m==3&P0==0x30)
{
P0=0x20;
}
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
ii=ii-((int)(ii/FACTORIAL(m)))*FACTORIAL(m);
}
write_DATA(“%*“);
}
void InitUart(void)
{
SCON = 0x50; //工作方式1
TMOD = 0x21;
PCON = 0x00;
TH1 = 0xfd; //使用T1作为波特率发生器
TL1 = 0xfd;
TI = 1;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-28 19:51 远程仓库湿度监测系统\
文件 91511 2012-04-06 09:32 远程仓库湿度监测系统\Last Loaded 仓库监控系统.DBK
文件 8687 2012-04-06 16:35 远程仓库湿度监测系统\MCU.LST
文件 13843 2012-04-06 16:35 远程仓库湿度监测系统\MCU.OBJ
文件 3793 2012-04-06 09:30 远程仓库湿度监测系统\MCU.c
文件 4070 2012-01-21 16:09 远程仓库湿度监测系统\SHT11的应用实例.hex
文件 6376 2005-03-22 15:22 远程仓库湿度监测系统\STARTUP.A51
文件 14048 2012-04-06 16:35 远程仓库湿度监测系统\STARTUP.LST
文件 749 2012-04-06 16:35 远程仓库湿度监测系统\STARTUP.OBJ
文件 12669 2012-04-06 16:35 远程仓库湿度监测系统\仓库监控系统
文件 91511 2012-04-06 18:43 远程仓库湿度监测系统\仓库监控系统.DSN
文件 17312 2012-04-06 16:35 远程仓库湿度监测系统\仓库监控系统.M51
文件 1025 2012-04-06 16:35 远程仓库湿度监测系统\仓库监控系统.Opt
文件 821 2012-04-06 18:43 远程仓库湿度监测系统\仓库监控系统.PWI
文件 2151 2012-04-05 15:05 远程仓库湿度监测系统\仓库监控系统.Uv2
文件 4265 2012-04-06 16:35 远程仓库湿度监测系统\仓库监控系统.hex
文件 63 2012-04-06 16:35 远程仓库湿度监测系统\仓库监控系统.lnp
文件 416 2012-04-06 16:35 远程仓库湿度监测系统\仓库监控系统.plg
文件 1025 2012-04-06 09:32 远程仓库湿度监测系统\仓库监控系统_Opt.Bak
文件 0 2012-04-05 11:28 远程仓库湿度监测系统\仓库监控系统_Uv2.Bak
文件 813 2012-02-07 16:08 远程仓库湿度监测系统\和PC机串行通信应用实例.hex
相关资源
- 电子时钟 有C语言程序,PROTEUS仿真图
- 计算机远程唤醒和关机
- 手机远程格力空调控制系统
- Proteus 8.6仿真STM32F103C6
- stm32 +w5500 裸机 远程升级 自动dns pi
- Proteus仿真:动态数码管
- Proteus仿真:基于定时器的可调时钟
- Proteus仿真:DS1302(时钟or日历).rar
- Proteus仿真:LCD液晶屏显示.rar
- Proteus仿真:LED流水+定时器.rar
- Proteus仿真:PID算法输出.rar
- VProtect+注册机.rar
- VC远程控制代码集合
- 单片机C语言与PROTUES仿真技能实训
- 饭客论坛Gh0st3.6金牌版本
- C语言实现51单片机和ADC0809芯片的AD模
- 基于单片机控制的LED点阵屏 含设计报
- C# 版VNC、远程连接
- 楼宇对讲系统proteus仿真+源代码
- mjpeg-streamer远程监控软件
- 基于MFC实现的远程视频监控系统源代
- Dark 4.5完美免杀远控-来自国外的远程
- 基于proteus和51单片机的数字电子时钟
- 《单片机C语言程序设计实训100例——
- 电子线路设计CAD实验报告(proteus)
- 《大棚温湿度自动控制系统》 包括
- 单片机C语言程序设计实训100例--基于
- 用C++实现远程控制
- 51单片机简易信号发生器设计proteus仿
- 单片机的C语言程序设计与应用——基
评论
共有 条评论