还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
太阳能热水器的自动控制目录摘要……………………………………………………………3第一章绪论太阳能热水器的应用及前景……………………………………………4第二章设计目的与设计思路
2.1设计目的………………………………………………………………
52.2设计要求………………………………………………………………
52.3设计思路………………………………………………………………5第三章太阳能热水器控制系统的组成及原理
3.1控制系统的组成………………………………………………………
63.2控制系统的原理………………………………………………………8第四章硬件电路的设计
4.1检测电路的设计
①水温检测电路设计……………………………………………………9
②水位检测电路设计…………………………………………………
104.2驱动电路设计…………………………………………………………
114.3键盘电路设计…………………………………………………………
124.4显示电路设计…………………………………………………………
134.551系列单片机简介……………………………………………………
144.6数字温度传感器简介…………………………………………………17第五章软件设计控制软件设计…………………………………………………………19心得体会…………………………………………………………21附录摘要太阳能热水器很早就被人们所熟知,广泛应用于人们的日常生活但是目前太阳能热水器控制器还一直处于研究与开发阶段市面在售的控制器绝大部分只具备温度和水位显示功能不具备温度水位的自动控制功能太阳能热水器控制系统的设计方案有很多,本设计采用MSC-51系列单片机作为中央处理器,采用12846液晶显示模块,本课题的设计基于单片机的软件控制下完成时间、温度、水位的显示基本显示目标为
(1)显示水温和水位,电加热水温可任意设定;
(2)显示时间,可通过键盘设置时间参数;
(3)设置温度参数后,自动控制电辅助设备加热;关键词单片机,太阳能热水器,自动控制绪论太阳能热水器的应用及前景太阳能热水器应用较好的国家有西班牙、以色列、意大利、希腊、德国、荷兰、澳大利亚、日本、美国等国家一些国家利用太阳能热水器除了提供家庭热水外,还用于采暖、空调及泳池加热等领域,其中美国的太阳能热利用主要用于泳池加热目前太阳能热水器已在我国城乡开始推广使用,主要供应生活和洗浴热水,我国已成为世界上最大的太阳能热水器生产国和应用国太阳能热水器节能减排,实现能源替代,效果显著经过两年多的实践,人们认识到太阳能热利用是投资少、见效快、经济实用、节能减排,实现我国能源替代的一个好产业,国家也正大力扶持和支持,学校、宾馆、饭店、洗浴中心纷纷建设太阳你洗浴系统,太阳能热水器的市场存在扩大空间新农村建设与建筑节能也为太阳能热水器的应用推广带来机遇但是市面上绝大多数的控制器结构简单,功能单一,智能化程度低下,用户界面不人性化,只具有水位显示功能,不具有温度显示功能并且当水位加到一定的程度的时候也没什么措施,只能通过手动的方法来控制水位的高度因此根据以上要求为核心,开发出一种太阳能热水器智能控制系统,解决了目前市面上太阳能热水器控制系统存在的问题第2章设计目的与设计思路
2.1设计目的本设计具有很强的实用性用成本低廉的电阻式传感器以及电极配以单片机技术对生产实际中的太阳能热水器的水温的控制以及水位的显示本装置电路简单、实用性强、性价比高、水温控制灵活,水位显示直观醒目可广泛应用于家庭生活对太阳能热水器的水位显示与水温控制具有良好的市场前景
2.2设计要求
1、能够根据水位和水温两个条件控制是否需要进水,每次只进整个水箱的四分之一水量,也可以在手动状态下自由进水(上满时自由停止)或停止进水
2、控制系统具有手动和自动切换功能;
3、具有水温和水位显示功能;
4、具有进水超水位和超水温报警指示;
5、用水时若水温达不到设置值时,可手动起动加热装置,这样可在很大程度上节约电能;
6、用水时可自由调节水温;
7、控制系统具体管道排空功能,这样防止冬天时因水管内有积水而在夜间冻裂水管
2.3设计思路水位由潜入储水容器不同深度的水位电极和潜入容器底部的公共电极(导线)检测;并由四个绿色LED发光二极管显示若无水则绿灯不亮;若有四分之一储水箱的水亮一盏绿灯;通过观察绿灯点亮的数量可识别水位的高低,这里取5段显示,也可根据需要进行增减水温由四个LED数码管显示,前三个数码管显示的为温度最后一个数码管我们只用到了四段码显示为温度的符号C,水温有效值最多可显示为
99.9℃第三章太阳能控制系统的组成及工作原理
3.1控制系统的组成系统组成本系统主要由控制器、自动控制阀、手动控制阀、水位检测电极、水温检测传感器、电阻加热丝、储水箱等组成1控制器主要通过里面的电磁阀控制YV1和YV2的通断,控制水温检测传感器检测水温、控制水位检测传感器检测水在水箱中的位置以及控制电阻加热丝加热2自动控制阀主要通过控制器控制,当水箱中的水的实际温度大于所设置的温度时,自动阀就自动打开往水箱中上水,直到上到上一个目标水位为止3手动控制阀当自动阀损坏时,可以通过手动阀进行上下水4水位检测电极主要用来检测水箱中水的位置,主要把水箱分成四等分,一共有五个电极,接地的电极放在最水箱的最底下,其余分别放在四等分点上,比如当水箱中的水在第一等分和第二等分之间,则显示水箱中有四分之一的水,当超过第二等分,则显示二分之一的水5水温检测传感器主要用来检测水箱中水的实际温度6电阻加热丝主要用来加热水箱中水,使其达到用户所需要的温度太阳能热水器利用微机控制主要有以下几种控制功能晨水加热控制、温水循环控制、冷水集热控制、水箱加热控制
(1)早晨水温控制由于清晨太阳光较弱,所以太阳能热水器从系统发挥作用为了提供温度不低于30摄氏度的水,热水器在清晨4-7点之间对水箱进行电加热,具体控制过程如下首先,关闭冷水阀门F2和循环水阀门F1,然后微机开始进行水箱的温度采集,同时进行温度的比较,当水箱的温度小于30摄氏度时,电热器D接通进行加热,同时微机继续对热水箱的温度进行采集当温度加热到大于30摄氏度时电热器断开,如此反复循环保证了温度的稳定
(2)循环水集热过程早晨水温控制之后(7~9点),设定当日的水箱温度N(由两位BCD次齿轮开关设定),输入微机,再利用微机控制系统,通过太阳光能对热水箱加热以达到理想温度N具体控制过程如下打开循环阀门F1,关闭冷水进水阀门F2,热水阀门F3处于空控状态然后开始比较温度,若(T3-T15摄氏度,T2T1)为止如若T1=N,那么循环水集热过程结束,进入冷水集热控制过程
(3)冷水集热控制此时热水箱温度已达到了N,冷水要进入太阳能集热器,这时温度为T3,和当日的设定温度值相比较,若T3N则将已加热的水送入热水箱,每天的控制时段大概为9点~20点具体控制过程如下关闭循环水阀门F2,打开冷水阀门F2,热水阀门F3处于可控状态若T3N,打开热水阀门F3并将保持一段时间,若T3N,关闭F3继续给太阳能集热器加热,知道温度答应N,当打开F3时此时比较水管水温T2与N的值,若T2N阀门F3继续保持打开状态,否则关闭F3可见,次过程充分利用太阳光能转化为热能,方便快捷
(4)水箱加热控制此时,也许你会问如果没有日照或者日照较弱时,到了晚上我们是否还能洗上热水澡吗?答案是肯定的,不要忘了这款热水器还有一个从系统,这时它就要发挥作用了热水箱温度为T1,将它和设定值N相比较,从而控制是否打开电加热,控制时段为下午,具体过程如下若T1N,电加热接通;否则,电加热断开,而且,15点~20点中的每个小时有下表的关系表一温度比较时间(时)温度比较加热值(度)15T135N3516T140N4017T145N4518T150N5019T155N5520T160N60最终热水箱的温度加热到设定值N由此可见,即使没有日照我们照样可以洗上热水澡了综上所述,太阳能供热控制系统不仅节约而且高度只能化,方便省事,不论日常家居,还是对宾馆、学校等都是最佳选择
3.2控制装置的工作原理本控制系统分为手动和自动两种控制方式,在系统处于自动状态下,当检测温度高于设置温度,且水位未达到最高时,控制器打开电磁水阀YV1和YV2进行上水,同时点亮上水指示灯,当水位上至上一目标水位时,自动停止上水(即关闭电磁水阀YV1和YV2),若水箱内无水,则自动上水至最低水位处在系统处于手自动状态下,可自由上水或停止上水(上水时水箱水位必须未满),若水位达到最高则自动停止上水;若需要启动加热器则必须先设定加热温度,然后按下加热键进行加热;若需洗浴时,则需打开手动阀YV4,系统自动打开电磁水阀YV2,可通过YV5自由调节水温;当电磁水阀YV1和YV2损坏或停电时,可通过打开YV5和YV6进行上下水解决燃眉之急;此系统设置YV3是为了防止冬天气温过低引起水管因内有积水而冻裂(即手动打开此阀放完水管中的积水)第4章硬件电路设计
4.1检测电路设计
①水温检测电路设计水温检测电路本设计温度传感器选用AD590AD590属于半导体集成电路温度传感器,测温范围-55℃-+150℃,在其二端加上一定的工作电压,其输出电流与温度变化成线性关系,1uA/°K,误差有几种等级:±
1、±
0.
5、±
0.3℃,本设计中选取±
0.5℃品种OP07为高精度运算放大器,AD590电流流经R
1、RP1转换为电压信号,R
2、RP2为运算负反馈电阻,成反相比例放大器,将温度信号转换成0-5V的电压信号,ADC0832再将其转换为数字信号,输入CPU控制器的操作使用方式自然合理S1用来切换操作状态控制器有“直接控制”和“参数修改”两种工作状态按S1键显示“00”,控制器进入“直接控制”状态,显示“01”、“02”、“03”、“04”分别表示“设定水位上限”、“设定定时上水时间”、“设定定时加热时间”、“设定加热温度” 进入“参数修改”状态后,S
2、S3用来修改规定的参数,S1接受本次修改,并切换到下一个参数,S4取消本次修改进入“直接控制”后,S2用来手动上水,S3用来手动加热,S4用来停止加热或上水;若水位已经超过设定水位上限,或水温已经超过设定温度,“直接控制”将不起作用 设定水位上限控制器可以监测6个水位,上限水位可以由用户设置,水位上限设置范围为位置
3、
4、
5、6 设定定时上水时间每天在规定时间检查水位,并上满若设定时间为00或大于等于24,则取消自动定时上水 设定定时加热时间每天在规定时间检查水温,若水温低于设定温度,则接通电加热器,将水温加热到设定温度若设定时间为00或大于等于24,则取消自动定时加热设定加热温度定时加热温度也可以由用户设定,可设定范围为20℃~60℃
②水位检测电路设计实验证明,纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的Mg2+、Ca2+等离子,它们的存在使水导电本控制装置就是利用水的导电性来完成的我们把储水箱大致分为四个等份,水位由潜入太阳能热水器的储水箱不同深度的水位电极和潜入储水箱底部的公共电极(导线)进行检测;由单片机依次使各水位电极呈现高电平,由公共电极所接的三极管进行电位转换,水位到达的电极,转换电位为低
(0);水位没有到达的电极,转换电位为高
(1);每检测一位便得到一位数据,5个电极检测一遍以后便得到了5个串行数据,然后把这5个数据转化为字节一路送发光二极管;在这里我们可以用发光二极管亮的盏数来显示水位的高低(若没有发光二极管亮则表示箱内没有水或者只有少量的水,若有一个发光二极管灯亮则表示箱内有四分之一箱的水,以此类推,若有四个发光二极管亮,则表示水箱水是满的)当水位未达到a时,即ha时、这时传感器的总阻值为4R,对应,系统处于缺水状态 当ahb时,传感器电阻阻值为3R,对应,系统处于20%水位 当bhc时,传感器电阻阻值为2R,对应,系统处于50%水位 当chd时,传感器电阻阻值为R,对应,系统处于80%水位 当h=d时,传感器电阻阻值为0,对应,系统处于100%水位其中,环形振荡器产生的方波周期T(或f)可通过单片机P87LPC744BN的两个定时/计数器(T
0、T1)来确定,T1用来计数,T0用来定时
4.2驱动电路设计在单片机控制系统中,需要用开关量去控制和驱动一些执行元件,如发光二极管、继电器、电磁阀、晶闸管等但AT89S51单片机驱动能力有限,且高电平比低电平驱动低那六小一般情况下,需要加驱动接口电路,且用低电平驱动如图所示
4.3键盘电路设计P
1.0-P
1.7口作为按键的信号输入端,键按下,就执行该键的功能其电路如图所示(为了编程简单、方便,采用独立式键盘电路)当按钮按下后,电路与地接通时,I/U口与地面相连为低电平按钮没有按下时,电路不与地面相接,I/U口与电压高端相连为高电平本设计中采用了共阴极接法,对于显示水温水位的程序作如下说明
①在动态扫描过程中,调用延时子程序Del1,其延迟时间为1ms,这是为了使扫描到哪位显示器稳定的点亮一段时间,犹如扫描过程中在每一位显示器上都一段驻留时间,以保证其显示亮度
②本设计接口电路是软件为主的接口电路,对显示数据以查表方法得到其字形代码,为此在程序中有字形代码Table从0开始依次写入十六进制数的字形代码为了进行查表操作,使用查表指令MOVCA,@A+DPTR,由DPTR提供16位基址,由A提供变址,因此显示数据送A后,再由A送P
0.1~P
0.6输出给显示器
4.4显示电路设计本设计采用共阳型数码管,8个LED灯如图中接法,灯的负极依次接到数码管的a-f段,采用动态扫描电路,并把显示程序作为主程序数码管的段用P0口控制,P
2.0口、P
2.3口作为数码管的位控制,P
2.4作为指示灯的控制时钟显示系统输入信号有6个液位信号、1个温度信号、4个触摸键;输出信号有4位LED数码管分时显示当前温度和液位,3个位输出控制继电器分别控制上水电磁阀、加热泵、增压泵,1个位输出控制蜂鸣器作为低水位报警信号和其他异常情况报警,2个位输出指示上水、加热状态用户设定项目有水位上限、热水温度、上水定时、加热定时设定参数用EEPROM保存,停电后参数无需重新设定系统具有故障自检功能,电磁阀、加压泵在停水时会自动切断,水位传感器有故障时禁止上水,以免上水时溢出液位传感器采用ATS173型霍尔元件,若干霍尔元件固定在一个垂直导槽上,浮子带动磁钢沿导槽移动,霍尔元件的输出经过一个电阻网络转换成不同的电压,经ADC通道送入MCU这样,仅用一个ADC通道可以实现多路数字信号的输入温度传感器采用负温度NTC型通用热敏电阻,信号经另一路ADC输入MCU保存设定参数的EEPROM采用HT93LC46,采用串行方式与MCU接口,整个控制器的硬件及对MCU的资源要求降到最低MCU根据检测到的水位信号、水箱温度信号,以及用户的设定或操作,通过软件进行数值计算和逻辑运算,以确定当前应该进行的操作,并通过输出口控制进水阀、加压泵、加热泵的状态,以实现要求的控制功能由于SN8P1706的I/O口驱动能力可高达15mA,采用高亮度的LED显示无须再使用驱动器件,可以由SN8P1706的I/O口直接驱动
4.551系列单片机简介单片机种类繁多,而且还在不断推出新的更高性能的单片机品种从使用情况来看,MCS-51型系列单片机的应用最为广泛MCS-51型单片机系列共有十几种芯片可分为51和52两个子系统,并以芯片型号的最末位数字作为标志其中8X51片内集成有8位CPU,4KBROM8031片内无ROM128BRAM两个16位定时/计数器,一个全双工串行通信接口(UART拥有乘除运算指令和位处理指令采用CHMOS工艺的基本型8XC51,由种功耗控制方式,能有效降低功耗增强型8X52,于8X51不同的是片内ROM增加到8KB,RAM增加到256B定时/计数器增加到3个,串行接口的通信速率快了6倍MCS-51系列单片机片内的程序存储器由多种配置形式没有ROM、掩膜ROM、EPROM和FPEROM不同配置形式分别对应不同的芯片,使用时可根据需要进行选择MCS-51型系列单片机芯片主要特性子系列片内ROM形式片内存储容量片外寻址能力I/O特性中断源无ROMEPROMROMRAMEPROMRAM计数器并行口串行口5518031805187514KB128B64KB64KB2×16位4×8位1580C3180C5187C514KB128B64KB64KB2×16位4×8位155528032805287528KB256B64KB64KB3×16位4×8位1580C3280C5287C528KB256B64KB64KB3×16位4×8位15AT89S51主要特点40个引脚,32kBytes的程序存储器,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器2个全双工串行通信口,内置时钟振荡器其Flash存储器,可反复擦写1000次的Flash存储器可有效地降低开发成本软件设置电源省电模式,睡眠其间,定时/计数器,串行口和中断口均停止工作,RAM中的数据被“冻结”,直到下次被中断激活或硬件复位方可恢复工作AT89S51主要功能特性兼容MCS51指令系统32k可反复擦写1000次)FlashROM32个双向I/O口硬件看门狗WDT电路3个16位可编程定时/计数器时钟频率0-33MHz两个串行中断512×8bit内部RAM2个外部中断源内置时钟振荡器中断激活睡眠模式3级加密位双重数据存储器软件设置睡眠和唤醒功能AT89S51单片机的最小系统所谓最小系统,即指使单片机能正常工作的所需的最少的电路,即应包含CPU及辅助电路、ROM、RAM及I/O端口等电路由于AT89S51内部已经包含4KB的FlashMemory程序存储器,所以无需再扩展片外程序存储器在AT89S51的基础上,加复位电路、时钟电路、EA引脚信号及电源即可结合资料及所学过的内容,得到如图所示的单片机最小系统图中,晶体振荡器的频率选6MHZ,复位电路采用上电复位,电路参数如图中所示,以满足系统复位时两个机器周期的高电平的要求由于CPU的内部已含有程序存储器,所以EA引脚接高电平AT89S51单片机时钟电路该水位自动显示控制器采用AT89C51单片机,机内有一高增益反相放大器,构成自激振荡电路,振荡频率取6MHz外接6MHz晶振,两个电容C
1、C2取20pF,以便于起振荡的作用右图中XTAL1为内部时钟工作电路的输入,XTAL2为来自反向振荡器的输出AT89S51单片机复位电路该水位自动显示控制器采用上电复位电路,由R
14、C3构成复位电路,在上电瞬间,产生一个脉冲,AT89S51将复位为保证可靠复位,脉冲宽度应大于两个机器周期,这取决于R、C时间长数取电容C=10uF,电阻R=10K数字温度传感器DS18B20主要特性及测温原理一线式数字温度传感器DS18B20是DS1820的更新换代产品由美国DAIIAS公司生产它具有体积小分辨率高转换快等优点由于每片DS18B20含有唯一的硅串行数所以在一条总线上可以挂接多达248≈218×1014只DS18B20再加上DS18B20独特的单线总线结构决定了DS18B20特别适合于大型的多路温度实时测控系统的温度检测温度实时测控集装箱的设计在实现测控系统的温度检测方面就较好地利用了DS18B20的独到特点使系统得到了极大的简化
(1)DS18B20的特性1)独特的单线接口方式DS18B20在I/O处理器连接时仅需要一个I/O口即可实现微处理器同DS18B20的双向通讯2)DS18B20支持组网功能多个DS18B20可以并联在唯一的单线上实现多点测温3)DS18B20的测温范围为:-55℃~+125℃在-10℃~+85℃时其精度为+015℃4)DS18B20的测温结果的数字量位数从9~12位可编程进行选择数字化温度传感器DS1820测温范围为-55~+125℃,增量值为
0.5℃9位温度读数,它主要由4个数据部件部分组成64位ROM;温度传感器;非易失性的温度告警触发器TH和TL;高速便笺存储器64位ROM用于存储序列号,其首字节固定为28H,表示产品类型码,后6个字节是每个器件的编码,最后1个字节是CRC校验码.温度告警触发器TH和TL存储用户通过软件写入的报警上下限值,高速便笺存储器由9个字节组成,其中有2个字节RAM单元用来存放温度值前1个字节为温度值的补码低8位,后1个字节为符号位和温度值的补码高3位
(2)DS18B20测温原理DS18B20内部结构框图如图所示DS18B20内部结构框图DS18B20的测温原理DS18B20测量温度采用了特有的温度测量技术,它是通过计数时钟周期来实现的,内部计数器对一个受温度影响的振荡器的脉冲计数低温时振荡器的脉冲可以通过门电路而当到达某一设置高温时振荡器的脉冲无法通过门电路计数器设置为-55℃同时计数器复位在当前的温度值时电路对振荡器的温度系数进行补偿计数器重新开始计数直到回零如果门电路仍未关闭则系统重复上述过程
(3)DS18B20的操作协议DS18B20单纯通信功能是分时完成的单线信号包括复位脉冲响应脉冲写“0”写“1”读“1”它们有严格的时隙概念系统对DS18B20的操作以ROM命令5个和存储器命令6个形式出现对它的操作协议是初始化DS18B20发复位脉冲→发ROM功能命令→处理数据→发存储器命令处理数据各种操作都有相应的时序图DS18B20在使用时,一般都采用单片机来实现数据采集只需将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂接多个DS18B20,就可实现单点或多点温度检测DS18B20传感器精度高、互换性好;它直接将温度数据进行编码,可以只使用一根电缆传输温度数据,通信方便,传输距离远且抗干扰性好与用传统温度传感器组成的多点测温系统相比可节省大量电缆,而且系统得以简化,系统扩充维护十分方便DS18B20可以广泛用于工厂工业过程、大型粮仓、酿酒厂,食品加工厂的温度检测以及宾馆、仪器仪表室等处的温度检测和控制第5章软件设计
5.1控制软件设计主程序流程图如图所示子程序流程图如图所示主程序首先完成串行口、定时器、中断源的初始化,设置初始运行参数、开中断,然后循环读取键盘状态、检测系统是否漏电一旦检测到系统漏电,进行声音和显示报警,将所有执行机构断电;若系统不漏电则根据存储的键盘状态和检测的水温、水位等状态信号进行相应得处理并等待中断服务程序的执行系统正常控制时,首先显示水温和水位,若检测到水流开关打开用水时,自动断开上水阀和电加热体电源,即实现水电联动,用水停电当检测到水位过低时打开电磁阀上水;到达最高水位后,自动关闭电磁阀在水位超过第二档时,将检测的实际水温与设置水温进行比较,若实际水温低于设置水温,则加热体通电进行辅助电加热;若实际水温高于设置水温时,切断加热体电源;若检测到水位低于第二档,不管设置温度高低,总是停止加热,以防止加热体干烧LED显示子程序DISI:SETBP
1.7;灭显示MOVR0#SBCDMOVA@R0;取出要显示的数ADDA#2DH;加上偏移量MOVCA@A+PC;查表取出段选码MOVSBUFA;送出显示DL1:JNBTIDL1;输出完否CLRTI;完清中断标志INCR0MOVA@R0ADDA#21HMOVCA@A+PCANLA#OEFH;个位加小数点MOVSBUFADL2:JNBTIDL2CLRTIINCR0MOVA@R0ADDA#13HMOVCA@A+PCMOVSBUFADL3:JNBTIDL3CLRTIMOVA#0FFHMOVSBUFADL4:JNBTIDL4CLRTICLRP
1.7;亮显示RETSEGTAB:DB11H0D7H32HDB92H0D4H98HDB18H0D3H10H0D0H心得体会这次毕业设计是对所学知识的一次综合性运用其中包括对模拟电子技术基础、和数字电子技术基础、单片机、传感器等知识的运用从而完成了本次设计在设计的过程中发现了自身知识的不足,也发现我们必须具备专业基础知识以外,才能成功的设计出一件合格的东西这次毕业设计收获很多,体会也很深刻,并且对我们所学的东西也产生了浓厚的兴趣在设计过程中,也学会了很多新的东西,比如传感器的知识,以及一些仿真软件的应用当然最重要的是学到了关于基本电子设计的一些基本方法,同时也加深了对一些常用的电子元件的理解及其基本用法的掌握除此之外,我觉得在这次设计的过程中,我发现团队精神的重要性,很多时候一个人的力量是有限的,一个人不可能什么都会,什么都能自己解决,还是有需要他人帮助的时候,我觉得伙伴的相互帮助很有必要,这样不仅能帮助大家很快的解决问题,还能提高我们每个人的实际水平,也培养了我们的团队合作精神,这些能力对于我们今后的学习和工作都很有帮助这次毕业设计是对三年来大学学习的检验和总结,我感觉到要学习的还有很多虽然学习生涯结束了这并不代表就可以停止学习,有句话叫:活到老学到老,所以我会在今后的生活工作中继续学习由于时间关系,本次设计中还有不尽完善之处希望在以后的学习和工作生涯中不断的完善和改进在本次设计过程中遇到不少问题,在谢老师和同学的帮助和配合下才顺利的完成了本次毕业设计谢老师在我们做设计的过程中,给予了我们极大的帮助,不仅从知识方面引导了我们的设计思路,同时,在人生观上也给了我们不少的启示非常感谢老师和伙伴们给我的帮助附录键盘输入主程序MOVP1#0FH;键盘初始化,P
1.0~P
1.3置输入方式,P
1.4~P
1.7为0状态MOVIE#84H;开CPU中断,开INT1中断SJMP$;中断等待中断服务程序ORG0013;INT1中断入口地址LJMPIO51K16;从中断入口转移键盘处理程序IO51K16IO51K16:CALLD10MS;延时10秒LCALLKEYIN;调键输入检查子程序JNZLKOUT;有键输入,转查键号RETI;无键输入,中断返回LKOUT:MOVR2#0EFH;首列扫描字写如R2MOVR4#00H;首列偏移值如R4CONU:MOVP1R2;列扫描字写入列线中MOVAP1;读入P1口状态到A中JBACC.0LONE;检查第0行是否为0状态,不为0表示按下键不在此行,转下行MOVA#00H;第0行为0状态,表明按下键在此行,首列号如AAJMPLKP;转求键号LONE:JBACC
1.1LTWO;检查第1行有无键按下MOVA#04H;有键按下,该行首列号入AAJMPLKP;转求键号LTWO:JBACC.2LTHRMOVA#08HAJMPLKPLTHR:JBACC.3NEXT;该列所有行都无键按下,转NEXTMOVA#0CH;有键按下,该行首列号入A中LKP:ADDAR4;求键号,键号位首列号加列偏移值PUSHA;键号入栈保护WKFE:LACLLKEYIN;等待键释放JNZWKFE;键未释放转WKFE等待POPA;键释放,键号如ALJMPKJMP;转键操作转处理NEXT:INCR4;转查下一列,列偏移值加1MOVAR2JNBACC.7KND;最后一列查完?查完中断返回RLA;未查完,列扫描字左移1位MOVR2A;扫描字如R2继续查找LJMPCONUKND:RETIKEYIN:MOVP1#0FH;查完有无键按下,A不为0,有键按下MOVAP1CPLAANLA#0FHRETKJMP:SUBA#OFHJCWriteTempADDA#0FHCLRCSUBA#0EHJCStoreTemporTimeADDA#0EHCLRCSUBA#ODHJCWaterpoistionADDA#ODHCLRCSUBA#0CHJCVtempADDA0CHCLRCSUBA#OBHJCStoreTimeRETIORG0003HJMPHeatRET系统组成示意图图2-1系统组成示意图水位检测电路键盘电路图AT89S51引脚图
4.
4.7F10K6M20pf+5VVccEAGNDAT89S51RSTXTAL1XTAL220pf+5VAT89S51单片机最小系统时钟电路。