久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機智能熱得快仿真設計 含源碼
[打印本頁]
作者:
51hei團團
時間:
2018-7-1 04:16
標題:
單片機智能熱得快仿真設計 含源碼
智能熱得快仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(22.74 KB, 下載次數: 43)
下載附件
2018-7-1 04:26 上傳
0.png
(10.6 KB, 下載次數: 32)
下載附件
2018-7-1 04:26 上傳
單片機源程序:
/*頭文件*/
#include<reg52.h>
#include <intrins.h>
/*****************宏定義******************/
#define uint unsigned int
#define uchar unsigned char
/***********位操作端口定義**************/
sbit set_key=P1^4; //“設置”鍵 K1
sbit add_key=P1^5; //“加”鍵 K2
sbit cut_key=P1^6; // “減”鍵 K3
sbit speak=P3^7; // 蜂鳴器
sbit JK1=P3^6; // 溫度繼電器
sbit JK2=P3^5; // 水位繼電器
sbit DQ1=P3^3;
sbit qian_wei=P0^7;
sbit bai_wei=P0^6;
sbit shi_wei=P0^5;
sbit ge_wei=P0^4;
sbit led4=P0^3; //滿水位指示燈紅色
sbit led3=P0^2; //3/4水位指示燈
sbit led2=P0^1; //1/2水位指示燈
sbit led1=P0^0; //1/4水位指示燈
sbit SW041=P1^0; //1/4水位
sbit SW021=P1^1; //1/2水位
sbit SW043=P1^2; //3/4水位
sbit SW01=P1^3; //滿水位
uchar bianma[]={0x05,0xdd,0x46,0x54,0x9c,0x34,0x24,0x5d,0x04,0x14,0xf6};
uchar flog4;
uint DD1;
uchar T_data[4]={0,0,0,0};
uchar Set_data[3]={0,0,0};
uint HT=300,LT;
void delay_1ms(uchar i)
{
uint x,y;
for(x=i;x>0;x--)
for(y=124;y>0;y--);
}
void data_pro()
{
Set_data[0]=HT/1000;
Set_data[1]=(HT%1000)/100;
Set_data[2]=(HT%100)/10;
}
/*****延時子程序*****/
void Delay_DS18B20(int num)
{
while(num--) ;
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
uchar x=0;
DQ1=1; //DQ復位
Delay_DS18B20(2); //稍做延時
DQ1=0; //單片機將DQ拉低
Delay_DS18B20(80); //精確延時,大于480us
DQ1=1; //拉高總線
Delay_DS18B20(14);
x=DQ1; //稍做延時后,如果x=0則初始化成功,x=1則初始化失敗
Delay_DS18B20(20);
}
/*****讀一個字節*****/
uchar ReadOneChar(void)
{
uchar i=0;
uchar dat=0;
for(i=8;i>0;i--) //串行接收數據
{
DQ1=0; // 給脈沖信號
dat>>=1;
DQ1=1; // 給脈沖信號
if(DQ1)
dat|=0x80;
Delay_DS18B20(8);
}
return(dat);
}
/*****寫一個字節*****/
void WriteOneChar(uchar dat)
{
uchar i=0;
for(i=8;i>0;i--)
{
DQ1=0;
DQ1=dat&0x01; //寫入最低位
Delay_DS18B20(10);
DQ1=1;
dat>>=1; //右移一位
}
}
/*****讀取溫度*****/
uint ReadTemperature(void)
{
uchar a=0;
uchar b=0;
uint t=0;
float tt=0;
Init_DS18B20(); //初始化DS18B20
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44); //啟動溫度轉換
Delay_DS18B20(20);
Init_DS18B20(); //初始化DS18B20
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器
a=ReadOneChar(); //讀低8位
b=ReadOneChar(); //讀高8位
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t= tt*10+0.5; //放大10倍輸出并四舍五入
return(t);
}
void pos_data()
{
DD1=ReadTemperature();
T_data[0]=DD1/1000;
T_data[1]=(DD1%1000)/100;
T_data[2]=(DD1%100)/10;
T_data[3]=DD1%10;
}
void display_set() //溫度報警值設置
{
qian_wei=0;
bai_wei=1;
shi_wei=1;
ge_wei=1;
P2=bianma[10];
delay_1ms(5);
qian_wei=1;
bai_wei=0;
shi_wei=1;
ge_wei=1;
P2=bianma[Set_data[0]];
delay_1ms(5);
P2=0xff;
qian_wei=1;
bai_wei=1;
shi_wei=0;
ge_wei=1;
P2=bianma[Set_data[1]];
delay_1ms(5);
P2=0xff;
qian_wei=1;
bai_wei=1;
shi_wei=1;
ge_wei=0;
P2=bianma[Set_data[2]];
delay_1ms(5);
P2=0xff;
}
void display() //測量值顯示
{
qian_wei=0;
bai_wei=1;
shi_wei=1;
ge_wei=1;
P2=bianma[0];
delay_1ms(5);
qian_wei=1;
bai_wei=0;
shi_wei=1;
ge_wei=1;
P2=bianma[T_data[1]];
delay_1ms(5);
P2=0xff;
qian_wei=1;
bai_wei=1;
shi_wei=0;
ge_wei=1;
P2=bianma[T_data[2]]&0xfb;
delay_1ms(5);
P2=0xff;
qian_wei=1;
bai_wei=1;
shi_wei=1;
ge_wei=0;
P2=bianma[T_data[3]];
delay_1ms(5);
P2=0xff;
}
/********** 報警處理函數******************/
void baojing()
{
LT=HT-50; //測量溫度低于設定溫度10度以下時 重新加熱
if(HT<DD1) //如果溫度超過上限 停止加熱
{
JK1=1;
}
if(DD1<LT) //如果溫度低于下限 開始加熱
{
JK1=0;
}
if((SW01==1)&&(SW043==1)&&(SW021==1)&&(SW041==1)) //0水位 指示 啟動水泵加水
{
led1=1;
led2=1;
led3=1;
led4=1;
JK2=0;
}
if((SW01==0)&&(SW043==1)&&(SW021==1)&&(SW041==1)) //1/4水位指示
{
led1=0;
led2=1;
led3=1;
led4=1;
}
if((SW01==0)&&(SW043==0)&&(SW021==1)&&(SW041==1)) //1/2水位指示
{
led1=0;
led2=0;
led3=1;
led4=1;
}
if((SW01==0)&&(SW043==0)&&(SW021==0)&&(SW041==1)) //3/4水位指示
{
led1=0;
led2=0;
led3=0;
led4=1;
}
if((SW01==0)&&(SW043==0)&&(SW021==0)&&(SW041==0)) //如果水滿了 指示燈指示 停止加水
{
led1=0;
led2=0;
led3=0;
led4=0;
JK2=1;
}
if(((SW01==1)&&(SW043==1)&&(SW021==1)&&(SW041==1))||(HT<DD1)||(DD1<LT)) //缺水或者 溫度超過上限 蜂鳴器響
{
speak=0;
}
else
{
speak=1;
}
}
/**********主函數******************/
void main()
{
data_pro();
while(1)
{
if(set_key==0)
{
delay_1ms(5);
if(set_key==0)
{
flog4=!flog4;
while(set_key==0);
}
}
if(flog4==1)
{
speak=1;
if(add_key==0)
{
delay_1ms(5);
if(add_key==0)
{
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
智能熱得快.rar
(354.99 KB, 下載次數: 180)
2018-7-1 04:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
穆染
時間:
2020-4-3 13:34
這個怎么沒有水泵和加熱器啊
作者:
太陽黑子1
時間:
2020-4-3 18:26
還挺復雜的!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
www.久久久久久久久久久
|
久久久久久国产精品
|
一级黄色片在线免费观看
|
人人澡视频
|
性国产xxxx乳高跟
|
国产a视频
|
综合久久亚洲
|
日日操操
|
欧美中文字幕一区二区
|
日韩资源
|
国产精品美女久久久久久久网站
|
超黄毛片
|
中文av电影
|
中文视频在线
|
久久久不卡网国产精品一区
|
亚洲综合视频
|
久久久男人的天堂
|
亚洲精品一区二区三区蜜桃久
|
国产免费看
|
久久久久久天堂
|
欧美一区二区三区在线看
|
韩日在线视频
|
成人影院在线视频
|
日韩av在线免费
|
亚洲性在线
|
无码日韩精品一区二区免费
|
国产极品粉嫩美女呻吟在线看人
|
午夜视频在线
|
91久久精品一区二区二区
|
日韩综合
|
日本黄色片免费在线观看
|
国产精品国产三级国产播12软件
|
一区二区国产精品
|
亚洲成在线观看
|
看av网
|
国产免国产免费
|
精品久久久久久国产
|
欧美综合一区
|
黄网站涩免费蜜桃网站
|
99热国产免费
|
久久成人免费视频
|