




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY课程设计目上下限可调的温度报警器设计电子*周 *指导教师 *2014年11月14日摘要:单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较 成熟的技术,本文将介绍一种基于单片机控制的数字温度器,本温度计属于多功能温度 计,可以设置上下报警温度,当温度不在设置围时,可以报警。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与 控制温度。本文通过采用蜂鸣器作为电声元件的温度报警器的设计,阐明了该装置进行 设计与制作的具体过程及方法。这种温度报警器结构简单,可操作性强,应用广泛
2、。工 作时,温度测量围为18232 Co当前环境温度若超过设定的高温临界温度,由单片机 发出报警信号,从而防止带来的不必要的损失。造成高温火灾有:电气线路短路、过载、接触电阻过大等引发高温或火灾;静电产 生高温或或火灾;雷电等强电侵入导致高温或火灾;最主要是机房电脑、空调等用电设 备长时间工作,导致设备老化,空调发生故障,而不能降温;因此机房所属的电子产品 发热快,在短时间机房温度升高超出设备正常温度,导致系统瘫痪或产生火灾,这时温 度报警系统就会发挥应有的功能。关键词STC89C51单片机,数字控制,温度计,DS18B201设计方案选择1.1系统基本方案选择1.1.1单片机芯片的选择方案方案
3、一:采用STC89C51芯片作为硬件核心。STC89C51部具有8KB ROM存储空间,512字节数 据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C51 可以通过串口下载。方案二:采用AT89S51。AT89S51片具有8K字节程序存储空间,256字节的数据存储空间没 有EEPROM存储空间,也与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,STC89C51相对ATS89C52价格便宜,且抗干 扰能力强。考虑到成本因素,因此选用STC89C51。1.1.2温度传感器设计方案方案一:由于本设计是测温电路,
4、可以使用热敏电阻之类的器件利用其感温效应,在将随被 测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处 理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路, 感温电路比较麻烦。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是 非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接 读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,两种都完全能够满足设计需要,很容易看出,采用方案二,电路 比较简单,软件设计也比较简单,故采用了方案二。综上各方案所述,对此次作品的方案选定:采用
5、STC89C51单片机作为主控制系统; 采用DS18B20为传感器;1. 1.3显示电路设计方案一:使用数码管显示,数码管是由多个发光二极管封在在一起组成“8”字型 的器件,引线已在部连接完成,只需引出它们的各个笔划,公共电极。有共阴,共阳两 种。方案二:使用液晶显示屏lcdl602, 1602液晶也叫1602字符型液晶,它是一种专 门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵 字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行 之间也有间隔,起到了字符间距和行间距的作用。比较两种方案将选用方案二,lcdl602操作简单,可以直接对
6、1602的引脚直接 操作。2主要元件介绍2. 1. 1 STC89C51 引脚介绍 主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线 外接晶振引脚(2根)XTALl(Pinl9):片振荡电路的输入端XTAL2(Pin20):片振荡电路的输出端 控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的外部选通,接低电平从外部程序存储器读指令,如 果接高电平则从部程序存储器读指令。
7、可编程输入/输出引脚(32根)STC89C51单片机有4组8位的可编程I/O 口,分别位PO、Pl、P2、P3 口,每个口 有8位(8根引脚),共32根。P0 口 (Pin39Pin32) : 8 位双向 I/O 口线,名称为 P0. 0P0. 7P1 口(PinlPin8) : 8位准双向I/O 口线,名称为P1. 0P1. 7P2 口 (Pin21Pin28) : 8位准双向I/O 口线,名称为P2. 0P2. 7P3 口 (PinlOPinl7) : 8位准双向I/O 口线,名称为P3. 0P3. 7图1: STC89C51封装图2. 1.2单片机最小系统:当在STC89C51单片机的R
8、ST引脚引入高电平并保持2个机器周期时,单片机部就 执行复位操作,按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端 经过电阻与电源VCC接通而实现的。最小系统如图2vccR310k19GND20P1.0Pl.l Pl.2Pl.3 Pl.4P1.5(MOSI) PlgUSO) P1.7(SCK) REST P3.0(RXD) P3.1(TXD) P3.2(TQ) P3.3(INT1) P3.4(T0) P3.5CT1) P3.6QVR) P3.7(RD) XTAL2XTAL1 GNDVCC PO.CXADO) P0.K.W1) P0.2(AD2) P0.3(AD3) P0.4(A
9、D4) P0.5(AD5) P0.6(AD6) P02£AD7) EAVPP ALEPROG PSEN P2.7(A15) P2.6(A14) P2.5(A13) P2.4(A P2.3(A11) P2.2(A10) P2.1(A9) P2.0(A8)3S37363534333231302928262524232221STC89S52R图2单片机最小系统电路电路以STC89C51单片机最小系统为控制核心,测温电路由DS18B20提供,输入部 分采用三个独立式按键sO、si、s2。具体电路连接,详见附录1。2.2 DS18B20传感器介绍2.2. 1 DS18B20 概述DS18B20
10、的性能特点如下:(1)采用DALLAS公司独特的单线接口方式:DS18B20与微处理器连接时仅需要一 条口线即可实现微处理器与DS18B20的双向通讯;(2)在使用中不需要任何外围元件;(3)可用数据线供电,供电电压围:+3.0V+5.5V;(4)测温围:-55+125°Co固有测温分辨率为0. 5°Co当在TCTC+85£围,可 确保测量误差不超过0.5£,在-55+125*围,测量误差也不超过21;(5)通过编程可实现912位的数字读数方式;(6)用户可自设定非易失性的报警上下限值;(7)支持多点的组网功能,多个DS18B20可以并联在唯一的三线上,
11、实现多点测(8) 负压特性,即具有电源反接保护电路。当电源电压的极性反接时,能保护 DS18B20不会因发热而烧毁,但此时芯片无常工作;(9) DS18B20的转换速率比较高,进行9位的温度值转换只需93.75ms;(10) 适配各种单片机或系统;(11) 含64位激光修正的只读存储ROM,扣除8位产品系列号和8位循环冗余校验 码(CRC)之后,产品序号占48位。出厂前产品序号存入其ROM中。在构成大型温控系统 时,允许在单线总线上挂接多片DS18B20。2. 3 LCD 1602 介绍引脚功能介绍第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电
12、源时对比度最弱,接地时对比度最 高,对比度过高时会产生"鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时 可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。指令介绍序号RSR/WD7DG亠1>
13、1D3D3D1DO1OOOOOOO()O12光标逅回OOOOOOOOt*3監俪入棋:氏OOOOOOO1T/l>S4显示开/关控制OOOOOO1DCB5光标或于符移位OOOOO1S/CR/L*6OOOO1DLNF*7St#符发虫存贮岑地 址OOO1字符发生存贮寻地址8蛍救据存疋弼地址OO1晁示数4®存贮寻地址9读忙标志或地址O1BF计数洛电址1O写数到CGRAM或 DIDRAM>1O姜写的数据内容1 1从CGRAM或 a)RAM读数11读出的数摞内客1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明 1为高电平,0为低电平)指令1:清显示,指令码0
14、1H,光标复位到地址00H位置 指令2:光标复位,光标 返回到地址00H指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S: 屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表 示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光 标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C :高电平时显示移动的文字,低电平时移动光标指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电 平时为单行显示,高电平时为双行显示,F:低电平时显
15、示5X7的点阵字符,高电平时 显不5X10的显不字符°指令7:字符发生器RAM地址设置。 指令8: DDRAM地址设置。指令9:读忙信号和光标地址BF:忙标志位,高电平表示忙,此时模块不能接收 命令或数据,如果为低电平表示不忙。使用led先根据液晶的使用手册写出液晶屏的驱动程序,后使用把信息显示到液晶 上时直接调用液晶子程序即可。3.程序流程图返回概3B1 <502显示图6:程序流程图4.设计总结本次设计功能基本实现,当温度低于下限温度或者高于上限温度时蜂鸣器发出报 警。设计电路有温度上下限可调功能,按键按下由于不能再1602显示光标只能使用led 的亮灭和蜂鸣器来确定按键是否
16、按下,并且最终能实现了该功能。获取的温度值通过 1602显示出来。软件调适通过使用protues进行仿真,开始只是让1602显示出数据, 慢慢的加入按键,led指示灯和蜂鸣器。过程中遇到了很多问题,硬件方面:原理图设计好51单片机最小系统再根据仿真 软件电路接入温度采集电路,报警电路,显示电路,指示电路,按键和电源接口。画好 原理图导出PCB布线,由于对PCB布线规则不是很了解,粗略步好线打印印板、腐蚀、 打孔、焊接,由于经过电子相关的实习,这些步骤还是完成得比较好。焊接好后第一步 就是坚持电路是否短路或者是否有虚焊,多次对照PCB后没有问题就将下载好程序的单 片机插入电路开始调试。设计电路时
17、预留了两个10 口即增加了两个扩展口,所以可以 通过之前自己设计的STC串口下载器对单片机程序的下载调试。实际软件件调试也是和 仿真一样,先让1602能够显示东西,再把整个程序下载到单片机中,由于仿真时电路 要设计的功能基本都能实现了,所以程序下载成功后电路基本实现了功能。只是蜂鸣器 在温度没有超出限制围还是有小小的声音产生,找蜂鸣器相关资料发现是因为蜂鸣器在 不使用时要给它一个低电平或高电平(看电路,这里电路是给低电平),因为不限制蜂 鸣器的初始值时电路会出现漏电现象,程序改动后漏电现象消除了。通过本次设计,我学到了很多我们在课堂上学不到的实践能力,动手能力也得到了 很大的提升,在书本所学到
18、的知识得到了很大的实践,让我对书本上的知识有了更加深 刻的理解。同时也感同学的帮助,在我对电路相关知识不理解时给了我指点,让我能清 楚得理解,也通过这次的设计让我电子电路设计有了很大兴趣。参考文献1 郭天祥.51单片机C语言教程.:电子工业出版,2009.2 谭浩强.C语言程序设计M.:清华大学,1991.3 阎石.数字电子技术基础M.:高等教育,2006.4 童诗白.模拟电子技术基础M.:高等教育,2006.5 欣.电子设计从零开始M.:清华大学,2005.附录1系统原理图C7VJ温度传恿器电路-爭1LED拒示灯>!0A1XRR25 nr: 心心殆 “rr,n -«X7 yn
19、決. 5XM2 心心 5Z11X3 !(U<xh>nocu*fl单片机57* YJVU <.5X_ <7* 3S YJVM1602M7F 电菇报警电路.rtL i 4VJS 丁 Z 1l_LF复位电路时钟电路PCB图TL:18";/定义高低/全局变附录2 C语言程序#include<reg51.h>#include111602. hH#include"DS18B20.1T#define uchar unsigned char#define uint unsigned intsbit BEEP二P4;sbit led=Pl 0;sbit l
20、edO=Pri;sbit ledl=Pr2;sbit sO二P3"0;sbit sl=P3*1:sbit s2=P3"2; uchar code tab 0="Temp:uchar code tab 1="TH:23uchar TH.TL;温度变量uchar num;量/*nis 延时(非精确)* void delay(uint z)uint i,j;for(i=z;i>0;i-)for(j=120;j>0;j);/*T|、TL 的温度符号 *void fuhaoOwrite (0x80+5);wr i te dat(Oxdf):wr i t
21、e dat(0x43):write (0x80+14);write dat(Oxdf):write dat(0x43):/*J 女台化 * /void init ()/* 电显示初始化*/uchar i;TH二23;TL二18;write (0x80);for(i=0;i<16;i+)write dat (tab_li);delay(5);write (0x80+0x40);for (i=0;i<5;i+)(write_dat(tab 0i);delay (5);fuhaoO ;/*定时器初始化 */TMOD=0x01; /开定时器TO,方式1THO 二(65536-50000)
22、/256;/装入初值TLO二(65536-50000)%256;/EA=1;开全局中断ETO二1;TRO=1;打开定时器)/*报警函数*/void bi(uint t)int i,j;for(i=0;i<t;i+)for(j=0;j<50;j+);BEEP二、BEEP;/按位取反 BEEP/*T1I . TL取十位个位送人显示*/void writeT HL(uchar add,uchar dat)uchar shi,ge;shi=dat/10;/十位ge=dat%10;/ 个位write (0x80+add);wi'ite dat (shi+0x30);write dat
23、(ge+0x30):/水* 按键 函数 */void keyscan()/* 能 */if(s0=0)(num+;delay (2);if(s0=0)led=0;while(!s0);bi(300);led=l;/按一下灯亮一下声音响一声if(num=l)TRO=O;write_(0x80+12);delay(10);)/write_(0x0f);if(num=2) write_(0x80+4);if(num=3) num=0;TR0=l;/*I/ 能力P*/if(num!=0)(if(sl=0)delay (2);if(sl=0)ledO=O;while(!sl); bi(300);led0
24、=l; /按一下灯亮一下声音响一声if(num=l)TH+;if(TH=100)TH-O;writeT HL(3.TH);write.(0x80+4);if(num=2)TL+;if(TL=100)TL=0;writeT HL(12,TL):write (0x80+10);/*I*/if (num!=0)if(s2=0)delay (2);if(s2=0)ledl二0;while(!s2);bi(300);ledl=l; 按一下灯亮一下声音响 一声if(num=l)TH;if(TH=-l)TH=99;writeT HL(3fTH);write (0x80+4):if(num=2)TL=99;w
25、riteT HL(12tTL);write.(0x80+10);/*温度报警函数*/void beepOuchar tem;tem=temp/10; /返回的温度值temp放 大了十倍,得除十还原if(TH<=tem) bi (500);if(TL>=tem) bi(500);/*.函 */void main(void)Init 1602();init();while(l)(BEEP二0;keyscan ();dsl820disp();beepO ;/*) 时器中断 ® */TL;if(TL=-l)void time() interrupt 1THO 二(65536-50
26、000) /256 ;/ 重装初值TLO= (65536-50000)%256;DS 1802驱动程序#ifndefDS18B20 HdefineDS18B20 H#define uchar unsigned char#define uint unsigned intsbit DQ = P3;uchar tab5:uint temp;/温度值bit tflag;/*延时 1 */void delay 18B20(uint i)whiled-);/*dsl820 */void dsl820rst()uchar x二0;DQ二 1;/DQ 复位delayl8B20(8);/延时DQ二0;/DQ 拉
27、低delay_18B20(80) ;/精确延时大于480usDQ二h/拉高delay 18B20(14);x=DQ;稍做延时后如果x=0则初始化成功x=l则初始化失败while(!DQ);delay 18B20(20);/*读个字节 */uchar dsl820rd()uchar i二0;uchar dat=0;for (i=8; i>0;i)DQ-0;/给脉冲信号dat»=l;DQ=1;/给脉冲信号if(DQ)dat:=0x80;delay.l8B20(4);return(dat);/*写个字节 */void ds1820wr(uchar dat)uchar i二0;for
28、(i=8;i>0;i)DQ二 0;DQ二dat&OxOl;delayJ8B20(5);DQ二 1;dat»=l;值并转换 */read temp()uchar a,b;dsl820rst ();dsl820wr (Oxcc); /跳过读序列号 ds 1820wr (0x44); /启动温度转换delayJ8B20(100);dsl820rst ();dsl820wr (Oxcc);跳过读序列号ds 1820戕(Oxbe) ; /读取温度delay 18820(100);a=dsl820rd();b=dsl820rd();temp=b;temp«=8; temp
29、=templa; if (temp<OxOfff)tflag=O;elsetemptemp+l;tflag=l;temp=temp*(O. 625);/温度值扩大 10 倍, 精确到1位小数return(temp);/*温度值 , */void dsl820disp()uchar flagdat;read temp():tab0=temp%1000/100+0x30;/十位数tab1=temp%100/10+0x30;/个位数tab2=temp%10+0x30;/小数位if (tflag=O)flagdat=0x20; /正温度不显示符号elsef 1 agdat=0x2d; /负温度显示负号:-i f (tab0 =0x30) tab 0 =0x20; 如 果十位为0,不显示write (0x80+0x40+6);write dat(flagdat):/显示正负wr i te dat (tabO):/显示十位write_dat (tabll) ;/显示个位wr i te_dat (Ox2e) ;/ 显示小数点write dat (tab2):/显示小数位write dat(Oxdf):write dat(0x43):tfendifLCD 1602驱动程序ttifndef1602 H#define1602 H#define
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 缝纫机结构优化与性能提升考核试卷
- 股票账户资产分配与生物科技产业投资协议
- 互联网金融服务法律补充协议
- 农业无人机电池租赁与无人机植保作业合同
- 金融科技证券分析师助理派遣与区块链技术应用合同
- 儿童图书馆文献资源采购与儿童教育服务协议
- 宠物医院托管运营与品牌合作合同
- 电子商务利用补充协议规范物流配送
- 保险理赔款结算与保险理赔信息化建设协议
- 环保设备工艺保密补充协议书
- 第32届全国中学生物理竞赛复赛试题
- 2025年中国肿瘤专科医院行业市场规模及未来投资方向研究报告
- 抗肿瘤药物的常见不良反应及相应对策
- 统编版语文四年级下册第五单元教材解读解读与集体备课课件
- 课题申报书:面向智能时代的中学生科学素养评价标准研究
- 2025年保密观考试题库及答案
- 农药销售策略优化路径-全面剖析
- 用户思维在产品创新中的应用案例
- 消防维保考核标准
- 【初中化学】常见的盐-2024-2025学年九年级化学科粤版(2024)下册
- 中国教育社会问题
评论
0/150
提交评论