本科生课程设计(论文)
图3.2 MAX6675内部原理图
温度测量电路原理图:我们将温度传感器及其信号放大器选择完毕,下面我们要把选择好的镍鉻—镍硅温度传感器及其信号放大器MAX6675与89S51单片机进行连接,组成温度测量电路,此温度检测电路的工作原理可简单理解为:镍鉻—镍硅温度传感器检测到的温度信号经MAX6675运算放大(一般可将运放简单地视为:具有一个信号输出端口(Out)和同相、反相两个高阻抗输入端的高增益直接耦合电压放大单元,因此可采用运放制作同相、反相及差分放大器,运放的供电方式分双电源供电与单电源供电两种。对于双电源供电运放,其输出可在零电压两侧变化,在差动输入电压为零时输出也可置零。采用单电源供电的运放,输出在电源与地之间的某一范围变化,运放的输入电位通常要求高于负电源某一数值,而低于正电源某一数值。经过特殊设计的运放可以允许输入电位在从负电源到正电源的整个区间变化,甚至稍微高于正电源或稍微低于负电源也被允许。这种运放称为轨到轨(rail-to-rail)输入运算放大器)、冷端补偿(其热电势大小才与测量温度呈一定的比例关系。若测量时,冷端的环境温度变化,将严重影响测量的准确性。在冷端采取一定措施补偿由于冷端温度变化造成的测量不准确称为热电偶的冷端补偿)、处理后输入89S51单片机,单片机根据检测到的温度数据对温度进行显示与控制。具体的电路原理图如下:
7
本科生课程设计(论文) 3.3温度检测电路图 3.3看门狗及温度显示设计 提到看门狗,则必须提一下电源监控和上电复位电路。为了使用者的方便,现在芯片都把上电复位、电源监控及“看门狗”集成到一起。近年来各厂家开发出多种看门狗芯片,如:MAX813、X5045、24C021等。其中,X5045是SPI总线格式的具有看门狗、电源监控和E2PROM数据存储的多功能芯片,大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。这可防止程序跑飞。也可以防止程序在线运行时候出现死循环。设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。清看门狗也不能太过频繁否则会造成资源浪费。程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位,看门狗是恢复系统的正常运行及有效的监视管理器(具有锁定光驱,锁定任何指定程序的作用,可用在家庭中防止小孩无节制地玩游戏、上网、看录像)等具有很好的应用价值.目前应用较为广泛,使用者可根据自己所选择的具体MCU来配置外围看门狗电路及电源监控。本系统采用的看门狗芯片就为X5045。 动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极8
本科生课程设计(论文)
COM是各自独立地受I/O线控制,这种显示方式可以起到节省系统I/O口的作用,但是CPU的工作量会大大增大。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
LED(Light Emitting Diode),发光二级管,是一种固态的半导体器件,它可以直接把电能转化为光能。LED的心脏是一个半导体的晶片,晶片的一端着
在一个支架上,是负极,另一端连接电源的正极,整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长决定光的颜色,是由形成P-N结材料决定的。
考虑到本系统的I/O口有限所以采用了动态扫描的方法,由于是采用了74LS374和74LS145地址寄存器与数码管相连,所以无须再连接限流电阻。
图3.4 看门狗与单片机相连
在温度显示设计中,74LS374用于驱动LED的8位段码,8位LED相应的\—\段连在一起,它们的公共端连至74LS145译码器的输出端。这样当选通某一位LED
9
本科生课程设计(论文)
时,相应的地址线输出的是低电平,所以这里选用共阴LED数码管。具体电路如下面的图所示:
图3.5 温度显示电路
10
本科生课程设计(论文)
第4章 软件设计
4.1程序的总体设计
本次设计的软件主要实现的功能为:温度传感器测量的温度信号经MAX6675进行信号的放大与A/D转换,把转换好的数字量输入单片机,经过标度变换、显示码处理后将显示码送到数码管上显示出来。
为了能够实现上述功能,经过认真的分析和整理,以及对整体功能进行细化、分配,把系统的程序划分为以下几个主要模块:
1、初始化模块:通过该模块来对堆栈、定时器、计数器、中断和特殊功能寄存器进行赋值,有关寄存器的清零,以及计数器/定时器的初值存放等。
2、A/D转换模块:把温度传感器测量的温度信号经MAX665转换为数字量。 4、标度变换:主要是把数字量转换为要显示的物理量。 5、显示模块 :该模块应能够把温度值进行准确显示。
除了上述功能以外,本着操作友好、功能齐全、安全可靠的设计原则,该系统的程序还具有报警提示功能、看门狗等功能。
为了便于编程,我们先把89S51单片机系统中,片内、外RAM,EEPROM以及I/O的地址进行分配:
片内RAM地址分配
00H~07H,R0~R7 供主程序使用 中断向量初始地址为000H; P1.0~P1.3为按键接口
20H~24H LED显示寄存器,其中20H为状态显示码寄存器,21H~24H为数码管显示码寄存器;
25H定时3s时间常数; 26H KP参数 27H KI参数 28H Tc参数 29H e(n)参数暂存 2AH e(n-1)参数暂存
2BH,2CH分别存放AD值的底位和高位; 30H~3FH SP指针工作区
11