|
數碼管顯示18b20,設置高低溫報警溫度,用蜂鳴器和led燈進行提醒。附電路圖和源程序
0.png (26.7 KB, 下載次數: 78)
下載附件
2016-9-25 13:17 上傳
- #include "main.h"
- #include "alarm.h"
- #include "display.h"
- #include "18b20.h"
- extern unsigned char idata flag; //定義外部變量,溫度正負標志
- uint HNum = 50,LNum = 10; //報警溫度的高低值
- uint Tem;
- /***************
- * 函 數:顯示溫度函數
- * 參 數:無
- * 返 回: 無
- ****************/
- void ShowTem()
- {
- Tem = gettemp(); /* 讀取18b20溫度*/
- if(flag == 1) //顯示負溫度
- display(16,(Tem%100)/10,Tem%10,(Tem*10)/10);
- if(flag == 0) //顯示正溫度
- display(Tem/100,(Tem%100)/10,Tem%10,(Tem*10)/10);
- }
- /***************
- * 函 數:設置低溫溫度報警值函數
- * 參 數:無
- * 返 回: 無
- ****************/
- void SetLowTem()
- {
- while(1)
- {
- display(18,(LNum%100)/10,LNum%10,(LNum*10)/10);
- if(k2 == 0)
- delay_ms(50); //按鍵消抖
- if(k2 == 0)
- { while(!k2); //等待按鍵釋放
- LNum++;
- }
- if(k3 == 0)
- delay_ms(50); //按鍵消抖
- if(k3 == 0)
- { while(!k3); //等待按鍵釋放
- LNum--;
- }
- if(k4 == 0)
- delay_ms(50); //按鍵消抖
- if(k4 == 0)
- { while(!k4); //等待按鍵釋放
- break;
- }
- }
- }
- /***************
- * 函 數:設置高溫溫度報警值函數
- * 參 數:無
- * 返 回: 無
- ****************/
- void SetHighTem()
- {
- HNum = 50;
- if(k1 == 0) //按鍵消抖
- delay_ms(10);
- if(k1 == 0)
- {
- while(!k1); //等待按鍵釋放
- while(1)
- {
- display(17,(HNum%100)/10,HNum%10,(HNum*10)/10);
- if(k1 == 0)
- delay_ms(50); //按鍵消抖
- if(k1 == 0)
- { while(!k1); //等待按鍵釋放
- SetLowTem(); //設置低溫報警溫度
- break;
- }
- if(k2 == 0)
- delay_ms(50); //按鍵消抖
- if(k2 == 0)
- { while(!k2); //等待按鍵釋放
- HNum++;
- }
- if(k3 == 0)
- delay_ms(50); //按鍵消抖
- if(k3 == 0)
- { while(!k3); //等待按鍵釋放
- HNum--;
- }
- if(k4 == 0)
- delay_ms(50); //按鍵消抖
- if(k4 == 0)
- { while(!k4); //等待按鍵釋放
- break;
- }
- }
- }
- ShowTem();
- }
- /***************
- * 函 數:led和蜂鳴器初始化
- * 參 數:無
- * 返 回: 無
- ****************/
- void initalarm()
- {
- led1 = 0;
- led2 = 0;
- led3 = 0;
- buzzer = 1;
- }
- /***************
- * 函 數:led和蜂鳴器控制
- * 參 數:無
- * 返 回: 無
- ****************/
- void alarm()
- {
- Tem = gettemp();
- if(Tem > HNum)
- {
- led2 = 1;
- led1 = 0;
- led3 = 0;
- buzzer = 0; //蜂鳴器工作
- }
- else if(Tem < LNum)
- {
- led3 = 1;
- led1 = 0;
- led2 = 0;
- buzzer = 0;
- }
- else
- {
- led1 = 1;
- led2 = 0;
- led3 = 0;
- buzzer = 1;
- }
- }
-
復制代碼
0.png (60.59 KB, 下載次數: 75)
下載附件
2016-9-25 13:18 上傳
|
-
-
數碼管顯示溫度及報警.rar
2016-9-25 13:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
126.17 KB, 下載次數: 244, 下載積分: 黑幣 -5
評分
-
查看全部評分
|