大一第一个项目,51初尝试
#include "reg52.h" //´ËÎļþÖж¨ÒåÁ˵¥Æ¬»úµÄһЩÌØÊ⹦ÄܼĴæÆ÷
#include "lcd.h"
#include "temp.h"
#include "DHT11.h"
typedef unsigned int u16; //¶ÔÊý¾ÝÀàÐͽøÐÐÉùÃ÷¶¨Òå
typedef unsigned char u8;
sbit set=P2^3; //ģʽ
sbit plus=P2^2; //¼Ó
sbit minus=P2^1; //¼õ
sbit search=P2^0; //²éѯ
sbit beep=P1^0; //·äÃùÆ÷
sbit H=P1^1;
sbit D=P1^2;
char tem;
char hum;
u16 mode;
char temph=30;
char templ=10;
char humih=80;
char humil=20;
void temperature(int temp) //´¦ÀíζÈÊý¾Ý
{ float tp;
if(temp< 0)
{
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
temp=-temp;
}
else
{
tp=temp;
temp=tp*0.0625*100+0.5;
}
tem=temp/100;
}
void datapros1(int temp)
{
float tp;
LcdShowStr(0,0," Temp ");
if(temp< 0) //µ±Î¶ÈֵΪ¸ºÊ
{
LcdWriteData('-');
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
else
{
LcdWriteData('+');
tp=temp;
temp=tp*0.0625*100+0.5;
}
tem=temp;
LcdWriteData(temp / 10000+'0');
LcdWriteData(temp % 10000 / 1000+'0');
LcdWriteData(temp % 1000 / 100+'0');
LcdWriteData('.');
LcdWriteData(temp % 100 / 10+'0');
LcdWriteData(temp % 10+'0');
LcdWriteData(0XDF);
LcdWriteData('C');
LcdWriteData(' ');
}
void num(u8 num)
{
u8 n;
n=num;
LcdWriteData(n/10+'0');
LcdWriteData(n%10+'0');
}
void datapros2(u8 humi)
{
LcdShowStr(0,1," Humi ");
num(humi);
LcdWriteData(' ');
LcdWriteData('%');
LcdWriteData(' ');
LcdWriteData(' ');
LcdWriteData(' ');
LcdWriteData(' ');
LcdWriteData(' '