亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
簡易18b20溫度采集與控制 設置模式按數字鍵可直接修改上下限
[打印本頁]
作者:
重口辣泡菜
時間:
2018-7-1 14:53
標題:
簡易18b20溫度采集與控制 設置模式按數字鍵可直接修改上下限
進入設置模式按數字鍵可直接修改上下限
單片機源程序如下:
/*
*Target:功能描述
* 模擬“溫度采集與控制裝置”用于實現溫度的實時監測與控制。單片機采集DS18B20溫度傳感器
* 的輸出信號,并送到數碼管進行顯示;通過傳感器得到的溫度數據將與用戶設定溫度上限、下
* 限做比較,再由單片機啟動或控制報警電路。
*Author:作者:重口辣泡菜
*Date:日期: 2018/7/1
*/
#include <reg52.h>
#include "display.h"
#include "delay.h"
#include "18b20.h"
#include "key.h"
/*******************函數申明**********************/
void Timer0_Init(void);
void Temp_deal(void);
void Display_mod1(void);
void Display_mod2(void);
void key_deal(void);
/*******************led引腳**********************/
sbit led1=P2^7;
sbit led2=P2^6;
/*******************數碼管顯示變量**********************/
unsigned char mod,level,m=3,n=0,p=2,q=0,i;
/*******************溫度讀取變量**********************/
unsigned int Temp_read_value,temp;
unsigned char Tmax=30,Tmin=20;
bit ReadTempFlag;
bit clearflag;
/*******************按鍵值變量**********************/
unsigned char key_read_value,key_value;
unsigned char templimit[8];
/*******************主函數**********************/
void main()
{
Timer0_Init();
while(1)
{
Temp_deal();
if( mod==0 ) Display_mod1();
else Display_mod2();
key_deal();
}
}
void key_deal(void) //按鍵消息處理
{
key_read_value = key_read();
if( key_read_value!=0xFF )
{
switch( key_read_value )
{
case 13: mod++; if( mod==2 ) mod = 0; break;
case 14: clearflag = 1; break;
case 0: key_value = 0; i++; break;
case 1: key_value = 1; i++; break;
case 2: key_value = 2; i++; break;
case 3: key_value = 3; i++; break;
case 4: key_value = 4; i++; break;
case 5: key_value = 5; i++; break;
case 6: key_value = 6; i++; break;
case 7: key_value = 7; i++; break;
case 8: key_value = 8; i++; break;
case 9: key_value = 9; i++; break;
default:
break;
}
}
}
void Temp_deal(void)
{
if( ReadTempFlag==1 ) //18b20讀取溫度值處理
{
ReadTempFlag = 0;
Temp_read_value = ReadTemperature();
temp = Temp_read_value>>4;
}
if( temp<Tmin ) level = 1; //溫度區間判斷
else if( (temp>=Tmin)&&(temp<=Tmax) ) level = 2;
else if( temp>Tmax ) level = 3;
if( Tmin>Tmax ) led2=0; //下限大于上限led2常亮提示
else led2=1;
}
void Display_mod1(void) //正常顯示狀態
{
TempData[0] = 0x40;
TempData[1] = tabledu[ level ];
TempData[2] = 0x40;
TempData[6] = tabledu[ (temp%100)/10 ];
TempData[7] = tabledu[ (temp%100)%10 ];
}
void Display_mod2(void) //設置模式
{
TempData[0] = 0x40;
TempData[1] = tabledu[ Tmax/10 ];
TempData[2] = tabledu[ Tmax%10 ];
TempData[5] = 0x40;
TempData[6] = tabledu[ Tmin/10 ];
TempData[7] = tabledu[ Tmin%10 ];
if( (mod==1)&&(dispcom==1)&&(i==1) ) m = key_value; //按鍵值0~9改變上下限,設置模式下才能更改
if( (mod==1)&&(dispcom==2)&&(i==2) ) n = key_value;
if( (mod==1)&&(dispcom==6)&&(i==3) ) p = key_value;
if( (mod==1)&&(dispcom==7)&&(i==4) ) q = key_value;
if( (mod==1)(clearflag==1) ) //輸入錯誤按下清零
{ clearflag = 0; m = 0; n = 0; p = 0; q = 0; i=0; }
Tmax = (10*m)+n; Tmin = (10*p)+q;
}
void Timer0_Init(void)
{
TMOD = 0x01;
EA=1;
ET0=1;
TR0=1;
}
void Timer0(void) interrupt 1
{
static unsigned int count,ledcount;
TH0 = (65536-2200)/256;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
簡易18b20溫度采集與控制.zip
(53.51 KB, 下載次數: 47)
2018-7-1 14:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
王大鵬
時間:
2018-12-31 12:41
學習一下
作者:
ideapad110
時間:
2019-1-1 14:06
啥都不說,先收藏一波,感謝樓主分享
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1