1、课程设计报告 数字报警温度计的设计 学校:西南石油大学院系: 班级:姓名:学号:- 1 - 1 -设计背景微机相比,单片机全称为单片微型计算机,是在一块半导体的芯片上集成了微机三大部件(CPU,存储器,及输入与输出接口电路) ,和控制器件的特殊功能计算机。单片机主要用于控制方面。由于单片机的集成度高,功能强,通用性好,特别它具有体积小,重量轻,能耗低,价格便宜,抗干扰能力强和使用仿版等方面的优点,是它迅速的得到了推广和应用,目前已经成为测量控制系统中的优良机种和新电子产品中的关键部件,已经在测控领域获得了广泛的应用。不仅如此,现代生活中,多功能的数字温度计能给我们的生活带来很大的方便,支持“一
2、线总线“接口的温度传感器简化了数字温度计的设计,降低了成本;因此这次的课程设计,我选择以美国 MAXIM/DALLAS 半导体公司的单总线温度传感器 DS18B20 为核心,以 ATMEL 公司的 AT89S52 位控制器设计的 AT89S51为控制器设计的 DS18B20 温度传感器结构简单,测温准确,具有一定控制功能的智能温度控制器。同时对通过对本次实验的学习,实践,进一步理解所学的单片机知识和它在实际生活中的应用。而且这次的课程设计不仅仅是单片机的知识,还涉及到模拟电路,数字电路,传感器以及计算机等方面的灵活应用,这样也可以进一步提高自己的动手操作和对各学科知识综合应用的能力。设计方案1
3、. 器件性能分析本次课程设计主要是通过常见的 AT89C51 单片机实现对温度的控制、读取、显示,以及通过 DS18B20 温度传感器实现对温度的测量。系统以 51 单片机为控制核心,加上测温电路,AD 数模转换器,4 位温度数据显示数码管以及外围电源时钟电路组成。传统的温度传感器大多以热敏电阻作为温度传感器,但热敏电阻的可靠性差,准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理,而这需要比较多的外部的硬件的支持,硬件电路复杂(需要用到 A/D转换电路,感温电路) ,软件调试也复杂,制作成本也非常高。而 DS18B20 温度传感器克服了以上的诸多缺点,并使实验电路电路简单
4、,软硬件结构模块化,易于实现,操作。而且与传统的温度计相比,该数字温度计利用温度传感器及接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器转换成单片机能够处理的数字信号,然后送到单片机中进行处理变换,最后将温度值显示在数码管上。系统以 单片机为控制核心,加上 DS18B20 温度传感器,4 位温度数据显示的共阴极数码管,及外围电源和报警电路组成。测温发映速度快,读数方便快捷,测量精度高,误差小等优点,同时我还另外增加了温度报警电路,可以实时监测温度,这在实际生产生活中有很大应用。- 2 - 2 -2 方案的总体设计框图该系统的总体设计思路如下:温度传感器 DS18B20 把所测得的温度
5、发送到AT89C51 单片机上,经过 51 单片机处理,将把温度在显示电路上显示,本系统显示器用 4 位共阴 LED 数码管以动态扫描法实现。 数字温度计总体电路结构框图如图 1 所示。硬件电路设计1 电路原理图和器件这是本次数字温度计的器件和电路图:AT89C51单片机主控制器显示电路温度传感器DS18B20扫描驱动- 4 - 4 - 1 - 1 -元件名称 型号 数量单片机芯片 89C51 1温度传感器 DS18B20 1晶振 11.0592Hz 1电源 5V 1三极管 8550(PNP) 530pF 2电容41uF 1LED 数码管 7SEG_MPX4_CA 11K 5电阻10K 4开关
6、 3万能板 1扬声器 1IC 插座 若干导线 若干2 单片机主控制器系统AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3 温度传感器模块DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读
7、出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。DS18B20 的性能特点如下:独特的单线接口方式仅需要一个端口引脚进行通信;多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能;无需外部器件;可通过数据线供电,电压范围:3.05.5V;测温范围55125,在-10+85时精度为0.5零待机功耗温度以 9 或 12 位数字量读出;用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作4显示模块采用4位共阴极 LED 数码管显示,采用共阴极数码管需要加入
8、负载驱动。 此外我还设置了 KEY1,KEY2 ,KEY3三个按钮, KEY1是复位键,KEY2是增加上线温度报警键,KEY3是减少下线温度报警键。5电源模块5V 直流电源(0.3v)用于该温度计的供电; 系统程序的设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,报警子程序和显示数据刷新子程序等.- 1 - 1 -#include #include #define uchar unsigned char#define uint unsigned int#include “DS18B20.c“uint mun=0;uchar time_yang=0;unsigne
9、d har ode table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit B0=P10;sbit B1=P11;sbit B2=P12;sbit B3=P13;sbit K1=P31;sbit K2=P32;sbit K3=P33;sbit jingbao=P37;uchar wendu_H=38;uchar wendu_L=5;uchar SHOW=0;void delay(uint ms)uchar i;while(ms-)for(i = 63;i 1;i-);void Sys_Initial(void)TMOD = 0x
10、22;TH0 = 0x3C;TL0 = 0xB0;ET0 = 1; TR0 = 1;EA=1;void timer0() interrupt 1 using 2TH0=0xff;TL0=0xa0;time_yang+;if(SHOW=0)- 2 - 2 -if(time_yang=5) P2=0xff;B0=0;B1=1;B2=1;B3=1;P2=tablemun/1000;if(time_yang=10) P2=0xff;B0=1;B1=0;B2=1;B3=1;P2=table(mun%1000)/100;if(time_yang=15) P2=0xff;B0=1;B1=1;B2=0;B3=
11、1;P2=(table(mun%100)/10)if(time_yang=20)time_yang=0;P2=0xff;B0=1;B1=1;B2=1;B3=0;P2=tablemun%10;if(SHOW=1)if(time_yang=5) P2=0xff;B0=0;B1=1;B2=1;B3=1;P2=0x38;if(time_yang=10) P2=0xff;B0=1;B1=0;B2=1;B3=1;P2=0xff;if(time_yang=15) P2=0xff;- 3 - 3 -B0=1;B1=1;B2=0;B3=1;P2=tablewendu_L/10;if(time_yang=20)t
12、ime_yang=0;P2=0xff;B0=1;B1=1;B2=1;B3=0;P2=tablewendu_L%10;if(SHOW=2)if(time_yang=5) P2=0xff;B0=0;B1=1;B2=1;B3=1;P2=0x76;if(time_yang=10) P2=0xff;B0=1;B1=0;B2=1;B3=1;P2=0xff;if(time_yang=15) P2=0xff;B0=1;B1=1;B2=0;B3=1;P2=tablewendu_H/10;if(time_yang=20)time_yang=0;P2=0xff;B0=1;B1=1;B2=1;B3=0;P2=tablewendu_H%10;void key_scan(void)if(!K1)- 4 - 4 -delay(100);SHOW+;if(SHOW=3)SHOW=0;if(!K2)delay(100);if(SHOW=0)return;if(SHOW=1)if(wendu_L=(wendu_H-1)return;elsewendu_L+;if(SHOW=2)if(wendu_H0)wendu_L-;if(SHOW=2)if(wendu_H=(wendu_L+1)return;elsewendu_H-;void main(void) Sys_Initial();while(1)