基于单片机设计的智能温度报警器(4)
/***********************18b20初始化函数*****************************/ void init_18b20() { }
/*************写18b20内的数据***************/ void write_18b20(uchar dat) { }
/*************读取18b20内的数据***************/ uchar read_18b20() {
uchar i,value; for(i=0;i<8;i++) {
dq = 0;
//把总线拿低读时间隙开始
value >>= 1; //读数据是低位开始 uchar i; for(i=0;i<8;i++) { }
//写数据是低位开始 //把总线拿低写时间隙开始
dq = 0; bit q; dq = 1; dq = 0; dq = 1; q = dq; dq = 1;
//把总线拿高 //给复位脉冲 //750us
//把总线拿高 等待 //110us
//读取18b20初始化信号 //200us
//把总线拿高 释放总线
delay_uint(1); //15us delay_uint(80); delay_uint(10); delay_uint(20);
dq = dat & 0x01; //向18b20总线写数据了 delay_uint(5); // 60us dq = 1; dat >>= 1;
//释放总线
}
}
dq = 1; if(dq == 1)
//释放总线 //开始读写数据
value |= 0x80;
delay_uint(5); //60us 读一个时间隙最少要保持60us的时间
//返回数据
return value;
/*************读取温度的值 读出来的是小数***************/ uint read_temp() { }
/*************定时器0初始化程序***************/ void time_init() {
EA = 1;
//开总中断
value <<= 8; value |= low; value *= 0.625; return value;
//把温度的高位左移8位
//把读出的温度低位放到value的低八位中 //转换到温度值 小数 //返回读出的温度 带小数
low = read_18b20();
//读温度低字节
value = read_18b20(); //读温度高字节 init_18b20(); EA = 0;
write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA = 1;
//初始化18b20
uint value; uchar low;
//在读取温度的时候如果中断的太频繁了,就应该把中断给
关了,否则会影响到18b20的时序
init_18b20();
//初始化18b20
write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50);
//500us
}
TMOD = 0X01; ET0 = 1; TR0 = 1;
//定时器0、定时器1工作方式1 //开定时器0中断 //允许定时器0定时
/****************独立按键处理函数************************/ void key() {
static uchar key_new = 0,key_old = 0,key_value = 0; if(key_new == 0) { } else {
if((P2 & 0x0f) != 0x0f) {
key_value = 0; key_new = 0;
flag_lj_en = 1; //连加使能
zd_break_en = 1; //自动退出设置界使能 zd_break_value = 0; //自动退出设置界变量清零 key_value ++; //按键按下的时候 key_value = 0; else
if(key_value >= 7) { }
write_eepom(); key_value = 0; key_new = 1; flag_lj_en = 0; flag_value = 0;
//关闭连加使能
//清零
flag_lj_3_en = 0; //关闭3秒后使能
//按键松开的时候做松手检测
if((P2 & 0x0f) == 0x0f)
key_value ++; key_value = 0; else
if(key_value >= 10)
}
}
}
key_time = 0;
key_can = 20; if(key_500ms == 1) { }
if((key_new == 0) && (key_old == 1)) { }
switch(P2 & 0x0f) { }
case 0x0e: key_can = 4; break; case 0x0d: key_can = 3; break; case 0x0b: key_can = 2; break; case 0x07: key_can = 1; break;
//得到k1键值 //得到k2键值 //得到k3键值 //得到k4键值
key_500ms = 0; key_new = 0; key_old = 1;
key_old = key_new;
/****************按键处理数码管显示函数***************/ void key_with() {
if(key_can == 4) {
menu_1 ++; if(menu_1 >= 3) { }
if(menu_1 == 0) { }
if(menu_1 == 1)
write_com(0x0c); //关闭光标 menu_1 = 0;
}
{ }
if(menu_1 == 2) { }
menu_shudu = 20;
//设置高温报警
write_sfm3_18B20(2,10,t_low);
write_com(0x80+0x40+10); //将光标移动到秒个位 write_com(0x0f); //显示光标并且闪烁 write_sfm3_18B20(2,2,t_high);
write_com(0x80+0x40+2); //将光标移动到秒个位 write_com(0x0f); //显示光标并且闪烁
if(menu_1 == 1) {
if(key_can == 3) { }
if(key_can == 2) {
if(flag_lj_3_en == 0)
t_high -- ;
//按键按下未松开自动加三次
else
t_high -= 10; //按键按下未松开自动减三次之后每次自动减10 t_high = t_low + 1; if(t_high <= t_low)
write_sfm3_18B20(2,2,t_high); if(flag_lj_3_en == 0)
t_high ++ ;
//按键按下未松开自动加三次
else
t_high += 10; //按键按下未松开自动加三次之后每次自动加10 t_high = 990; if(t_high > 990)
write_sfm3_18B20(2,2,t_high);
write_com(0x80+0x40+2); //将光标移动到秒个位 write_com(0x0f); //显示光标并且闪烁
…… 此处隐藏:1137字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




