欢迎来到天天文库
浏览记录
ID:871216
大小:933.53 KB
页数:14页
时间:2017-09-22
《基于at89s52的ds18b20温度测量、报警系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、·绿色·蓝色·红色·桃红色·黑色·褐色2011年4月13日14:51:35星期三高级搜索
2、网站地图
3、TAG标签
4、RSS订阅【设为首页】【加入收藏】·主页·基础知识·电子元件·电源电路·音频电路·安防电路·家电电路·控制电路·遥控电路·单片机类·电子制作·店铺窗体顶端搜索搜索窗体底端热门标签:·电路·功率·输出·开关·光电·振荡·电·天线·指示·材料-窗体顶端窗体底端自定义搜索当前位置:主页>电子制作>基于AT89S52的DS18B20温度测量、报警系统时间:2010-11-0212:32来源:益
5、奇电子作者:益奇电子点击:82次基于AT89S52的DS18B20温度测量、报警系统基于AT89S52的DS18B20温度测量、报警系统 电源电路:外接6---12V直流电通过CON3接入,C5滤波,U3稳压,C4滤波输出5V电压为整个电路供电。时钟电路:采用内部时钟方式产生CPU所需的操作时序,定时元件Y1用12MHz;电容C2,C3选33pF。键盘输入:由P3.1---P3.3输入,其中S1为模式切换;S2为温度减;S3为温度增。复位电路:由C1和R1组成上电复位电路。
6、an>
7、void){ TMOD=0x1; TH0=0x3c; TL0=0xb0; //50ms(晶振12M)}/*****定时器0中断服务程序*****/voidtimer0(void)interrupt1{ TH0=0x3c; TL0=0xb0; x++;}/*****外部中断0服务程序*****/voidint0(void)interrupt0{ EX0=0; //关外部中断0 if(DEC==0&&set_st==1) { shangxian--; if(shangxian8、xian)shangxian=xiaxian; } elseif(DEC==0&&set_st==2) { xiaxian--; if(xiaxian<0)xiaxian=0; }}/*****外部中断1服务程序*****/voidint1(void)interrupt2{ EX1=0; //关外部中断1 if(ADD==0&&set_st==1) { shangxian++; if(shangxian>99)shangxian=99; } elseif(ADD==0&&set_st==9、2) { xiaxian++; if(xiaxian>shangxian)xiaxian=shangxian; } }/*****读取温度*****/voidcheck_wendu(void){ uinta,b,c; c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差 a=c/100; //计算得到十位数字 b=c/10-a*10; //计算得到个位数字 m=c/10; //计算得到整数位 n=c-a*100-b*10; //计算得到10、小数位 if(m<0){m=0;n=0;} //设置温度显示上限 if(m>99){m=99;n=9;} //设置温度显示上限 }.............程序下载用KEILC51编译后烧录进AT89S52即可。实物图: DS18B20特写:显示温度:再上张PCB图: 电源电路:外接6---12V直流电通过CON3接入,C5滤波,U3稳压,C4滤波输出5V电压为整个电路供电。时钟电路:采用内部时钟方式产生CPU所需的操作时序,定时元件Y1用12MHz;电容C2,C3选33pF。键11、盘输入:由P3.1---P3.3输入,其中S1为模式切换;S2为温度减;S3为温度增。复位电路:由C1和R1组成上电复位电路。数据输入:DS18B20的数据由P3.6口输入,J2是外接传感器的插座,可通过S5来选择。报警输出:P3.7口输出,由Q5驱动LS1蜂鸣器发声,CON2是外接报警执行器件的插座。显示电路:S4是4位LED数码管,由P1口输出扫描选通信号;由P2口输出数字段码信号。-顶一下(3)100.00%踩一下(0)0.00%------分隔线---------------------
8、xian)shangxian=xiaxian; } elseif(DEC==0&&set_st==2) { xiaxian--; if(xiaxian<0)xiaxian=0; }}/*****外部中断1服务程序*****/voidint1(void)interrupt2{ EX1=0; //关外部中断1 if(ADD==0&&set_st==1) { shangxian++; if(shangxian>99)shangxian=99; } elseif(ADD==0&&set_st==
9、2) { xiaxian++; if(xiaxian>shangxian)xiaxian=shangxian; } }/*****读取温度*****/voidcheck_wendu(void){ uinta,b,c; c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差 a=c/100; //计算得到十位数字 b=c/10-a*10; //计算得到个位数字 m=c/10; //计算得到整数位 n=c-a*100-b*10; //计算得到
10、小数位 if(m<0){m=0;n=0;} //设置温度显示上限 if(m>99){m=99;n=9;} //设置温度显示上限 }.............程序下载用KEILC51编译后烧录进AT89S52即可。实物图: DS18B20特写:显示温度:再上张PCB图: 电源电路:外接6---12V直流电通过CON3接入,C5滤波,U3稳压,C4滤波输出5V电压为整个电路供电。时钟电路:采用内部时钟方式产生CPU所需的操作时序,定时元件Y1用12MHz;电容C2,C3选33pF。键
11、盘输入:由P3.1---P3.3输入,其中S1为模式切换;S2为温度减;S3为温度增。复位电路:由C1和R1组成上电复位电路。数据输入:DS18B20的数据由P3.6口输入,J2是外接传感器的插座,可通过S5来选择。报警输出:P3.7口输出,由Q5驱动LS1蜂鸣器发声,CON2是外接报警执行器件的插座。显示电路:S4是4位LED数码管,由P1口输出扫描选通信号;由P2口输出数字段码信号。-顶一下(3)100.00%踩一下(0)0.00%------分隔线---------------------
此文档下载收益归作者所有