文档详情

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

发布:2017-02-20约1.02万字共18页下载文档
文本预览下载声明
武夷学院实验报告 课程名称:单片机及接口技术实验 项目名称:LCD显示的温度报警器 姓名:_吴锦生_ 专业:_10电信_ 班级:_1班_ 学号_20104081001_实验预习部分:设计要求 设计一个温度测量控制系统,以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,设计一个结构简单、测温准确、具有一定控制功能的智能温度控制器。功能要求如下:增加温度报警功能,可以通过按键设置一个报警温度,当用DS18B20测得的温度超过预设值,用蜂鸣器报警。实验程序#includereg52.h#includeintrins.h#include absacc.h#define uint unsigned int#define uchar unsigned char#define lcd_date P0 LCD并行数据传输端口定义sbit LEDCLK=P3^4; 164时钟输入端sbit LEDDIN=P2^3; 164数据输入端sbit Key_Input=P1^0; 按键输出端sbit lcd_en=P2^2; LCD功能端口定义sbit lcd_rs=P2^4;sbit lcd_rw=P2^3;sbit ACC0=ACC^0;sbit ACC7=ACC^7;sbit DQ=P3^2; 温度输出端sbit sound=P1^2; 蜂鸣器输入端uchar keytemp=0; uchar keyval=0;uchar keyback; KEY备份值bit tflag; 温度正负标志位uint tvalue,bai,shi,ge,xiao; 温度输出值及其百位、十位、个位和小数位值int temp_set,temp_set_l; 温度上限及下限值(有正负分)uint temp_set_zhi,temp_set_l_zhi; 温度上下限值uint keynum; 按键的值int t_zhi; DS18B20温度值(有正负分)bit keyup;bit flag,flag4,temp_mod; bit flag_zong;void delay_18b20(uint i) 18b20延时函数{ while(i--);}void delayms(uint z) 1ms延时函数{ uint x; uchar y; for(x=z;x0;x--) for(y=123;y0;y--);}void close_led() 关闭164{ uchar i; for(i=0;i8;i++){ LEDCLK=0;LEDDIN=1;_nop_();LEDCLK=1;}}void Write_com(uchar com) LCD写指令函数{ lcd_rs=0;lcd_date=com;delayms(2); lcd_en=1;delayms(2);lcd_en=0;}void Write_dat(uchar dat) LCD写数据函数{lcd_rs=1;lcd_date=dat;delayms(2); lcd_en=1;delayms(2);lcd_en=0;}void Read_Key() //**键值读取函数**//{ keytemp=1; if(Key_Input==1) {keytemp++;}}void keyscan() //键值确认函数 { if(keytemp==0xff) { keyup=1; //按键已经放开 keyback=0; //清除按键备份值 keyval=0; //清除按键存放单元 } else if(keytemp==keybackkeyup==1)两次的检测的值一样且按键已经放开 { keyval=keytemp; //存放按键值 keyup=0; //按下按键 keyback=0; //清除按键备份值 } else { keyback=keytemp; }}void Key_job() //**键值工作程序**//
显示全部
相似文档