




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字温度计的设计与制作一、课程设计任务要求1、课题来源:老师和学生共同拟定。2、类型:实做。3、目的和意义:掌握单片机的编程。4、基本要求:设计和制作一个温度显示器,可用键盘设置温度的上限和下限,测量的温度高于或低于设置的温度时,温度显示器报警。5、完成时间:2011年3月9日。二、方案论证选择由于用汇编语言编程比较麻烦,不容易修改。我们仍然选择使用单片机C语言进行编程,设计思路如下:1、计时方案 同样利用AT89C52单片机内部的定时器计数器进行中断定时。(1)、计数初值计算把定时器设为工作方式2,定时时间为0.25ms,则计数溢出4000次即得到时钟计时最小单位-秒,而4000次计数可用软件方法实现。假设使用TC0,方式2,0.25ms定时,f(osc)=12MHZ. 则初值X满足(28-X)*112MHZ*12us=250usX=6-(0110)-(0006h)(2)、 采用中断方式进行溢出次数累计,计数满4000次为秒计时(1s)。2、键盘显示方案 AT89C52的P0口和P2口外接由8个LED数码管(LED7LED0)构成的显示器,用P0口作LED的段码输出口,P2口作8个LED数码管的位控输出线,在内部RAM中设置显示缓冲区共8个单元。P1口外接4个按键set1,set2,set3,set4构成键盘电路,可以调节测温的上下限。复位电路由按钮,电容,电源接于AT89C52的9脚。3、利用DS18B20数字温度计来组成一个测温系统。只要求一个端口即可实现通信,不需要任何外部器件即可实现测温,通过程序编译可实现温度上、下限报警设置。4、报警电路由蜂鸣器、三极管、电阻组成,超低温报警功能。三、原理设计1、基本工作原理 基于AT89C52单片机的数字温度计由AT89C52单片机控制器、电源、显示电路、温度传感器、复位电路、按键电路、报警电路和时钟电路组成,框图如系统框图所示。电源给整个电路供电,报警系统提示18B20接通工作,将温度值传给单片机,CPU判断是否在温度限值内,在则显示温度,不在则蜂鸣器报警。2、DS18B20的引脚说明及工作原理:DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 (1)DS18B20的内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下: (2)DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用在寄生电源下,也可以向器件提供电源。3VDD可选择VDD的引脚。当工作于寄生电源时,此引脚必须接地。 (3)、DS18B20的使用方法由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。a、DS18B20的复位时序b、DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。c、DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。3、元件清单芯片:AT89C52 1片、74LS245 1片、DS18B20 1片;74LS04 一片;电阻:500R 8个、10K 5个、4.7K 1个、1K 1个;电容:30pF 2个、10uF 1个;发光二极管:1个;开关 2个;晶振:12MHZ 1个;按钮: 5个;下载口:1个;四位一体共阳数码管:2个;蜂鸣器:1个;三极管:S8550 1个;排针、排线:若干4、系统组成框图如下:电源显示电路AT89C52控制器复位电路报警电路按键电路时钟电路DS18B205、单元电路框图如下:(1)、复位电路手动复位 (2)、晶振电路 6、电路仿真连接图如下:7、程序流程图如下所示:调用显示子程序1s到?初次上电电发温度转换开始命令发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?移入温度暂存器结束初始化读出温度值温度计算处理显示数据刷新 主程序流程图 读温度流程图四、方案实现及测试(或调试)1、 C语言源程序如下所示:#ifndef _DELAY_H_#define _DELAY_H_/*- uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t);/*- mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振12M,精确延时请使用汇编-*/void DelayMs(unsigned char t);#endif#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#define uchar unsigned char#define uint unsigned int;/*- 端口定义-*/sbit DQ=P27;/ds18b20 端口/*- 函数声明-*/unsigned int ReadTemperature(void);bit Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat);#endif/*-DS18b20数码管显示 超温报警*/#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include 18b20.h#include delay.h#define DataPort P0 /定义数据端口 程序中遇到DataPort 则用P0 替换#define CtrlPort P2 /定义位选端口#define KeyPort P1 /按键/#define OVERTEMP 29 /定义超温报警数值/#define LOWTEMP 26 /定义超温报警数值sbit bz=P37;bit ReadTempFlag;/定义读时间标志char OVERTEMP;char LOWTEMP;unsigned char code DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09/ 显示段码值09unsigned char code WeiMa=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/分别对应相应的数码管点亮,即位码unsigned char TempData8; /存储显示值的全局变量void Display(unsigned char FirstBit,unsigned char Num);/数码管显示函数void Init_Timer0(void);/定时器初始化unsigned char KeyScan(void);/*- 主函数-*/void main (void) unsigned int TempH,TempL,temp;unsigned char num;Init_Timer0();bz=1;while (1) /主循环 num=KeyScan(); switch(num) case 1:if(OVERTEMP-55)OVERTEMP-;break;case 3:if(LOWTEMP-55)LOWTEMP-;break;default:break; if(ReadTempFlag=1) ReadTempFlag=0; temp=ReadTemperature(); if(temp&0x8000) TempData0=0x40;/负号标志 temp=temp; / 取反加1 temp +=1; else TempData0=0; TempH=temp4; TempL=temp&0x0F; TempL=TempL*6/10;/小数近似处理 if(TempHOVERTEMP)/如果超温则提示 bz=1; /TempData0=0x76;/显示Helse if(TempL0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; DelayUs2x(25); return(dat);/*- 写入一个字节-*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; DelayUs2x(25); DQ = 1; dat=1; DelayUs2x(25);/*- 读取温度-*/unsigned int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换DelayMs(10);Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b=8;t=a+b;return(t);2、 电路调试图如下所示: (1)温度上下限值:(2)调节后为:(3)测得的温度为:3、调试过程由于此电路与数字时钟电路共用一个单片机,驱动显示部分也是完全一样的,唯一的区别就是多了一个DS18B20温度计、蜂鸣器及驱动蜂鸣器报警的三极管S8550。电路有上一个电路做基础,焊接上没有太多问题,要变动的就是程序了,程序修改完毕无误后直接下载到单片机上,通电调试了几次就成功了!其他的按键操作也都在程序中做了修改,还算顺利,功能实现的也还行。五、课程小结 这一课题的电路是在上一课题的基础上加了温度传感器部分和蜂鸣器部分,其他都是在程序中进行改动的。单片机部分,数码管驱动及显示部分与数字时钟一样。这一课题有上一课题做基础,自然完成的也比较顺利。虽然我们的电路跟其他组相比有点乱,取得的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南通师范高等专科学校《室内设计原理》2023-2024学年第二学期期末试卷
- 湖南省株洲市攸县2025届三下数学期末统考模拟试题含解析
- 山西省吕梁市汾阳市2025届初三下学期升级统测英语试题含答案
- 江苏如皋市江安镇中心中学2024-2025学年高三第三次适应性训练物理试题含解析
- 石嘴山工贸职业技术学院《中国传统文化》2023-2024学年第二学期期末试卷
- 西安财经大学行知学院《外科学(外专科)》2023-2024学年第二学期期末试卷
- 中国海洋大学《医疗仪器设计》2023-2024学年第二学期期末试卷
- 四川华新现代职业学院《工程热力学D》2023-2024学年第二学期期末试卷
- 南充职业技术学院《心灵导航》2023-2024学年第二学期期末试卷
- 帐户的分类的类型及含义
- 2022年10月自考00078银行会计学试题及答案含解析
- 鲜食玉米简介介绍
- 商业综合体投资计划书
- 三叉神经痛患者的护理
- 语文学业质量监测-国测四年级模拟试题(A)
- 亚朵服务流程
- 手术分级管理制度
- 地下停车场预算报价
- 企业质量管理体系的建设
- 治安案件派出所调解书范本
- 绘本故事-我喜欢书
评论
0/150
提交评论