




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章绪论PAGE19REF_Ref168484390\r\h错误!未找到引用源。REF_Ref168484424\h错误!未找到引用源。PAGE20基于51单片机的智能定时控制器系统的电风扇设计摘要在现代生活中,人们无法忍受高温所导致的人体不适。在日常生活中夏天所带来的炎热的气温使人们需要通过某些方法来降温,因此这就体现了电风扇的重要性。同样的,不仅仅是在人们的日常生活中,在工业领域同样需要大型的工业专用电风扇来进行降温散热等工作。目前随着电风扇这方面的技术的不断发展和成熟,越来越多的电风扇开始渐渐的走进了人们的日常生活当中。而在这些种类繁多的电风扇中,温控电风扇从中脱颖而出。那么什么是温控电风扇,顾名思义温控电风扇的特点在于可以根据当前环境的温度来控制电风扇的运行。但在实际生活中,仅仅具有温控是远远不够的。因此本次设计的温控电风扇还有有个特殊的功能便是可以自动调节转速,充分发挥温控电风扇的功效,有效的节省宝贵的电能源,从而最大程度上的提高温控电风扇的可利用率,极大的为人们在日常生活和工人在工业生产中提供了方便关键词:温控,单片机,自动控制,温度检测,定时电风扇目录摘要 I第一章绪论 11.1研究本课题的目的和意义 11.2发展现状 1第二章系统硬件组成 22.1系统结构 22.2DS18B20温度采集电路 22.2.1DS18B20的特点及内部构造 22.2.2引脚功能介绍 42.2.3DS18B20的工作原理 42.2.4DS18B20的工作时序 62.3数码管驱动显示电路 92.3.1数码管驱动电路 92.3.2数码管显示电路 102.4风扇驱动电路 112.5按键模块 13第三章系统软件设计 153.1主程序流程图 153.2DS18B20子程序流程图 163.3数码管显示子程序流程图 163.4按键子程序流程图 17第四章系统调试 194.1软硬件调试 194.1.1按键显示部分的调试 194.1.2传感器DS18B20温度采集部分调试 194.2仿真 20参考文献 22第一章绪论1.1研究本课题的目的和意义在目前的日常生活和工业生产中,炎热的天气和高温的工作环境使电风扇的应用越来越广泛,在性价比上电风扇获得了广大人们群众和企业的青睐。举个列子,比如在炽热的夏日,人们在家中、在办公室中需要通过电风扇来进行降温;在工业领域需要通过大型的机械电风扇来进行大规模降温散热,就连在数码产品上比如私人笔记本电脑也需要使用带有只能温控的CPU风扇等等。随着目前温度控制技术的不断发展与成熟,人们逐渐开始将发展研究的目标放在了电风扇的噪音以及能源消耗上。因此为了有效的降低电风扇在运行的时候所发出的噪音,以及减少电风扇在运作时不必要能源浪费。带有温控功能电风扇慢慢的进入了人们的视野,并逐渐得到了人们的重视和应用。为此本课题主要研究带有温度控制系统的电风扇。设计出具有人性化,高效率的新一代温控电风扇。1.2发展现状随着中国的稳健发展,相比较过去的社会如今的社会环境得到空前的进步和提升。数字时代的开启使社会步入了电子化数字化信息化时代。这使得温度控制系统的脚印深入到各行各业当中去,因为其不可缺少的功能使温度控制系统得到的广泛的应用和传播,给人们的日常生活和工作带来了极大的方便并带来大量的经济效益。温度控制系统顾名思义是用来对当前的温度进行实时的监测,因此它可以保证将带有温度控制系统的工业用工具仪器、精密测量工具仪器控制在规定的温度范围内,使其能够正常的运行。当然也可以用于农业的种植上,来控制室温环境。目前的温度控制系统其亮眼的功能在于可以一直对环境的温度进行监控,当温度过高时通过控制电机的启动或停止来对当前环境的温度进行改变。而温度控制系统核心便是一个以单片机为基础的小型控制器。随着中国的发展,单片机开发生产的成本越来越低,这使得温度控制系统能够更容易的走进中国的大部分家庭去,同时又可以根据不同的需要用于不用的工作场合中去实行温度的检测和控制。第二章系统硬件组成第二章系统硬件组成2.1系统结构该温度控制系统主要是由温度传感器集成板、STC89C51单片机、LED晶体数码管及其驱动电路等其他外围元器件组成。STC89C51单片价格比较实惠适合进行对温控电风扇的编程及运行,同时方便后期对程序的维护实现对温度控制系统的升级优化。具体的系统构架图如下。见图2.1STC89C51单片机数码管显示STC89C51单片机数码管显示数码管驱动电路复位电路晶振电路晶振电路风扇风扇驱动电路风扇风扇驱动电路温度采集电路温度采集电路按键设置电路按键设置电路图2.1系统构架图2.2DS18B20温度采集电路DS18B20温度采集器是位于美国的半导体公司达拉斯所推出的智能温度传感器。DS18B20温度采集器采用的是可以进行双向数据传输的信号线,它可以同时对数据和始终进行双向输送,其明显的优点在于构造简单,制作成本低,对I/O线路所消耗的电路进行了优化,有效降低了采集器的维护难度以及其数据总线可以进行扩展。2.2.1DS18B20的特点及内部构造DS18B20温度采集器有以下主要特点:特点1:运用了特殊的单总线接口连接设计,采用单根双通道进行数据交互,因此即使只有一个数据信号连接线与控制前对接,也可以实现两端信号的相互传输;特点2:温度采集器对温度的信号输出做了优化,可以直接将测量出的结果进行转化为数字信号,在通过信号线传输的同时可以传送特有的CRC校验码,极大的加强了温度采集器的抗干扰能力和校准纠错能力;特点3:温度采集器可以实现组网功能,即多个DS18B20温度采集器可以共用同一组线,实现对多个点位的测量和传输;特点4:优化了电压的适应范围(3.0~5.5V),此设备不需要额外的电源,可以通过数据线对其进行供电;特点5:扩大了温度采集器的测量范围(-55℃~125℃),在一定的范围内(-10℃~85℃时)可实现较高精度的检测其测量精度高达±0.5℃;特点6:可以通过编程等其他技术手段,可以增加读取数值的位数(9~12位),因此可以实现多种精度的测量,比如0.5℃,0.25℃,0.125℃,0.0625℃等精度;特点7:温度采集器在设计上具有负压特性。因此芯片不会因操作上的失误导致电源极性接反从而使芯片因为发热而烧毁影响正常工作。DS18B20温度采集器封装图以及其内部的具体构造,如图2.2和图2.3所示图2-2DS18B20温度采集器外部结构框图图2-3DS18B20温度采集器内部结构框图2.2.2引脚功能介绍(1)NC:此处为空引脚,因此悬空不使用;(2)VDD:这里可以选择电源引脚,此电源的电压应该控制再3~5.5V之间。当温度采集器工作于寄生电源时,此时引脚应当接地处理;(3)I/O:此处为输入/输出引脚,在常态下保持为高电平1。DS18B20温度采集器有2种封装方式。一种是TO-92封装,此封装有3脚;另一种是CSP封装,此封装为8脚SOIC。图2.4所示为DS18B20温度采集器的内部结构具体封装框图,该采集器主要包含8个部分,分别为:单总线接口、温度传感器、结构寄存器、8个位的循环校验码、高速暂存器、寄生电源、TH和TL触发器和光刻ROM。图2.4DS18B20的封装2.2.3DS18B20的工作原理如如图2.5所示,64位ROM的前8个位是用来辨别产品类型的产品编号;随后的48位数字编号为中间序列号,该中间序列号为唯一的产品辨别码;而最后的8位数字编码是通过对前面56位的加密计算而生成的CRC检验码,这也正是可以实现多个DS18B20共线通信的主要原因。图2.564位ROM示意图LSB图2.564位ROM示意图LSBMSB按键输入电路LSBMSB48位序列号8位工厂代码(10H)8位检验CRC该检测器的内部存储器除了包含了一个高速暂存RAM之外,还包含了一个可电擦除的EEPROM模块器件。高速暂存模块的存储器结构如图2.6所示。测量出来的温度的都将存储在前两个字节。中间两个字节是用来保存TH和TL触发器的副本,因为其有易失性这就使得高速暂存模块在每次上电复位时都会使内部的后两个字节刷新复位。而第五个字节也就是最后一个字节叫做配置寄存器,主要用途为规定频率,使温度值的数字转换处于一个稳定的转换周期。DS18B20的精度值是通过存储在寄存器里的分辨率来进行控制的。根据运行要求规定低5位的值始终为1,如果需要改变其精度值可以通过R1和R2来对精度值进行改变。检测器在出厂的时候会被厂家设置为默认值0,因此用户不能对其随意做出更改。单片机通过单线接口读取的数据会比前一个高位置或者低位置晚。数据格式以0.0625℃/LSB形式表示。见表2.1表2-1DS18B20温度与表示值对应表温度/℃二进制十六进制+125000001111101000007D0H+8500000101010100000550H+25.00000001100100010191H+10.000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1111111101011110FF5EH-25.1111111001101111FF6FH-551111110010010000FC90H当温度传感器对全部的温度进行转换之后,会将监测到的温度与存储在RAM中设定的最高的值进行一一对照,如果对比出的结果是当前检测值大于上限值或者小于下限值,那么就代表当前的温度超出了设定的范围,从而使内部的报警标志置位,并作出向主机端发出报警命令的特殊响应。而由于温度检测器可以共用同一组线,这便使得DS18B20可以同时测得多点的温度并进行报警搜索。在64位ROM的后8位编码里存储了检验码(CRC)。因此主机可以根据64位ROM里的前56个位通过特殊的计算公式来获得新的CRC值。之后主机会将新的CRC值与原本的CRC值进行数据对比,从而让主机能判断出当前获得的ROM数据失误完全正确DS18B20的指令有:读ROM(33H),匹配ROM(55H),跳过ROM(CCH),搜索ROM(F0H),报警搜索(ECH),稳定转换(44H),度暂存器(BEH),写暂存器(4EH),复制暂存器(48H),重调E2PROM(B8H),读供电方式(B4H)等等。CCH-跳过ROM指令是一个特殊的指令。该指令在发出后,可以使主机忽略64位ROM地址,直接向温度检测器发出变换指令,此功能一般用于从机的工作。44H-温度转换指令。启动时会让温度监测器进行温度转换,在12位时需要最长750毫秒进行转换,在9位时需要最长93.75毫秒进行转换。所有的计算结果都将存入内部9字节的RAM中。2.2.4DS18B20的工作时序在对时序进行初始化操作时,如果单总线P30从高电平1变换到低电平0时,边代表程序启动了一个写时隙。为提高效率这里要求程序内部所有的写时隙都必须在60~120微秒内完成,而且都需要设置1微秒的时间来恢复每个循环的状态。当程序处于写0时隙期间,CPU在整个时隙中会将总线变换到低电平0;而当程序处于写1时隙期间,CPU在整个时隙中会将总线变换到高电平1,然后将释放总线的动作安置在时隙起始后的15微秒处。时序图如图2.6所示。图2.6初始化时序图具体步骤如下:第一步:先将数据线置位为高电平1。第二步:进行延时(时间尽可能短一些)。第三步:将数据线置位为低电平1。第四步:设置延时时间为750微秒(该范围可以在480微秒至960微秒自由选择)。第五步:将数据线置位为高电平1。第六步:进行延时等待。如果程序的初始化成功完成,则会在15微秒至60微秒内产生一个由温度检测器返回的低电平0。但值得注意的是,此操作不能进行无休止的等待,这样会导致程序进入一个死循环,为了避免了个问题的出现,我们需要在这里设置一个超时判断。如果CPU读到数据线上的低电平0后,还会进行一个超时的计时,该计时会从发出高电平的那一个算起(即从上述流程的第5步的开始算起),此延迟计时不得少于480微秒。(7)将数据线再次拉置高电平1后结束。1.数据时序如果单总线P30从高电平1变换到低电平0时,边代表程序启动了一个写时隙。为提高效率这里要求程序内部所有的写时隙都必须在60~120微秒内完成,而且都需要设置1微秒的时间来恢复每个循环的状态。当程序处于写0时隙期间,CPU在整个时隙中会将总线变换到低电平0;而当程序处于写1时隙期间,CPU在整个时隙中会将总线变换到高电平1,然后将释放总线的动作安置在时隙起始后的15微秒处。时序图如图2.7所示。DS18B20采样DS18B20采样DS18B20采样DS18B20采样图2.7写数据时序图具体步骤如下:第一步:先将数据线置位为低电平0。第二步:设置延时确定的时间为15微秒。并按照从低位到高位的顺序依次发送数据(每次传送只能发出一个位)。第三步:设置延时时间为45微秒。第四步:再将数据线置位为高电平1。第五步:依次重复从第一步到第五步的动作步骤,一直到整个字节全部发送完毕。第六步:最后将数据线置位为高电平1。2.读数据时序温度监测器只会在收到由主机发出的读插槽指令时才会进行数据的传输。因此为了能够让温度监测器有效的执行读取和数据传输命令,必须在主机发出指令后生成读取时隙,因为读取插槽这个过程至少需要60微秒的工作时间,因此必须要有1微秒的恢复时间在两个独立的读插槽中间。由于每个读插槽都是通过主机来启动和控制的,因此这要求总线被拉下的时间不得小于1微秒。当主机成功的启动读插槽指令后,温度监测器设备会开始向总线根据数据情况来发送低电平0或者高电平1。如果温度监测器发出了1的数据信号,那么总线便会保持高电平状态。如果温度监测器发出了0的数据信号,那么总线便会保持低电平状态。然而当数据传输值为0时,那么DS18B20便会在时隙结束时对总线进行释放,并通过对电阻器的上拉把总线置位为高电平状态。由于温度监测器发送的数据在开始后依然会有15微秒的有效期。所以主机的释放总线动作必须在读插槽的期间内完成。具体顺序图如图2.8所示。图2.8读数据时序图具体步骤如下:第一步:先将数据线置位为高电平1。第二步:设置延时时间为2微秒。第三步:将数据线置位为低电平0。第四步:设置延时时间为6微秒。第五步:将数据线置位为高电平1。第六步:设置延时时间为4微秒。第七步:读数据线获得一个状态位,并进行数据处理。第八步:设置延时时间为6微秒。第九步:依次重复从第一步到第五步的动作步骤,一直到整个数据全部读取完毕。2.3数码管驱动显示电路2.3.1数码管驱动电路为了有效实现显示驱动模块的功能,这里选用的是74HC573芯片,该芯片使一个包含八路D型的透明锁存器,其芯片上的每个锁存器配备一个独立的输入端口,以及用来适应总线应用的三态输出。该芯片的所有锁存器都将会使用一个公共的锁存使能端以及一个公共的输出使能端。
当锁存使能端的信号为高电平时,Dn则会将数据输入到锁存器中,这时锁存器的输出状态将会根据D输入变化的不同而进行不同的变化。当锁存使能端的信号为低电平时,Dn则会将数据暂存在其中一段时间,当使能端的信号为高电平时,才会将数据输入进去
当输出使能端为低电平时,各个锁存器所存储的的内容均可被正常输出;当输出使能端为高电平时,会使得输出进入高阻态。这时来自OE端的操作将不会对锁存器的状态产生影响,74HC573电气参数见表2.2。表2.274HC573电气参数表74HC573参数74HC573基本参数电压
2.0~6.0V驱动电流
+/-7.8mA传输延迟
14ns@5V74HC573其他特性逻辑电平
CMOS功耗考量
低功耗或电池供电应用74HC573封装与引脚SO20,SSOP20,DIP20,TSSOP2074HC573特性:(1)位于芯片封装的两端设有输入输出,简化了微处理器的接口(2)配有专用于微控制器的输入接口和输出接口(3)配有专用于微型计算机的输入接口和输出接口(4)拥有面向于总线控制的三态正相输出(5)共用三态输出使能端(6)逻辑功能与74HC563、74HC373相同(7)遵循JEDEC标准no.7A(8)ESD保护2.3.2数码管显示电路该电路的显示模块主要由一个4位集成7段LED数码管组成,该模块主要用于显示被测温度和电流档位。它是一个数码管与一个共同的阴极。各数码管的端子为了有效接收来自单片机P0口所生产的显示段码,根据设计要求分别衔接在了一起。为了便于接收来自单片机P2端口所生产的位选择码,这里将S1、S2、S3、S4引脚端子选定为位选择端子。接下来便要设计系统采用动态扫描方式。对扫描方式的确定很见到那,那便是将所有同名8段数码管同DP通过接口电路对接起来,相应的由I/O线独立来控制每个数码管的公共极COM。当CPU从字段输出端口发出字体代码时,所有数码管接收相同的字体代码,但哪个数码管在哪个数码管上取决于COM终端。COM终端与单片机的I/O接口相连。单片机将位选择码输出到I/O接口,控制何时、哪位被点亮。在依次开启数码管的位扫描过程中,每根数码管的点亮时间都很短。但由于人类视觉保留的现象,印象是一套稳定的数字显示。动态模式的优点非常明显,即功耗低。在动态扫描过程中,任何时刻都只有一根数码管工作。具体示意图见图2.9图2-9数码管显示电路2.4风扇驱动电路风扇的驱动采用的是两个三极管,三级管将信号放大,然后传输到风扇下图是该模块电路,见图2.10:图2.10风扇驱动模块三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。(1)电流放大以下分析仅适用于对NPN型硅三极管的研究。如图2.10所示,我们将从基极B到发射极E的电流统称为基极电流IB;而从集电极C到发射极E的电流我们则统称为集电极电流IC。两个电流方向都在发射极外,因此在发射极E上使用箭头指示电流方向。很明显,三极管的放大的主要作用就是将电极电流同意交给基极电流来进行控制,然而又因为基极电流的变化很小,相应的这会导致集电极电流的发生很大变化,所以这会发生一个在一定程度上符合比例关系的变化:即集电极电流的变化就是基极电流的变化的N倍,换句话说电流变化被放大N几次,因此根据以上结论我们N称为三极管的放大(一般来说对于N,它的值远大于1比如说几十、几百)。如果在基极和发射极上加一个小信号,会引起基极电流IB的变化,IB的变化会增大,从而引起IC的巨大变化。如果集电极电流IC流过一个电阻R,可以根据公式u=R*I计算,电阻上的电压会发生很大的变化。如果这个时候我们从电阻中将电压给提取出来,那么我们便得到了被放大过的电压信号。(2)偏置电路在实际放大电路中使用三极管的时候,我们在这里需要额外增加一个合适的偏置电路。这有几个原因。首先,由于三极管(相当于二极管)BE结的非线性,输入电压大到一定程度后必须产生基极电流。这里就拿硅管来举例子,通常情况下硅管的输入电压为0.7V,那么当基极和发射极之间的电压小于0.7V时,那我们可以将此时的基极电流视作为0。但是在实际上,我们要放大的信号通常会比这里的0.7V小得多得多。因此如果我们这里没有设置偏置,那么这样小的信号根本不足以让基极的电流发生明显的变化。原因很简单,因为此时的基极电流如果小于0.7V那么便可视作为0。那么如果我们在这里加上一个合适的电流又称偏置电流,当一个小信号与偏置电流叠加时,这个小信号就会对基极电流发生明显的变化,基极电流的变化,它被放大并输出到采集器上。除此以外还有一个因素,那便是对输出信号范围有一定的要求。如果没有偏压,只有那些增加的信号被放大,但信号是无效的(因为没有偏压时集电极电流为0,不能再减小)。偏压可以使集电极提前产生一定的电流。因此当我们给出的输入基极电流变小时,会使得集电极电流减小;当我们给出的输入基极电流增大时,会使得集电极电流增大。因此减少的信号和增加的信号都可以通过偏置电路实现放大。(3)开关作用现在来谈讨论一下三极管在饱和下的情况。如下图2.11所示,由于电阻RC的限制,使得集电极的电流不能无上限的持续增加。因此当基极电流逐渐增大时,集电极电流并不能随着基极电流的增大而继续增大,因为这时的三极管已经进入了饱和状态。当在三极管进入饱和状态后,三极管的集电极和发射极之间的电压将会变得非常小,这个时候我们可以将这个三极管解释为开关闭合。这样,我们就可以根据以上结论来将三极管作为一个有效的开关:当基极的电流为0时,三极管的集电极的电流会变为为0,这时相当于开关的关断;当基极电流一直增加直到三极管进入饱和状态时,这时相当于开关的接通。如果这个时候三极管主要在截止和饱和状态情况下工作,那么一般将这种三极管通称为开关。图2.11三极管引脚介绍2.5按键模块单片机键盘有两种:分别为独立键盘和矩阵键盘:独立键盘的每个I/O口都只对接一个键位,键的另一端对接电源或接地(一般情况下接地)。这种连接程序比较简单,系统比较稳定;矩阵键盘连接程序更复杂,但需要较少的I/O。根据本设计的需要,本文选择了独立的键盘连接方式。独立键盘的实现就是利用I/O口的电平来判断按键是否被按下。常开键一边接地一边对接到I/O端口。在程序开始时,I/O端口设置为高电平。通常,当没有按键时,I/O端口保护高电平。按键时,I/O端口和接地之间的短路会迫使I/O端口处于低电平。释放按键后,MCU内部的上拉电阻将I/O端口保持在高电平。我们需要做的是在程序中查找这个I/O端口的级别状态,这样我们就可以通过上面流程来判断出当前是否有键在进行操作。在我们用单片机处理键盘时,会涉及到一个比较重要的过程,即消除键盘抖动。这里的抖动是机械抖动。键盘未按到临界区域是电平不稳定的正常现象。这个问题的出现与我们手动的操作毫无关联。一般这种抖动发生在10~200毫秒之间,不稳定电平的抖动之快让人类无法去感应如此之快的抖动时间,然而这对于时钟这种以微秒为单位的的单片机来说则比较慢的。因此根据刚刚罗列的界面,我们要求硬件去抖动是利用部分电路对抖动部分进行处理。软件去抖动不是为了消除抖动,而是为了避免部分时间抖动,然后在键盘稳定后再进行处理。所以选择了软件来消除抖动。实现方法是先搜索关键字。当有低电平时,立即延迟10~200毫秒以避免抖动,通常我们设定该值为20毫秒。延迟后,再次读取I/O端口的值。如果本次值为1,则表示低电平时间在200毫秒以内,因将其视为干扰信号。读取值为0时,表示按键正在调用相应的处理程序。硬件电路如图2.12所示。图2.12按键模块电路图第三章系统软件设计第三章系统软件设计3.1主程序流程图为了实现根据当前温度而对风机状态进行实时的控制,因此需要在程序中以高频为周期不断的去判断当前温度值是否超过设定的动作温度范围。这里由于单片机的工作频率高达12Mhz,在执行程序时不断地比较和判断当前温度与设定的动作温度。当温度超过设定的温度范围时,会及时执行过温处理子程序或者欠温处理子程序,从而控制风扇根据实际情况切换到停止、小风、大风这3种不同的状态。显示程序会通过查询七段码而获得各个数码管上对应的显示数字,按顺序依次扫描并显示。具体的工作流程图如图3.1所示。开始开始程序初始化调用DS18B20初始化函数调用DS18B20温度转换函数调用温度读取函数调用按键扫描函数调用数码管显示函数调用温度处理函数调用风扇控制函数结束图3-1主程序流程图3.2DS18B20子程序流程图先对温度检测器的值进行初始化,然后再进行ROM的相关操作命令,最后才能进行对存储器的操作或者数据的操作。DS18B20温度检测器的每一步操作都要严格的遵守工作时序以及通信协议。比如说主机控制DS18B20温度检测器完成温度转换的这一过程,通过DS18B20温度检测器的通讯协议,可以得知其必须经历三个步骤:第一步,每一次读写之前都要对DS18B20温度检测器的值进行复位;第二步,只有当温度检测器复位成功后才能发送一条ROM指令;第三步,发送RAM指令,这样才能对温度检测器执行预定中的操作。图3-2DS18B20程序流程图3.3数码管显示子程序流程图程序实现的功能是将从DS18B20读取的二进制温度值转换为七段码在LED上显示出来。显示方式采用的是动态扫描的方式,先给位选信号,再给段选信号,然后延时一下。具体流程图如图3-3结束延时10ms显示第四位送形第四位送位选给低延时10ms显示第三位送形第三位送位选给低延时10ms显示第二位送形第二位送位选给低第一位送形第一位送位选给低延时10ms显示图3-3数码管显示程序流程图结束延时10ms显示第四位送形第四位送位选给低延时10ms显示第三位送形第三位送位选给低延时10ms显示第二位送形第二位送位选给低第一位送形第一位送位选给低延时10ms显示3.4按键子程序流程图在硬件设计上我们设计为3个按键,通过按键来扫描子程序。当我们按下设置键K1后,开始对温度的上限进行调整,这时我们再按下“加”键K2,温度最大值便会执行依次自加一,当我们再按下“减”键K3,温度最大值便会执行依次自减一。如果这个时候再按一次设置键K2,那么便会开始对温度的下限进行调整,同样的如果此时按下“加”键K2,那么温度最小值便会执行依次自加一,当按下“减”键K3后,温度最小值便会执行依次自减一。为满足一般情况下的使用要求,我们设置最大值为100摄氏度,最小值为10摄氏度。这时如果再按一次设置键K3,便会停止对温度的上限和下限的调整。NYYN结束修改设置的阀值判断加、减键是否按下设置上限设置下限退出设置判断当前设置模式判断设置键是否按下延时去抖设置按键按下图3-4按键程序流程图NYYN结束修改设置的阀值判断加、减键是否按下设置上限设置下限退出设置判断当前设置模式判断设置键是否按下延时去抖设置按键按下第四章系统调试第四章系统调试4.1软硬件调试4.1.1按键显示部分的调试首先,根据系统程序的设计:如果要有效的实现外部键盘输入的功能以及数码管显示的功能,那么我们需要通过P3口连接程序的键盘,通过P0口来对数码管显示器进行有效的LED断码控制,因此P2的用处便在于控制LED的位码,进过这种设置可以实现以上的功能要求。在仿真时,如果编译的程序并没有错误,那么显示管只会出现乱码,这是因为当前并没有获得正确的显示温度,因此按键功能将不会起作用,这个时候如果你进行按键操作时,会发现显示结果有多种的改变。通过我的一系列的技术研究发现了一种解决的办法,因为如果在键盘扫描的程序没有针对其添加键抖动消除部分。那么当我按下键位或者松开键位时,就会在一定程度上出现抖动,也正是因为这个抖动,可能会让单片机出现不争取的判断,引发预设的温度失效等错误,导致其不能正常的进行工作。综上所诉,我们有必要在按键扫描程序之间额外增加一个抖动消除功能的部分,即增加按键按下和释放时的延迟判断,以检测键盘是真的按下还是完全释放。数码管不能正确显示的主要原因是数码管的段码通过端口P0传输,数码管显示器采用动态扫描方式,但程序中没有显示段码的寄存器,当端口P0传输段码时,会造成混淆,不能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招商代理合同书
- 菜园种植租赁合同范本
- 广告工人安装合同范本
- 教导处下学期工作计划
- 迎新晚会模板
- 闲置学校流转合同范本
- 2025年度宣传制作合同
- 2025年通过电子邮件签订合同的法律风险与挑战
- 高中地理第四章同步导学案:工业地域的形成
- 2025标准版企业与个人间的借款协议合同
- 劳务联合施工协议书
- 2025年广东能源集团云浮蓄能发电有限公司招聘笔试参考题库含答案解析
- 2024年考生面对挑战时的心理调整试题及答案
- 2025-2030全球及中国4,4-二氟二苯甲酮行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 【初中地理】撒哈拉以南非洲课件-2024-2025学年人教版地理七年级下册
- 2024年信息安全试题及答案
- 药物治疗管理MTM
- 广东省佛山市南海区2024-2025学年七年级外研版英语期中练习题(含答案)
- 2025年中国铁路投资集团有限公司招聘(28人)笔试参考题库附带答案详解
- 钢筋精算管理操作手册
- 2025年河南水利与环境职业学院单招职业技能测试题库审定版
评论
0/150
提交评论