课程设计
基于单片机的数字温度控制系统
学院(部): 专业班级: 学生姓名: 指导教师:
年 月 日
基于单片机的数字温度控制系统
摘要
本课题设计以AT89C2051单片机为核心,采用相关的传感器设计了一种温度控制系统。该系统可对温度进行自动监控。本文完成了系统的硬件组成结构图和相关软件程序框图,并详细说明了本套系统的工作原理。
系统采用单总线传感器网络设计思想。其中温度传感器都以智能终端的形式挂接到单总线上,多条单总线汇总到一起,由一台数据采集器集中控制,每台数据采集器负责一定区域内的温度监测。数据采集器的核心部件为单片机,主要完成对其所连接传感器件的测量与控制以及与主机的通信等功能。
关键字: AT89C2051, 传感器 ,温度控制系统
安徽理工大学课程设计
目录
基于单片机的数字温度控制系统 ................................ 2 第一章 系统总体方案设计 ......................................... 4 1.1设计目标 .......................................................................................................... 4 1.2元件选择 .......................................................................................................... 4 1.2.1主控芯片................................................................................................... 4 1.2.2温度采集模块........................................................................................... 4 1.2.3显示模块................................................................................................... 5 1.2.4智能报警模块........................................................................................... 5 第二章 温度控制系统原理及分析 ............................... 6 2.1系统总体流程图 .............................................................................................. 6 2.2 系统各个部分电路设计.................................................................................. 6 2.2.1单片机主控电路设计............................................................................... 6 2.2.2按键电路设计........................................................................................... 8 2.2.3 LED显示电路的设计............................................................................... 8 2.2.4 温度检测模块........................................................................................ 12 2.2.5报警电路................................................................................................. 15 结论 .................................................... 16 参考文献................................................. 17 附录A ................................................... 18
3
安徽理工大学课程设计
第一章 系统总体方案设计
如图1-1所示。此温度控制系统先是温度感应原件进行温度采集,A/D转换后送入到单片机然后显示输出和智能温度报警,如果需要修改温度参数或者是查看设置和其他功能,则由键控制电路输出控制。 温度采集 A/D转换 单片机 AT89C2051 LED驱动电路 LED显示电路 按键控制 蜂鸣器报警 图1-1 系统总体方案
1.1设计目标
设计工业温度控制系统,实现实时温度检测,数据传输,液晶显示,按键控制电路,可设定监控温度上下限,过限报警电路,可持续工作,掉电复位,具有高可靠性和低生产成本,低功耗,高精度等特性。 1.2元件选择 1.2.1主控芯片
方案一:采用数字逻辑电路。本系统有功能设置、数据装入、定时、显示、声音提示多个功能模块。各个状态保持或转移的条件依赖于键盘控制信号。由于键盘控制信号繁多,系统的逻辑状态以及相互转移更是复杂,用纯粹的数字电路或小规模的可编程逻辑电路实现该系统有一定的困难,需要用中大规模的可编程逻辑电路。这样,系统复杂且难以实现。因此,本设计并未采用这种方案。
方案二:采用单片机作为整个控制系统的核心。鉴于市场上常见的51系列8位单片机的售价比较低廉,本设计采用了AT89C2051单片机系统。具体方案如下:首先,利用单片机多中断源的协调处理能力,通过扫描接收键盘送来的信号,确认功能设置,实现数据装入,利用单片机内部定时器倒数设置时间,利用中断动态扫描控制显示电路,用单片机I/O口控制外部继电器以及提示电路。
由此可知,采用方案二较为合理,降低开发难度。 1.2.2温度采集模块
方案一:热电偶传感器
4
安徽理工大学课程设计
热电偶传感器具有价廉、精度高、构造简单、测量范围宽(通常从- 50~ + 1600 ℃)及反应快速的优点。热电偶传感器输出的电压信号较为微弱(只有几毫伏到几十毫伏) , 因此在进行A/ D 转换之前必须进行信号调理, 由高放大倍数的电路将它放大到A/ D 转换器通常所要求的伏特级电平。一般采用热电偶调理模板或调理模块来完成这项工作最为便捷, 而自行设计、制作仪表放大器则较为繁琐且较难保证精度。
方案二:可编程分单总线数字温度传感器DS18B20
DS18B20 是一种单总线系统的数字温度传感器,它可提供二进制9 位温度信息,分辨率为0. 5 ℃,可在- 55~ + 125 ℃的范围内测量温度。从中央处理 器到DS18B20 仅需连接一条信号线和地线,其指令信息和数据信息都经过单总线接口与DS18B20 进行数据交换。DS18B20 完成读、写和温度变换所需的电源可以由数据线本身提供,也可以由外部供给。并且,每个DS18B20 有唯一的系列号,因此同一条单总线上可以挂接多个DS18B20 ,构成主从结构的多点测温传感器网络。此特性可普遍应用在包括环境监测、建筑物和设备内的温度场测量,以及过程监视和控制中的温度检测中。
由比较可知,选用方案二相对比较便宜的DS18B20更好,能提高A/ D 转换精度的同时确保信号完整性,较少开发难度。
1.2.3显示模块
方案一采用液晶显示。液晶显示的优点是显示的内容多,可以提供中文显示,背景光亮度可调,硬件接线少。缺点是价格昂贵,且容易烧毁,必须加限流电阻。
方案二采用动态数码管显示。优点是显示时间较为清晰,远距离也能看清。四位动态数码管较为便宜,大大节省了成本。缺点是电路接线较多,显示内容少,只能显示数字,不能显示中文。
考虑到显示需要与成本,采用方案二较为合适 1.2.4智能报警模块
方案一、采用语音芯片实现语音提示。语音芯片优点是能输出各种录制好的声音,输出容易丰富。缺点是电路复杂,价钱贵,而且要先录制才能播放。
方案二、采用蜂鸣器输出声音提示。优点是电路简单,价钱便宜。 考虑成本与本设计只需要一种工作完成的提示,用简单的蜂鸣器电路已经足够,故选择方案二。
5
第二章 温度控制系统原理及分析
2.1系统总体框图
系统的工作流程如图2-1,首先器件上电复位,温度检测芯片DS18B20检测当前温度。单片机从DS18B20中读出温度值,并与DS18B20非易失性存储器中的TH,TL值比较(其中TH为设定温度最高值,TL为设定温度最低值),并显示输出当前温度值,如果发生超限,即智能报警。注意,除非电路掉电复位,又或者是温度恢复正常,否则报警器不会停止。当超限报警后,启动电机对温度进行调节,当温度恢复正常后报警解除。键盘控制电路设置上下限温度值。
上电复位 温度检测 温度修正 单片机AT89C205551551 智能报警 显示输出 键盘控制
图2-1 系统总体框图
2.2 系统各个部分电路设计 2.2.1硬件电路设计
安徽理工大学课程设计
图2-2 单片机外围电路
单片机主控电路如图2-2所示包括电源复位电路和晶体振动电路和按键电路。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才起的抖动而影响复位。当开关RST闭合后经过一小段时间的延时后单元稳定,RST端口变为高电平,产生复位信号,单片机复位。
图2-3 晶振电路
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,
7
安徽理工大学课程设计
XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 晶振与单片机的脚XTAL1和脚XTAL2构成的振荡电路中会产生偕波,这
个波对电路的影响不大,但会降低电路的时钟振荡器的稳定性。 2.2.2按键电路设计
SET键:按下该键时,进入上下限温度设置功能,通过P3口P3.2引脚接入,中断工作方式。
+1键:在输入上下限时,按下该键一次,被调整位加一,通过P3口P3.0引脚接入,查询工作方式。
RET键:按下该键时,指向下一个要调整位,通过P3口P3.1引脚接入,查询工作方式。
按键电路一端接地,另一端接单片机P3口,当按键S1,S2,S3,有按下状态,则立刻有信号从P3口进入单片机,单片机做出响应。
X图2-4 按键电路
2.2.3 LED显示电路的设计
由系统硬件的电路设计框图可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。由于单片机的并行口不能直接驱动LED显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能够正常工作。
LED显示器的显示控制方式分为静态显示和动态显示两种,在选择LED驱动时,一定要先确定显示方式。若选择静态显示,则LED驱动器的选择较为简单,
8
安徽理工大学课程设计
只要驱动器的驱动能力与显示器的电流相匹配即可。而且只需要考虑段的驱动,因为共阳极接+5V,而共阴极接地,所以位的驱动不需要考虑。动态显示则不同,由于一位数据的显示是由段选和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
LED显示器的选择
在本设计中,选择4位一体的LED显示器,简称“4-LED”。第一位显示正
数的百位或负号,第二位显示十位,第三位显示个位,第四位显示小数位。4-LED显示是一个共阴极接法的4位LED显示器。其中a、b、c、d、e、f、g为四位LED各段的公共引出端。D1、D2、D3、D4分为是每一位的共阴极输出端,dp是小数点引出端。4位一体的LED显示器的内部结构原理如图所示。对于这种结构的LED显示器,他的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部接在一起,所以必须使用动态扫描方式。
LED段驱动芯片的选择
在本设计中,可以选择BCD-7段锁存/译码/驱动器作为段驱动电路。这类芯片的型号有74LS47、74LS48、74LS247、74LS248等,该类芯片具有锁存、译码、驱动的功能。即在输入端输入要显示的字型的BCD码,在输出端就可以得到具有一定驱动能力的7段显示字型码。
如图所示为74LS48芯片的电路结构原理及引脚图。引脚图中大写字母A、B、C、D为BCD码的输入端,小写字母a、b、c、d、e、f、g为字型码输出端,LT为灯测试输入端,RBI为消隐输入,RBO为消隐输出。表1中给出了74LS48 BCD-7段锁存器/译码器/驱动器的输入与输出信号的对应关系。在使用时,将该芯片的输入端引脚A、B、C、D与单片机的P1口或P3口连接,该芯片的输出端七个引脚,与LED显示器的七个段码引脚相连接。74LS48的作用是接收来自单片机的BCD码型的输入信号,经过锁存、译码和放大后,输出7段码型到LED显示器,完成对BCD码到7段字型码的锁存、译码和驱动的功能。
9
安徽理工大学课程设计
图2.5 4-LED显示器内部结构原理图
74LS48 芯片电路结构原理及引脚图
表2-1 74LS48 BCD-7 段译码器输入/输入端信号对照表 输入端电平 D C B A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
10
输出电平 g f e d c b a 0 1 1 1 1 1 1(3FH) 0 0 0 0 1 1 0(06H) 1 0 1 1 0 1 1(5BH) 1 0 0 1 1 1 1(4FH) 1 1 0 0 1 1 0(66H) 显示 字型 0 1 2 3 4 输入端电平 D C B A 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 输出电平 g f e d c b a 1 1 0 1 0 1 1(6DH) 1 1 1 1 0 1 1(7DH) 0 0 0 0 1 1 1(07H) 1 1 1 1 1 1 1(7FH) 1 1 0 1 1 1 1(6FH) 显示 字型 5 6 7 8 9
安徽理工大学课程设计
LED位驱动芯片的选择
LED位驱动较常用的芯片有ULN2003A和ULN2803。前者是具有七个达林顿电路的集成芯片,后者是具有八个达林顿电路的集成芯片。此种芯片集电极可以收集最大达500mA的电流,耐压为30V,能驱动常规的LED显示器。如图所示为ULN2803芯片的引脚图和电路原理图。2803芯片的电路原理和2003完全相同,只是在结构上2803比2003多一个驱动电路。
表2-2 4-LED动态扫描显示状态
点亮 顺序 1 2 3 4 P1口输出控制字 位码 段码 1000 0000B(80H) 0100 0001B(41H) 0010 0010B(22H) 0001 0011B(13H) 74LS48输出段码 g f e d c b a 011 1111B(3FH) 000 0110B(06H) 101 1011B(5BH) 100 1111B(4FH) 2003输出位码 显示器显示状态 D1 D2 D3 D4 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 2 3 图中的IN0~IN7引脚是输入端,OUT0~OUT7引脚是输出端。第9脚接有续流二极管。输出与9脚配合,可驱动感性负载。
在本设计中选用ULN2003作为位驱动电路,将该芯片的输入端引脚IN0、IN1、IN2、IN3与单片机的P1或P3口连接,该芯片的输出端引脚OUT0、OUT1、OUT2、OUT3与LED显示器的四个位码引脚D1~D4相连接。UNL2003的作用是接收来自单片机的位码输入信号,经过反相放大后输出,送到LED显示器的位码引脚,完成对位码信号的反向和驱动的功能。
LED驱动电路与单片机的连接
可以采用单片机的P1口作为与LED的输出接口,即P1口的低四位作为LED的段码输出信号,P1口的高四位作为LED位码的输出控制信号。4-LED显示器硬件电路连接如图所示。R1是上拉电阻,作用是保证LED可靠导通与截止,可以选择8脚排电阻(7*100欧姆)。
该电路的工作原理是:当P1口的低四位输出段码信号的BCD码后,通过74LS48芯片的锁存、译码和驱动的作用,在其输出端输出机友一定驱动能力的7段字型码,由于4-LED的段码输入引脚是并联在一起的,所以每一位LED的段码输入引脚都能获得这个段码信号。
若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制。P1口的高四位输出位码信号,经UNL2003反向后接到LED的位码控制端,因此P1口的位码信号在每一时刻只有一位是“1”,其他位全为“0”,然后按时间顺序改变输出“1”的位置,控制在每一时刻只有一位LED被点亮,打到动态显示的目的。若要显示“0123”时,P1口的控制信号及4-LED的动态扫描显示状态如下表所示。
11
安徽理工大学课程设计
例如:要完成“0123”的显示,必须对P1进行编程: 4-LED:
MOV P1,#80H; 将D1位选通码“1000B”与“0”的BCD码“0000B”送P1口 LCALL DYI; 调用延时1ms子程序
MOV P1,#41H; 将D2位选通码“0100B”与“1”的BCD码“0001B”送P1口 LCALL DYI; 调用延时1ms子程序
MOV P1,#22H; 将D1位选通码“0010B”与“2”的BCD码“0010B”送P1口 LCALL DYI; 调用延时1ms子程序
MOV P1,#80H; 将D1位选通码“0001B”与“3”的BCD码“0011B”送P1口 LCALL DYI; 调用延时1ms子程序
·上述程序每隔10ms执行一次,就可以实现动态显示的目的。
LED动态显示程序模块
在采用动态扫描方式时,要使得LED显示的比较均匀,且有足够亮度,需设置适当扫描频率,一般采用间隔10ms对LED动态扫描一次,每位LED显示时间为1ms。聪显示缓冲区分别读取4位LED现实的数据的位码和段码,送到P1口依次显示每一位,每一位显示1ms,在设置阈值温度时,当前调整为具有闪烁功能,来提示当前调整的是哪一位。因此,在每一位显示前都要进行中断判断,该位是否为闪烁位,再决定进行正常显示还是闪烁显示。
图2-6 4-LED显示器硬件电路连接
2.2.4温度检测电路
系统中温度的检测与数字化输出由单总线数字温度传感器 DS18B20 完成。
12
安徽理工大学课程设计
DS18B20具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
2-7 温度检测电路
如图2-7所示,温度检测器件DS18B20通过数据线DS连接单片机的P3.4口。DS18B20完成温度转换后,就把测的温度与TH,TL作比较。若T>TH 或T 结束 单片机和DS18B20之间的信号传送如图2-8所示。DS18B20复位有两种形式,一是掉电,此时DS18B20没用供电能源,故不能工作,当重新接上电源后恢复工作。二是当单片机P3.7持续低电平超过480ms的时候,DS18B20产生复位,所以当单片机由于某些原因使得P3.7长时间低电平的时候会使DS18B20复位,使系统产生不稳定。当DS18B20复位后单片机发送一条Skip Rom命令,使得单片机跳过对DS18B20的检测,Skip Rom命令的作用就是单片机对DS18B20 13 安徽理工大学课程设计 的识别,当有多片DS18B20时这个命令就可以区分出不同的DS18B20,从而使单片机对不同的DS18B20发出指令。系统中只有一片DS18B20故不必采用Skip Rom命令而直接发送执行命令即可。单片机直接发送温度转换命令,此时单片机或外接电源必须提供足够的电流(最少1mA),持续时间为500ms。因DS18B20温度转换时间长达500ms。之后由单片机发出读数据命令,从DS18B20中读出温度数据,并在液晶显示器中显示。 DS18B20的写时隙:当主机将单总线DQ从逻辑高拉为低时,即启动一个 写时隙。所有的写时隙必须在(60——120)us完成,且在每个循环之间至少需要1us的恢复时间。在写“0”时隙期间,微控制器在整个时隙中将总线拉低;写“1”时隙期间。微控制器将总线拉低,在时隙起始后15us之内释放总线。读时隙:DS18B20器件仅在主机发出时隙时,才向主机传输数据。所以在主机发出数据命令后,必须马上产生读时隙,以便DS18B20能传输数据。所有读时隙至少要60us。且在两次独立的读时隙之间,至少要1us的恢复时间。每个读时隙都由主机发起,至少拉低总线1us。在主机发起读时隙后,DS18B20器件才开始在总线上发:“0”或“1”.若DS18B20发送“1”,则保持总线为高电平。若发送“0”,则拉低总线当发送0时,DS18B20在起始时隙之后保持有效时间15us。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15us之内采样总线状态。 60uT15uTT 图2-9 DS18B20读取时序图 DS18B20初始化子程序: RESET: PUSH B ;保存B 寄存器 PUSH A 保存A 寄存器 MOV A,#4 ;设置循环次数 CLR P1.0 ;发出复位脉冲 MOV B,#250 ;计数250 次 DJNZ B,$ ;保持低电平500us 14 安徽理工大学课程设计 SETB Pl.0 ;释放总线 MOV B,#6 ;设置时间常数 CLR C ;清存在信号标志 WAITL: JB Pl.0,WH ;若总线释放跳出循环 DJNZ B,WAITL ;总线低等待 DJNZ ACC,WAITL;释放总线等待一段时间 SJMP SHORT WH: MOV B,#111 WH1: ORL C,P1.0 DJNZ B,WH1 ;存在时间等待 SHORT: POP A POP B RET 2.2.5报警电路 如图2-10所示,报警电路由三极管和蜂鸣器构成,其中电阻起限流作用。这种接法也是低电平驱动。当P3.7为低电平时,三极管导通,C端产生高电平,蜂鸣器就发出鸣响。即当DS18B20检测到的实时温度值超出预设温度值范围时,产生信号发给单片机,单片机使P3.7持续产生低电平,使得蜂鸣器鸣响。 图2.10 蜂鸣器报警电路 15 结论 本次智能温度控制系统实现了模块化,高精度,低成本,可扩展性等思想。首先是模块化方面,本设计的硬件电路都尽量采用了模块化设计,如温度采集电路,液晶显示电路,智能报警电路等等,各个电路模块负责不同的功能,分工明确,布局走线也十分简单。在软件设计方面也采用了模块化的思想,方法是每个功能子程序化,主程序只对各个功能模块的标志位进行判断,依据标志位来决定程序的走向。同时,不使用的模块进入停止状态,极大限度的降低了功耗。在降低成本方面,本系统采用了较为廉价的单片机AT89S52其程序存储器有8K之多,在众多单片机中有着最高性价比,数字温度传感器DS18B20也比较廉价,而且最重要的还是它不用外加电路进行A/D转换,大大提高了精度,报警方面采用了最为廉价而且方便的蜂鸣器。本系统的应用范围十分的宽广,温度传感器DS18B20的测量范围-55℃到120℃。 参考文献 [1]黄友锐. 单片机原理及应用 [M]. 合肥:合肥工业大学出版社,2006 [2]韩志军. 单片机系统设计与应用实例 [M]. 北京:机械工业出版社,2009 [3]张大明. 单片微机控制应用技术实操指导书 [M]. 北京:机械工业出版社, 2007 [4]沙占友. 单片机应用技术与实例 [M] . 北京:电子工业出版社,2004 附录A 温度修正 控制电路 报警 Y 检测的温度是否超过阈值 N Y 确定闭合的 温度检测 调用延时子程序 设置温度阈值 N 开始 开始 系统复位 有键闭合? Y LED显示 N 有键闭合? 键盘扫描程序框图 主程序软件图 安徽理工大学课程设计 T1中断服务程序 保护现场 关T1中断,开其它中断 设置段码缓冲区指针 设置位码缓冲区指针 设置显示位数 Y 是闪烁位否 N 将位码和段码送P1口 显示位数减一 显示某位,延时1ms 修改显示缓冲区指针显示位数减一 显示完否? Y T1计数器置初值 恢复现场,开中断 中断返回 T1中断服务程序框图 18 因篇幅问题不能全部显示,请点此查看更多更全内容