片机上下限温度报警器课程设计.doc_第1页
片机上下限温度报警器课程设计.doc_第2页
片机上下限温度报警器课程设计.doc_第3页
片机上下限温度报警器课程设计.doc_第4页
片机上下限温度报警器课程设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

温度控制器的设计课程设计报告系 别: 信息科学与技术系 专业班级: 通信技术0802班 学生姓名: 张 丛 振 指导教师: 陈 青 (课程设计时间:2010 年 6 月 26 日2010 年 7 月 9 日)华中科技大学武昌分校目 录1课程设计目的32课程设计题目描述和要求33课程设计报告内容63.189c1051/2051简述63.2DS18B20内部结构与测温原理83.3七段LED译码器CD4511 123.4驱动芯片ULN2003 124总结13参考文献 15附:1.设计总程序清单16前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场合。该设计控制器使用单片机AT89C2051,测温传感器使用DS18B20,用四位共阴极LED数码管实现温度显示,能准确达到以上要求。一、 课程设计目的这次课程设计实践是本学期的一项必修课程,它的意义在于除了完成规定的内容之外,还要能有所创新。将这一学期学到的单片计算机原理的内容运用到实际生活中,从而进一步巩固学到的理论知识。学会焊接电路板,这是硬件部分的;其次还要能够编写程序让单片机工作起来。二、 课程设计题目描述与要求课程设计题目:温度控制器的设计在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89C2051,温度传感器采用DS18B20,用2位LED数码管以并口传送数据实现温度显示。图1 总体设计方框图设计要求:1. 用89c2051单片机和数字温度传感器ISD18B20构成温度采样报警小系统 2. 给电路板上的两个按键设定相应的功能:通过两个按键设定最高和最低限定温度使得当室内温度上升到温度上限或下降到温度下限的时候能够让蜂鸣器发出报警 3. 设定的温度能够自行调整。整体方案设计系统结构:如下图 三、 课程设计报告内容本实验运用的主控制器是ATMEL公司生产的 AT89C2051 单片机AT89C2051具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。(一)硬件系统1单片机显示部分 是在单片机控制下,由MC4511产生BCD译码,ULN2003完成驱动显示的简单方法,同时可以有两路按键响应装置。还可以外扩串口I2CROM,完成掉电数据保护功能。电路中还包含复位电路和时钟电路。2报警控制部分 报警部分由三极管T2蜂鸣器BEEL构成. 控制部分由光电隔离器(光电耦合)U7/U8,继电器JDQ1/2组成。3温度探测存储部分由DS18B20采集温度,和24C16保存掉电数据。3.1 89c1051/2051简述1、AT89C1051/2051只有20只引脚,压缩了I/O端口与存储器容量,其余配置与功能不减,可方便地应用于家电产品及小型仪器仪表,是性能价格比极优的单片机。 AT89C1051和 AT89C2051的结构框图与引脚配置分别见附图 77和附图 78。图 1-1 AT89C1051/2051 引脚图图 1-2 AT89C1051/2051 结构框图 由附图77和附图78可见,AT89C1051AT89C2051把原地址与数据总线有关的引脚全部压缩掉,使为20脚封装。但I/O端口线还有15条,其中8条仍具有第二功能。除P3口的6个引脚(P30P35)的第二功能与MCS5l系列完全一致外,P10和P1l还具有模拟比较器的功能。当需要使用模拟比较器时,P10(AINO)作为同相输人端,P11(AINI)作为反相输入端。比较的结果由P36位的状态确定。若P36为 1,说明AINO电位高于AINI;若P36为0则反之。注意,P36没有引出片外,其状态可直接在片内特殊功能寄存器中通过位寻址读出。2 、AT89C2051内有两个闪烁存储器程序加密位,可以被编程或不被编程器件内有一闪烁存储器地址计数器,计数器在RST上升沿复位为000H,在XTAL1引脚上加高电平脉冲则自动加 l。宜采用以下步骤对AT89C2051编程:加上电源后,RST及P32加高电平;P33P35,P37加上写人数据代码模式的逻辑电平;在P10P17上加上地址000H的数据代码;RST引脚电平升高到12V;P32加人一低电平脉冲,则一字节数据被编程写人。以此类推,直到最后一个字节编程完毕。 编程完毕后,应使XTAL1降到低电平,RST也降至低电平,然后悬浮所有相关I/O引脚,关掉电源。AT89C2051有三个特征字可读出,以识别该器件。这种读特征字操作与读000H,00lH,002H地址单元内容操作相同,只是有关信号的逻辑电平有所不同。3.2 DS18B20内部结构与测温原理DS18B20温度传感器由64位ROM、温度传感器、非挥发的温度报警触发器及高速缓存器这4个部分组成。DS18B20可编程温度传感器有3个管脚:GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3055 V。 本文使用外部电源供电9。如图2-4所示。 图1-5 DS18B20的系统结构首先来介绍一下DS18B20这块传感器的特性及其功能: 用户可自设定报警上下限温度值。 不需要外部组件,能测量55+125 范围内的温度。 10 +85 范围内的测温准确度为05 。 通过编程可实现9l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达00625 。 独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与处理器双向通讯。再来看看DS18B20的内部结构:DS18B20内部功能模块主要由4部分组成:64位光刻R0M、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器。R0M 中的64位序列号是出厂前被光刻好的,他可以看作是该DSISB20的地址序列码,每个DSI8B20的64位序列号均不相同。高低温报警触发器TH 和TL,配置寄存器均由一个字节E2PROM组成,使用一个存储器功能命令可对 TH,TL或配置寄存器写入。配置寄存器中R1,R0决定温度转换的精度位数:R1R000,9位精度,最大转换时间为93.75 ms;R1R0 = 01,10位精度,最大转换时间为187.5 ms;R1R0 = 10,11位精度,最大转换时间为375 ms;R1R0 =11,12位精度,最大转换时间为750 ms;未编程时默认为12位精度。本系统采用的也是12位的精度。其中64位光刻ROM如下图2-5所示。 图1-6 DS18B20的64位光刻ROM接着再来了解一下DS18B20的内存结构与温度测试的功能:DSI8B20温度传感器的内部存储器包括一个高速暂存RAM (便笺式的内部存储器)和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TH,TL和结构寄存器。便笺存储器包含了9个连续字节(08),前两个字节是测得温度信息如图1-7所示,字节0的内容是温度的低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器如图2-7所示,用于确定输出分辨率9到12位。第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确。 双字节位温度格式与十进制温度的转换关系图1-7 分辨率设置表当DSI8B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0062 5LSB形式表示。温度值格式如图26所示,其中“S”为标志位,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。图4下面的表是对应的一部分温度值。DSI8B20完成温度转换后,就把测得的温度值与 TH做比较,若TTH或T RoM操作命令 - 存储器操作命令- 处理数据 初始化 单总线上的所有处理均从初始化开始; ROM操作品令 总线主机检测到DSl820的存在便可以发出ROM操作命令之一,这些命令如:指令 代码 Read ROM(读ROM) 33H Match ROM(匹配ROM) 55H Skip ROM(跳过ROM CCH Search ROM(搜索ROM) F0H Alarm search(告警搜索) ECH 存储器操作命令 指令 代码Write Scratchpad(写暂存存储器) 4EHRead Scratchpad(读暂存存储器) BEHCopy Scratchpad(复制暂存存储器) 48H Convert Temperature(温度变换) 44HRecall EPROM(重新调出) B8H Read Power supply(读电源) B4H3.3 七段LED译码器CD45114511译码器指的是将单片机89C2051转换过来的十进制数(8421BCD码)直接在数码管上显示,这就不需要字模。本设计所选用的译码器CD4511是4-7段(4输入,7输出)锁存译码器/驱动器,它是输出高电平有效的CMOS译码器。其输入为8421BCD码。它与七段数码管配合使用。7、1、2、6脚接是8421BCD码的输入端,分别对应A、B、C、D其中D是8421BCD码的最高位。/LT是试灯端,低电平有效,当其为低电平时,所有笔划全部亮,如不亮表示该笔划有问题。/BL是灭灯端,低电平有效,当其为低电平时,不管输入的数据状态如何,其输出全为低电平。LE是选通/锁存端,它是一个复用的功能端,当输入为低电平时,其输出与输入的变量有关;当输入为高电平时,其输出仅与该端为高电平前的状态有关,并且输入D、C、B、A端不管怎么变化,其显示数值保持不变。a-g是译码输出端,为高电平有效,故其输出应与共阴极的数码管相对应。其引脚图如图1-9。3.4 驱动芯片ULN2003驱动芯片ULN2003内含7个共射级的达林顿阵列。由于其内部带有反向器,其输出电流将会很大,一般情况下其输出电流为500ma,峰值可达到600ma。输出电压为50V。由于达林顿管是一种“三极管级连三极管”的电路,其驱动能力较一般的驱动电路要强很多。它可以驱动直流电动机、LED显示屏、灯丝灯具、以及大功率的缓冲器等等。其引脚图如图1-10所示。IN1-7是七个输入端,OUT1-7是七个输出端。8脚接地。9脚接电源。在要求输出电压高于5V时才用接VCC;若输出电压小于等于5V,则不用接。图1-10 ULN2003的引脚图驱动芯片ULN2003可以提供七个输出。每个的内部驱动电路都是一样的,如图1-11所示。图2-11 ULN2003的内部驱动电路(二) 软件系统要求1、采集并显示温度值(要求精度1C)提高部分为0.1C。2、有温度上下限控制,并发音报警,同时开启相应继电器。3、扩展要求,能显示时间,并能设定报警温度值,能记忆报警时的温度值和报警时间点。四、总结自单片机课程设计的第一天起,我就对这次的课程设计充满了信心。我们首先听老师讲了一遍所选设计课题的大概工作原理。然后焊接元器件,依据老师所讲的结合辅导书上所给的电路图,将各个元件按照电路图上正确的位置放好然后进行焊接。焊完板子以后用老师写的测试程序烧录到单片机中然后在电路上试运行,就能够检验板子的线路是否完全的连通和找出板子上的虚焊的地方。在这些都弄完之后,就要开始编写程序、调程序了。经过三个星期的课程设计,我们不仅丰富了自己学的那些知识,更多的还有锻炼了团队合作精神。在这次的课程设计过程中,我查阅了大量的资料,为了让自己的设计更加完善,查阅这方面的资料是十分必要的,同时也是必不可少的。其次,在课程设计过程中也运用到了以前所学到的专业课知识,如:模拟电子技术,数字电子线路,C汇编语言等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去做效率往往很高,这是我做这次课程设计的又一收获。然后,要做好一个课程设计,就必须得做到:在设计程序之前,对所用的单片机的内部结构有一个系统了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在程序设计时,不能妄想一次将整个程序设计好;反复修改、不断改进是程序设计的必经之路;要养成注释的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。课程设计结束了,但是从中学到的东西让我从中受益。发现、提出、分析、解决问题和实践能力的提高都会受益于我以后的学习、工作和生活中。设计过程中,好比是我们人类成长的历程,常有一些不如意,但毕竟只是一次经验,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解的不够深刻,掌握的不够牢固。我们通过查阅大量有关资料,并在小组中讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时的请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。通过这次的课程设计我也发现了自己存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这同时也激发了我今后努力学习的兴趣,我想这将对我以后的学习产积极的影响。通过这次课程设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的道路做榜样。参考文献:1朱定华.单片微机原理与应用. 北京:清华大学出版社, 2003.2朱定华.模拟电子技术. 北京:清华大学出版社,2005.3何立民.MCS-51系列单片机应用系统设计-系统配制与接口技术. 北京:北京航空航天大学出版社,2002.4单片机原理课程设计指导书. 陈青 编写 丘光纯 审, 2010.5楼然苗,李光飞.51系列单片机设计实例. 北京:北京航空航天大学出版社,2003.附1:设计总程序TEMPER_L EQU 36HTEMPER_H EQU 35HTEMPER_NUM EQU 59HTEMPER_XIAO EQU 60HTEMP_TH EQU 27H ;高温报警值存放单元TEMP_TL EQU 28H ;低温报警值存放单元TEMP_ZH DATA 24H ;实时温度值存放单元FLAG BIT 00HDQ BIT P3.1K1 EQU P3.2K2 EQU P3.3;主控制程序;MAIN: LCALL GET_TEMPER LCALL TEMPER_COV LCALL TBCD_DISP LCALL DISPLAY LCALL KEY LCALL ALLERT LJMP MAINALLERT: MOV A,TEMP_TH SUBB A,TEMPER_NUM ;减数被减数,则 JC CHULI1 ;借位标志位C=1,转 MOV A,TEMPER_NUM SUBB A,TEMP_TL ;减数被减数,则 JC CHULI1 ;借位标志位C=1,转 RET CHULI1: SETB P3.7 LCALL WA CLR P3.7 RET;按键模块 KEY: MOV TEMP_TH ,#30H ;判断是否有控制键按下 MOV TEMP_TL ,#25H KEY1: JNB P3.2,S1 JNB P3.3,S2 LCALL GET_TEMPER LCALL TEMPER_COV LCALL TBCD_DISP LCALL DISPLAY LCALL ALLERT LJMP KEY1S1: LCALL DELAY3 ;去抖动 JB P3.2,KEY1 MOV A,TEMP_TH ADD A,#1 DA A MOV TEMP_TH,A CJNE A,#99H,J0 MOV TEMP_TH,#0S2: LCALL DELAY3 JB P3.3,KEY1 MOV A,TEMP_TL ADD A,#1 DA A MOV TEMP_TL,A CJNE A,#99H,J1 MOV TEMP_TL,#0 LJMP KEY1;等待按键抬起J0: JB P3.2,KEY1 LCALL LOOK_ALARM SJMP J0J1: JB P3.3,KEY1 LCALL LOOK_ALARM SJMP J1LOOK_ALARM: MOV A,TEMP_TH ;加载TH数据 MOV TEMP_TH,A ANL A,#0FH MOV 63H,A MOV A,TEMP_TH ANL A,#0F0H SWAP A MOV 64H,A MOV A,TEMP_TL ;加载TL数据 MOV TEMP_TL ANL A,#0FH MOV 65H,A MOV A,TEMP_TL ANL A,#0F0H SWAP A MOV 66H,A CALL DISPLAY ;显示数据 RET;=; 显示子程序;= DISPLAY: MOV R0,#66H MOV R2,#4 MOV A,R0 ORL A,#20H MOV P1,A DEC R0 LCALL WAIT MOV A,R0 ORL A,#10H MOV P1,A DEC R0 LCALL WAIT MOV A,R0 ORL A,#80H MOV P1,A DEC R0 LCALL WAIT MOV A,R0 ORL A,#40H MOV P1,A LCALL WAIT RET ;=;读出转换后的温度值;=GET_TEMPER:SETBDQBCD:LCALLINIT_1820JBFLAG,S22LJMPBCDS22:LCALLDELAY1MOVA,#0CCHLCALLWRITE_1820MOVA,#44HLCALLWRITE_1820NOPLCALLDELAYLCALLDELAYCBA:LCALLINIT_1820JBFLAG,ABCLJMPCBAABC:LCALLDELAY1MOVA,#0CCHLCALLWRITE_1820MOVA,#0BEHLCALLWRITE_1820LCALLREAD_1820;READ_1820RET;写DS18B20的程序WRITE_1820:MOVR2,#8CLRCWR1:CLRDQMOVR3,#6DJNZR3,$RRCAMOVDQ,CMOVR3,#23DJNZR3,$SETBDQNOPDJNZR2,WR1SETBDQRETREAD_1820: MOV R4,#2 ;将温度高地位读出 MOV R1,#36H ;地位存入36H RE00: MOV R2,#8 RE01: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1, A DEC R1 DJNZ R4,RE00 RET ; 将ds18b20中读出温度数据进行转换TEMPER_COV:MOV A,#0F0HANL A,TEMPER_LSWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1SETB P3.5MOV A,TEMPER_LANL A,#0FHMOV B,#100MUL ABMOV R0,AMOV A,BANL A,#0FHSWAP AMOV B,AMOV A,R0ANL A,#0FHORL A,BMOV TEMPER_XIAO,ALCALL BIN_BCD1TEMPER_COV1:MOV A,TEMPER_HANL A,#07HSWAP AORL A,TEMPER_NUMMOV TEMPER_NUM,ALCALL BIN_BCDRETBIN_BCD:MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,A RETBIN_BCD1: MOV DPTR,#TEMP_TABMOV A,TEMPER_XIAO MOVC A,A+DPTRMOV TEMPER_XIAO,ARETTBCD_DISP:MOV A,TEMPER_NUMANL A,#0FHMOV 63H,AMOV A,TEMPER_NUMANL A,#0F0HSWAP AMOV 64H,AMOV A,TEMPER_XIAOANL A,#0FHMOV 65H,A;XIAOSHUMOV A,TEMPER_XIAOANL A,#0F0HSWAP AMOV 66H, ARETTEMP_TAB:DB 00H,01H,02H,03H,04H,05H,06H,07HDB 08H,09H,10H,11H,12H,13H,14H,15HDB 16H,17H,18H,19H,20H,21H,22H,23HDB 24H,25H,26H,27H,28H,29H,30H,31HDB 32H,33H,34H,35H,36H,37H,38H,39HDB 40H,41H,42H,43H,44H,45H,46H,47HDB 48H,49H,50H,51H,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论