液晶显示温度控制系统Word文档下载推荐.doc
- 文档编号:8458085
- 上传时间:2023-05-11
- 格式:DOC
- 页数:16
- 大小:91KB
液晶显示温度控制系统Word文档下载推荐.doc
《液晶显示温度控制系统Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《液晶显示温度控制系统Word文档下载推荐.doc(16页珍藏版)》请在冰点文库上搜索。
//旧屏号
ucharKeyCode=0;
ucharAlarmModeClose[]={"
Close"
};
ucharAlarmModeOpen[]={"
Open"
ucharAlarmFlag=OFF;
//警报标志
ucharAbnormalFlag=OFF;
//异常标志
signedintMaxTemperatureNew;
//新最大温度
ucharMaxTemperNew[2];
signedintMaxTemperature=30;
ucharMaxTemper[2];
signedintMinTemperatureNew;
//新最小温度
ucharMinTemperNew[2];
signedintMinTemperature=10;
ucharMinTemper[2];
floatRealTemper=0.0;
//实时温度
sbitkey1=P2^0;
//按键解码
sbitkey2=P2^1;
sbitkey3=P2^2;
sbitkey4=P2^3;
sbitkey5=P2^4;
sbitkey6=P2^5;
sbitkey7=P2^6;
sbitkey8=P2^7;
ucharKeyPress() //按键扫描
{
if(key1==0)
{
delay_ms
(1);
while(!
key1);
KeyCode=1;
}
if(key2==0)
key2);
KeyCode=2;
}
if(key3==0)
key3);
KeyCode=3;
if(key4==0)
key4);
KeyCode=4;
if(key5==0)
key5);
KeyCode=5;
if(key6==0)
key6);
KeyCode=6;
if(key7==0)
key7);
KeyCode=7;
if(key8==0)
key8);
KeyCode=8;
return(KeyCode);
}
voidKeyAsciii() //按键处理
switch(KeyCode)
case1:
{ScreenCode=ScreenTemperDisp;
KeyCode=0;
break;
case2:
{ScreenCode=ScreenMaxTemperSet;
case3:
{ScreenCode=ScreenMinTemperSet;
case4:
{ScreenCode=ScreenAddAlarm;
case5:
{ScreenCode=ScreenCancelAlarm;
//case6:
ScreenCode=ScreenMaxTemperSet;
//case7:
//case8:
default:
/***************************************最大温度设定****************************************/
voidMaxTemperSetScreen()
if(ScreenCode!
=ScreenCodeOld)
ScreenCodeOld=ScreenCode;
write_com(0X01);
DisplayString(0x00,0,"
MaxTemperature"
);
DisplayString(0x04,1,"
Set:
"
DisplaySingleChar(0x0a,1,'
C'
//write_com(0x10);
write_com(0X0f);
//光标闪烁
MaxTemper[0]=MaxTemperature/10;
MaxTemper[1]=MaxTemperature%10;
DisplaySingleChar(0x08,1,MaxTemper[0]+0X30);
//动态显示
DisplaySingleChar(0x09,1,MaxTemper[1]+0X30);
write_com(0x10);
MaxTemperature+=1;
//温度增加
if(MaxTemperature>
99)
{
MaxTemperature=99;
//最高99度
}
MaxTemperature-=1;
//温度递减
if(MaxTemperature<
=0)
MaxTemperature=0;
//最低0度
if(key8==0) //设置温度
//清屏
write_com(0X0c);
//无光标,不闪烁
SetSuccessfully"
DisplayString(0x00,1,"
MaxTemp:
MaxTemperatureNew=MaxTemperature;
//设置新最大温度
MaxTemperNew[0]=MaxTemperatureNew/10;
MaxTemperNew[1]=MaxTemperatureNew%10;
DisplaySingleChar(0x0a,1,MaxTemperNew[0]+0X30);
//显示新最大温度
DisplaySingleChar(0x0b,1,MaxTemperNew[1]+0X30);
DisplaySingleChar(0x0c,1,'
delay_ms(4000);
ScreenCode=ScreenTemperDisp;
/***********************************最小温度设定**************************************************/
voidMinTemperSetScreen() ///最小温度设定
MinTemperature"
//光标显示
MinTemper[0]=MinTemperature/10;
MinTemper[1]=MinTemperature%10;
DisplaySingleChar(0x08,1,MinTemper[0]+0X30);
DisplaySingleChar(0x09,1,MinTemper[1]+0X30);
MinTemperature+=1;
if(MinTemperature>
MinTemperature=99;
MinTemperature-=1;
if(MinTemperature<
MinTemperature=0;
MinTemp:
MinTemperatureNew=MinTemperature;
MinTemperNew[0]=MinTemperatureNew/10;
MinTemperNew[1]=MinTemperatureNew%10;
DisplaySingleChar(0x0a,1,MinTemperNew[0]+0X30);
DisplaySingleChar(0x0b,1,MinTemperNew[1]+0X30);
/*******************************实时温度显示*******************************************/
voidRealTemperDispScreen() //实时温度显示
RealTemperature"
//静态显示
is"
DisplaySingleChar(0x02,1,0X3A);
DisplaySingleChar(0x07,1,'
//DisplayString(0x0b,1,"
DisplaySingleChar(0x03,1,dispaly[2]+0X30);
DisplaySingleChar(0x04,1,dispaly[1]+0X30);
DisplaySingleChar(0x05,1,0X2E);
DisplaySingleChar(0x06,1,dispaly[0]+0X30);
if(AlarmFlag==ON)
DisplayString(0x0b,1,AlarmModeOpen);
else
DisplayString(0x0b,1,AlarmModeClose);
/*********************************加警屏************************************************/
voidAddAlarmScreen() //加警屏
DisplayString(0x03,0,"
AlarmAdd"
DisplayString(0x01,1,"
Successfully!
AlarmFlag=ON;
delay_ms(4000);
ScreenCode=ScreenTemperDisp;
/*******************************解警屏******************************************************/
voidCancelAlarmScreen() //解警屏
DisplayString(0x02,0,"
AlarmCancel"
DisplayString(0x02,1,"
AlarmFlag=OFF;
AbnormalFlag=OFF;
Speaker=1;
LED1=1;
/**********************************比较温度***********************************************/
voidCompareTemper() //比较温度
RealTemper=dispaly[2]*10+dispaly[1];
if((AlarmFlag==ON)&
&
(AbnormalFlag==OFF))
if((RealTemper>
MaxTemperatureNew)||(RealTemper<
MinTemperatureNew))
ScreenCode=ScreenAbnormalTemper;
AbnormalFlag=ON;
///////////////////////
/********************************温度异常显示屏***************************************************/
voidAbnormalTemperScreen() //温度异常显示屏
Temperature"
DisplayString(0x03,1,"
anomaly!
!
/********************************声光报警*****************************************************/
voidSoundLightAlarm() //声光报警
(AbnormalFlag==ON))
Speaker=~Speaker;
LED1=~LED1;
delay_ms(10);
/*********************************系统主函数******************************************************/
voidmain() //系统主函数
ucharAbnormalFlag=OFF;
MaxTemperatureNew=30;
MinTemperatureNew=10;
ds_reset();
write_byte(0xcc);
write_byte(0x44);
LCDInit();
WelcomeWords();
while
(1)
read_temp();
work_temp();
delay_us(500);
//DisplayTemperature();
KeyPress();
KeyAsciii();
CompareTemper();
SoundLightAlarm();
switch(ScreenCode) //判断屏号
caseScreenTemperDisp:
RealTemperDispScreen();
caseScreenMaxTemperSet:
MaxTemperSetScreen();
caseScreenMinTemperSet:
MinTemperSetScreen();
caseScreenAddAlarm:
AddAlarmScreen();
caseScreenCancelAlarm:
CancelAlarmScreen();
caseScreenAbnormalTemper:
AbnormalTemperScreen();
DS18B20.c
DS18B20.h"
uchartemp_data[2]={0x00,0x00};
//---------------------------------------------------DS1820复位函数-----------------------------------------------
voidds_reset(void)
chartemp=1;
while(temp)
while(temp)
DQ=1;
_nop_();
DQ=0;
delay_us(80);
DQ=1;
delay_us(9);
temp=DQ;
}
delay_us(64);
temp=~DQ;
DQ=1;
}
//-------------------------------------------------DS1820写函数---------------------------------------------------
voidwrite_byte(ucharvalue)
uchari;
for(i=8;
i>
0;
i--)
DQ=1;
DQ=0;
DQ=value&
0x01;
delay_us(9);
value>
>
=1;
}
delay_us
(1);
//------------------------------------------------DS1820读函数---------------------------------------------------
ucharread_byte(void)
ucharvalue1=0;
for(i=8;
value1>
_nop_();
_n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 液晶显示 温度 控制系统