

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 封面 作者: PanHongliang 仅供个人学习 有报警功能 当15度T30度时 两个都灯不亮 关键词:单片机AT89C51;温度传感器DS18B20;数码显示 实现功能:可以测得的温度范围 0125度 并显示一位小数 (默认上限温度为30下限温度为15) 红灯亮 T30度时 有调整上下限温度功能 围 元件清单 AT89C51单片机芯片 DS18B20温度传感器 4位共阳极数码管 红色发光二极管 绿色发光二极管 八分之一 W 1K电阻 1W 4.7K电阻 弹性开关 块、按键控制模块、温度报警模块组成,其总体架构如下图 1. 、数字温度传感器、 LED显示模 3无需外部器件 4可通过数据线
2、供电 5 零待机功耗 6测温范围-55+125C,以0.5 C递增 7 可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5 C、0.25 C、0.125 C和 0.0625 C 8 温度数字量转换时间 200ms, 12 位分辨率时最多在 750ms 内把温度转换为数字 9 应用包括温度控制、工业系统、消费品、温度计和任何热 感测系统 10 负压特性:电源极性接反时,传感器不会因发热而烧毁, 但不能正常工作。 DS18B20外形及引脚说明 图3DS18B2C外形及引脚 GND地 DQ单线运用的数据输入/输出引脚 VD可选的电源引脚 存储在 18B20 的两个 8比特的 RAM 中,二
3、进制中的前面 5 位是 符号位,如果测得的温度大于 0, 这 5位为 0,只要将测到的数值 乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5位为 1,测 到的数值需要取反加 1 再乘于 0.0625 即可得到实际 温度。 例如 + 125 C的数字输出为 07D0H , 实际温度=07D0H*0.0625=2000*0.0625=125 C。 例如-55 C的数字输出为 FC90H,则应先将11位数据位取反加 1 得 370H (符号位不变,也不作运算), 实际温度=370H*0.0625=880*0.0625=55 C。 可见其中低四位为小数位。 DS18B2C温度数据表 AT
4、89C51 AT89C51 单片机 Atmel 公司的生产的 AT89C51 单片机是一种低 功耗/低电压、高性能的8位单片机,内部除CPU外,还包括128字 节 RAM , 4 个 8 位并行 I/O 口, 5 个中断优先级, 2 层中断嵌套中 断, 2 个 16 位可编程定时计数器,片内集成 4K 字节可改变程序 Flash 存储器,具有低功耗,速度快,程序擦写方便等优点,完全满 足本系统设计需要。单片机 P2A2 口作为ADC0809转换数据的输入 端。P0的输出信号作为数码管的显示,P2.4P2.7则作为4个数码 管的位选信号控制,P2P, P2A1,作为报警装置的输出。 仿真图 源程
5、序 #include #define uint unsigned int #define uchar unsigned char /宏定义 sbit p2_4=P2A4o sbit p2_5=P2A5o sbit p2_6=P2A6。 sbit dp=PQA7o sbit p2_7=P2A70 sbit DQ=P2A2。 /定义 DS18B20 总线 I/O sbit SET=P3A10 /定义选择调整报警温度上限和 下限(1 为上限, 0为上限) /*P3.2和P3.3为调整温度报警增加键和减少键*/ sbit HONGDENG=P2A00 sbit LVDENG=P2A10 /定义亮灯 s
6、igned char m0 /温度值全局变量 bit sign=00 /外部中断状态标志 signed char shangxian=300 /上限报警温度,默认值为 30 signed char xiaxian=150 /下限报警温度,默认值为 15 uchar code LEDData=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff,0 xbf 0 void Delay(uint i) while( i- ) 0 /* 初始化 DS18B20*/ void Init_DS18B20(void) unsign
7、ed char x=00 DQ=1 0 Delay(20)0 /* 读一个字节 */ unsigned char ReadOneChar(void) unsigned char i=00 unsigned char dat=00 for (i=80 i00 i-) DQ=00 dat=1 0 DQ=1 0 if(DQ) dat|=0 x800 Delay(4)0 return(dat)0 /* 写一个字节 */ void WriteOneChar(unsigned char dat) unsigned char i=00 for (i=80 i00 i-) DQ=00/* 延时子程序 */ D
8、elay(8)0 DQ=00 Delay(80)0 DQ=1 0 Delay(14)0 x=DQ 0 则初始化成功, X=1 则初始化失败 /稍作延时 /单片机将 DQ 拉低 /精确延时,大于 480us /拉高总线 /稍作延时后 如果 X=0 /给脉冲信号 /给脉冲信号 DQ=dat&0 x01 。 Delay(5)。 DQ=1。 dat=1。 void Tmpchange(void) Init_DS18B20()。 /发送温度转换命令WriteOneChar(0 xCC)。 WriteOneChar(0 x44)。 /跳过读序号列号的操作 / 启动温度转换/* 读取温度 */uns
9、igned int ReadTemperature(void) unsigned char a=0。 unsigned char b=0。 unsigned int t=0。 float tt=0 。 Tmpchange()。 Init_DS18B20()。 WriteOneChar(0 xCC)。 WriteOneChar(0 xBE)。 a=ReadOneChar(。) b=ReadOneChar()。 t=b。 tshangxian ) HONGDENG=1 。 / 温度高于范围红灯亮 else HONGDENG=0。 if(mxiaxian) LVDENG=1 。 /温度低于范围绿灯亮
10、 else LVDENG=0 。 p2_4=0。 p2_5=0。 P0 =LEDDatad 。 p2_4=1。 p2_5=0。 Delay(300)。 p2_4=0。 p2_5=0。 P0 =LEDDatac 。 dp=0。 示小数点 p2_4=0。 p2_5=1。 Delay(300)。 p2_4=0。 p2_5=0。 P0 =LEDDatab 。 p2_4=0。 p2_5=0。 Delay(300)。 p2_4=0。 p2_5=0。 P0 =LEDDataa。 p2_4=0。 p2_5=0。 Delay(300)。 p2_4=0。 p2_5=0。 disptiaozheng() uchar
11、 f,g,j,k。 f=shangxian/10。 g=shangxian%10。 j=xiaxian/10 。 k=xiaxian%10。 p2_4=0。 p2_5=0。 P0 =0 xc0。 p2_4=1。 p2_5=0。 Delay(200)。 p2_4=0。 p2_5=0。 p2_6=0o p2_7=0o p2_6=0o p2_7=0o p2_6=0o p2_7=0o p2_6=0o p2_7=0o p2_6=0o p2_7=0o p2_6=1o p2_7=0o p2_6=0o p2_7=0o p2_6=0o p2_7=1o Disp_Temperature() uint a,b,c,
12、d,e。 e=ReadTemperature(。) a=e/1000。 b=e/100-a*10。 d=e%10。 c=(e%100)/10。 /显示小数点后一位 / 显示个位 /显 /显示十位 / 显示百位 /关闭显示 / 显示 0 p2_6=0o p2_7=0o p2_6=0o p2_7=0o p2_6=0o p2_7=0o p2_6=0o p2_7=0o P0 =0 xc0。 p2_4=0。 p2_5=1。 p2_6=0。 p2_7=0。 Delay(200)。 p2_4=0。 p2_5=0。 p2_6=0。 p2_7=0。 if(SET=1) P0 =LEDDatag 。 dp=0。
13、else P0 =LEDDatak 。 dp=0。 p2_4=0。 p2_5=0。 p2_6=1。 p2_7=0。 Delay(200)。 p2_4=0。 p2_5=0。 p2_6=0。 p2_7=0。 if(SET=1) P0 =LEDDataf 。 else if(f=0) P0=0 x00 。 else P0 =LEDDataj 。 p2_4=0。 p2_5=0。 p2_6=0。 p2_7=1。 Delay(200)。 p2_4=0。 p2_5=0。 p2_6=0。 p2_7=0。 Delay(20)。 /* 外部中断 0服务程序 */ void int0(void) interrupt
14、 0 EX0=0。 sign=1。 if(SET=1) shangxian+ 。 else xiaxian+。 Delay(500)。 EX0=1 。 /* 外部中断 1 服务程序 */ void int1(void) interrupt 2 EX1=0。 断1 sign=1。 if(SET=1) shangxian-。 else xiaxian-。 Delay(500)。 EX1=1 。 /显示 0 /显示上限温度个位 /显示上限温度十位 / 不显示下限温度十位 / 显示下限温度十位 / 关闭显示 / 关外部中断 0 /* 主函数 */void main(void) uint z。/ 关外
15、部中 IT0=1。 IT 1=1。 EX0=1。 EX1=1。 EA=1。 ReadTemperature(。 HONGDENG=0。 LVDENG=0 。 for(z=0。 z if(sign=1) for(z=0。z300。z+) disptiaozhe ng() sign=0。 版权申明 本文部分内容,包括文字、图片、以及设计等在网上搜集整 理。版权为潘宏亮个人所有 This article in eludes some parts, in cludi ng text, pictures, and desig n. Copyright is Pan Hon glia ngs pers o
16、nal own ership. 用户可将本文的内容或服务用于个人学习、研究或欣赏,以及 其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关 法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权 利人的书面许可,并支付报酬。 Users may use the contents or services of this article for pers onal study, research or appreciati on, and other non-commercial or non-profit purposes,
17、but at the same time, they shall abide by the provisions of copyright law and other releva nt laws, and shall not infringe upon the legitimate rights of this website and its releva nt obligees. In addition, when any content or service of this article is used for other purposes, written permission and remun erati on shall be obta ined from the pers on concerned and the releva nt obligee. 转载或引用本文内容必须是以新闻性或资料性公共免费信息为 使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任。 Reproducti on or quotatio n of the
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨国生物样本运输与生物制品研发与生产合作合同
- 2025年中国感应雷避雷器市场调查研究报告
- 2025年三聚氰胺合作协议书
- 2025年中国彩色贴花冰碗市场调查研究报告
- 2025年中国干式电力电容器市场调查研究报告
- 2025年中国多桅柱式平台市场调查研究报告
- 2025年中国塑料购物袋市场调查研究报告
- 2025年中国变频恒压供水节电器市场调查研究报告
- 2025年中国单机除尘机组市场调查研究报告
- 2025年中国升降塔市场调查研究报告
- 2024年甘肃兰州事业单位考试真题
- 2025年导游从业资格通关秘籍
- 中国法院知识产权司法保护状况2024
- 2025年4月《粉尘涉爆重大事故隐患解读》应急部
- 四川省绵阳市2025届高三下学期第三次诊断性测试数学试卷(含答案)
- 外卖配送员工作流程总结
- 新式茶饮产业的技术发展现状与未来创新趋势
- 【国浩律师事务所】2025中国企业出海战略与法律支持需求调研报告
- 2025中国低空经济城市发展指数报告
- 湖南省长沙市岳麓区湖南师范大学附中2025届高三下学期第六次检测化学试卷含解析
- 兰州2025年中国农业科学院兰州畜牧与兽药研究所招聘16人笔试历年参考题库附带答案详解
评论
0/150
提交评论