




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 /3,南北数码管1voidsmg_we_switch(uchari)case0case0:smg_we1=smg_we4=1;break;case1:smg_we1=smg_we4=1;break;case2:smg_we1=smg_we4=1;break;case3:smg_we1=smg_we4=();break;switch(i)smg_we2=1;smg_we3smg_we2=0;smg_we3smg_we2=1;smg_we3smg_we2=1;smg_we3/*名称:delay_lms()*功能:延时1ms函数*输入:q*输出:无*voiddelay_lms(uintq)uint
2、i,j;for(i=0;iq;i+)for(j=0;j0;i一一)ETO=O;定时器中断关闭DQ=0;dat=l;/给脉冲信号DQ=1;if(DQ)/给脉冲信号dat|=0 x80;Delay_DS18B20(4);ETO二1;1/定时器中断打开return(dat);i/*写一个字节*/voidWriteOneChar(unsignedchardat)unsignedchari二0;for(i二8;i0;i一一)ETO二0;DQ二0;定时器中断关闭DQ二dat&OxOl;Delay_DS18B20(5);DQ=1;dat=l;ETO二1;定时器中断打开u8tempflag=O;负号显示*读取
3、温度*/unsignedintReadTemperature(void)unsignedchara二0;unsignedcharb二0;unsignedintt二0;u8tt=0;u8ttt=O;tt=(u8)(t4)tt=(u8)(t4);整数位ttt=(u8)(t%16)*0.0625*10);乘以10代表保留一位小数;if(tt&0 x80)Init_DS18B20();WriteOneChar(OxCC);WriteOneChar(0 x44);Init_DS18B20();WriteOneChar(OxCC);WriteOneChar(OxBE);a=ReadOneChar();b=
4、ReadOneChar();t=b;t=8;t=t|a.;节跳过读序号列号的操作/启动温度转换跳过读序号列号的操作读取温度寄存器/读低8位/读高8位/合并高低位为一个字得到/得到小数位;tempflag=l;/负号显示/实际温度值为读取值的补码elsetempflag=O;/正号显示t=tt*10+ttt;10倍return(t);放大/*校准温度*/ul6check_wendu(void)ul6c;c=ReadTemperature();去DS18B20的温漂误差returnc;/按键sbitKeyl=Pl5;sbitKey2二P33;sbitKey3二P34;SdefineKEY_SET1
5、SdefineKEY_ADDSdefineKEY_MINUSH=/获取温度值并减/设置键/加按键/减按键设置/加/减/函数:u8Key_Scan()/应用:temp=u8Key_Scan();/描述:按键扫描并返回按下的键值/参数:NONE/返回:按下的键值/版本:VER1.0/H期:2015-05-29/备注:该函数带松手检测,按下键返回一次键值后返回0,直至第二次按键按下H=u8Key_Scan()staticu8key_up=l;/按键按松开标志if(key_up&(Key101|Key201|Key30)delay_ms(10);/去抖动key_up=0;if(Keyl=0)retur
6、n1;elseif(Key20)return2;elseif(Key30)return3;elseif(Key1l&Key2l&Key31)key_up=l;return0;/无按键按下voidmain(void)u8key;wendu=check_wendu();取函数防止开机85Cdelay_ms(1000);wendu=check_wendu();取函数防止开机85CInit_TimerO();/初始化时调用温度读/初始化时调用温度读while(1)key=Key_Scan();if(ReadTempFlag1)ReadTempFlag=O;wendu=check_wendu();if(
7、key=KEY_SET)Mode+;/主循环按键扫描读取温度值switch(Mode)值判断模式的监控case0:监控模式if(tempflag)dis_smg0=DisplayOther2;elsedis_smgODisplayNumwendu/1000%10;dis_smgl=DisplayNumwendu/100%10;disusing2DisplayNumwendu/10%10&Display0therl;dis_smg3=DisplayNumwendu%10if(wendu=(yushe_wendu*10)/温度大于等于预设温度值时(为什么是大于预设值*10:因为我们要显示的温度是有
8、小数点后一位,是一个3位数,25.9C时实际读的数是259,所以判断预设值时将预设值*10)baojing=0;蜂鸣器报警LED_wendu=0;温度报警灯else/温度值小于预设值时LED_wendu=l;报警灯baojing=l;报警break;打开打开关闭停止case1:打开打开关闭停止dis_smgODisplayNumyushe_wendu/100%10;dis_smgDisplayNumyushe_wendu/10%10;dis_smg2DisplayNumyushe_wendu%10&Display0therl;dis_smg3=DisplayOther3;if(key=KEY_
9、ADD)加键按下yushe_wendu+;/预设温度值(阀值)加1if(yushe_wendu=99)/当阀值加到大于等于99时yushe_wendu=99;/阀值固定为99if(key=KEY_MINUS)减键按下if(yushe_wendu=l)/当温度上限值减小到1时固定yushe_wendu二1;固定为1yushe_wendu-;预设温度值减一,最小为0break;/执行后跳出switchdefaultMode二Mode二0;/恢复正常模式break;/*定时器初始化子程序voidInit_TimerO(void)TMOD|=0 x01;/使用模式1,16位定时器,使用符号可以在使用多个定时器时不受影响EA二1;/总中断打开ET0二1;/定时器中断打开TR0二1;/定时器开关打开/*定时器中断子程序*/voidTimerO_isr(void)i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省辽阳太子河区五校联考2024-2025学年初三月考试卷(二)物理试题含解析
- 永平县2024-2025学年三年级数学第二学期期末联考试题含解析
- 江苏省泰州市泰兴市黄桥教育联盟重点名校2024-2025学年初三年级五月份月考卷语文试题含解析
- 兴义市第八中学2025年高三接轨考试物理试题文试题含解析
- 劳务分包安全合同
- 抵押车借款合同二零二五年
- 美甲美睫店员工正式聘用合同书范例
- 婚恋中介合同书范例
- 场地租赁保证金合同书二零二五年
- 二零二五商铺转租租赁简单合同书范例
- 车间生产追溯管理制度
- 2025年4月12日衢州事业单位及市直遴选(选调)笔试真题及答案解析
- 2025年CFA特许金融分析师考试全真模拟试题与解析
- 非上市公司的期权激励方案两篇
- 福建省能源石化集团有限责任公司招聘笔试真题2024
- 专业税务顾问服务合同范本
- 第8课《集字练习》课件-【知识精研】六年级上册书法北师大版
- DB37-T 5312-2025 《建筑施工安全防护设施技术标准》
- 基于Scrum的软件产品自动化测试框架研究
- 2025年广东韶关南雄市卫生健康局下属事业单位招聘工作人员67人历年高频重点模拟试卷提升(共500题附带答案详解)
- 2025年度商铺租赁代理服务合同(含独家代理权)
评论
0/150
提交评论