已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能电风扇毕业论文目录引言、.51、智能电风扇概论.51.1、自动调温电风扇简介51.2、自动调温电风扇设计目的52、自动调温电风扇设计原理和具体结构62.1、自动调温电风扇结构62.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、主流程序设计254.2、总程序26结束语.34参考文献.35谢辞.36引言: 在日常生活中,单片机得到了越来越广泛的应用。它体积小、重量轻、集成度高、抗干扰能力强、性价比高,尤其适合应用于小型的自动控制系统中。电风扇起停的自动控制, 能够解决夏天人们晚上熟睡时,由于夜里温度下降而导致受凉,或者从睡梦中醒来亲自开关电风扇的问题,具有重要的现实意义。本文从此目的出发利用A T89S52 单片机设计了自动温控电风扇系统,当温度高于20 时,自动打开电风扇;低于20 时自动关闭电风扇。还可以实现当温度过高或过低时,蜂鸣器发出声音报警提醒人们注意避暑或防止受凉。1、智能电风扇概论我们常见的风扇一般只有四、五个风速挡,用的是人工开关,不知室内温度, 只是人为的调节该用哪个挡。而自动调温电风扇这个设计是一新领域,它用的是在电子行业中应用广泛的AT89C51单片机。通过单片机与温度探测器结合,将其应用于家用电风扇的转速精确控制上,能够有良好的性能。1.1、自动调温电风扇简介它使用直流电动机的控制以模拟电路为基础,运算放大器、非线性集成电路以及数字电路组成,使得对电风扇各挡风量的调节更加细化,使得电风扇的控制更具人性化,同时它也具有全自动、控制简单、智能化、制作容易。使用温度传感器、专用控制集成电路和单片机,实现当室温达到自己所设定开启风扇的温度时,电风扇自动开启,并且可以根据室温变换风速;当室温低于这一设定温度时,电风扇自动关闭。同时显示当前室内的温度,和自己所设定的温度,提醒人们合理的使用电风扇。1.2、自动调温电风扇设计目的进入5月份,天气越来越炎热,尤其到了盛夏,更是酷热难当。目前可供选择的纳凉工具主要有:空调、普通电风扇、冷风机以及蒲扇、纸扇等等。空调使用方便,且越来越智能化,但它使用费用高,并且常常给人带来疾病。而电风扇以其低廉的价格使它的使用极为普遍。人们常常通宵达旦的使用,一旦气温稍有变化,感冒人数就会急剧增加;冷风机能增强空气的湿度但使用久了,家里电器会受潮,同时也会让使用者长期裸露在外的关节受到危害;蒲扇和纸扇价格低廉,但不自动,目前使用者微乎其微。在这种情况下,自动调温电风扇应运而生。我们的生活加快,人们需要处理的事情越来越多,在炎热的夏天,回到家更想好好休息,消除自己一天的工作疲劳,而自动调温电风扇的设计就解决了这些问题。自动调温电风扇是通过单片机控制来实现直流电动机运转频率的自动调节,从而达到改变风速的目的。此设计用到AT89C51单片机,它是把微处理器,存储器(RAM和ROM),输入/输出接口以及定时器/计数器等集成在一起的集成电路芯片。它与集成电路相结合,组成一个设定温度,感温,控制和输出与一身的模块。利用单片机AT89C51和一些电路对室温进行探测,从而对电风扇进行开和关的一系列控制。2、自动调温电风扇设计原理和具体结构2.1、自动调温电风扇结构自动调温电风扇有内部结构和外部结构组成。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.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 的外部计数输入/时钟输出。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 个机器周期高电平即可复位,内部有扩散电阻连接到Vss 仅需要外接一个电容到Vcc ,即可实现上电复位。PSEN :程序存储使能当执行外部程序存储器代码时,PSEN 每个机器周期被激活两次,在访问外部数据存储器时PSEN无效,访问内部程序存储器时PSEN 无效。XTAL1 :晶体1 反相振荡放大器输入和内部时钟发生电路输入。XTAL2 :晶体2 反相振荡放大器输出。2.3.2、直流电机的结构直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采用单片机构成控制系统,可以节约大量的人力资源和降低系统成本,从而有效的提高工作效率。直流电动机的转速与施加于电动机两端的电压大小有关。电枢电压为Ua,电枢电流为Ia,电枢回路总电阻为Ra,电机常数Ca,励磁磁通量是。根据KVL方程:电机转速n=(Ua-IaRa)/Ca,其中,对于极对数p,匝数为N,电枢支路数为a的电机来说:电机常数Ca=pN/60a,意味着电机确定后,该值是不变的。而在Ua-IaRa中,由于Ra仅为绕组电阻,导致IaRa非常小,所以Ua-IaRa约等于Ua。由此可见我们改变电枢电压时,转速n即可随之改变。直流电动机如图2.3.2所示:图2.3.2直流电机原理图2.3.3、温度传感器的原理要求对一个非电量(如温度、力矩、重量等)进行自动测量和控制,首先需将这一非电量转换成电量。完成这一过程的装置称为传感器。温度传感器的种类较多,常用的有:(1)热电偶:用两种不同材料的导体组成一个闭合回路。如果两端结点的温度不同,则在两者之间产生电动势E,而在回路中有一定大小的电流。这个电动势或电流与两种导体的性质和结点温度有关。利用这种热电效应组成的温度传感器,称为热电偶。热电偶具有测量范围大等优点,但灵敏度较低。(2)半导体热敏电阻:由于非线性而影响其精度,不适宜在精度较高的温度控制系统中作传感器。(3)铂电阻温度传感器:测量范围大,精度较高,但成本高,适合在较大系统中使用。(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 (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不能直接置于水中,需加防水但不隔热装置。图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时,计数器脉冲被封锁,计数器状态不变,可实现定点显示。如图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/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脚是电源端。引脚非常少易于控制,并且输出电压稳定带负载能力强。它配合前级的推动电路从而实现电压的数控调节。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 振荡器周期可实现复位为了保证上电复位的可靠,RST 保持高电平的时间至少为振荡器启动时间(通常为几个毫秒)再加上两个机器周期。复位后,振荡器以12 时钟模式运行当已通过并行编程器设置为6 时钟模式时除外。振荡器特性XTAL1 和XTAL2 为输入和输出,可分别作为一个反相放大器的输入和输出。此管脚可配置为使用内部振荡器。要使用外部时钟源驱动器件时,XTAL2 可以不连接而由XTAL1 驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。定时器0 和1 的操作定时和计数功能由特殊功能寄存器TMOD 的控制位进行选择。这两个定时/计数器有4 种操作模式,通过TMOD 的M1 和M0 选择。两个定时/计数器的模式0、 1 和2 都相同模式3 不同。中断本器件提供6 个中断源。外部中断INT0 和INT1 可根据寄存器TCON 中的IT0 和IT1 位状态分别设置为电平或者边沿触发。实际产生的中断标志是TCON 中的位IE0 和IE1。 当产生外部中断时,如果是边沿触发,进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发,由外部请求源而不是由片内硬件控制请求标志。定时器0 和定时器1 中断由TF0 和TF1 (分别由各自的定时/计数寄存器控制,定时器0 工作在模式3时除外)产生。当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位内部结构如图3.1.2所示:图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所示:图3.4复位连接图上电后5V电压通过C向R电阻充电,这时在89C51的复位端就会形成一个负的电压脉冲。这时单片机就认为给它一低的电平信号告诉它要复位了。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。本电路采用的是上电自动复位,不需要手动按动按钮去人工复位。在复位有效期间,ACE、PSEN也输出高电平,REST输入端返回低电平以后单片机从0地址开始执行程序。3.5、继电器控制电路部分 继电器有线圈,常开触点,常闭触点。常开触点在线圈不通电的情况下是断开的,当线圈中有电流经过时,常开触点闭合;常闭触点在线圈不通电的情况下是闭合的,当线圈中有电流经过时断开。本设计用到的是继电器的常开触点,即在继电器线圈没有电流经过时是断开的状态,当继电器线圈中有电流经过时闭合导通。从而实现弱电控制强电,单片机是弱电器件,一般情况下它的工作电压为5 V ,电风扇工作所需电压为220 V , 属于强电,强电不能和弱电有任何电器接触,防止强电进入到单片机内,继电器起到隔离作用。由于单片机是一个弱电器件,它的工作电压是5 V ,驱动电流在mA级以下,而现在要把它用于一些大功率场合,控制电风扇,显然是不行的。所以,就要有一个环节来衔接,这个环节就是所谓的“功率驱动”,继电器驱动就是一个典型的、简单的功率驱动环节。继电器驱动就是单片机与其他大功率负载接口,起到控制作用,三极管起到放大作用。这里继电器由相应的三极管来驱动,当温度高于20 时,给单片机一个命令, set b P2. 7 ,单片机P2. 7引脚输出高电平,三极管导通,继电器线圈得电有电流经过,常开触点闭合,电风扇电路接通,电风扇开始转动。温度低于20 时,执行CLR P2. 7 ,单片机P2. 7引脚输出低电平,三极管截至,继电器线圈中没有电流经过,常开触点保持原断开状态,电风扇电路断路,电风扇不能转动。继电器线圈两端反相并联的二极管起到吸收反向电动势的功能,保护相应的驱动三极管。断电器自动控制电路图如图2 所示。实现自动控制时先把开关S1 闭合。图3.5继电器自动控制电路3.6、数模转换部分DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。其主要参数如下:分辨率为8位,转换时间为1s,满量程误差为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 信号共同控制输入寄存器是数据直通方式还是数据锁存方式:当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)Rfb反馈电阻端 既运算放大器的反馈电阻端,电阻(15K)已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb 即为运算放大器的反馈电阻。(10)Vref基准电压,是外加高精度电压源,与芯片内的电阻网络相连接,该电压可正可负,范围为-10V+10V.(11)DGND数字地(12)AGND模拟地3.7、缓冲与保护部分缓冲电路作用是把D/A数模转换集成电路输出的控制电压进行放大后去推动LM317输出所要的电压。保护电路是由(R10、R11、R12)取样电阻和单片机的25脚组成。工作原理是:当单片机检测到负载短路时,25脚的电压会发生变化这时单片机就认为负载短路迫使整机处于待机状态,使输出电压为零从而保护了三端稳压器不至于损坏,并且还避免了负载因短路在扩大故障范围。 图3.7单片机和DAC0832直通方式输出连接图3.8、自动调温电风扇的整体硬件电路220V市电经变压器将压后变成15V的交流电压,经整流电路后变成正负15V左右的直流电压。(变压器是采用三抽头的)-15V电压送到缓冲放大集成运放为其提供负的工作电压。+15V直流电压经五伏稳压后变成稳定的5V电压为单片机和D/A数模转换集成电路提供工作电压。数模转换器是一个八位的D/A转换器件。当输入的数据全为0时,其数控电源输出的电压接近0V。当输入的数据全为1时,其数控电源输出电压最高接近基准电压。基准电压值由VREF决定。此电路采用的基准电压是15V 。当接通电源后89C51得到复位电压复位后,内部开始执行程序,而输出相应的电压值。SW1是开关按键,按一下次按键后整机处于待机状态,同时LED显示“OF”。电源无电压输出,按任意键可以开机。SW2是输出电压递减调节按键,当按一下SW2时,89C51单片机地16脚(P3.6口)会得到一个变化的脉冲,这个变化的脉冲送到单片机内部处理后由P1口的1到8脚输出递减电压的数据,直接送到数模转换集成电路的A1-A8端子(也就是5-12脚),电压递减数据经D/A集成电路转换后,由4脚输出一个控制电压。这个控制电压直接送到集成运放TL082,经TL082反相放大后,直接推动LM317三端稳压器输出相应的电压值。从而实现数控电压的无触点调节。并且由89C51单片机的内部输出显示电压的数据电压去推动V1,V2三极管的导通,从而驱动LED数码管显示相应的输出电压值。SW3按键(电压递增调节)与电压递减调节的工作原理相反。当刚开机时由于单片机要初始化(复位)这一瞬间单片机输出的数据不受控制,从而会导致LM317输出一个高的电压,会使用电器(负载)损坏。为了防止这一现象的发生,从而设置了V3(PNP)保护三极管。当单片机初始化时,各端口的电压为低电平,这时V3导通,继电器得到工作电压,使继电器的触点断开,从而切断了输出电压,保护了用电器不被瞬间输出的高电压损坏。当复位后,P2.5口恢复了高电平,这时V3截止,继电器得不到工作电压而恢复到常闭状态,这时就输出正常的电压到用电器。当用电器(负载)短路或过载现象时,会到造成输出电压大幅度下降,此电压经取样电路后的电压也会下降很多,这时P2.4口的电位也随之降低。程序立即检测到P2.4这一变化。立即使P2.5口为低电平从而使V3导通,继电器工作切断输出电压。这时整机也转入待机状态,直至故障排除后才能重新开机,否则整机将一直处于待机状态 。整体电路结构如图3.8所示:图3.8整体电路结构图4、软件设计4.1、主流程序设计主程序设计流程如图4.1所示:图4.1主程序流程图功能介绍:单片机复位后,进行初始化工作,然后进入按键功能模块,最后完成工作。初始化中,将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度为温度过高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,#00110000B; 转化成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,#0EH,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:CPL P2.1; 等待退出设定状态 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 SJMP BAOCUNQIUT:LCALL DISP LJUMP MAINDISP:JNB FLAG2,DQMOV A,2FH; 显示设定温度值SJMP XSDQ:mov a,29H; 显示当前温度值XS: mov b,#10 ; 取出十位和个位div abMOV 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.6RETGET_TEMPER:LCALL INIT_1820; 先复位DS18B20JB FLAG1,TSS2RET ; INIT_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,TSR2LJMP 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.2RET ; 判断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; 将读出的温度数据保存到28H/29HRETREAD_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOV R2,#8RE01:CLR CSETB P3.2NOPNOPCLR P3.2NOPNOPNOPSETB P3.2MOV R3,#08RE10: DJNZ R3,RE10MOV C,P3.2MOV R3,#21RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RETWORDTAB: DB 3FH,06H,5BH,4FH ;0,1,2,3 DB 66H,6DH,7DH,07H ;4,5,6,7 DB 7FH,6FH,77H,7CH ;8,9,A,B DB 39H,5EH,79H,71H ;C,D,E,F DB 80H,00H,40H ;小数点,暗,负号DELAY100:MOV R4,#100 ;100毫秒延时子程序,占用R4、R5D222:MOV R5,#248 DJNZ R5,$ DJNZ R4,D222 RETDELAY7:SETB P1.7MOV R3,#120FRT:ACALL DELAY100CPL P1.6DJNZ R3,FRTSETB P1.6RETDELAY500:MOV R4,#248DA222: MOV R5,#248 DJNZ R5,$ DJNZ R4,DA222 RETEND结 束 语在写毕业论文时我深深体会到搞设计的艰辛与困难。电风扇我们都很熟悉,但要想把单片机技术运用到电风扇上是不简单的事情。在设计过程中,遇到了如何把实现平滑的调速问题。由此我想到了利用现场的温度与设定的温度之间的差值,如果差值愈大则输出的数字电压也会越大,然后把数字信号转换成模拟信号,由于直流电机有直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速的特点。所以我用转换成的模拟信号去控制直流电机,进行风扇的调速。里面还有需要进一步人性化的完善。例如,可以利用热释传感
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玩具设计师童心未泯创意无限
- 文化创意技术工作总结
- 整形外科护士全年工作总结
- 证券行业卫生规范
- 《爱劳动讲卫生》课件
- 2021年高考语文试卷(上海)(春考)(解析卷)
- 2024年濮阳职业技术学院单招职业技能测试题库标准卷
- 2024年美术的教案
- 农村房屋问题协议书(2篇)
- 出境游全程无忧旅游合同
- 网络加速器提供商服务合同
- 2024版新能源汽车充电站电线电缆采购合同2篇
- 转让押金协议合同范例
- 国家药包材检验标准培训
- 肿瘤科危急重症护理
- 江苏省苏州市2024-2025学年第一学期八年级英语期末模拟试卷(一)(含答案)
- 2024-2030年中国加速器行业发展趋势及运营模式分析报告版
- 护理查房深静脉置管
- 运动障碍护理查房
- 计算与人工智能概论知到智慧树章节测试课后答案2024年秋湖南大学
- 2024年度油漆涂料生产线租赁合同3篇
评论
0/150
提交评论