云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于51单片机课程设计报告 - 图文

基于51单片机课程设计报告 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 23:06:41

for(j=120;j>0;j--);

}

/******************************************************/ /* 温度调节函数 /

/*****************************************************/ int temp_change(int count,bit f) //上下限温度调整 {

if(key2==0)

//判断K2是否按下

{ if(v2==0)beer=0; keyscan_delay(10); if(key2==0)

{ beer=1; if(f==0)

//v2=0开按键音,否则消按键音 //延时10ms

//再次判断K2是否按下(实现按按键时消抖) //K2按下关按键音 //若温度为正

{

count++; //每按一下K2温度上调1

if(a==1){if(count>125) count=125;}//当温度值大于125时不上调 if(a==2){if(count>125) count=125;} }

if(f!=0) //若温度为负

{ count++; //每按一下K2温度下调1 if(a==1){if(count>55) count=55;}//当温度值小于-55时不再下调 if(a==2){if(count>55) count=55;} } }

while(key2==0); //K2松开按键时消抖

keyscan_delay(10); }

if(key3==0) {

if(v2==0)beer=0; keyscan_delay(10); if(key3==0)

//K3按按键时消抖

{

beer=1; count--; //每按一下K3温度为正时下调1,为负时上调1 if(a==1){if(count<0) count=0;}//当温度值达到0时不再调 if(a==2){if(count<0) count=0;} }

while(key3==0);

keyscan_delay(10); //K3松开按键时消抖

}

return count;

}

/******************************************************/ /* 读键盘函数 /

/*****************************************************/ void keyscan() {

if(key1==0) {

if(v2==0)beer=0; keyscan_delay(10); if(key1==0)

//K1按按键时消抖

{ beer=1; TR1=1; //开定时器1,通过s标志位的变化,实现在上下限温度调整时温度显示时闪烁的功能 k4=1; //在上下温度调节功能模式下选择K4的调整上下限温度正负的功能 v=1; //在上下温度调节功能模式下选择K2、K3的温度加减功能 i++; //K1按一下i加1,i=‘0’进入正常模式,i=‘1’进入调上限模式,i=‘2’进入调下限模式 if(i>2) //K1按下三次后退出调节模式

{

i=0;

//进入正常模式

TR1=0;

//关定时器1

//在正常模式下选择K4的消按键音功能 //在正常模式下选择K2、K3的查看上下限

k4=0; v=0; 报警温度功能 store_t();

} switch(i)

//存储调整后的上下限报警温度 //显示选择

{

case 0:a=0;break; //a=0选择显示测得的温度 case 1:a=1;break; //a=1选择显示上限温度 case 2:a=2;break; //a=2选择显示下限温度 default:break; } }

while(key1==0);

//K1松按键时消抖

keyscan_delay(10);

}

if(a==1&&v==1) //a=1选择显示上限温度且v=1时选择上下限温度加功能

{led=0;max=temp_change(max,f_max);}//显示上限温度 else if(a==2&&v==1) //a=2选择显示下限温度且v=1时选择上下限温度减功能

{led=1;min=temp_change(min,f_min);} else;

if(k4==1) //k4=1时K4按键选择正负温度设定功能 {

if(key4==0)

{

if(v2==0)beer=0; keyscan_delay(5); if(key4==0) { beer=1; if(a==1) {if(max>55) f_max=0;else f_max=~f_max;}//当温度大于55度时,

只能设定为正温度

if(a==2) {if(min>55) f_max=0;else f_min=~f_min;}//当温度大于55度时,只能设定为正温度 } while(key4==0); keyscan_delay(10); } }

if(v==0) { if(key2==0) {

if(v2==0)beer=0; keyscan_delay(10); if(key2==0) { beer=1;

a=1; TR1=1;

s1=1;

出 } while(key2==0); keyscan_delay(10); }

if(key3==0) {

if(v2==0)beer=0; keyscan_delay(10); if(key3==0) { beer=1; a=2; TR1=1;

s1=1; //v=0时选择上下限查看功能 //选择上限显示

//开定时器1开始定时一分钟左右

//上限显示不闪烁,显示一分钟左右自动退

//选择下限显示 //开定时器1开始定时1s //下限显示不闪烁,显示1s自动退出

搜索更多关于: 基于51单片机课程设计报告 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

for(j=120;j>0;j--); } /******************************************************/ /* 温度调节函数 / /*****************************************************/ int temp_change(int count,bit f) //上下限温度调整 { if(key2==0) //判断K2是否按下 { if(v2==0)beer=0;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com