温度报警器实验报告加程序.doc

温度报警器实验报告加程序.doc

ID:61487063

大小:3.82 MB

页数:17页

时间:2021-02-05

温度报警器实验报告加程序.doc_第1页
温度报警器实验报告加程序.doc_第2页
温度报警器实验报告加程序.doc_第3页
温度报警器实验报告加程序.doc_第4页
温度报警器实验报告加程序.doc_第5页
资源描述:

《温度报警器实验报告加程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、武夷学院实验报告课程名称:单片机及接口技术实验项目名称:LCD显示的温度报警器姓名:_吴锦生_专业:_10电信_班级:_1班_学号__一、实验预习部分:1、设计要求设计一个温度测量控制系统,以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,设计一个结构简单、测温准确、具有一定控制功能的智能温度控制器。功能要求如下:增加温度报警功能,可以通过按键设置一个报警温度,当用DS18B20测得的温度超过预设值,用蜂鸣器报警。2、实验程序#include#include#incl

2、ude#defineuintunsignedint#defineucharunsignedchar#definelcd_dateP0LCD并行数据传输端口定义sbitLEDCLK=P3^4;164时钟输入端sbitLEDDIN=P2^3;164数据输入端sbitKey_Input=P1^0;按键输出端sbitlcd_en=P2^2;LCD功能端口定义sbitlcd_rs=P2^4;sbitlcd_rw=P2^3;sbitACC0=ACC^0;sbitACC7=ACC^7;sbitDQ=P3^2;温度输出端sbitso

3、und=P1^2;蜂鸣器输入端ucharkeytemp=0;ucharkeyval=0;ucharkeyback;KEY备份值bittflag;温度正负标志位uinttvalue,bai,shi,ge,xiao;温度输出值及其百位、十位、个位和小数位值inttemp_set,temp_set_l;温度上限及下限值(有正负分)uinttemp_set_zhi,temp_set_l_zhi;温度上下限值uintkeynum;按键的值intt_zhi;DS18B20温度值(有正负分)bitkeyup;bitflag,flag4,temp_mo

4、d;bitflag_zong;voiddelay_18b20(uinti)18b20延时函数{while(i--);}voiddelayms(uintz)1ms延时函数{uintx;uchary;for(x=z;x>0;x--)for(y=123;y>0;y--);}voidclose_led()关闭164{uchari;for(i=0;i<8;i++){LEDCLK=0;LEDDIN=1;_nop_();LEDCLK=1;}}voidWrite_com(ucharcom)LCD写指令函数{lcd_rs=0;lcd_date=com;d

5、elayms(2);lcd_en=1;delayms(2);lcd_en=0;}voidWrite_dat(uchardat)LCD写数据函数{lcd_rs=1;lcd_date=dat;delayms(2);lcd_en=1;delayms(2);lcd_en=0;}voidRead_Key()//**键值读取函数**//{keytemp<<=1;if(Key_Input==1){keytemp++;}}voidkeyscan()//键值确认函数{if(keytemp==0xff){keyup=1;//按键已经放开keyback=0;

6、//清除按键备份值keyval=0;//清除按键存放单元}elseif(keytemp==keyback&&keyup==1)两次的检测的值一样且按键已经放开{keyval=keytemp;//存放按键值keyup=0;//按下按键keyback=0;//清除按键备份值}else{keyback=keytemp;}}voidKey_job()//**键值工作程序**//{switch(keyval){case0x7f:{if(temp_mod==0)模式0:上限温度加0.1{temp_set++;}if(temp_mod==1)模式1:

7、下限温度加0.1{temp_set_l++;}keynum=1;keyval=0;break;}case0xbf:{if(temp_mod==0)模式0:上限温度减0.1{temp_set--;}if(temp_mod==1)模式1:下限温度减0.1{temp_set_l--;}keynum=2;keyval=0;break;}case0xdf:{if(temp_mod==0)模式0:上限温度加1{temp_set=temp_set+10;}if(temp_mod==1)模式1:下限温度加1{temp_set_l=temp_set_l+

8、10;}keynum=3;keyval=0;break;}case0xef:{if(temp_mod==0)模式0:上限温度减1{temp_set=temp_set-10;}if(temp_mod==1)模

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。