《2022年DSB温度传感器电路设计方案.docx》由会员分享,可在线阅读,更多相关《2022年DSB温度传感器电路设计方案.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习关键词:单片机 AT89C51;温度传感器 DS18B20;数码显示实现功能:可以测得的温度范畴0125 度 并显示一位小数有报警功能当 15 度T30 度时 红灯亮T15 度时 绿灯亮有调整上下限温度功能按下相应按钮可以调整报警温度范围元件清单AT89C51单片机芯片1块DS18B20 温度传感器1个4 位共阳极数码管1块红色发光二极管绿色发光二极管1个1个八分之一 W1K 电阻10个1W4.7K 电阻1个弹性开关3个本方案设计的系统由单片机系统、数字温度传感器、LED 显示模块、按键把握模块、温度报警模块组成,
2、其总体架构如下图1.欢迎下载精品学习资源测温电路按键输入电路DS18B20性能时 钟 、 复 位 电图 1 系统单总体方框图片机驱动电路显示电路报警电路欢迎下载精品学习资源1 特别的单线接口仅需一个端口引脚进行通信2 简洁的多点分布应用欢迎下载精品学习资源3 无需外部器件4 可通过数据线供电5 零待机功耗6 测温范畴 -55+125,以 0.5 递增7 可编程的辨论率为912 位,对应的可辨论温度分别为0.5 、0.25 、0.125 和 0.0625 8 温度数字量转换时间 200ms, 12 位辨论率时最多在 750ms内把温度转换为数字9 应用包括温度把握、工业系统、消费品、温度计和任何
3、热感测系统10 负压特性:电源极性接反时,传感器不会因发热而烧毁, 但不能正常工作;DS18B20外形及引脚说明欢迎下载精品学习资源GND:地图 3DS18B20外形及引脚欢迎下载精品学习资源DQ:单线运用的数据输入 / 输出引脚VD:可选的电源引脚储备在 18B20 的两个 8 比特的 RAM 中,二进制中的前面5 位是符号位,假如测得的温度大于0, 这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;假如温度小于0,这 5 位为 1,测到的数值需要取反加1 再乘于 0.0625 即可得到实际 温度; 例如欢迎下载精品学习资源+125的数字输出为07D0H ,实际温度 =
4、07D0H*0.0625=2000*0.0625=125;例如 -55 的数字输出为 FC90H ,就应先将 11 位数据位取反加1得 370H (符号位不变,也不作运算),实际温度 =370H*0.0625=880*0.0625=55;可见其中低四位为小数位;欢迎下载精品学习资源AT89C51DS18B20温度数据表欢迎下载精品学习资源AT89C51 单片机 Atmel 公司的生产的 AT89C51 单片机是一种低功耗/低电压、高性能的 8 位单片机,内部除 CPU 外,仍包括 128 字节 RAM , 4 个 8 位并行 I/O 口, 5 个中断优先级, 2 层中断嵌套中断, 2 个 16
5、 位可编程定时计数器,片内集成4K 字节可转变程序Flash 储备器,具有低功耗,速度快,程序擦写便利等优点,完全满足本系统设计需要;单片机 P22 口作为 ADC0809 转换数据的输入端;P0 的输出信号作为数码管的显示, P2.4P2.7 就作为个数码管的位选信号把握, P20, P21,作为报警装置的输出;欢迎下载精品学习资源#include #define uint unsigned int仿真图源程序欢迎下载精品学习资源#define uchar unsigned char /宏定义sbit p2_4=P24;sbit p2_5=P25;sbit p2_6=P26;sbit dp=
6、P07;欢迎下载精品学习资源sbit p2_7=P27;sbit DQ=P22;/定义 DS18B20 总线 I/Osbit SET=P31;/定义选择调整报警温度上限和下限( 1 为上限, 0 为上限)/*P3.2 和 P3.3 为调整温度报警增加键和削减键*/sbit HONGDENG=P20 ; sbit LVDENG=P21;/定义亮灯signed char m;/温度值全局变量bit sign=0;/外部中断状态标志signed char shangxian=30;/上限报警温度,默认值为 30signed char xiaxian=15;/下限报警温度,默认值为 15 uchar
7、code LEDData=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf ;/*延时子程序 */ void Delayuint i while i- ; /*初始化 DS18B20*/void Init_DS18B20void unsigned char x=0;DQ=1;Delay8;/稍作延时DQ=0;/单片机将 DQ 拉低Delay80;/精确延时,大于 480us DQ=1;/拉高总线Delay14;x=DQ ;/稍作延时后 假如 X=0就初始化成功, X=1 就初始化失败Delay20; /*读一个字节 */un
8、signed char ReadOneCharvoid unsigned char i=0;unsigned char dat=0;for i=8 ;i0;i-DQ=0;/给脉冲信号dat=1;DQ=1;/给脉冲信号ifDQ dat|=0x80;Delay4; returndat; /*写一个字节 */void WriteOneCharunsigned char dat unsigned char i=0;for i=8 ; i0; i- DQ=0;欢迎下载精品学习资源DQ=dat&0x01 ;Delay5; DQ=1;dat=1;void Tmpchangevoid/发送温度转换命令Init
9、_DS18B20;WriteOneChar0xCC;/跳过读序号列号的操作WriteOneChar0x44;/启动温度转换/*读取温度 */unsigned int ReadTemperaturevoid unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Tmpchange;Init_DS18B20;WriteOneChar0xCC;/跳过读序号列号的操作WriteOneChar0xBE;/读取温度寄存器a=ReadOneChar;/读低 8 位b=ReadOneChar;/读高 8 位t=b; tshangxian
10、 HONGDENG=1 ; / 温度高于范畴红灯亮else HONGDENG=0;ifmxiaxian LVDENG=1 ;/温度低于范畴绿灯亮elseLVDENG=0 ;p2_4=0;p2_5=0;p2_6=0;p2_7=0;P0 =LEDDatad;/显示小数点后一位p2_4=1;p2_5=0;p2_6=0;p2_7=0;Delay300;p2_4=0;p2_5=0;p2_6=0;p2_7=0;/显示个位P0 =LEDDatac;dp=0;/显示小数点p2_4=0;p2_5=1;p2_6=0;p2_7=0;Delay300;p2_4=0;p2_5=0;p2_6=0;p2_7=0;P0 =L
11、EDDatab;/显示十位p2_4=0;p2_5=0;p2_6=1;p2_7=0;Delay300;p2_4=0;p2_5=0;p2_6=0;p2_7=0;P0 =LEDDataa;/显示百位p2_4=0;p2_5=0;p2_6=0;p2_7=1;Delay300;p2_4=0;p2_5=0;p2_6=0;p2_7=0;/关闭显示disptiaozheng uchar f,g,j,k;f=shangxian/10;g=shangxian%10;j=xiaxian/10 ;k=xiaxian%10;p2_4=0;p2_5=0;p2_6=0;p2_7=0;P0 =0xc0;/显示 0p2_4=1;
12、p2_5=0;p2_6=0;p2_7=0;Delay200;p2_4=0;p2_5=0;p2_6=0;p2_7=0;欢迎下载精品学习资源P0 =0xc0;/显示 0p2_4=0;p2_5=1;p2_6=0;p2_7=0;Delay200;p2_4=0;p2_5=0;p2_6=0;p2_7=0;ifSET=1 P0 =LEDDatag;dp=0;/显示上限温度个位else P0 =LEDDatak ;dp=0;p2_4=0;p2_5=0;p2_6=1;p2_7=0;Delay200;p2_4=0;p2_5=0;p2_6=0;p2_7=0;ifSET=1 P0 =LEDDataf ;/显示上限温度
13、十位else iff=0 P0=0x00 ;/不显示下限温度十位else P0 =LEDDataj;/显示下限温度十位p2_4=0;p2_5=0;p2_6=0;p2_7=1;Delay200;p2_4=0;p2_5=0;p2_6=0;p2_7=0;/关闭显示Delay20; /*外部中断 0 服务程序 */ void int0void interrupt 0 EX0=0;/关外部中断 0sign=1;ifSET=1 shangxian+;else xiaxian+;Delay500;EX0=1;/*外部中断 1 服务程序 */ void int1void interrupt 2 EX1=0;/
14、关外 部中断 1 sign=1;ifSET=1 shangxian-;else xiaxian-;Delay500;EX1=1;/*主函数 */ void mainvoid uint z;欢迎下载精品学习资源IT0=1 ;IT1=1 ;EX0=1;EX1=1;EA=1;ReadTemperature; HONGDENG=0 ; LVDENG=0 ;forz=0;z100;z+ Disp_init ; while1 Disp_Temperature;ifsign=1 forz=0 ;z300;z+ disptiaozheng;sign=0; 版权申明本文部分内容,包括文字、图片、以及设计等在网上
15、搜集整理;版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益;除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳;Users may use the contents or services
16、 of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright欢迎下载精品学习资源law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its releva
17、nt obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任;Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.欢迎下载
限制150内