欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于單片機的溫度測量報警風扇
[打印本頁]
作者:
噗噗噗p
時間:
2019-10-21 23:13
標題:
基于單片機的溫度測量報警風扇
芯片:51單片機
測溫模塊Ds18b26 LCD1602顯示溫度 按鍵設置警戒值
proteus仿真圖:
1571670566.png
(83.77 KB, 下載次數: 47)
下載附件
2019-10-21 23:12 上傳
單片機源程序如下:
#include<reg51.h>
#include"lcd.h"
#include"temp.h"
sbit upSETUP=P1^0;
sbit upSETDOWN=P1^1;
sbit downSETUP=P1^2;
sbit downSETDOWN=P1^3;
sbit beep=P3^2;
sbit moto=P1^4;
uchar CNCHAR[6] = "攝氏度";
uchar up[]="Up";
uchar down[]="Down";
uchar TemputerData[]="TemputerData";
uint upchu[]={2,9};
uint downchu[]={1,7};
uchar datas[] = {0, 0, 0, 0, 0};
void LcdDisplay(int);
void delay(uint i)
{
while(i--);
}
void Delayset(uint c) //誤差 0us
{
uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
void yuxianshi() //顯示字母
{
uchar i,x,z;
LcdWriteCom(0xCF); //寫地址 80表示初始地址
LcdWriteData('C');
LcdWriteCom(0x85);
LcdWriteData('C');
LcdWriteCom(0x8F);
LcdWriteData('C');
LcdWriteCom(0x82);
LcdWriteData(':');
LcdWriteCom(0x8C);
LcdWriteData(':');
LcdWriteCom(0xCC);
LcdWriteData(':');
Delayset(5);
for(i=0;i<2;i++)
{
LcdWriteCom(0x80+i);
LcdWriteData(up[i]);
}
for(x=0;x<4;x++)
{
LcdWriteCom(0x88+x);
LcdWriteData(down[x]);
}
for(z=0;z<12;z++)
{
LcdWriteCom(0xC0+z);
LcdWriteData(TemputerData[z]);
}
}
void setupdown() //設置上下限
{
LcdWriteCom(0x83);
LcdWriteData('0'+upchu[0]);
SBUF = '0'+upchu[0];
while (!TI);
TI = 0;
LcdWriteCom(0x84);
LcdWriteData('0'+upchu[1]);
SBUF = '0'+upchu[1];
while (!TI);
TI = 0;
LcdWriteCom(0x8D);
LcdWriteData('0'+downchu[0]);
SBUF = '0'+downchu[0];
while (!TI);
TI = 0;
LcdWriteCom(0x8E);
LcdWriteData('0'+downchu[1]);
SBUF = '0'+downchu[1];
while (!TI);
TI = 0;
}
void setkey()
{ uchar i;
if(downSETUP==0) // 下限+1
{
Delayset(1);
if(downSETUP==0)
{
if(downchu[1]==9)
{
downchu[0]+=1;
downchu[1]=0;
}
else
{
downchu[1]+=1;
}
}
while((i<50)&&(downSETUP==0)) //檢測按鍵是否松開
{
Delayset(1);
i++;
}
i=0;
}
if(downSETDOWN==1) //下限-1
{ Delayset(5);
if(downSETDOWN==0)
{
if(downchu[1]==0)
{
downchu[0]-=1;
downchu[1]=9;
}
else
{
downchu[1]-=1;
}
}
while((i<50)&&(downSETDOWN==0)) //檢測按鍵是否松開
{
Delayset(1);
i++;
}
i=0;
}
if(upSETUP==0) //上限+1
{
if(upSETUP==0)
{
if(upchu[1]==9)
{
upchu[0]+=1;
upchu[1]=0;
}
else
{
upchu[1]+=1;
}
}
while((i<50)&&(upSETUP==0)) //檢測按鍵是否松開
{
Delayset(1);
i++;
}
i=0;
}
if(upSETDOWN==0) //上限-1
{ if(upSETDOWN==0)
{
if(upchu[1]==0)
{
upchu[0]-=1;
upchu[1]=9;
}
else
{
upchu[1]-=1;
}
}
while((i<50)&&(upSETDOWN==0)) //檢測按鍵是否松開
{
Delayset(1);
i++;
}
i=0;
}
}
void sound()
{
long unsigned int i=10000;
while(i--)
{
beep=~beep;
delay(10);
}
}
void warning() //報警
{
uchar i;
if( ( datas[1]>upchu[0] )||( datas[1]<downchu[0] )||(datas[1]==upchu[0]&&datas[2]>upchu[1]) || (datas[1]==downchu[0]&&datas[2]<downchu[1]) )
{
if(datas[1]!=8||datas[2]!=5)
{
sound();
for(i=0;i<200;i++)
{
moto=1;
delay(5000);
}
moto=0;
}
}
}
/*void motogo()
{
uchar r;
moto=0;
if( ( datas[1]>upchu[0] )||( datas[1]<downchu[0] )||(datas[1]==upchu[0]&&datas[2]>upchu[1]) || (datas[1]==downchu[0]&&datas[2]<downchu[1]))
{
if(datas[1]!=8||datas[2]!=5)
{
for(r=0;r<100;r++)
{
moto=1;
delay(5000);
}
moto=0;
}
}
} */
復制代碼
全部資料51hei下載地址:
基于單片機的溫度測量報警風扇.zip
(128.88 KB, 下載次數: 31)
2019-10-21 23:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1