毕业设计(论文)智能电风扇的设计.doc

上传人:文库蛋蛋多 文档编号:3983036 上传时间:2023-03-30 格式:DOC 页数:28 大小:601KB
返回 下载 相关 举报
毕业设计(论文)智能电风扇的设计.doc_第1页
第1页 / 共28页
毕业设计(论文)智能电风扇的设计.doc_第2页
第2页 / 共28页
毕业设计(论文)智能电风扇的设计.doc_第3页
第3页 / 共28页
毕业设计(论文)智能电风扇的设计.doc_第4页
第4页 / 共28页
毕业设计(论文)智能电风扇的设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《毕业设计(论文)智能电风扇的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)智能电风扇的设计.doc(28页珍藏版)》请在三一办公上搜索。

1、湖南第一师范学院毕业论文(设计)题目智能电风扇(小四宋体居中)学生姓名学号指导教师系(部)信息科学与工程系专业班级应用电子技术一班完成时间2010年4月23日目 录(三号宋体居中)(以下目录自动生成)第1章 绪论1第2章 系统概况22.1 智能电风扇结构图22.2 控制电风扇流程图32.3 主要元件工作原理简介3第3章 智能电风扇控制系统53.1 智能电风扇的控制电路53.2 温控电风扇的硬件电路9第4章 软件设计114.1 主程序设计114.2 温度测量程序设计134.3 显示程序设计134.4 温度设定程序设计13第5章 结束语14参考文献15附 录116附录223智能电风扇的设计摘 要:

2、该设计是为了让电风扇这一家用电器变的更智能化。当室温高于需要开启电风扇的某一温度并且人出现在热释电传感器可测范围时,电风扇自动开启,人离开后自动关闭;当室温低于这一温度时,即使人在热释电传感器可测范围内,电风扇也处于关闭状态。关键字:温度传感器;热释电传感器;步进电机(都为宋体小四,不要译为英文)第1章 绪论社会在发展,科技在进步,随着人们生活水平的提高,老式的风扇已渐渐的不能满足人们的生活需要,作为学电子专业的学生,我对电风扇的发展非常感兴趣,同时对电风扇作了以下的探讨。在如今,人们烦琐的事情越来越多,回到家更想一动不动好好休息一下,消除自己一天的工作疲劳,传统风扇还要去开启,调速,固定它的

3、转动方向,同样的风速吹的人会痛,这让人们觉得很麻烦也很无奈。而智能电风扇就解决了这些问题。只要人一进入它的探测范围,它就会自己启动,吹出变换方向适合室内温度的风来,免除人为的手工操作。中国有13亿人,使用空调的只占总人口的三四成,还有多数人使用电风扇,由此可见它的市场是巨大的,人们已经普遍把它使用在了生活中。众所周知,传统的电风扇的开启和关闭要人为的去开,关,好一点的会有个遥控器,可还是要人去操作,这对现代忙碌的人群来说是很麻烦的。而我过的电网电压为220伏,50赫兹,在由于供电频率不能改变,传统的电风扇的电机转速基本上变化不大,依靠它的“开,高速,中速,低速,停”电机来调整室内温度,其电机的

4、一开一停,一高一低之间容易造成室内温度忽冷忽热,并消耗较多电能,还容易烧毁电机。智能电风扇它是采用多挡全自动变频器,使得对电风扇各挡风量的调节更加细化,使得电风扇的控制更具人性化,同时它也具有全自动、控制简单、智能化、制作容易。使用温度传感器、热释电红外传感器、专用控制集成电路和单片机,实现当室温达到设定开启风扇的温度并且人出现在热释电传感器可测范围时,电风扇自动开启,并且可以根据室温变换频率,人离开后自动关闭;当室温低于这一温度时,即使人在热释电传感器可测范围内,电风扇也处于关闭状态。电路遥感距离为10m,角度为85,温度设定为24。智能电风扇是把自动开与关和通过对电流的转换来实现电动机运转

5、频率的自动调节,从而达到改变风速的目的。此设计用到单片机,它是把微处理器,存储器(RAN和RON),输入/输出接口以及定时器/计数器等集成在一起的集成电路芯片。它与集成电路相结合,组成一个设定,感温,控制和输出与一身的模块。利用单片机89C51和一些电路对室温进行探测,对电风扇进行开和关一系列控制。第2章 系统概况2.1 智能电风扇结构图(黑体小四) 智能电风扇有内部结构和外部结构组成。内部结构有集成电路板和风扇电机组成,外部结构就是机壳。整个部分电路板连接了有单片机,温度传感器,热释电红外传感器,PWM脉宽调治电路,延时开关电路, 按键式电磁开关,自动变频器,电压-频率转换电路,LED显示器

6、,A/D转换电路、可控硅触发控制电路、振荡、稳 压 器电源电路步进电机8051单片机A/D转换器震荡热释电红外传感器温 度 传 感 器PWM脉宽调制电路A/D转换A/D转换电源电路组成。温控电风扇的结构框图如图2.1所示。 图2.1: 电风扇的结构框图(居中,小5号黑体)2.2 控制电风扇流程图待机是否有人?是否设定温度?是否达到设定温度?启动PWM电路启动步进电机待机控制风扇流程图如图2.2所示。图2.2 控制风扇流程图2.3 主要元件工作原理简介2.3.1热释电传感器原理(小四号楷体) 热释电传感器利用的正是热释电效应,是一种温度敏感传感器。它由陶瓷氧化物或压电晶体元件组成,元件两个表面做

7、成电极,当传感器监测范围内温度有T的变化时,热释电效应会在两个电极上会产生电荷Q,即在两电极之间产生一微弱电压V。由于它的输出阻抗极高,所以传感器中有一个场效应管进行阻抗变换。热释电效应所产生的电荷Q会跟空气中的离子所结合而消失,当环境温度稳定不变时,T=0,传感器无输出。当人体进入检测区时,因人体温度与环境温度有差别,产生T,则有信号输出;若人体进入检测区后不动,则温度没有变化,传感器也没有输出,所以这种传感器能检测人体或者动物的活动。2.3.2温度传感器的原理(小四号楷体)温度传感器的基本原理是由热电偶传感器演变而来,主要按照热电效应来工作。将两种不同的导体A和B 连接起来,组成一个闭合回

8、路,即构成感温元件。当导体A和B的两个接点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一定大小的电流,这种现象即称为热电效应,也叫温差电效应。热电偶就是利用这一效应进行工作的。热电偶的一端是将A、B两种导体焊接在一起,称为工作端,置于温度为t的被测介质中。另一端称为参比端或自由端,放于温度为t0的恒定温度下。当工作端的被测介质温度发生变化时,热电势随之发生变化,将热电势送入计算机进行处理,即可得到温度值。 2.3.3PWM脉宽调制原理 脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。简而言之

9、,PWM是一种对模拟信号电平进行数字编码的方法。这三种PWM输出编码的分别是强度为满度值的10%、50%和90%的三种不同模拟信号值。对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。2.3.4步进电机原理(小四号楷体)步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。步进电机靠一种叫环形分配器的电子开关器件,通过功率放大器使励磁绕组按照顺序轮流接通直流电源。由于励磁绕组在空间中按一定的规律排列,轮流和直流电源接通后,就会在空间形成一种阶跃变化的旋转磁场,使转子步进式的转动,随着脉冲频率

10、的增高,转速就会增大。步进电机的旋转同时与相数、分配数、转子齿轮数有关。现在比较常用的步进电机包括反应式步进电机、永磁式步进电机、混合式步进电机和单相式步进电机等。其中反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。现阶段,反应式步进电机获得最多的应用。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上 步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通

11、的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。如果通过单片机按顺序给绕组施加有序的脉冲电流,就可以控制电机的转动从而实现数字 角度的转换。转动的角度大小与施加的脉冲数成正比,转动的速度与脉冲频率成正比,而转动方向则与脉冲的顺序有关。以三相步进电机为例,电流脉冲的施加共有三种方式。 第3章 智能电风扇控制系统3.1 智能电风扇的控制电路3.1.1 8051单片机简介(小四号楷体)89051部分管脚定义Vss :地Vcc :电源:提供掉电、空闲、正常工作电压P0.0-0.7 : P0 I/O 口 - P0 口是开漏双向口,可以写为1 使其状态为悬浮用

12、作高阻输入。P0 也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。P1.0-1.7 : P1 I/O 口 - P1 口是带内部上拉的双向I/O 口,向P1 口写入1时,P1 口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P1 口会因为内部上拉而输出电流(见DC 电气特性)。 P1 口第2 功能:T2(P1.0) 定时/计数器2 的外部计数输入/时钟输出(见可编程输出)T2EX(P1.1) 定时/计数器2 重装载/捕捉/方向控制P2.0-2.7 : P2 I/O 口 - P2 口是带内部上拉的双向I/O 口,向P2 口写入

13、1时,P2 口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P2 口会因为内部上拉而输出电流(见DC 电气特性)。 在访问外部程序存储器和外部数据时分别作为地址高位字节和16 位地址(MOVX DPTR),此时通过内部强上拉传送1。 当使用8 位寻址方式(MOVRi)访问外部数据存储器时,P2 口发送P2 特殊功能寄存器的内容。RST : 复位 当晶振在运行中,只要复位管脚出现2 个机器周期高电平即可复位,内部有扩散电阻连接到Vss 仅需要外接一个电容到Vcc ,即可实现上电复位。PSEN :程序存储使能当执行外部程序存储器代码时,PSEN 每个机器周期被激活两次,在访问外部数

14、据存储器时PSEN无效,访问内部程序存储器时PSEN 无效。XTAL1 :晶体1 反相振荡放大器输入和内部时钟发生电路输入。XTAL2 :晶体2 反相振荡放大器输出。3.1.2 89051部分关联功能简介(小四号楷体)(1) 复位在振荡器工作时将RST脚保持至少两个机器周期高电平12 时钟模式为24 个振荡器周期6,时钟模式为12 振荡器周期可实现复位为了保证上电复位的可靠,RST 保持高电平的时间至少为振荡器启动时间(通常为几个毫秒)再加上两个机器周期。复位后,振荡器以12 时钟模式运行当已通过并行编程器设置为6 时钟模式时除外。(2) 振荡器特性XTAL1 和XTAL2 为输入和输出,可分

15、别作为一个反相放大器的输入和输出。此管脚可配置为使用内部振荡器。要使用外部时钟源驱动器件时,XTAL2 可以不连接而由XTAL1 驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。但高低电平的最长和最短时间必须符合手册的规定。(3) 定时器0 和1 的操作定时和计数功能由特殊功能寄存器TMOD 的控制位进行选择。这两个定时/计数器有4 种操作模式,通过TMOD 的M1 和M0 选择。两个定时/计数器的模式0、 1 和2 都相同模式3 不同。(4)中断本器件提供6 个中断源。外部中断INT0 和INT1 可根据寄存器TCON 中的IT0 和IT1 位状态分别设置为电平

16、或者边沿触发。实际产生的中断标志是TCON 中的位IE0 和IE1。 当产生外部中断时,如果是边沿触发,进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发,由外部请求源而不是由片内硬件控制请求标志。定时器0 和定时器1 中断由TF0 和TF1 (分别由各自的定时/计数寄存器控制,定时器0 工作在模式3时除外)产生。当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位。8(P12-15)3.1.3按键电路(小四号楷体)使用TC9148编码芯片将按键信号调制在38KHz的载波信号上通过三极管放大后发射出去。按键发射电路见附录图6 红外接收电路采取红外接收器件 HS0038,通过系统的

17、输入捕捉接收红外遥控信号。按键接收电路见附录图73.1.4 LED显示电路(小四号楷体) 整机的电压输出显示电路如附图3所示。(附图3:在附录中的图3)本设计采用两个一样的集成数码管。 LED数码管由各自的三极管驱动与关闭。当单片机输出显示数据的同时还输出两个驱动信号送到 DS1、DS2的各自的三极管的基极,使三极管导通从而使LED显示相应输出电压值。数码管和三极管要用截止电流尽量小一些的器件。因为了减小整机的功耗,所以必须用截止电流小些的器件。LED显示电路如图3.1所示。 图3.1 LED显示电路图3.1.5复位电路(小四号楷体) 复位电路如图3.2所示。图3.2 复位电路图 上电后5V电

18、压通过C向R电阻充电,这时在89C51的复位端就会形成一个负的电压脉冲。这时单片机就认为给它一低的电平信号告诉它要复位了。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才

19、起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。本电路采用的是上电自动复位,不需要手动按动按钮去人工复位。在复位有效期间,ACE、PSEN也输出高电平,REST输入端返回低电平以后单片机从0地址开始执行程序。五、数模转换电路DAC0808是具有16个引脚的双列直插式8位D/A转换器件。其引脚功能分别为:1脚为空, 2脚为GND,3脚为VEE,4脚为DAC输出引脚,512脚为数据输入引脚,13脚为VCC,14脚为基准电压(VREF),15脚为基准电压(VREF),16脚为COMPENSATION。数模转换电路如图3.3所示。当数据输入量全为0时,其4脚输出电压最低

20、,接近零;当数据输入量全为1时,其4脚输出电压最高,电压值由基准电压VREF决定。因此,基准电压的精度决定了D/A转换的精度。图3.3数模转换电路图 本文所用的基准电压为15V,而数据输入量在00HFFH之间变化,即D/A输出的电压有256种。从而不难算出本电源的精度15V2560.05859V0.06V。假如我们想要6V的直流电压,数据输入量6V0.06V100,注意这里的100是十进制的,单片机不能识别十进制数据,所以要把十进制转换成二进制或十六进制(转换时可用WINDOWS自带的科学计算器进行)。100转换成十六进制后为64H。只要给DAC0808输入64H,它就能输出6V的电压(注意:

21、理论值和实践值有所出入,具体运用时要适当的调节数据输入量),该电压经运放TL082后再去推动LM317,由LM317输出我们需要的电压值,实现了电压数控调节。3.2 温控电风扇的硬件电路3.2.1 直流稳压电路(小四号楷体)(1)三端稳压器LM317的输出电流是1.5A,输出电压可在1.5-37V之间连续可调。输出电压由控制脚决定,最高输出电压由电源电压决定。此电路采用的三端稳压集成电路 LM317。它的1脚是控制端。2脚是输出端 。3脚是电源端。引脚非常少易于控制,并且输出电压稳定带负载能力强。它配合前级的推动电路从而实现电压的数控调节。LM317在工作时流过的电流是非常大的,所以一定要加足

22、够大的散热片。以便较快的散去工作时的热量避免因高温而损坏LM317稳压集成电路。此设计的LM317是不能用一般的三端稳压器代替的。因为一般的三端稳压器是不带控制脚他只有接地脚。三端稳压器电路如图3.4所示。图3.4 三端稳压电路图(2)缓冲与保护电路 缓冲电路采用的是集成运放TL082。它的1脚是控制输出,2脚是输入端,3脚接地端,8脚是+15V输入端,4脚是-15V输入端。它的作用是把D/A数模转换集成电路输出的控制电压进行放大后去推动LM317输出所要的电压。 保护电路是由(R10、R11、R12)取样电阻和单片机的25脚组成。工作原理是:当单片机检测到负载短路时,25脚的电压会发生变化这

23、时单片机就认为负载短路迫使整机处于待机状态,使输出电压为零从而保护了三端稳压器不至于损坏,并且还避免了负载因短路在扩大故障范围。 (3)温度传感器电路 温度传感器采用专用的DS18B20温度集成传感器, 当温度大于150 时其输出端的电压将回降到很低(接近0V)。传感器要与LM317三端稳压器紧密相接触,以便及时感知三端稳压器的温度变化。只要三端稳压器的温度大于150是温度传感器就会输出低电平送到单片机的保护检测脚,从而启动保护功能。 传感器电路图如图3.5所示。 图3.5 传感器电路图(4) 硬件电路的整体分析 220V市电经变压器将压后变成15V的交流电压,经整流电路后变成正负15V左右的

24、直流电压。(变压器是采用三抽头的)-15V电压送到缓冲放大集成运放为其提供负的工作电压。+15V直流电压经五伏稳压后变成稳定的5V电压为单片机和D/A数模转换集成电路提供工作电压。数模转换器是一个八位的D/A转换器件。当输入的数据全为0时,其数控电源输出的电压接近0V。当输入的数据全为1时,其数控电源输出电压最高接近基准电压。基准电压值由VREF决定。此电路采用的基准电压是15V 。 当接通电源后89C51得到复位电压复位后,内部开始执行程序,而输出相应的电压值。SW1是开关按键,按一下次按键后整机处于待机状态,同时LED显示“OF”。电源无电压输出,按任意键可以开机。SW2是输出电压递减调节

25、按键,当按一下SW2时,89C51单片机地16脚(P3.6口)会得到一个变化的脉冲,这个变化的脉冲送到单片机内部处理后由P1口的1到8脚输出递减电压的数据,直接送到数模转换集成电路的A1-A8端子(也就是5-12脚),电压递减数据经D/A集成电路转换后,由4脚输出一个控制电压。这个控制电压直接送到集成运放TL082,经TL082反相放大后,直接推动LM317三端稳压器输出相应的电压值。从而实现数控电压的无触点调节。并且由89C51单片机的内部输出显示电压的数据电压去推动V1,V2三极管的导通,从而驱动LED数码管显示相应的输出电压值。SW3按键(电压递增调节)与电压递减调节的工作原理相反。 当

26、刚开机时由于单片机要初始化(复位)这一瞬间单片机输出的数据不受控制,从而会导致LM317输出一个高的电压,会使用电器(负载)损坏。为了防止这一现象的发生,从而设置了V3(PNP)保护三极管。当单片机初始化时,各端口的电压为低电平,这时V3导通,继电器得到工作电压,使继电器的触点断开,从而切断了输出电压,保护了用电器不被瞬间输出的高电压损坏。当复位后,P2.5口恢复了高电平,这时V3截止,继电器得不到工作电压而恢复到常闭状态,这时就输出正常的电压到用电器。 当用电器(负载)短路或过载现象时,会到造成输出电压大幅度下降,此电压经取样电路后的电压也会下降很多,这时P2.4口的电位也随之降低。程序立即

27、检测到P2.4这一变化。立即使P2.5口为低电平从而使V3导通,继电器工作切断输出电压。这时整机也转入待机状态,直至故障排除后才能重新开机,否则整机将一直处于待机状态 。整机电路图见附录。第4章 软件设计4.1 主程序设计 主程序框图如图4.1所示。 单片机复位后,开始初始化工作,然后进入按键功能模块,最后完成工作。初始化中,将DS18B20,内部RAM,包括按键,默认为控制状态,温度设定为24。数字显示的程序见附录。开始初始化按键功能有按键?设定各位按键各位按键 十位案件 NY4.1 主程序框图图4.2 温度测量程序设计框图 开始 有人?初始化 采集室内温度 判断温度?返回延时开启风扇NYN

28、Y4.2 温度测量程序设计温度测量程序设计框图如图4.2所示。温度测量程序见附录。4.3 显示程序设计接受信号并查表 开始返回信号是否完整?延时YN图4.3 显示程序设计框图显示程序设计框图如图4.3所示。显示程序见附录。4.4 温度设定程序设计加减按键同时按下进入温度设定状态,然后按加或减按键进行温度设定,然后再次同时按加减键退出。程序设计框图如图4.4所示。温度设定程序见附录。初始化开始是否有人?读取室内温度返回达到设定温度?延时开启风扇NYYN图4.4 温度设定程序设计框图第5章 结束语电风扇我们都很熟悉,但要想把单片机技术运用到电风扇上是不简单的,刚开始我只是设想用单片机去控制热释电传

29、感器,把人出现的模拟电压变成数字的并且带动电风扇启动。于是我就查了许多资料通过自己分析与研究,我把这些零碎的资料系统的结合在一起就设计出来了温控电风扇。当然在电路上我还是采用了一部分人家现成的电路图,然后我把这些电路结合自己的理论知识,把单片机技术运用到了一般的电路中,从而实现了温度和人同时控制电风扇的启动。在写毕业论文时我深深体会到搞设计的艰辛与困难。由于我的理论知识还很欠缺,在论文里也有不少的错误。在以后的工作中我会更加的努力学习来弥补我现在的不足之处。 大学生活即将尾声, 三年的大学校园生活就要结束了,内心是感慨颇多, 即将离开生活所依三年的母校和我亲爱的老师和同学们,非常的舍不得。可是

30、我同时也知道这是必须经历的一个过程, 在这三年里我学会了专业和做人方面的知识,我认为那些都是我终生受用的,希望能把现在所学的东西运用到社会实践中去,为社会的发展尽一份薄力。参考文献1 刘华东. 单片机原理与应用M.北京:电子工业出版社,20082 周遐. 安防系统工程M.北京:机械工业出版社,2006(小五号楷体)3 廖先芸. 电子技术实践与训练 M.北京: 高等教育出版社,20024 李全利. 单片机原理及应用技术M.北京: 高等教育出版社,2003 5 徐科军. 传感器与检测技术M.第2版. 北京: 电子工业出版社,20016 高文明. 单片机在温度控制系统中的应用J.计算机应用研究,19

31、97,21(6):156-158附 录11、数字显示的程序:(都为单倍行距,请将鼠标放置相应内容上即可显示字体与字号)ORG 0000HAJMP STARTORG 0030hSTART : mov sp,#60h;(空2行)2、温度测量程序 duqu:LCALL GET_TEMPER ; 调用读温度子程序并初始化DS18B20LCALL DISP ; 调用显示当前温度MOV A,29H; 将现场实际温度传递给ACJNE A,2FH,LL1; 比较当前的温度与设定的温度是否相等CLR P2.0; 开启电风扇SJMP ANJIAN(空2行)3、显示程序DISP: MOV P0,#0A4H;/将数字

32、2的编码送P0口 CLR P2.0;/打开第一位数码管的显示电源 ACALL D1MS;/调用延时1MS子程序 SETB P2.0;/显示1MS后关第一位数码管显示 MOV P0,#0B0H;/数字3的编码 CLR P2.1;/打开第二位数码管的显示电源 ACALL D1MS;/调用延时1MS子程序 SETB P2.1;/显示1MS后关第二位数码管显示 MOV P0,#99H;/数字4的编码 CLR P2.2;/打开第三位数码管的显示电源 ACALL D1MS;/调用延时1MS子程序 SETB P2.2;/显示1MS后关第三位数码管显示 MOV P0,#92H;/数字5的编码 CLR P2.3

33、;/打开第四位数码管的显示电源 ACALL D1MS;/调用延时1MS子程序 SETB P2.3;/显示1MS后关第四位数码管显示 RET;/返回从第一位显示循环(空2行)4、温度设定程序TEMPER_L EQU 29H; 用于保存读出温度的低8位TEMPER_H EQU 28H; 用于保存读出温度的高8位FLAG1 EQU 38H; 是否检测到DS18B20标志位FLAG2 EQU 01H; 进入设定状态标志位ORG 0000HAJMP MAIN; 转入主程序ORG 0030H MAIN:MOV 2FH,#24; 设定高于24度为温度过高SETB P2.1 ; 闭等待指示灯CLR FLAG2

34、 main1:mov a,2FH ; 存储的最高温度24度mov b,#10 ; 取出十位和个位div abORL A,#00110000Bmov 41H,a ; 十位mov 42H,b ; 个位MOV A,42HORL A,#00110000B; 转化成ASCII码mov 42H,Amov a,2FHmov b,#100 ; div abORL A,#00110000Bmov 40H,a ; LL1:SETB P2.0; 关闭电风扇ANJIAN:LCALL DISPMOV A,P1 ; 读取当前按键的值 ANL A,#0FH ; 屏蔽高位sheding:CJNE A,#0CH,jia ; 加

35、减按键一起按就进入温度设定状态 ACALL DELAY100 ; 消除键抖动 CJNE A,#0CH,jia ; 加减按键一起按就进入温度设定状态 setb flag2 ; 启动设定 sjmp duqu jia: CJNE A,#0EH,jian ; 加处理 ACALL DELAY100 ; 消除键抖动 CJNE A,#0EH,jian ; 加处理 JNB FLAG2,DUQU ; 在加减键没有同时按下的时候,只按加按键时不执行任何功能,并跳到读取当前温度 MOV A,2FH; 先读取原先设定的温度值 INC A; 原先设定的温度值加1,当设定的温度值不能超过125 MOV 2FH,A; 将当

36、前设定的温度值保存 SJMP BAOCUN jian: CJNE A,#0DH,duqu ; 减处理 ACALL DELAY100 ; 消除键抖动 CJNE A,#0DH,duqu ; 减处理 JNB FLAG2,DUQU ; 在加减键没有同时按下的时候,只按加按键时不执行任何功能,并跳到读取当前温度 MOV A,2FH; 先读取原先设定的温度值 DEC A; 原先设定的温度值减1,当设定的温度值不能超过-25 MOV 2FH,A; 保存当前设定的温度 baocun:CJNE A,#0CH,TUICHU; 加减按键一起按就保存温度设定状态 并退出设定ACALL DELAY100 ; 消除键抖动

37、 CJNE A,#0CH,TUICHU; 加减按键一起按就保存温度设定状态 并退出设定 clr flag2 ; 关闭设定SJMP QUITTUICHU:CPL P2.1; 等待退出设定状态 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 SJMP BAOCUNquit:LCALL DISP ljmp main1disp:JNB FLAG2,DQMOV A,2FH; 显示设定温度值SJMP XS DQ:mov a,29H; 显示当前温度值XS:mov b,#10 ; 取出十位和个位div abM

38、OV DPTR,#WORDTABMOVC A,A+DPTRMOV P0,ACLR P2.7; 开启个位数码管显示SETB P2.6SETB P2.5LCALL DELAY100SETB P2.7MOV A,BMOV DPTR,#WORDTABMOVC A,A+DPTRMOV P0,ACLR P2.6; 开启十位数码管显示SETB P2.7SETB P2.5LCALL DELAY100SETB P2.6mov a,29Hmov b,#100 ; 取出百位 div abMOV DPTR,#WORDTABMOVC A,A+DPTRMOV P0,ACLR P2.5SETB P2.6SETB P2.7L

39、CALL DELAY100SETB P2.5RET;100毫秒延时子程序,占用R4、R5DELAY100:MOV R4,#100D222:MOV R5,#248 DJNZ R5,$ DJNZ R4,D222 RETINIT_1820:SETB P3.2NOPCLR P3.2MOV R0,#06BH; 主机发出延时537微秒的复位低脉冲MOV R1,#03HTSR1:DJNZ R0,TSR1 MOV R0,#6BHDJNZ R1,TSR1SETB P3.2; 然后拉高数据线NOPNOPNOPMOV R0,#25HTSR2:JNB P3.2,TSR3; 等待DS18B20回应DJNZ R0,TSR

40、2LJMP TSR4 ; 延时TSR3:SETB FLAG1 ; 置标志位,表示DS1820存在LJMP TSR5TSR4:CLR FLAG1 ; 清标志位,表示DS1820不存在LJMP TSR7TSR5:MOV R0,#06BHTSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间TSR7:SETB P3.2RETWRITE_1820:MOV R2,#8; 一共8位数据CLR CWR1:CLR P3.2MOV R3,#5DJNZ R3,$RRC AMOV P3.2,CMOV R3,#21DJNZ R3,$SETB P3.2NOPDJNZ R2,WR1SETB P3.2RETGET_T

41、EMPER:LCALL INIT_1820; 先复位DS18B20JB FLAG1,TSS2RET ; 判断DS1820是否存在?若DS18B20不存在则返回TSS2:MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820LCALL DELAY100; 延时750微秒以上,等待18B20 A/D转换结束LCALL INIT_1820; 准备读温度前先复位 MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_18200;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号