已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 绪论以单片机为核心,设计通用室温控制系统对室内温度进行有效的控制。用集成温度传感器实时采集室内温度,将采集到的温度信号转换成可供cpu读取的信号,利用简单键盘输入不同的室温设定值,并且能区分开工作日及休息日的情况。通过液晶显示器在键盘的辅助下能实时显示当前的室温值,设定的温度值、时间、日期等。对室内温度进行有效的控制,在一天24小时之内不同的时间段可设定不同的室温设定值,并且能区分开工作日及休息日的情况,能够显示当前的室内温度值、设定的温度值、时间、日期等。本论文拟采用模糊控制为核心算法进行设计。模糊控制是目前在控制领域所采用的智能控制方法中最具实际意义的方法。模糊控制的采用解决了大量过去人们无法解决的问题,并且在工业控制、家用电器和各个领域已取得了令人瞩目的成效。模糊控制比传统的pid等控制方法,在强时变、大时滞、非线性系统中的控制效果有着明显的优势。将模糊控制技术应用于家电产品在国外已是很普遍的现象。单片机是家用电器常用的控制器件,把二者结合起来,可使控制器的性能指标达到最优的目的。基于模糊控制技术的单片机控制的电器,是对传统的电器开关控制的改造,具有达到设定温度的时间短、稳态温度波动小、反应灵敏、抗干扰能力强、节省电能等优点。第2章 方案论证本文拟采用以单片机为核心,设计通用室温控制系统对室内温度进行有效的控制。用集成温度传感器实时采集室内温度,将采集到的温度信号转换成可供cpu读取的信号,利用简单键盘输入不同的室温设定值,并且能区分开工作日及休息日的情况。通过液晶显示器在键盘的辅助下能实时显示当前的室温值,设定的温度值、时间、日期等。常用的电加热控制方式有两位式控制、三位式控制、比例控制、积分控制、比例积分控制、比例微分控制及比例积分微分控制。实践证明这些控制方式是行之有效的,但由于室稳对象的环境参数、系统参数都是时变的,很难建立被控对象准确的数学模型,同时系统参数的在线调节又相当麻烦,所以传统的控制方式不尽使用。 本论文拟采用模糊控制为核心算法进行设计。模糊控制比传统的pid等控制方法,在强时变、大时滞、非线性系统中的控制效果有着明显的优势。将模糊控制技术应用于家电产品在国外已是很普遍的现象。模糊控制是目前在控制领域所采用的智能控制方法中最具实际意义的方法。模糊控制的采用解决了大量过去人们无法解决的问题,并且在工业控制、家用电器和各个领域已取得了令人瞩目的成效。拟以at89c51为核心at89c51是一种带4k字节闪烁可编程可擦除只读存储器。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。时钟控制拟采用ds12887进行控制。ds12887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。利用集成温度传感器ad590实时采集室内温度。将采集到的温度信号转喊成dc05v的电压信号通过adc0809转换器转换成数字信号供at89c51读取。在一天24小时之内不同的时间段利用简单键盘输入不同的室温设定值,并且能区分开工作日及休息日的情况。通过液晶显示器在键盘的辅助下能实时显示当前的室温值、设定的温度值、时间、日期等。系统分为一个主程序,和几个子程序。主程序主要为初始化,等待子程序的中断。几个子程序包括以下诸功能:从键盘输入数据和命令,显示数据,接收从模数转换器来的数据,处理这些数据并且控制输出。第3章 系统硬件设计3.1 at89c51单片机at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperom-falsh programmable and erasable read only memory)的低电压,高性能cmos 8位微处理器。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。与mcs-51 兼容 4k字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0hz-24hz三级程序存储器锁定128*8位内部ram32可编程i/o线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式 片内振荡器和时钟电路 管脚说明:vcc:供电电压。 gnd:接地。 图3-1 at89c51管脚说明p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下所示:p3.0 rxd (串行输入口)p3.1 txd (串行输出口)p3.2 /int0 (外部中断0)p3.3 /int1 (外部中断1)p3.4 t0 (记时器0外部输入)p3.5 t1 (记时器1外部输入)p3.6 /wr (外部数据存储器写选通)p3.7 /rd (外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。振荡器特性xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 图3-2 振荡器电路芯片擦除整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写1且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。在众多的51系列单片机中,要算 atmel 公司的at89c51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4k程序存储器是flash工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除,改写,一般专为 atmel at89cx 做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。虽然网上有人说at89c51可以解密,但花费的代价均需万元左右.况且所有的单片机均可解密,只是费用多少的问题。再者,at89c51目前的售价比8031还低,市场供应也很充足。复位电路此系统中采用电平式开关复位与上电复位,当采用6mhz时钟时,c2为22f,r9为200,r10为1k。复位电路的核心就是必须保证rst引脚上出现10ms以上稳定的高电平。这样就能实现可靠地复位。此电路中, 在按下按键之时,便通电。在通电瞬间,rc电路充电过程中,rst端出现正脉冲,从而使单片机复位。 图3-3 复位电路3.2 实时时钟ds128873.2.1 ds12887简介 ds12887为dallas公司生产的实时时钟芯片,除具有实时钟功能外,它还具有114字节的通用ram。内藏锂电池,并与广泛应用的ds1287、mc146818b脚对脚兼容。ds12887的功能特点 ds12887是美国达拉斯半导体公司最新推出的时钟芯片,采用cmos技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,同时它与目前ibm at计算机常用的时钟芯片mc146818b和ds1287管脚兼容,可直接替换。采用ds12887芯片设计的时钟电路勿需任何外围电路并具有良好的微机接口。ds12887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下:(1) 内含一个锂电池,断电情况运行十年以上不丢失数据。(2) 计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。(3) 二进制数码或bcd码表示时间、日历和定闹。(4) 12小时或24小时制,12小时时钟模式带有pwm和am指导,有夏令时功能。(5) motorola5和inatael总线时序选择。(6) 有128个ram单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用ram,所有aram单元数据都具有掉电保护功能。(7) 可编程方波信号输出。(8) 中断信号输出(irq)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。 图 3-4 ds12887芯片ds12887由振荡电路、分频电路、周期中断/方波选择电路、14字节时钟和控制单元、114字节用户非易失ram、十进制/二进制计加器、总线接口电路、电源开关写保护单元和内部锂电池等部分组成。下面分别说明管脚功能:gnd,vcc:直流电源+5v电压。当5v电压在正常范围内时,数据可读写;当vcc低于4.25v,读写被禁止,计时功能仍继续;当vcc下降到3v以下时,ram和计时器被切换到内部锂电池。 mot(模式选择):mot管脚接到vcc时,选择motorola时序,当接到gfnd时,选择intel时序。sqw(方波信号同):sqw管脚能从实时时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器a编程改变。ad0ad7(双向地址/数据复用线):总线接口,可与motorola微机系列和intel微机系列接口。as(地址选通输入):用于实现信号分离,在ad/ale的下降沿把地址锁入ds12887。ds(数据选通或读输入):ds/rd客脚有两种操作模式,取决于mot管脚的电平,当使用motorola时序时,ds是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,ds指示ds12887驱动双向总的时刻,在写周期,ds的后沿使ds12887锁存写数据。选择intel时序时,ds称作(rd),rd与典型存贮器的允许信号(oe)的定义相同。 r/w(读/写输入):r/w管脚也有两种操作模式。选motorola时序时,r/w是一电平信号,指示当前周期是读或写周期,dso为高电平时,r/w高电平指示读周期,r/w低电平指示写周期;选intel时序,r/w信号是一低电平信号,称为wr。在此模式下,r/w管脚与通用ram的写允许信号(we)的含义相同。 cs(片选输入):在访问ds12887的总线周期内,片选信号必须保持为低。irq(中断申请输入):低电平有效,可作微处理的中断输入。没有中断条件满足时,irq处于高阻态。irq线是漏极开路输入,要求外接上接电阻。reset(复位输出):当该脚保持低电平时间大于200ms,保证ds12887有效复位。ds12887的内部功能 地址分配 ds12887的地址分配,由114字节的用户ram,10字节的存放实时时钟时间。日历和定闹ram及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节可直接读写。时间、日历和定闹单元 时间和日历信息通过读相应的内存字节来获取,时间、日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是十进制或bcd形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节搞位为逻辑“1”代表pm。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误。三个字节的定闹字节有两种使用方法。第一种,当定闹时间写入相应时、分、秒定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。第二种,在三个定闹字节中插入一个或多个不关心码。不关心码是任意从c到ff的16进制数。当小时字节的不关心码位置位时,定闹为小时发生一次由于相线小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。非易失ram 在ds12887中,114字节通用非易失ram不专用于任何特殊功能,它们可被处理器程序用作非易失内存,。在更新周期也可访问。 中断 rtc实时时钟加ram向处理器提供三个独立的、自动的中断源。定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122s选择。更新结束中断用于向程序指示一个更新周期完成。中断控制和状态位在寄存器b和c中。 晶振控制位 ds12887出厂时,其内部晶振被关掉,以防止锂电池在芯片装入系统前被消耗。寄存器a的bit4bit6为010时打开晶振,分频链复位,bit4bit6的其它组合都是使晶振关闭。 方波输出选择 15级分步抽着中的13个可用于15选1选择器,选择分频器抽头的目的是在sqw管脚产生一个方波信号,其频率由寄存器a的rs0rs3位设置。sqw频率选择与周期中断发生器共离15选1选择器,一旦频率选择好,通过用程序控制方波输出允许位swqe来控制sqw管脚输出的开关。周期中断选择 周期中断可在irq脚产生500ms一次到每122s一次的中断,中断频率同样由寄存器a确定,它的控制位为寄存器b中的pie位。更新周期 ds12887每秒执行一次更新周期还比较每一定闹字节与相应的时间字节,如果匹配号三个字节都是不关心码,则产生一次定闹中断。ds12887状态控制寄存器 ds12887有4个控制寄存器,它们在任何时间都可访问,即使更新周期也不例外。寄存器a bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 uip dv2 dv1 dv0 rs3 rs2 rs1 rs0uip:更新周期正在进行位。当uip为1,更新转换将很快发生,当uip为0,更新转换至少在244s内不会发生。 dv0,dv1,dv2:用于开关晶振和复位分频链。这些位的010唯一组合将打开晶振并允许rtc计时。 rs3,rs2,rs1,rs0:频率选择位,从15级频率器13个抽头中选一个,或禁止分频器输入,选择好的抽头用于产生方波(sqw管脚)输出和周期中断,用户可以:(1)用pie位允许中断:(2)用sqwe位允许sqaw输出;(3)二者同时允许并用相同的频率; (4)都不允许。寄存器bbit7 bit6 bit5 bit4 bit3 bit2 bit1set pie ale0 vie sqwe dm 24/12 dseset:set为0,时间更新正常进行,每秒计数走时一次,当set位写入1,时间更新被禁止,程序可初始化时间和日历字节。 pie:周期中断劲旅位,pie为1,则允许以选定的频率拉低irq管脚, pie为0,则禁止中断。aie:定闹中断允许位,pie为1,允许中断,否则禁止中断。 sqwe:方波允许位,置1选定频率方波从sqw脚输出;为0-时,sqw脚为低。 dm:数据模式位,dm为1青蛙为十进制数据,而0表明是bcd码的数据。 24/12:小时格式位,1表明24小时制,而0表明12小时制。dse:p夏令时允许位,当dse置1时允许两个特殊的更新,在四月份的第一时期日、时间从1:59:59am时改变为1:00:00am,当dse位为0,这种特殊修正不发生。 寄存器cbit7 biy6 bit5 bit4 bit3 bit2 bit1 bit0 irqf pf af vf 0 0 0 0 irqf:中断申请标志位。当下列表达式中一个或多个为真时,置1。 pf=pie=1;af=aie=1; uf=uie=1; 即:irqf=pfpie+afaie+ufuie 只要irqf为1,irq管脚输出低 ,程序读寄存器c以后或reset管脚为低后,所有标志位清零。 af:定闹中断标志位,只读,af为1表明现在时间与定闹时间匹配。vf:更新周期结束标志位。vf为1表明更新周期结束。 biat0bit3:未用状态位,读出总为0,不能写入。 寄存器dbit7 bit6 bit5 bit4 biot3 bit2 bit1 bit0 vrt 0 0 0 0 0 0 0 vrt:内部锂电池状态位,平时应总读出1,如出现0,表明内部锂电池耗 尽。 bit0bit6:未用状态位,读出总为0,不能写入。3.2.2 硬件接口电路 ds12887时钟芯片和单片机的接口模式选择脚mot拉地,选择intel时序,选择ds12887时钟芯片的地址总线及as端口和单片机的p0及ale端直接相联;而ds、r/w读写控制线与单片机的rd、war控制线相连;ds12887的高位地址由单片机的p2.6端口来片选,则ds12887的高8位地址定为7fh,而其低8侠地址则由芯片内部各单元的地址来决定(00h3fh);ds12887的中断输出端irq和80c的外部t1端相联,给单片机提供中断信号;ds12887的sqw端口可编程产生方波输出信号。 图3-5 ds12887与at89c51连接图接口软件 下面为ds12887时钟芯片和单片机的接口软件,假定采用每天24小时制的非夏令时,时间数据格式为bcd码,初始化时间为1996年1月1日9时00分00秒,1k方波输出。时钟芯片每一秒种向单片机申请中断一次,一方面让单片机修改一次时钟显示,另一方面也给单片微机系统提供时间基准。ds12887时钟芯片的初始化写入程序mov dptr,#7f0ah;寄存器a地址 mov a,#70h;dv2dv0=111,分频复位movx dptr,aa inc dptr;到寄存器b地址 mov a,#8ah;停止更新,允许更新中断,选bcd码,24小时制movx dprt,a mov qpl,#00h;秒单元地址 clr a;00秒 movx dptr,amov dpl,#02h;分单元地址 clr a;00分 mov a,#09h;9时 movx dptr,a mov dpl #07h;日单元地址 mov a,01h;1日 movxdptr,a incdptr;到月单元地址mova,01h;1月movx dptr,aic dptr;到年单元地址 mov a,#96h;1996年 movx dptr,a inc dptr;到寄存器a地址 mov a,#26h;dv2dv0=010 rs3rs0=0110 movx dptr,a;选周期中断率为976.5625?s,允许方波输出,频率1khz inc dptr;到寄存器b mov a,#1ah;每秒更新一次,允许方波输出,24小时制 movx dptr,a;时钟开始运行 读取ds12887时钟日历数据程序 ds12887的日历时钟通常有中断和查询两种方法读出。但在读数据时,首先要判断数据是否更新结束,只有在数据更新结束时数据读出才有效。采用查询法读取数据: 查询寄存器a的uip位,当uip=0时,数据更新结束,可以读出。以下是采用查询方法,从秒至年单元的数据读出后存入80c31内部ram的3035h单元中,该部分程序如下: mov dptr,#7f0ah;寄存器a地址 movx a,dptr;jb acc.7,wait;uip=1则等待更新完毕 mov dpl,00h;秒地址 mov r0,#30h;取目标首地址 movx a,dptr;取秒数据 mov r0,a;送入80c31的内部ram缓冲区 ic dptr;移指针 ic r0 ;以下略采用中断法读取数据当ds12887发出中断请示,单片微机可以响应中断而读取日历数据。对于更新结束中断,中断时更新结束,数据有效,可以直接读取日历数据;对于闹钟中断和周期中断也需查询寄存器a的uip位,当uip=0时,数据更新结束,再读出日历时钟。3.3 典型的a/d转换器芯片adc08093.3.1 信号引脚in7-in0:模拟量输入通道,adc0809对输入模拟量的要求有:信号单极性,电压范围0-5v,若信号还小,还需进行放大。另外,模拟输入在a/d转换过程中,其值不应变化。因此,对变化速度快的模拟量,在输入前应增加采样保持电路。 a,b,c:地址线,a为低地址线,b为高地址线,用于对模拟通道进行选择,引脚图中相应为adda,addb,addc。其地址状态与通道的对应关系见 ale:地址锁存允许信号,对应ale上跳沿是,a,b,c地址送入地址锁存器中。 start:转换启动信号,对应ale上跳沿时,所有内部寄存器清0;start下跳沿时,开始进行a/d转换,在a/d转换期间,start应保持低电平。本信号有时简写成st d7-d0:数据输出线,为三态缓冲输出形式,可以和单片机的数据线直接相连。 oe:输出允许信号,用于控制三态输出锁存器向单片机上输出转换得到的数据。 clock:时钟信号,adc0809内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500hz的时钟信号。 eoc:转换结束状态信号。eoc=0,正在进行转换;eoc=1,转换结束。该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 vcc:+5v电源 vref:参考电压。参考电压用来与输出的模拟信号进行比较,作为逐次逼近的基准,其典型值为+5v。(vref(+)=+5v,vref(-)=+0v) 图3-6 adc0809管脚图3.3.2 at89c51与adc0809接口电路连接主要涉及两个问题:一是八路模拟信号通道选择,二是a/d转换完成数据的输送。 a,b,c分别接地址锁存器提供的低3位地址,只要把3位地址写入adc0809中的地址锁存器中,就实现了模拟通道选择,对系统来说,地址锁存器是一个输出口,为了把3位地址写入,还要提供口地址,图中使用的是线选法,口地址由p2.0确定,wr为写通选信号,把ale信号与start信号连接在一起,这样连式的在信号的前沿,紧接着在其后沿不久启动转换。 图3-7 与单片机连接方式3.3.3 数据传递a/d转换后得到的是数字量的模拟量,这些数据应传送给单片机进行处理。数据串的关键是如何确定a/d转换完成。因为只有确定数据转换完成后,才进行传送。为此可采用以下三种方式: 定时传送方式 对于一种a时子程序。a/d转换启动后,就调动这个子程序,延迟时间一到,转换肯定已经完成了。接着,就可以进行数据传送/d转换来说,转换时间作为一项技术指标是已知的和固定的。例如adc0809转换时间为128us,相当于6mhz的mcs-51单片机共60个机器周期。可根据此设计一个延了。 查询方式 a/d转换芯片表明有转换完成的状态信号,例如adc0809的e端,因此可以通过查询方式用软件测试eoc的状态,即可知道转换是否完成,若完成,则接着进行数据传送。 中断方式 adc0809与8031的中断方式接口电路只需0809的eoc端经过一非门连接到8031的intl端即可。采用中断方式可大大节省cpu的时间,当转换结束时,eoc发出一个脉冲向单片机提出中断请求,单片机响应中断请求,由外部中断1的中断服务程序读ad结果,并启动0809的下一次转换,外部中断1采用边沿触发方式。3.4 地址译码 此设计中采用74ls138译码器,在/g2a,/g2b为低电平,g1为高电平的情况下,此电路便可工作。三个输出接口q0,q1,q2分别接adc0809的a,b,c口。输入接口分别与adc0809的p0口相接。当单片机的ale为高电平时74ls138译码器储存从at89c51p0口传来的数据,当ale为低电平是74ls138译码器内的数据不变。3.5 键盘及显示3.5.1 键盘键盘在单片机应用系统中是一个很关键的部件,能向计算机中输入数据 ,传送命令等,是人工干预计算机的主要手段。在此系统中,采用了独立式的四个按键的电路。各按键相互独立,每个按键各接一根线,一根输入线上的按键工作状态不会影响其它输入线上的工作状态。因此,通过检测电平状态便可知哪个键被按下了 。这四个按键分别与at89c51的p1.0,p1.1,p1.2,p1.3相接,当任一个键被按下时,与之相连接的口线的电平便由高电平变为低点平。此时便可确定是哪个键被按下了。 图3-8 键盘电路 图3-8 键盘连接图连接p1.0的键所起的作用为:温度设定值加5,相当于设定温度增加1。 连接p1.1的键所起的作用为:温度设定减少5,相当于设定温度降低1。连接p1.2的键所起的作用为:返回主程序,相当于复位。连接p1.3的键所起的作用为:设定温度为20。3.5.2 jhd162g 字符点阵162g lcd模组特性显示内容:16字符2行字符点阵:58点驱动方式: 1/16d使用连接 图3-9 lcd与at89c51连接方式3.6 半导体集成温度传感器ad590ad590是一种二端式的集成温度传感器,其to-2封装如图所示,其主要技术参数有:测温范围:-55 -150。工作电压为+4v-+30v,由于ad590是一种恒流源形式的温度传感器,只需在二端上加上一定工作电压,则其输出电流随温度变化而变化,其线性电流输出为1a/k,即温度每变化1,其输出电流变化1a。它以热力学温标零点作为零输出点,因此,在25时,输出电流为298.2a。经过激光平衡调整,ad590的校准精度可达0.5,全温区范围线性度可达0.3,当其在10温区范围内矫正后测量,精度可达0.1,在全温区范围内使用,精度也高达1。由于ad590是一种电流型的温度传感器,因此具有较强的抗干扰能力,适用于计算机进行远距离温度测量和控制,远距型信号传递时,可采用一般的双绞线来完成,其电阻比较大,因此不需要精密电源对其供电,长导线上的压降一般不影响测量精度,不需温度补偿和专门的线性电路。 图3-9 测量电路3.7 系统总电路原理图 (略)详见大图。第4章 算法设计4.1 模糊控制算法介绍及与pid控制比较模糊控制是目前在控制领域所采用的三种智能控制方法中最具实际意义的方法。模糊控制的采用解决了大量过去人们无法解决的问题,并且在工业控制、家用电器和各个领域已取得了令人瞩目的成效。模糊控制就是建立在人类思维模糊性的基础上的。模糊控制与传统控制有着本质的区别,它不像经典控制那样需要用精确数字所描述的传递函数,也不像现代控制理论那样需要用矩阵表示的状态方程。模糊控制的核心是在于它用具有模糊性的语言条件语句,作为控制规则去执行控制。控制规则往往是由对被控过程十分熟悉的专门人员给出的,所以模糊控制在本质上来说是一种专家控制。这种控制的控制规则充分反映了人的智能活动。传统控制方法以数学公式描述控制过程,往往可以给出十分严密和明确的数学表述。模糊控制以语句规则描述控制过程,使习惯了用精确数学描述控制过程的人们感到不易适应和迷惑。实际上,模糊控制是以一种与传统精确数学完全不同的数学-模糊数学为基础理论建立起来的。它有一整套和传统控制方法完全不同的理论和方法。何况,一种技术是否先进,是以其在实际中应用是否取得良好效果而体现的,绝不仅是因对其冗长的论证或美妙的描述就会优秀起来。模糊控制这种技术,尽管其理论系统尚未完善,但其大量应用的超常成效足以表明它是一种前途无量的技术。fuzzy/pid双模态控制:简单模糊控制器由于不具备积分作用,因此这种系统很难完全消除稳态误差,而且在平衡点附近常有小振幅的震荡出现。常规的pid控制器虽然对于复杂的或模型不清楚的对象控制效果不很好,但它可以消除稳态误差,且在工作点附近的小范围内一般具有很好的控制效果。鉴于这个原因,即把简单模糊控制器与pid模糊控制器结合起来,构成一种双模态复合控制系统,而两种控制器的协调则通过上一级的智能协调起来完成。在系统运行的初始阶段,控制器按模糊控制的模态工作,智能协调器中储存有关于两种控制器切换条件的知识。它不断监视系统的输出特性,当满足切换条件时,自动使系统转换成pid控制模态。这样,系统就具有模糊控制及pid控制的双重优点。4.2 系统所用控制算法以实际温度与设定温度差为e(此数据及后面的ec均以数字形式表示,以256代表50),此次实际温度差与上次实际温度差之差为温差变化率ec。e的模糊状态可分为:负大(-10度以下),负中(-10度到-2度),负小(-2度到+2度),正小(+2度到+10度),正大。由于实际温度若高出设定温度很多,此控制系统没什么有效的方法让温度降低,故不用正大这种状态。ec的模糊状态仅分为负小,零,正小。表中u的值表示加热的秒数。根据模糊控制算法,特别考虑到尽量不要让实际温度高出设定值,故可列出以下模糊控制表:u eec-10- -2-2 - 22 - 1020-1000000-20100-20-0500-100- -201064-256- -1001098第5章 系统软件设计5.1 工作寄存器定义r5:设定温度值;r4:测得温度值;r3:温度偏差,(r4-r5);r2:上次测得的温度值,r3k-1;r1:温度偏差变化率,(r3-r2);5.2 程序流程图5.2.1 主程序功能主程序中,各变量初始化,定时器工作。主程序各变量、标志位初始化模数转换初始化模数转换结束显示初始化开中断循环等待键盘初始化 图5-1 主程序流程图5.2.2 模数转换子程序功能每隔10s,定时器1产生一次中断信号,开始模数转换。进入数转模化初始化保护现场标志位初始化开始模数转换恢复现场中断返回 图5-2 模数转换子程序流程图5.2.3 模数转换功能子程序功能进入保护现场标志位初始化根据要求,将设定的温度值存于r5中断返回将读取得数据存于r4误差e=r4-r5,存于r3根据算法,得输出存于r2恢复现场得,存于r1 图5-3 模数转换功能子程序功能模数转换结束后,中断1产生一个中断信号,将模数转换后得来的数据存于r4,于设定值(存于r5)比较,其差存于r3,此次r3与上次r3(存于r2)之差存于r1.根据控制算法,控制p1.4输出时间。5.2.4 显示子程序功能显示子程序保护现场标志位初始化恢复现场中断返回读取设定温度,实际温度,时间每隔0.2s,显示器刷新一次。显示器从ds12887中读出时间,从r5,r4中读出设定温度和实际温度并显示。 图5-4 显示子程序流程图5.2.5 键盘中断子程序功能若键盘按下,首先检测是否为干扰,若不是,背光灯亮。然后逐个检查时哪个键被按下,并分别执行此键功能。进入保护现场标志位初始化逐次检查四个键是哪个键被按下,并执行该键功能开背光灯并延时10s恢复现场中断返回检查是否为干扰ny 图5-5键盘中断子程序流程图5.2.6 系统程序org 0000hstart:ljmp mainorg 0003h;中断0ljmp int0org 000bh ;定时器中断ljmp ptf0org 0013h;中断1ljmp int1org 001bh;定时器中断ljmp ptf1org 0100hmain:mov sp,#60h;堆栈指针mov ip,#00hmov 20h,#64h;均为各定时循环常数mov 21h,#02hmov 22h,#0ahmov 23h,#28hmov 24h,#32hmov 25h,#50hmov 26h,#5ahmov 27h,#64hmov 28h,#64hmov tmod,#11hmov tl0,#0b0h;定时器0,0.1smov th0,#3chmov tl1,#00hmov th1,#00hsetb r0setb r1mov ie,#8fmov dptr,#200ah;时钟mov a,#70hmovx dptr,ainc dptrmov a,#8ahmovx dptr,amov qpl,#00hclr amov dpl #02hclr amov dpl,#04hmov a,#09hmovx,dptr,amov dpl,#07hmov a,01hmovx dptr,ainc dptrmov a,#01hmovx dptr,ainc dptrmov a,#04hmovx dptr,ainc dptrmov a,#26hmovx dptrinc dptrmov a,#1ahmovx dptr,await:nop nopljmp waitpint1:push psw ;int1push apush dptrmov dptr,#1000h;模数转换地址mov a,dptrmov 1000h,amov a,#00hmov dptr,apop dptrpop apop pswretiptf0:push psw push apush dptrmov r4,0100h;存于此处mov a,r3mov r2,aljmp tt;不同时间设定不同温度。mov a,r4subb a,r5jnc ht;高温jc lt;低温ht:clr cmov r3,amov a,r2subb a,#1000h;负数已加上1000hjnz r3zr2z;r3,r2为正jz r3zr2f;r3,r2为负r3zr2z:clr cmov a,r3subb a,r2jnz r3dar2r3zr2z;r3,r2为正,r3r2jz r3xiaor2r3zr2z; r3,r2为正,r3r3mov a,r2sub a,r3mov a,r1retr2fr3fr2xiao:clr c;r2r3都负,r2r3mov a,r3add a,#1000hsubb a,r2retmov r1,amov a,r3subb a,#14hjnc shuchu0jc r3dar2r3dar2:clr cmov a,r3subb a,#03fchjc r3xiao1020jnc r3da1020r3xiao1020:clr cmov a,r1subb a,#03eahjnc shuchu0jc shuchu1r3da1020:clr cmov a,r3subb a,#044chjc r3xiao1100jnc r3da1100r3xiao1100:clr cmov a,r1subb a,#02hjc shuchu6jnc r1da2r1da2:clr cmov a,r1subb a,#0ahjc shuchu4jnc r1da10r1da10:clr cmov a,r1subb a,#03eahjc shuchu5jnc shuchu10r3da1100:clr cmov a,r1subb a,#02hjc shuchu9jnc r3da1100r1da2r3da1100r1da2:clr cmov a,r1subb a,#0ahjc shuchu9jnc r3da1100r1da1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人工作反思解析总结
- 本科毕业生自我鉴定集锦15篇
- 《小故事大道理》读后感集锦15篇
- 公司后勤管理工作总结
- 学校美术教师教学计划五篇
- 五年级单元作文七篇
- 大学生实习心得体会范文-14篇
- 形势与政策(黑龙江农业工程职业学院)知到智慧树答案
- 主题班会课件:小学班会调整心态把握成功
- 《将对象映射为代码》课件
- 处理突发事件流程图
- 病人病例汇报PPT
- 临床输血技术规范
- 激光原理与技术-厦门大学中国大学mooc课后章节答案期末考试题库2023年
- 全能值班员集控面试题
- 食堂每日巡检表
- 脉冲振荡肺功能简介课件
- 安徽德隆泰化工有限公司年产3000吨246-三甲基苯甲酰氯、20000吨羟基乙酸项(18000吨70%的羟基乙酸产品和2000吨99%的羟基乙酸产品)环境影响报告书
- 直燃机机组维护保养规程
- 【标准格式】有限空间告知牌(罐区储罐)
- 中国,全图及各省,地图透明,模版
评论
0/150
提交评论