第一范文网 - 专业文章范例文档资料分享平台

基于51单片机的温湿度与时钟显示器本科论文

来源:用户分享 时间:2025/7/27 3:26:17 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

基于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 #include\#include\#define uchar unsigned char #define uint unsigned int sbit beep=P1^0;// sbit BG=P2^4;// sbit K1=P1^1;// sbit K2=P1^2;// sbit K3=P1^3;// sbit K4=P1^4;// sbit K5=P1^5;// //sbit beep=P2^0; uchar code table0[]=%uchar code table1[]=%uchar code table2[]=\

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;

基于51单片机的温湿度与时钟显示器本科论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4k8om4yuoj5136q5t3t485bn78arf200ckl_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top