標(biāo)題:
51單片機(jī)寫(xiě)的恒溫箱程序 可控硅0,1控制燈泡亮滅
[打印本頁(yè)]
作者:
王大鵬
時(shí)間:
2019-3-24 11:51
標(biāo)題:
51單片機(jī)寫(xiě)的恒溫箱程序 可控硅0,1控制燈泡亮滅
具有按鍵設(shè)置,聲光報(bào)警,顯示,自動(dòng)調(diào)節(jié)等功能
使用DS18B20測(cè)試箱內(nèi)溫度,可控硅0,1控制燈泡亮滅,由此控制溫度,具有LCD1602顯示,按鍵設(shè)置上下限,聲光報(bào)警功能。
單片機(jī)源程序如下:
#include <reg52.h>
#include "temp.h"
#include "lcd.h"
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^1;//+
sbit key2=P3^0;//-
sbit silicon=P2^1; //可控硅
sbit BZ=P1^5; //蜂鳴器
sbit LED=P2^0; //led標(biāo)志位
uint temp,temps=26;//溫度緩存變量,設(shè)定溫度變量
void delay(uint us)//延時(shí)函數(shù)
{
for(;us>0;us--);
}
void keyson() //按鍵掃描程序
{
if(!key1&&temps<60)
{
delay(30);
temps++;
while(!key1);
}
if(!key2&&temps>0)
{
delay(30);
temps--;
while(!key2);
}
}
void display() //lcd1602顯示界面
{
LcdWriteCom(0x85);//當(dāng)前溫度
LcdWriteData('C');
LcdWriteData(':');
LcdWriteData(temp/10+0x30);
LcdWriteData(temp%10+0x30);
LcdWriteData(0xdf);
LcdWriteData('C');
LcdWriteCom(0x80+0x45);//設(shè)置溫度
LcdWriteData('S');
LcdWriteData(':');
LcdWriteData(temps/10+0x30);
LcdWriteData(temps%10+0x30);
LcdWriteData(0xdf);
LcdWriteData('C');
}
void beep()
{
uchar k,g;
for (k=0;k<80;k++)
{
BZ=~BZ;
for(g=0;g<200;g++);
}
}
void main()
{
uint i,j,flag=1,flag1;//標(biāo)志位
LcdInit(); //lcd1602初始化
for(i=0;i<60;i++)
temp=(float)Ds18b20ReadTemp()*0.0625;
while(1)
{
temp=(float)Ds18b20ReadTemp()*0.0625;
display(); //lcd1602顯示界面
keyson(); //按鍵掃描程序
if(temp<temps)
{
silicon=0; //低于設(shè)定溫度,可控硅打開(kāi)
LED=0;
flag=1;
}
if(temp>=temps)
{
silicon=1;
if(flag==1)flag1=1,flag=0;
}
if(flag1==1) //高于設(shè)定溫度,可控硅關(guān)閉,聲光報(bào)警
{
LED=0;
// BZ=0;
// delay(40);
// BZ=1;
beep();
delay(1);
j++;
if(j>35)flag1=0,j=0;
}
else LED=1,BZ=1;
}
}
復(fù)制代碼
Keil代碼下載:
恒溫箱-.zip
(55.74 KB, 下載次數(shù): 93)
2019-3-24 11:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
lljj555
時(shí)間:
2020-6-11 10:30
優(yōu)秀,不錯(cuò)
作者:
wdi
時(shí)間:
2022-2-1 09:28
謝謝分享 正需要謝謝樓主��!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1