久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
最近做多點溫度報警器的一些資料
[打印本頁]
作者:
cth886
時間:
2018-1-8 18:33
標題:
最近做多點溫度報警器的一些資料
期末大作業:
多點溫度檢測系統的設計
基本要求:
1、掌握51系列單片機的基本結構及設計方法;
2、了解多點溫度檢測系統的工作原理;
3、熟悉多點溫度檢測系統的設計方案及其優劣;
4、選擇一款合適的方案完成多點溫度檢測系統的設計。
功能要求:
1、設計一個4路溫度檢測系統,每路溫度的變化范圍是-10℃--+110℃;
2、對4路溫度循環進行顯示,顯示格式為“第X路 XXX.X度”,每路顯示的時間自定,當按下【鎖定】鍵時,僅顯示鎖定的那一路的溫度,再次按下【鎖定】鍵后,恢復循環顯示;
3、每路溫度可單獨設置上下限報警范圍;
4、當檢測到的實際溫度超出設置的上下限(高于上限或者低于下限)時發出聲音報警,同時顯示器閃爍顯示報警的溫度及路數(按【取消】鍵后停止報警);
5、按鍵若干。
設計內容:
1、方案設計;
2、多點溫度檢測系統的硬件設計;
3、多點溫度檢測系統的軟件設計和調試;
4、多點溫度檢測系統的仿真;
5、完成大作業
的半成品。。。
單片機源程序如下:
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//sbit Buzz = P3^2;
sbit Buzz = P1^5;
/*******************************************lcd1602.c函數聲明************************************************/
extern void InitLcd1602(); //lcd1602初始化函數
extern void DisplayLimit(uchar x,uchar y,char dat); //在坐標(x,y)顯示溫度上限或下限
extern void InitMaxMin(); //進入溫度報警值設置界面
extern void Display_user(uchar x); //顯示用戶自定義的字符“↑”
extern void LcdShowStr(uchar x,uchar y,uchar *str);
extern void LcdShowDat(uchar x,uchar y,uchar num);
extern void Display_laba();
/*******************************************key.c函數聲明****************************************************/
extern void KeyDrive();
extern void KeyScan();
/****************************************ds18b20.c函數聲明***************************************************/
extern bit RESET_DS18B20(void);
extern uint Read_DS18B20_TEMP(void);
/*****************************************main.c子函數聲明***************************************************/
void Timer1Init(uint ms); //定時器1初始化函數
void SetLimit(); //設置報警值函數
void ControlBuzz(); //蜂鳴器控制函數
void delay(uint z);
/**********************************************變量定義******************************************************/
extern uchar code buff[];
uchar T1RH=1; //定時器初值
uchar T1RL=1;
bit flagBuzz=0; //蜂鳴器開關標志
bit EBuzz=0; //蜂鳴器使能標志
char High=20; //溫度上限 超過限度蜂鳴器開
char Low=10; //溫度下限
uchar mode=0; //模式變量
uchar cnt=0; //ESC按鍵 變量
uchar tflag; //溫度正負標志位
/*************************************主函數***************************************/
void main()
{
EA=1; //開啟總中斷
Timer1Init(1); //初始化定時器1
RESET_DS18B20(); //復位18B20
delay(20);
InitLcd1602(); //初始化lcd1602
while(1)
{
LcdShowDat(10,1,buff[Read_DS18B20_TEMP()/100]); //顯示溫度值十位
LcdShowDat(11,1,buff[Read_DS18B20_TEMP()/10%10]); //顯示溫度值個位
LcdShowStr(12,1,"."); //顯示小數點
LcdShowDat(13,1,buff[Read_DS18B20_TEMP()%10]); //顯示小數位
KeyDrive(); //按鍵驅動
SetLimit(); //設置報警值
}
}
/**********************************按鍵動作函數************************************/
void KeyDown(uchar keycode)
{
if(keycode==0x0D) //回車鍵:進入模式設置
{
mode++;
if(mode>2)mode=0;
}
else if(keycode==0x26) //向上鍵:模式1 上限值+1 模式2 下限值+1
{
if(mode==1)
{
High++;
if(High>99)High=99;
}
else if(mode==2)
{
Low++;
if(Low==High)Low=High-1;
}
}
else if(keycode==0x28) //向下鍵:模式1 上限值-1 模式2 下限值-1
{
if(mode==1)
{
High--;
if(High==Low)High=Low+1;
}
else if(mode==2)
{
Low--;
if(Low<0)Low=0;
}
}
else if(keycode==0x1B) //Esc鍵:開關蜂鳴器報警
{
if(mode==0)
{
cnt++;
if(cnt>1)cnt=0;
if(cnt==1) //蜂鳴器使能開啟 顯示喇叭圖像
{
EBuzz=1;
Display_laba();
}
else if(cnt==0) //蜂鳴器使能關閉 不顯示喇叭
{
EBuzz=0;
LcdShowStr(7,0," ");
}
}
}
}
/************************************報警值設置函數*********************************/
void SetLimit()
{
if(mode==0); //模式0 正常顯示 調用蜂鳴器控制函數
{
ControlBuzz();
}
if(mode!=0) //模式1 調整溫度上限
{ //模式2 調整溫度下限
EBuzz=0;
InitMaxMin();
while(mode!=0)
{
KeyDrive();
if(mode==1)
{
Display_user(3); //顯示自定義的 箭頭 圖像 指向溫度上限
DisplayLimit(2,0,High); //顯示 溫度報警值上下限
DisplayLimit(12,0,Low);
}
else if(mode==2)
{
Display_user(13); //顯示自定義的 箭頭 圖像 指向溫度下限
LcdShowStr(3,1," ");
DisplayLimit(2,0,High);
DisplayLimit(12,0,Low);
}
}
InitLcd1602();
}
}
/************************************蜂鳴器控制函數************************************/
void ControlBuzz()
{
if((Read_DS18B20_TEMP()>=(10*High))||(Read_DS18B20_TEMP()<=(10*Low)))
flagBuzz=1;
else
flagBuzz=0;
if((flagBuzz==1)&&(EBuzz==1))
{
Buzz=~Buzz;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=115;y>0;y--);
}
/**********定時器1初始化函數***********/
void Timer1Init(uint ms)
{
ulong tmp; //16位長整型變量tmp
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
11.DS18B20溫度報警.rar
(68.75 KB, 下載次數: 52)
2018-1-8 18:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin123
時間:
2018-12-22 17:37
可以把電路圖也分享一下嘛。
作者:
GGXiang
時間:
2018-12-23 11:22
原理圖可以分享嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久国产一区二区三区
|
国产区精品
|
欧美精品久久一区
|
中文字幕在线视频精品
|
91原创视频在线观看
|
久久专区
|
国产精品一区在线
|
久久r精品
|
日韩欧美亚洲
|
在线看片国产精品
|
综合网视频
|
蜜桃视频在线观看免费视频网站www
|
天堂综合
|
欧美va大片
|
久久一区
|
久操伊人
|
毛片a级
|
日日草夜夜草
|
欧美日韩视频在线第一区
|
99久久精品国产一区二区三区
|
中文字幕加勒比
|
国产精品免费一区二区三区四区
|
久久久精品一区二区三区
|
国产人免费人成免费视频
|
亚洲欧美在线观看视频
|
av在线一区二区三区
|
国产视频久久
|
亚洲精品一区二区网址
|
亚洲国产精品一区在线观看
|
日韩av免费在线观看
|
国产99视频精品免费视频7
|
日韩网站在线
|
91看片在线
|
天天操 夜夜操
|
久久精品色欧美aⅴ一区二区
|
久久久久久91香蕉国产
|
成人精品视频在线观看
|
在线成人
|
99精品视频免费观看
|
高清av电影
|
亚洲高清视频一区
|