教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

毕业论文-移专-陈龙-修改2 - 图文(8)

来源:网络收集 时间:2026-09-06
导读: 武汉工程大学邮电与信息工程学院毕业设计(论文) aaa=0; break; case 2: dis[1]=num1; dis[2]=num2; dis[3]=b; num3=b; if(dis[2]==21) dis[2]++; else dis[2]+=10; srtemp=0xfe; for(i=1;i P0=0xff; wei=1; P0=sr

武汉工程大学邮电与信息工程学院毕业设计(论文)

aaa=0; break; case 2: dis[1]=num1; dis[2]=num2; dis[3]=b; num3=b; if(dis[2]==21)

dis[2]++;

else

dis[2]+=10;

srtemp=0xfe; for(i=1;i<4;i++) { } aaa=0;

P0=0xff; wei=1;

P0=srtemp;//wein打开后 是低电平亮 wei=0;//

srtemp=_crol_(srtemp,1); P0=0x00; duan=1; P0=table[dis[i]]; duan=0; delay(1); duan=1; P0=0x00; duan=0;

30

武汉工程大学邮电与信息工程学院毕业设计(论文)

}

break; case 3: dis[1]=num1; dis[2]=num2; dis[3]=num3; if(dis[2]==21)

dis[2]++;

else

dis[2]+=10;

srtemp=0xfe; for(i=1;i<4;i++) { }

aaa=0;num=21;break; default:bbb=0; break;

P0=0xff; wei=1;

P0=srtemp;//wein打开后 是低电平亮 wei=0;//

srtemp=_crol_(srtemp,1); P0=0x00; duan=1; P0=table[dis[i]]; duan=0; delay(1); duan=1; P0=0x00; duan=0;

31

武汉工程大学邮电与信息工程学院毕业设计(论文)

}

首先要清楚a是DS18B20芯片获取的温度,b是需要输入的温度,也就是要求的水温。

在这里用到了abs(a)和_crol_所以要在再头文件中写到#include 和#include,dda用于防止a为负值的时候后面的操作不好完成。分别将dda的千位、百位、十位、个位取出存放在Numx,num1,num2,num3中。dis[4]是用来方便for语句的赋值操作。这里显示时需要考虑DS18B20采集的数据中的各种情况,第一:超过了100度。第二:正常的十几度或者几十度。第三:只有几度没有超过十度。第四温度为负值。

if((dis[0]==0)&&(dis[1]==0))

dis[1]=20;//如果百位和十位都为0 不显示

上面这一句话,就是地三种情况。

if(a<0)//负值 后面加个小数点

dis[3]+=10;

else

{if(dis[0]!=0)//超过100前面加小数点 dis[1]=dis[1]+10; }

上面这句话就是第一种和第四种情况的描述。

第二种情况是正常使用的情况,直接将dis[1] 、dis[2]、 dis[3]写出来即可。 ccc的作用是防止出现什么都不输入直接确认给程序带来的bug,出现这种情况时系统不做其他的任何反应,保持在这时的输入状态,直到用户输入了一个数字为止。ccc的功能才会解除。

这里键盘输入温度的数码管显示使用的是switch(bbb)语句完成的,bbb共有0、1、2、3,这四种情况,bbb等于0时是无任何输入的情况,bbb等于1时是输入了需要温度的十位,bbb等于2时是输入了需要温度的个位,bbb等于3时是输入了需要温度的小数点后一位,这里没有超过100度和低于0度的设计。这里基本上就是完成给定了数字,通过数字值为多少来设定数码管显示的数字,在第三章中已经提到。这里要注意的是每次都要将aaa清零,因为aaa为1时,输

32

武汉工程大学邮电与信息工程学院毕业设计(论文)

入子函数uchar scanff()的返回值变为一个使数码管显示一个下划线的数值,aaa为0时键盘可以通过uchar scanff()向数码管显示0-9中的任何一个数值。这样是防止前一个数字的输入完成以后,后一个数字还未输入时,显示后一个数字的数码管默认不在显示下划线而是前一个确认的数字,为了防止这种情况才有了aaa的以上操作。

3.5 中断加热子函数的分析

以下是程序: void timer0() interrupt 1 { int a;

TH0=(65536-46000)/256; TL0=(65536-46000)%6; zd++; if(zd==6) { }

33

zd=0;

a=num1*100+num2*10+num3;

if(a>=numy&&num1!=21&&num2!=21&&num3!=21) { } else { }

jiar=1; P1=0xff; jiar=0; jiar=1; P1=0xfd; jiar=0;

武汉工程大学邮电与信息工程学院毕业设计(论文)

}

采用定时器T0,定时器设定每30ms中断一次,判断输入的数值与采集的数值之间的大小,如果前者较大就使P2^1变为低电平,从而使MOC3041启动并引起加热。如果后者大于前者,则P2^2还是高电平并不引起加热。这样就达到了控温的目的。

34

…… 此处隐藏:262字,全部文档内容请下载后查看。喜欢就下载吧 ……
毕业论文-移专-陈龙-修改2 - 图文(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/436270.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)