欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    温度检测报警器单片机课程设计.docx

    • 资源ID:6323669       资源大小:21.65KB        全文页数:6页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    温度检测报警器单片机课程设计.docx

    1、温度检测报警器单片机课程设计温度检测报警器单片机课程设计21、1 系统总体方案21、2 硬件系统设计21、2、1 单片机简介21、2、2 温度传感器工作原理41、2、3 时钟电路设计61、2、4 复位电路设计62 软件模块设计72、1 主程序72、2 主程序流程图82、3 DS18B20软件设计流程图82、3、1 读温度子程序设计流程图82、3、2 温度转换命令程序设计93 系统调试103、1 硬件系统调试103、1、1 不加电源检测103、1、2 静态检测103、2 软件系统调试103、2、1 静态调试103、2、2 动态调试104 设计总结11附录12参考文献19前言 温度是一个分重要的物

    2、理量,对它的测量与控制有分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。在控制领域中,对温度的控制有着举足轻重的作用。例如陶瓷的烧烤,只有控制住温度的适度,才能制作出一件完美的艺术品,否则只是一件废品;还有如酿酒的过程,也需要对温度进行控制。可见,在生活的许多方方面面都有着对温度进行感知和控制的需要。本次设计的目的就是基于AT89C51单片机设计一个温度检测,报警的系统,该系统能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测,为设备的正常运行提供了条件,在工业中具有一

    3、定的实用价值和广泛的应用前景。1 硬件设计与系统总体方案1、1 系统总体方案本设计的题目为温度监测报警系统,因为要用单片机去完成程序控制以及数据转换,故外围电路设计较简单。硬件设计可分为:核心控制CPU、环境温度采集、数码管显示、超限报警灯。其系统框图如图1、1-1所示。图1、1-1 温度监测报警设计系统框图基于图1、1-1框图介绍,可了解到温度监测报警设计的各个模块。每个模块均由一个核心器件,对于该器件的选择在某种程度上决定了设计方案的选择。由于是利用单片机控制电路,因此在电路中,单片机控制处理器为核心器件。在本设计中可使用STC89C2051、STC89C51以及凌阳公司生产的16位单片机

    4、等。考虑到各种因素,本设计选用STC89C51单片机作为核心控制CPU。要设计温度监测便要有温度采集,可以采集温度的途径较多,文中采用达拉斯公司生产的单线数字温度传感器DS18B20,其可使温度信号直接转换成串行数字信号供微处理器处理,且外围电路简单、实现方便。显示技术是传递视觉信息的技术,由于LED数码管显示器的寿命较长、价格低廉且显示清晰,所以在设计中选择LED显示环境温度。1、2 硬件系统设计 本设计硬件系统主要包括温度传感器、时钟电路、复位电路以及控制核心单片机等几个模块,下面将对所涉及的模块进行逐一介绍。1、2、1 单片机简介本设计采用STC89C51单片机作为控制核心,STC89C

    5、51单片机是采用8051核的ISP在系统可编程芯片,片内含8KB的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及8051引脚结构。此款单片机是单时钟的兼容8051内核单片机,是高速/低功耗的新一代8051单片机。其引脚图如图1、2、1-1所示。图1、2、1-1 STC89C51单片机引脚功能图单片机STC89C52引脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,定义为高阻输入。P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的八位。在FLASH编程时,P0口

    6、作为原码输入口;当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL逻辑电平。当对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1、0 和P1、2 分别作为定时器/计数器2 的外部计数输入(P1、0/T2)和定时器/计数器2的触发输入(P1、1/T2EX)。在Flash编程和校验时,P1口接收低8 位地址字节。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口

    7、,P2 输出缓冲器能驱动4 个TT逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16 位地址读取外部数据存储器(如执行MOVX DPTR)时,P2 口送出高8 位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8 位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2 口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个

    8、TTL逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3 口也作为AT89S52 特殊功能(第二功能)使用。RST: 复位输入。在晶振工作时,RST脚持续两个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO 位可以使此功能无效。在DISRTO 默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)在访问外部程序存储器时,锁存低8 位地址的输出脉冲。在Flash编程时,此引脚(PR

    9、OG)也用做编程输入脉冲。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH 的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。1、2、2 温度传感器工作原理DS18B20数字温度计提供9-12位摄

    10、氏温度测量而且有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(加上地线)。它的测温范围为-55125,并且在-1085精度为5。除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求。每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20。这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。表1、2、2-1 详细

    11、引脚说明序号名称引脚功能描述1VCC可选择的Vcc引脚。当工作于寄生电源时,此引脚必须接地。2DQ地信号。3GND将数据写入暂存器的TH、TL字节图1、2、2-1是表示DS18B20的方框图,表1、2、2-1已经给出了引脚说明。64位只读存储器储存器件的唯一片序列号。高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据。除此之外,高速暂存器提供一个直接的温度报警值寄存器(TH和TL),和一个字节的的配置寄存器。配置寄存器允许用户将温度的精度设定为9,10,11或12位。TH,TL和配置寄存器是非易失性的可擦除程序寄存器(EEPROM),所以存储的数据在器件掉电时不会消失

    12、。图1、2、2-1 DS18B20方框图DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9,10,11或12位,分别以0、5,0、25,0、125和0、0625增量递增。在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器必须发出44h命令。在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”(见单总线系统节),DS18B20正在温度转换中返回0,转换结束返回1。如果D

    13、S18B20由寄生电源供电,除非在进入温度转换时总线被一个强上拉拉高,否则将不会由返回值。寄生电源的总线要求在DS18B20供电节详细解释。1、2、3 时钟电路设计MCS-51内部有一个用于构成震荡器的高增益反向放大器,此放大器的输入端和输出端分别是XTAL1和XTAL2,在XTAL1和XTAL2上外接晶振可构成时钟电路。时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。晶振频率的大小决定了单片机系统工作的快慢。本次设计采用内部方式的外部时钟接法。为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,电容C1、C2对频率有微调作用,故外接晶振时,C1和C2在本设计中选

    14、择30pF,振荡频率取12MHz。晶振的两个引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。具体连接图如图1、2、3-1所示:图1、2、3-1 时钟电路原理图1、2、4 复位电路设计MCS-52单片机通常采用上电自动复位、按钮电平复位、外部脉冲复位、上电+按钮电平复位、程序运行监视复位等方式。本设计采用上电复位,其原理图如图1、1、4-1所示,上电复位是利用电容充电来实现的,即上电瞬间RST/Vpd端的电位与Vcc相同,随着充电电流的减少,最后被嵌位在0V,采用3、3uF的CR1和10K的R29可以保证加在引脚上的高电平持续2个机器周期,即使单片机有效地复位。图1、2、4-1 复位电路原理

    15、图2 软件模块设计2、1 主程序系统程序主要包括延时子程序、外部中断0服务子程序、外部中断1服务子程序、显示温度子程序、报警子程序、主程序等。主程序的功能为:按下开关键,使处于开的状态后,4位LED数码直接读出温度。若按一下设置键,则可设置温度的上限,蜂鸣器滴滴滴报警,当所测的温度低于所设置的下限,二极管闪烁亮,蜂鸣器滴滴滴报警。2、2 主程序流程图图2、2-1 主程序流程图设计在主程序流程图中,当开关键按下时,DS18B20开始工作,读出其温度值后,进行数据转换,下一步进行判断,是否超过所设定的温度上限和温度下限,若超过,则蜂鸣器发出声音,并在数码管上进行显示;若没有超过,则蜂鸣器不响,并在

    16、数码管上进行显示,然后重复上述步骤。2、3 DS18B20软件设计流程图DS18B20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲时隙;写0,写1时隙;读0,读1时隙。与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。发送所有的命令和数据时,都是字节的低位在前,高位在后。2、3、1 读温度子程序设计流程图读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图2、3、1-1所示。2、3、1-1 读出温度子程序流程图2、3、2 温度转换命令程序设计温度转换命令程序主要是发

    17、温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。如图2、3、2-1所示。图2、3、2-1 温度转换命令子程序流程图3 系统调试3、1 硬件系统调试对板子的安装和调试在整个设计过程中是很重要的一个过程,是把设计转换成实际物体的过程,也是对理论知识的一个实际应用。对产品进行检测的过程中使用检测仪器有:万用表、电源、示波器等器材。其检测步骤有下述几类。3、1、1 不加电源检测对照设计原理图以及实物,检查线路是否连线正确,包含是否存在误接、虚焊等;用万用表检测焊接是否良好,元器件之间是否存在短路,各元件(三极管、点解电容、发光二极管等)

    18、极性是否正确。3、1、2 静态检测 将直流稳压电源准确输出,并连入电路板中,观察是否存在不正常现象,如元器件发烫,空气中产生难闻气味等。如有上述现象,立即断开电源,检查各线路,各连接点,排除故障;如没有发现异常现象,则用万用表检测各个连接点是否有满足需求的电压,如静态工作点、各个输入输出端、放大电路连接点等。如与理论电压值相差较大,则检查是否存在元器件损坏等问题。最终的目的是让整个电路工作在一个合适的状态。3、2 软件系统调试软件调试是保证设计成果正常运作必不可少的步骤,通常软件调试分为静态调试和动态调试。3、2、1 静态调试在静态调试中,第一种办法是输出寄存器的内容,在测试过程中出现问题,设

    19、法保留现场信息。把所有寄存器和主存中有关部分的内容打印出来,进行分析。还有一种方法是为取得关键变量的动态值,在程序中插入打印语句。这是取得动态信息的简单方法,并可检验在某时间后某个变量是否按预期要求发生了变化。此方法的缺点是可能输出大梁需要分析的信息,必须修改源程序才能插入打印语句,这可能改变关键的时序关系,引入新的错误。3、2、2 动态调试通常利用程序语言提供的调试功能或专门的调试工具来分析程序的动态行为。一般程序语言和工具提供的调试功能有检查主存和寄存器;设置断点,即当执行到特定语句或改变特定变量的值时,程序停止执行,以便分析程序此时的状态。4 设计总结本温度报警器,通过单片机实时检测温度

    20、传感器DS18B20的状态,并将DS18B20得到的数据进行处理。上电后数码管显示当前的环境温度,当检测到的温度高于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁,温度检测精确到0、1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面。由于采用了4节干电池供电使系统的抗干扰性得到加强。在软件上,充分利用了STC89C52的系统资源,系统运行流畅。本设计结构简单,调试方便,系统反映快速灵活,经实验测试,该温度报警系统设计方案正确、可行,各项指标稳定、可靠。附录附录1:电路原理图附录2:PCB图附录3:仿真图附录4:实物图附录5:程

    21、序#include config、h #include #include #define DQP00 #define BuzzerP01#define LEDP02unsigned char TPH; /存放温度值高字节unsigned char TPL; /存放温度值低字节unsigned char x1,y1,y2,x2,y3,y4; unsigned char code table1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /段码unsigned char code table2=0xef,0xdf; /位码unsigned

    22、char count_led; bit falg=0;/*延时X微妙不同的工作环境,需要调整此函数此延时函数是使用1T的指令周期进行计算,与传统的12T的MCU不同*/void DelayXus(unsigned char n) while (n-) _nop_(); _nop_(); /*复位DS18B20,并检测设备是否存在*/void DS18B20_Reset() falg =1; while(falg) DQ = 0; /送出低电平复位信号 DelayXus(240); /延时至少480us DelayXus(240); DQ =1; /释放数据线 DelayXus(60); /等待

    23、60us falg = DQ; /检测存在脉冲 DelayXus(240); /等待设备释放数据线 DelayXus(180); /*从DS18B20读1字节数据*/unsigned char DS18B20_ReadByte() unsigned char i; unsigned char dat = 0; for (i=0; i=1; DQ = 0; /开始时间片 DelayXus(1); /延时等待 DQ =1; /准备接收 DelayXus(1); /接收延时 if (DQ=1)dat |= 0x80; /读取数据 DelayXus(60); /接收延时 return dat;/*向D

    24、S18B20写1字节数据*/void DS18B20_WriteByte(unsigned char dat) char i; for (i=0; i=1; /*/void Ds18b20_Convert(void)DS18B20_Reset(); /设备复位DS18B20_WriteByte(0xCC); /跳过ROM命令DS18B20_WriteByte(0x44); /开始转换命令while (!DQ); /等待转换完成DS18B20_Reset(); /设备复位DS18B20_WriteByte(0xCC); /跳过ROM命令DS18B20_WriteByte(0xBE); /读暂存存

    25、储器命令TPL = DS18B20_ReadByte(); /读温度低字节TPH = DS18B20_ReadByte(); /读温度高字节/-x1=(TPL&0xf0)4)+(TPH&0x07)=3)count_led=1; switch(count_led) case1 :P3=table20; P1=table1y1; break;case2 :P3=table21; P1=table1y2 ; break; default : ; if(x1/10)=2&(x1%10)=5)Buzzer=0;LED=0; else Buzzer=1;LED=1; /*/void main(void)T

    26、MOD=0x01;TH0=0Xf5;TL0=0X00; ET0=1; TR0=1;EA =1;while(1) Ds18b20_Convert(); 参考文献1 吴金华、基于单片机的温度监控报警系统设计J、电子电路,xx,26(4):146-1492 丁幼春、基于AT89C51和DS18B20的多点温度监测报警系统J、农机化研究,xx,6(5):121-1253 马云峰,陈子夫,李培全数字温度传感器DS18820的原理与应用J电子元器件应用,2002,2(1):23-254赵建林小型温度报警器的设计及实现J河南科技:上半月xx(17)59-605戴佳等51单片机C语言应用程序设计实例精讲M北京:电子工业出版社,xx6楼然苗51系列单片机设计实例M、北京:北京航空航天大学出版社,2003


    注意事项

    本文(温度检测报警器单片机课程设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开