《智能电风扇的设计毕业论文.docx》由会员分享,可在线阅读,更多相关《智能电风扇的设计毕业论文.docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南 华 大 学毕业设计(论文) 摘要:在日常生活中,单片机得到了越来越广泛的应用,特别在小型的自动控制系统的应用中。本文基于AT89C51单片机设计了电风扇自动调温系统。通过单片机的控制我们实现了电风扇的主要功能:当按下开关键时,系统初始化默认的设定温度为25度,如果外界温度高于设定温度电风扇进行运转,如果外界温度高于低于设定温度则枫叶不转动,同时显示外界的温度。当加减键同时按下时进入温度设定状态,可以设置所需的温度,并同时显示所设定的温度,同时按加减键退出设定功能。电风扇的自动控制,让电风扇这一家用电器变的更智能化。克服了普通电风扇无法根据外界温度自动调节转速困难。智能电风扇的设计具有重要的
2、现实意义。关键词: AT89C51单片机;温度传感器;直流电机。42Abstract:In daily life, SCM got more and more widely applied in small system, particularly in the application of automatic control system. This thesis based on AT89C51 to design thermostat automatically electric system.Through the MCU control we realized the fan mai
3、n function:after you press the button,the default system initialization temperature is 25. If the temperature higher than outside temperature,the fan ran. If the temperature is lower than outside temperature the fan doesnt turn and display outside temperature at the same time. When press add key and
4、 subtract key, enter the temperature setting system. Then we can set temperature what we needed and display the temperature at the same time. We can exit set temperature system by press add key and subtract key at the same time.The automatic control make electric fan become more intelligent in the h
5、ousehold appliances. It overcomes the difficulty which cannot accord the temperature outside automatically to adjust the speed of the normal fan.Keywords:Temperature sensor; Single Chip Machine; D.C. electric machine;目录引言、.51、智能电风扇概论.51.1、自动调温电风扇简介51.2、自动调温电风扇设计目的52、自动调温电风扇设计原理和具体结构62.1、自动调温电风扇结构62.
6、1.1、内部结构72.1.2、外部结构72.2、电风扇控制流程图.72.3、主要原器件的工作原理简介82.3.1、AT89C51单片机简介.82.3.2、直流电机的结构102.3.3、温度传感器的原理112.3.4、数字控制器的原理132.3.5、A/D转换器与数字显示电路原理142.3.6、直流稳压器电路原理.153、自动调温电风扇控制系统设计.163.1、电源转换部分.163.2、AT89C51部分163.3、按键部分183.4、单片机复位部分183.5、继电器控制电路部分193.6、数模转换部分203.7、缓冲与保护部分213.8、自动调温电风扇的整体硬件电路224、软件设计.254.1
7、、主流程序设计254.2、总程序26结束语.34参考文献.35谢辞.36引言: 在日常生活中,单片机得到了越来越广泛的应用。它体积小、重量轻、集成度高、抗干扰能力强、性价比高,尤其适合应用于小型的自动控制系统中。电风扇起停的自动控制, 能够解决夏天人们晚上熟睡时,由于夜里温度下降而导致受凉,或者从睡梦中醒来亲自开关电风扇的问题,具有重要的现实意义。本文从此目的出发利用A T89S52 单片机设计了自动温控电风扇系统,当温度高于20 时,自动打开电风扇;低于20 时自动关闭电风扇。还可以实现当温度过高或过低时,蜂鸣器发出声音报警提醒人们注意避暑或防止受凉。1、智能电风扇概论我们常见的风扇一般只有
8、四、五个风速挡,用的是人工开关,不知室内温度, 只是人为的调节该用哪个挡。而自动调温电风扇这个设计是一新领域,它用的是在电子行业中应用广泛的AT89C51单片机。通过单片机与温度探测器结合,将其应用于家用电风扇的转速精确控制上,能够有良好的性能。1.1、自动调温电风扇简介它使用直流电动机的控制以模拟电路为基础,运算放大器、非线性集成电路以及数字电路组成,使得对电风扇各挡风量的调节更加细化,使得电风扇的控制更具人性化,同时它也具有全自动、控制简单、智能化、制作容易。使用温度传感器、专用控制集成电路和单片机,实现当室温达到自己所设定开启风扇的温度时,电风扇自动开启,并且可以根据室温变换风速;当室温
9、低于这一设定温度时,电风扇自动关闭。同时显示当前室内的温度,和自己所设定的温度,提醒人们合理的使用电风扇。1.2、自动调温电风扇设计目的进入5月份,天气越来越炎热,尤其到了盛夏,更是酷热难当。目前可供选择的纳凉工具主要有:空调、普通电风扇、冷风机以及蒲扇、纸扇等等。空调使用方便,且越来越智能化,但它使用费用高,并且常常给人带来疾病。而电风扇以其低廉的价格使它的使用极为普遍。人们常常通宵达旦的使用,一旦气温稍有变化,感冒人数就会急剧增加;冷风机能增强空气的湿度但使用久了,家里电器会受潮,同时也会让使用者长期裸露在外的关节受到危害;蒲扇和纸扇价格低廉,但不自动,目前使用者微乎其微。在这种情况下,自
10、动调温电风扇应运而生。我们的生活加快,人们需要处理的事情越来越多,在炎热的夏天,回到家更想好好休息,消除自己一天的工作疲劳,而自动调温电风扇的设计就解决了这些问题。自动调温电风扇是通过单片机控制来实现直流电动机运转频率的自动调节,从而达到改变风速的目的。此设计用到AT89C51单片机,它是把微处理器,存储器(RAM和ROM),输入/输出接口以及定时器/计数器等集成在一起的集成电路芯片。它与集成电路相结合,组成一个设定温度,感温,控制和输出与一身的模块。利用单片机AT89C51和一些电路对室温进行探测,从而对电风扇进行开和关的一系列控制。2、自动调温电风扇设计原理和具体结构2.1、自动调温电风扇
11、结构自动调温电风扇有内部结构和外部结构组成。2.1.1、内部结构有集成电路板和直流电机组成,整个部分电路板是重中之中,它上面连接了有单片机,温度传感器,延时开关电路, 按键式电磁开关,LED显示器,A/D、D/A转换电路、可控硅触发控制电路、振荡电路、电源电路等。如图2.1.1所示:图 2.1.1自动调温电风扇内部结构图2.1.2、外部结构由外壳、风扇叶、开关、电源线、网罩、 转页组成。如图2.1.2所示:图2.1.2外部结构2.2、电风扇控制流程图如图2.2所示: 图2.2电风扇控制流程图2.3、主要元器件的工作原理简介2.3.1、AT89C51单片机简介AT89C51 单片机引脚图如图2.
12、3.1所示:图2.3.1 AT89C51接线图管脚定义:Vss :接地。Vcc :电源,提供掉电、空闲、正常工作电压。P0.0-0.7 : P0 I/O 口 - P0 口是开漏双向口,可以写为1 使其状态为悬浮用作高阻输入。P0 也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。P1.0-1.7 : P1 I/O 口 - P1 口是带内部上拉的双向I/O 口,向P1 口写入1时,P1 口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P1 口会因为内部上拉而输出电流。 P1 口第2 功能:T2(P1.0) 定时/计数器2 的外
13、部计数输入/时钟输出。T2EX(P1.1) 定时/计数器2 重装载/捕捉/方向控制。P2.0-2.7 : P2 I/O 口 - P2 口是带内部上拉的双向I/O 口,向P2 口写入1时,P2 口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P2 口会因为内部上拉而输出电流。 在访问外部程序存储器和外部数据时分别作为地址高位字节和16 位地址(MOVX DPTR),此时通过内部强上拉传送1。 当使用8 位寻址方式(MOV Ri)访问外部数据存储器时,P2 口发送P2 特殊功能寄存器的内容。RST : 复位 当晶振在运行中,只要复位管脚出现2 个机器周期高电平即可复位,内部有扩散电
14、阻连接到Vss 仅需要外接一个电容到Vcc ,即可实现上电复位。PSEN :程序存储使能当执行外部程序存储器代码时,PSEN 每个机器周期被激活两次,在访问外部数据存储器时PSEN无效,访问内部程序存储器时PSEN 无效。XTAL1 :晶体1 反相振荡放大器输入和内部时钟发生电路输入。XTAL2 :晶体2 反相振荡放大器输出。2.3.2、直流电机的结构直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直
15、流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采用单片机构成控制系统,可以节约大量的人力资源和降低系统成本,从而有效的提高工作效率。直流电动机的转速与施加于电动机两端的电压大小有关。电枢电压为Ua,电枢电流为Ia,电枢回路总电阻为Ra,电机常数Ca,励磁磁通量是。根据KVL方程:电机转速n=(Ua-IaRa)/Ca,其中,对于极对数p,匝数为N,电枢支路数为a的电机来说:电机常数Ca=pN/60a,意味着电机确定后,该值是不变的。而在Ua-IaRa中,由于Ra仅为绕组电阻,导致IaRa非常小,所以Ua-IaRa约等于Ua。由此可见我们改变电枢电压时,转速n即可随之改变。直流电动机
16、如图2.3.2所示:图2.3.2直流电机原理图2.3.3、温度传感器的原理要求对一个非电量(如温度、力矩、重量等)进行自动测量和控制,首先需将这一非电量转换成电量。完成这一过程的装置称为传感器。温度传感器的种类较多,常用的有:(1)热电偶:用两种不同材料的导体组成一个闭合回路。如果两端结点的温度不同,则在两者之间产生电动势E,而在回路中有一定大小的电流。这个电动势或电流与两种导体的性质和结点温度有关。利用这种热电效应组成的温度传感器,称为热电偶。热电偶具有测量范围大等优点,但灵敏度较低。(2)半导体热敏电阻:由于非线性而影响其精度,不适宜在精度较高的温度控制系统中作传感器。(3)铂电阻温度传感
17、器:测量范围大,精度较高,但成本高,适合在较大系统中使用。(4)集成温度电流传感器:如美国Analog Devices公司生产的AD590,它的测温范围为-50oC+150 oC,满刻度范围误差为0.3 oC,工作电压范围430V,电流温度灵敏度为1A/K,线性度良好,性能稳定,抗干扰能力强,其管脚排列如图2.3.3.1所示图2.3.3.1 AD590管脚排列图AD590是美国ANALO G DEV ICES 公司的单片集成两端感温电流源。如图2.3.3.2所示:图2.3.3.2 AD590实物图主要特性:(1) 流过器件的电流(A) 等于器件所处环境的热力学温度(开尔文) 度数:Ir/T=1
18、 (1) 式中,Ir流过器件(AD590) 的电流,单位为A;T热力学温度,单位为K;(2) AD590的测温范围为- 55+150;(3) AD590的电源电压范围为430 V,可以承受44 V正向电压和20 V反向电压,因而器件即使反接也不会被损坏;(4) 输出电阻为710 m;(5) 精度高,AD590在- 55+-150范围内,非线性误差仅为0.3。AD590的应用:AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。AD590不能直接置于水中
19、,需加防水但不隔热装置。图2.3.3.3 AD590电路图2.3.4、数字控制器的原理多路温度巡回检测控制电路,可通过多路选择器CC4051实现,它使一个8选1多路选择器。如要实现4路循环检测,只需将CC4051的译码输入端最高为C端(9脚)接地。参考电路如图2.3.4所示。图中555定时器组成多谐振荡器产生脉冲,其输出频率f1.44/(R+R+2R)C,调节电位器R可改变巡回显示的时间长短。为了使温度值显示稳定,输出脉冲周期应不小于4s。CC4013组成一个二位二进制计数器,一方面计数器的输出作为8选1数据选择器的地址线输入,另一方面经译码、显示给出显示的是第几路。当按下开关S时,计数器脉冲
20、被封锁,计数器状态不变,可实现定点显示。如图2.3.4所示:图2.3.4温度检测数字控制电路2.3.5、A/D转换器与数字显示电路原理采用ICL7107A/D转换器。ICL7107A/D转换器的性能与管脚参见前面A/D转换器实验内容。图2.3.5所示电路可作为温度显示电路。ICL7107显示的满量程与基准电压的关系位VM=2 V。若将V选择为100mv,则可组成满量程为200mv的电压测量电路。只要把小数点定在十位即可直接读出测量结果。由于ICL7107没有专门的小数点驱动电路,使用时将其阳极数码管的公共阳极接+5V,小数点接GND时点亮,接5V或悬空时熄灭。如图2.3.5所示图2.3.5 A
21、/D转换与显示电路在图2.3.5中R、C为振荡电阻和振荡电容。R和R构成基准电压分压器,调整R可改变基准电压,使V100mv,R采用精密电位器。R、C为模拟信号输入端高频滤波电路。C、C分别为基准电容和自动调零电容。R、C为积分电阻和积分电容。为了提高测量温度的精度,电路输入为满量程2V的电压信号,因此,输入另加一分压网络扩大量程。2.3.6、直流稳压器电路原理此电路采用的三端稳压集成电路 LM317。LM317的输出电流是1.5A,输出电压可在1.5-37V之间连续可调。输出电压由控制脚决定,最高输出电压由电源电压决定。它的1脚是控制端。2脚是输出端 。3脚是电源端。引脚非常少易于控制,并且
22、输出电压稳定带负载能力强。它配合前级的推动电路从而实现电压的数控调节。LM317在工作时流过的电流是非常大的,所以一定要加足够大的散热片。以便较快的散去工作时的热量避免因高温而损坏LM317稳压集成电路。此设计的LM317是不能用一般的三端稳压器代替的。因为一般的三端稳压器是不带控制脚他只有接地脚。三端稳压器如图2.3.6所示:图2.3.6 三端稳压元件图3、自动调温电风扇控制系统设计3.1、电源转换部分转换电路如图3.1.1所示:图3.1电源转换电路3.2、AT89C51部分复位在振荡器工作时将RST脚保持至少两个机器周期高电平12 时钟模式为24 个振荡器周期6,时钟模式为12 振荡器周期
23、可实现复位为了保证上电复位的可靠,RST 保持高电平的时间至少为振荡器启动时间(通常为几个毫秒)再加上两个机器周期。复位后,振荡器以12 时钟模式运行当已通过并行编程器设置为6 时钟模式时除外。振荡器特性XTAL1 和XTAL2 为输入和输出,可分别作为一个反相放大器的输入和输出。此管脚可配置为使用内部振荡器。要使用外部时钟源驱动器件时,XTAL2 可以不连接而由XTAL1 驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。定时器0 和1 的操作定时和计数功能由特殊功能寄存器TMOD 的控制位进行选择。这两个定时/计数器有4 种操作模式,通过TMOD 的M1 和M0
24、 选择。两个定时/计数器的模式0、 1 和2 都相同模式3 不同。中断本器件提供6 个中断源。外部中断INT0 和INT1 可根据寄存器TCON 中的IT0 和IT1 位状态分别设置为电平或者边沿触发。实际产生的中断标志是TCON 中的位IE0 和IE1。 当产生外部中断时,如果是边沿触发,进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发,由外部请求源而不是由片内硬件控制请求标志。定时器0 和定时器1 中断由TF0 和TF1 (分别由各自的定时/计数寄存器控制,定时器0 工作在模式3时除外)产生。当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位内部结构如图3.1.2所示:图
25、3.2单片机内部结构3.3、按键部分按键电路采用的是单片机89C51的15,16,17脚作为按键的输入端子。它们分别是SW1开关按键、SW2递减按键、SW3递增按键。当按下开关按键时会给单片机一低电平,从而单片机检测到这个脚电平的变化,会做出下一步的处理,经内部分析运算后输出相应的控制数据。开关按键的是单片机内部的T1记数功能,当此脚电平变化一次,内部就会记一次数。递减按键用的是单片机的3.6口。当此按键按下一次就会使P1口所有的输出端口就会变化。递增按键用的是3.7口,工作过程同递减按键3.6口。按键电路如图3.1.3所示:图3.3按键连接图3.4、单片机复位部分复位控制如图3.1.4所示:
26、图3.4复位连接图上电后5V电压通过C向R电阻充电,这时在89C51的复位端就会形成一个负的电压脉冲。这时单片机就认为给它一低的电平信号告诉它要复位了。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行M
27、OVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。本电路采用的是上电自动复位,不需要手动按动按钮去人工复位。在复位有效期间,ACE、PSEN也输出高电平,REST输入端返回低电平以后单片机从0地址开始执行程序。3.5、继电器控制电路部分 继电器有线圈,常开触点,常闭触点。常开触点在线圈不通电的情况下是断开的,当线圈中有电流经过时,常开触点闭合;常闭触点在线圈不通电的情况下是闭合的,当线圈中有电流经过时断开。本设计用到的是继电器的常开触点,即在继电器线圈没有电流经过时是断开的状态,当继电器线圈中有电流经过时闭合导通。从而实现弱电控制强电
28、,单片机是弱电器件,一般情况下它的工作电压为5 V ,电风扇工作所需电压为220 V , 属于强电,强电不能和弱电有任何电器接触,防止强电进入到单片机内,继电器起到隔离作用。由于单片机是一个弱电器件,它的工作电压是5 V ,驱动电流在mA级以下,而现在要把它用于一些大功率场合,控制电风扇,显然是不行的。所以,就要有一个环节来衔接,这个环节就是所谓的“功率驱动”,继电器驱动就是一个典型的、简单的功率驱动环节。继电器驱动就是单片机与其他大功率负载接口,起到控制作用,三极管起到放大作用。这里继电器由相应的三极管来驱动,当温度高于20 时,给单片机一个命令, set b P2. 7 ,单片机P2. 7
29、引脚输出高电平,三极管导通,继电器线圈得电有电流经过,常开触点闭合,电风扇电路接通,电风扇开始转动。温度低于20 时,执行CLR P2. 7 ,单片机P2. 7引脚输出低电平,三极管截至,继电器线圈中没有电流经过,常开触点保持原断开状态,电风扇电路断路,电风扇不能转动。继电器线圈两端反相并联的二极管起到吸收反向电动势的功能,保护相应的驱动三极管。断电器自动控制电路图如图2 所示。实现自动控制时先把开关S1 闭合。图3.5继电器自动控制电路3.6、数模转换部分DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。其主要参数如下:分辨率为8位,转换时间为1s,满量
30、程误差为1LSB,参考电压为(+10-10)V,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。从图1-1中可见,在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 /XFER。如图3.1.5所示:图3.6 DAC0832引脚图该D/A转换器为20引脚双列直插式封装,各引脚含义如下:(1)D7D0转换数据输入。(2)CS片选信号(输入),低电平有效。(3)ILE数据锁存允许信号(输入),高电平有效。(4)WR1第一信号(输入),低电平有效。该信号与ILE 信号共同控制输入寄存器是数据直通方式还
31、是数据锁存方式:当ILE=1和XFER=0时,为输入寄存器直通方式;当ILE=1和WR1 =1时,为输入寄存器锁存方式。(5) WR2 第2写信号(输入),低电平有效.该信号与信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:当 WR2=0和XFER=0时,为DAC寄存器直通方式; 当WR2=1和XFER=0时,为DAC寄存器锁存方式。 (6)XFER数据传送控制信号(输入),低电平有效 。 7)Iout2电流输出“1”。当数据为全“1”时,输出电流最大; 为全“0”时输出电流最小。(8)I(out2电流输出“2”。 DAC转换器的特性之一是:Iout1 +Iout2=常数。(9)R
32、fb反馈电阻端 既运算放大器的反馈电阻端,电阻(15K)已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb 即为运算放大器的反馈电阻。(10)Vref基准电压,是外加高精度电压源,与芯片内的电阻网络相连接,该电压可正可负,范围为-10V+10V.(11)DGND数字地(12)AGND模拟地3.7、缓冲与保护部分缓冲电路作用是把D/A数模转换集成电路输出的控制电压进行放大后去推动LM317输出所要的电压。保护电路是由(R10、R11、R12)取样电阻和单片机的25脚组成。工作原理是:当单片机检测到负载短路时,25脚的电压
33、会发生变化这时单片机就认为负载短路迫使整机处于待机状态,使输出电压为零从而保护了三端稳压器不至于损坏,并且还避免了负载因短路在扩大故障范围。 图3.7单片机和DAC0832直通方式输出连接图3.8、自动调温电风扇的整体硬件电路220V市电经变压器将压后变成15V的交流电压,经整流电路后变成正负15V左右的直流电压。(变压器是采用三抽头的)-15V电压送到缓冲放大集成运放为其提供负的工作电压。+15V直流电压经五伏稳压后变成稳定的5V电压为单片机和D/A数模转换集成电路提供工作电压。数模转换器是一个八位的D/A转换器件。当输入的数据全为0时,其数控电源输出的电压接近0V。当输入的数据全为1时,其
34、数控电源输出电压最高接近基准电压。基准电压值由VREF决定。此电路采用的基准电压是15V 。当接通电源后89C51得到复位电压复位后,内部开始执行程序,而输出相应的电压值。SW1是开关按键,按一下次按键后整机处于待机状态,同时LED显示“OF”。电源无电压输出,按任意键可以开机。SW2是输出电压递减调节按键,当按一下SW2时,89C51单片机地16脚(P3.6口)会得到一个变化的脉冲,这个变化的脉冲送到单片机内部处理后由P1口的1到8脚输出递减电压的数据,直接送到数模转换集成电路的A1-A8端子(也就是5-12脚),电压递减数据经D/A集成电路转换后,由4脚输出一个控制电压。这个控制电压直接送
35、到集成运放TL082,经TL082反相放大后,直接推动LM317三端稳压器输出相应的电压值。从而实现数控电压的无触点调节。并且由89C51单片机的内部输出显示电压的数据电压去推动V1,V2三极管的导通,从而驱动LED数码管显示相应的输出电压值。SW3按键(电压递增调节)与电压递减调节的工作原理相反。当刚开机时由于单片机要初始化(复位)这一瞬间单片机输出的数据不受控制,从而会导致LM317输出一个高的电压,会使用电器(负载)损坏。为了防止这一现象的发生,从而设置了V3(PNP)保护三极管。当单片机初始化时,各端口的电压为低电平,这时V3导通,继电器得到工作电压,使继电器的触点断开,从而切断了输出
36、电压,保护了用电器不被瞬间输出的高电压损坏。当复位后,P2.5口恢复了高电平,这时V3截止,继电器得不到工作电压而恢复到常闭状态,这时就输出正常的电压到用电器。当用电器(负载)短路或过载现象时,会到造成输出电压大幅度下降,此电压经取样电路后的电压也会下降很多,这时P2.4口的电位也随之降低。程序立即检测到P2.4这一变化。立即使P2.5口为低电平从而使V3导通,继电器工作切断输出电压。这时整机也转入待机状态,直至故障排除后才能重新开机,否则整机将一直处于待机状态 。整体电路结构如图3.8所示:图3.8整体电路结构图4、软件设计4.1、主流程序设计主程序设计流程如图4.1所示:图4.1主程序流程
37、图功能介绍:单片机复位后,进行初始化工作,然后进入按键功能模块,最后完成工作。初始化中,将DS18B20,内部RAM,包括按键,默认为控制状态,温度设定为25。加减按键同时按下进入温度设定状态,然后按加或减按键进行温度设定,然后再次同时按加减键退出。4.2、总程序TEMPER_L EQU 29H; 用于保存读出温度的低8位TEMPER_H EQU 28H; 用于保存读出温度的高8位FLAG1 EQU 38H; DS18B20标志位FLAG2 EQU 01H; 设定状态标志位ORG 0000HAJMP START; 转入主程序ORG 0030H START:MOV 2FH,#25; 设定高于25
38、度为温度过高SETB P2.1 ; CLR FLAG2 mov sp,#60h;duqu:LCALL GET_TEMPER ; 调用读温度子程序并初始化DS18B20LCALL DISP ; 调用显示当前温度MOV A,29H; 将现场实际温度传递给ACJNE A,2FH,LL1; 比较当前的温度与设定的温度是否相等CLR P2.0; 开启电风扇SJMP ANJIANMAIN: MOV a,2FH ; 存储的温度25度MOV b,#10 ; 取出十位和个位div abORL A,#00110000BMOV 41H,a ; 十位MOV 42H,b ; 个位MOV A,42HORL A,#0011
39、0000B; 转化成ASCII码MOV 42H,AMOV a,2FHMOV b,#100 ; div abORL A,#00110000BMOV 40H,a ; LL1:SETB P2.0; 关闭电风扇ANJIAN:LCALL DISP MOV A,P3 ; 读取当前按键的值 ANL A,#0FH ; 屏蔽高位sheding:CJNE A,#0CH,jia ; 加减按键一起按就进入温度设定状态 ACALL DELAY100 ; 消除键抖动 CJNE A,#0CH,jia ; 加减按键一起按就进入温度设定状态 setb flag2 ; 启动设定 sjmp duqu jia: CJNE A,#0E
40、H,jian ; 加处理 ACALL DELAY100 ; 消除键抖动 CJNE A,#0EH,jian ; 加处理JNB FLAG2,DUQU ; 在加减键没有同时按下的时候,只按加按键时不执行任何功能,并跳到读取当前温度 MOV A,2FH; 先读取原先设定的温度值 INC A; 原先设定的温度值加1, MOV 2FH,A; 将当前设定的温度值保存 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 ; 消除键抖动 CJNE A,#0CH,TUICHU; 加减按键一起按就保存温度设定状态 并退出设定 CLR flag2 ; 关闭设定 SJMP QUITTUICHU: