基于51单片机的温湿度与时钟显示器
while(DHT_DATA==0&&m<200)m++; delay_30us(); if(DHT_DATA)
temp|=mask; temp&=(~mask); else
while(DHT_DATA==1&&n<200)n++;
}
*(dat+y)=temp; temp=0;
}
for(x=0;x<4;x++) sum+=*(dat+x); if((sum&=0xff)==*(dat+4)) return 1; else
return 0;
}
5. 建立主函数main.c文件 #include
9
基于51单片机的温湿度与时钟显示器
uchar code table3[]=\
uchar code table_1[]=%uchar code table_2[]=%uchar DHT[5]; uchar tmp,i,j,k;
uchar count,shi,fen,miao,month,day,week,year; uchar K1num,K2num,K3num; bit flag_1s=1;
void Delay10ms(unsigned int x); void Keyscan(); void Keyscan2();
void Wtimer(uchar ad,uchar dat);
void main() { LcdInit(); BG = 1; beep;
TMOD = 0X01;
TH0 = (65536 - 50000)/256; /*11.0592MHz 46080*/ TL0 = (65536 - 50000)%6; EA = 1; ET0 = 1; TR0 = 1;
LcdWriteCom(0X86); for (j = 0;j < 10;j++) { }
LcdWriteCom(0Xc6); for (j = 0;j < 10;j++) { } while(1)
10
LcdWriteData(table_1[j]);
LcdWriteData(table_2[j]);
基于51单片机的温湿度与时钟显示器
{ } }
void Delay10ms(unsigned int x) { }
void Timer0() interrupt 1 {
11
Keyscan(); Keyscan2(); if(flag_1s) { }
flag_1s=0; DHT_Start();
tmp=DHT_ByteRead(&DHT); //****************** LcdWriteCom(0x80); for(i=0;i<2;i++) LcdWriteData(table0[i]); LcdWriteData(DHT[0]/10+'0'); LcdWriteData(DHT[0]+'0'); LcdWriteData(table2[0]); //******************
LcdWriteCom(0xC0); for(i=0;i<2;i++) LcdWriteData(table1[i]); LcdWriteData(DHT[2]/10+'0'); LcdWriteData(DHT[2]+'0'); LcdWriteData(table3[0]); //LcdWriteCom(0x07); //ò??á
unsigned int t; while(x--)
for(t=0;t<114;t++);
基于51单片机的温湿度与时钟显示器
unsigned char t;
TH0=(65536 - 50000)/256; /*11.0592MHz*/ TL0=(65536 - 50000)%6; t++; if(t@==0) { } count++; if (20 == count) {
count = 0; miao++; if (60 == miao) {
miao = 0; fen++;
if (60 == fen) {
fen = 0; shi++; if (24 == shi) {
{
{
12
flag_1s=1;
shi = 0; day++; week++; if(week>7)
week=1; if (31 == day)
day = 1; month++;
if (12 == month)
month = 1;
相关推荐: