




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I摘要随着人们生活水平的不断提高,全球人口和经济规模的不断增长,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中,能源使用带来的环境问题及其诱因逐渐为人们所认识,“低碳经济”这一概念开始进入人们的视野。太阳能具有储量的“无限性”、存在的普遍性,并且几乎不产生任何污染。鉴于此,人们在大力的发展太阳能产业。太阳能热水器顺应时代发展的要求,满足人们对环保绿色产品的需求。在人类文明程度日益提高的今天,它是现代文明社会的最佳选择。本文提出了一种新型的太阳能热水器控制系统设计方案。本设计采用MSC51系列单片机AT89S52作为中央处理器,采用DS1302实时时钟,12864点阵式液晶显示屏等模块,完成时间温度水位的显示,以及时间和温度的设定等功能。关键字太阳能热水器;单片机;实时时钟;液晶显示屏目录1智能仪器仪表的简介111智能仪器仪表简介112智能仪器仪表的作用113本课题的背景和意义12系统设计简介321方案论证322总体设计4221太阳能热水器的组成与工作原理4222系统总体流程图53太阳能热水器控制系统的硬件设计631主控芯片模块6311主控芯片模块电路6312主控芯片简介732实时时钟模块9321实时时钟模块电路9322实时时钟简介1033温度传感器模块11331温度传感器模块电路11332温度传感器简介1234液晶显示模块14341液晶显示模块电路14342液晶显示屏简介1535键盘输入模块174设计语言及软件介绍1941汇编语言介绍1942WAVE6000软件介绍195系统软件设计2051概述2052系统程序设计模块2053初始化程序2154按键检测及处理程序2255读取温度的程序2456控制源程序2557调试及仿真29结论33参考文献341智能仪器仪表的简介11智能仪器仪表简介仪器仪表(英文INSTRUMENTATION)仪器仪表是用以检出、测量、观察、计算各种物理量、物质成分、物性参数等的器具或设备。真空检漏仪、压力表、测长仪、显微镜、乘法器等均属于仪器仪表。广义来说,仪器仪表也可具有自动控制、报警、信号传递和数据处理等功能,例如用于工业生产过程自动控制中的气动调节仪表,和电动调节仪表,以及集散型仪表控制系统也皆属于仪器仪表。12智能仪器仪表的作用随着全球人口和经济规模的不断增长,能源使用带来的环境问题及其诱因逐渐为人们所认识,“低碳经济”这一概念开始进入人们的视野。人们在大力的发展太阳能产业。能源问题将更为突出从长远来看,全球已探明的石油储量只能用到2020年,天然气也只能延续到2040年左右,即使储量丰富的煤炭资源也只能维持二三百年。环境污染温室效应引起全球气候变化。因此,人类在解决上述能源问题,实现可持续发展,只能依靠科技进步,大规模地开发利用可再生洁净能源。太阳能具有储量的“无限性”太阳每秒钟放射的能量大约是1610的23次方KW,一年内到达地球表面的太阳能总量折合标准煤共约189210的13次方千亿T。太阳能对于地球上绝大多数地区具有存在的普遍性,可就地取用。在世界范围内,太阳能热水器技术已很成熟,并已形成行业,正在以优良的性能不断地冲击电热水器市场和燃气热水器市场。2000年太阳能热水器取代47000套家用电热水器;2000年日本太阳能热水器的拥有量将翻一番;以色列更是明文规定,所有新建房屋必须配备太阳能热水器。目前,我国是世界上太阳能热水器生产量和销售量最大的国家。然而,目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题,很多控制器具有温度和水位显示功能,却不具有温度控制功能,致使热水器阴天的时候不能方便使用。即使热水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧,从而浪费电能。13本课题的背景和意义资源是社会经济发展的物质基础,经济愈发展,对资源的依赖性愈强。许多资源(如煤、石油、天然气等)是不可再生的,而且在利用过程中给人类生存环境带来极大污染,人类繁衍生息的物质和环境基础受到严峻挑战。加强清洁、可再生资源的开发利用,已引起全世界的普遍重视。太阳能作为一种取之不尽、用之不竭的可再生资源,有节能、环保、安全和永续利用等优点,理应成为开发利用的首选。其中太阳能热水器作为家庭生活用品,其开发利用在我国已走过了二十多年的历程,生产技术成熟,具有明显优点(一)从节能环保的角度讲,使用太阳能热水器不会对环境造成污染,同时为国家节智能仪表综合课程设计1约了大量能源,社会效益明显,是国家重点推广项目,使用前景广阔。(二)太阳能热水器的使用寿命较长,使用太阳能热水器经济实惠。若使用合理,其寿命可达15年甚至更长。据测算,使用平方米太阳能热水器,相当于每年节约310度电。太阳能热水器的费用只有燃气热水器的七分之一,电热水器的六分之一。购置太阳能热水器一次性投资3000元左右,使用5至6年就可实现与其热水器的支出对比平衡。按照装置寿命15年计算,其经济效益是十分明显的。(三)太阳能热水器集热效果好,集热时间更长。只要阳光能照射到的地方,就可以使用太阳能热水器,即使在高寒地区一年四季也可以正常使用。在我国浙江、江苏、山东等地,太阳能热水器的研发和生产已形成规模,应用太阳能热水器的场所也由家居使用扩展到医院、学校、宾馆、饭店、游泳池、洗浴场所等。2系统设计简介21方案论证(1)方案一在单片机学习课程中,就遇到过一种方案,称其为方案一。它通过三极管的导通截止特性来判断液位的位置,并且可以通过按键切换检测压力。但是在过程中只能检测三点,虽然可以扩展,但是占了太多的I/O口,容易造成资源的浪费。而且仅显示单元就占用了12个I/O口,同样属于资源浪费。在电机电路设计方面,方案一采用的三极管的导通截止来控制点击的正转与反转,虽然设计简单,但是过多的使用三极管以及二极管类的元器件,也会使成本升高。而且,既然是太阳能热水器的自动控制装置,那么必不可少的就是温度的检测,而方案一中却忽略了这点,造成了最大的残缺。(2)方案二方案二主要解决了方案一中资源浪费及过于使用分立元件的缺陷。在液位检测方面,通过利用两片CD4051芯片,它相当于一个单刀八掷开关,当INH禁止端为低电平即“0”时,开关接通哪一通道由输入的3位地址码ABC来决定。这样就简单的解决了16个点检测的问题,并且在最大程度上减少了I/O口的使用。仅使用了8个I/O口即可控制16个点的检测,如果是方案一,则需要使用16个I/O口。而且在方案二中,使用目前比较流行51系列单片机AT89S52。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程FLASH存储器。使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上FLASH允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程FLASH,使得AT89S52在众多嵌入式控制应用系统中的优势明显。在方案二中还解决了方案一种不能检测温度缺点,使用了先进的DS18B20芯片,DS18B20数字温度传感器是DALLAS公司生产的1WIRE,即单总线器件,具有线路简单、体积小的特点。因此用他组成一个测温系统,具有线路简单,在1根通信线可以挂很多这样的数字温度传感器,十分方便。(3)方案选择通过上述两个方案的比较,便能发现方案二设计的电路比方案一的电路有极大的优势,性能全面,使用方便,而且简单、稳定。故选择方案二。智能仪表综合课程设计322总体设计221太阳能热水器的组成与工作原理1集热器2下降水管3循环水管4补给水箱5上升水管6自来水管7热水出水管图21热水器的组成热水器主要由集热器、循环管道和水箱等组成,图中为典型的热水器装置图。图中集热器1按最佳倾角放置,下降水管2的一端与循环水箱3的下部相连,另一端与集热器1的下集管接通。上升水管5与循环水箱3上部相连,另一端与集热器1的上集管相接。补给水箱4供给循环水箱3所需的冷水。集热器吸收太阳辐射后,集热器内温度上升,水温也随之升高。水温升高后,水的比重减轻,便经上升水管进入循环水箱上部。而循环水箱下部的冷水比重较大,就由水箱下流到集热器下方,在集热器内受热后又上升。这样不断对流循环,水温逐渐提高,直到集热器吸收的热量与散失的热量相平衡时,水温不再升高。这种热水利用循环加热的原理,因此又称循环热水器。集热器是一种利用温室效应,将太阳能辐射转换为热能的装置,该装置与一般热水交换器不一样,热交换器通常只是液体到液体,或是液体到气体的热交换过程,而平板行集热器时直接将太阳辐射传给液体或气体,是一个复杂的传热过程。平板型集热器结构形式很多,世界上已实用的集热器就有直管式、瓦楞式、扁管式、铝翼式等二十多种。222系统总体流程图开始初始化扫描键盘,是否有按键N调用键盘处理子程序Y读取水位信息和水箱温度调用显示子程序显示水温时间图22系统总体流程图3太阳能热水器控制系统的硬件设计智能仪表综合课程设计531主控芯片模块311主控芯片模块电路单片机系统由AT89S52和一定功能的外围电路组成,包括为单片机提供复位电压的复位电路,提供系统频率的晶振。这部分电路主要负责程序的存储和运行。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。晶体可在12MHZ12MHZ之间任选,电容C1和C2的典型值在20PF100PF之间选择,但在60PF70PF时振荡器具有较高的频率稳定性。典型值通常选择为30PF左右,但本电路采用30PF。AT89S52的复位是由外部的复位电路来实现的。复位电路通常采用上电自动复位和按钮复位两种方式。本设计中所用到的是上电按钮复位,如图31所示。图31单片机系统312主控芯片简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程FLASH存储器。使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上FLASH允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程FLASH,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52具有以下标准功能8K字节FLASH,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FLASHAT89S52。图32为AT89S52的引脚图图32AT89S52的引脚图AT89S52引脚功能说明如下VCC电源电压GND地P0口P0口是一个8位漏极开路的双向I/O口,也即地址/数据总线复用口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0内部上拉电阻被激活。在FLASH编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动(吸收或输出电流)4个TTL逻辑门电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。此外,P10和P12分别作定时器/计数器2的外部计数输入(P10/T2)和时器/计数器2的触发输入(P11/T2EX),具体如表31所示。在FLASH编程和校验P1口接收低8位地址字节。端口引脚第二功能P10T2(定时器/计数器T2的外部计数输入),时钟输出智能仪表综合课程设计7表31P1口第二功能P2口P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的内容。在FLASH编程和校验时,P2口也接收高8位地址字节和一些控制信号。端口引脚第二功能端口引脚第二功能P30RXD串行输入口P34TO定时/计数器0P31TXD串行输出口P35T1定时/计数器1P32INTO外中断0P36WR外部数据存储器写选通P33INT1外中断1P37RD外部数据存储器读选通表32P3口的第二功能此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将有两次有效的PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上12V的编程允许电源VPP,当然这必须是该器件是使P11T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P15MOSI(在系统编程用)P16MISO(在系统编程用)P17SCK(在系统编程用)用12V编程电压VPP。XTAL1振荡器反相放大器及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。32实时时钟模块321实时时钟模块电路从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进计时工具。钟表的数字化,大力推动了计时的精确性和可靠性。在单片机构成的装置中,实时时钟是必不可少的部件。目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路,如图33。其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。这些优点解决了目前常用的实时时钟所无法解决的问题。该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。智能仪表综合课程设计9图33DS1302与单片机接口电路322实时时钟简介DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2555V。时钟可工作在24小时格式或12小时(AM/PM)格式。DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行细电流充电的能力。DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC102V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32768KHZ晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC20V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端双向,后面有详细说明。SCLK为时钟输入端。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据位5至位1指示操作单元的地址最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。DS1302的复位引脚通过把RST输入驱动置高电平来启动所有的数据传送RST输入有两种功能首先,RST接通控制逻辑,允许地址命令序列送入移位寄存器;其次,RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在VCC25V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7。DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表33。命令字各位内容寄存器名写操作读操作取值范围76543210秒寄存器80H81H0059CH10SECSEC分寄存器82H83H0059010MINMIN时寄存器84H85H0112或002312/24010HRHR日寄存器86H87H0128,29,30,310010DATEDATE月寄存器88H89H011200010MMONTH周寄存器8AH8BH010700000DAY年寄存器8CH8DH009910YEARYEAR表33DS1302的日历、时钟寄存器及其控制字此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。33温度传感器模块331温度传感器模块电路基于DS18B20多点温度测量系统以AT89C51为中心器件,以KEIL为系统开发平台,用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。智能仪表综合课程设计11DS18B20是智能温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过44键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度的实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单,图34所示。图34系统硬件电路332温度传感器简介DS18B20数字温度计是DALLAS公司生产的1WIRE,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20产品的特点只要求一个端口即可实现通信。在DS18B20中的每个器件上都有独一无二的序列号。实际应用中不需要外部任何元器件即可实现测温。测量温度范围在55C到125C之间。数字温度计的分辨率用户可以从9位到12位选择。内部有温度上、下限告警设置。其引脚功能描述见表34。序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地表34DS18B20详细引脚功能描述64位ROM存储器件独一无二的序列号。暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的5、6和7字节器件内部保留使用。第八字节含有循环冗余码(CRC)。DS18B20加电后,处在空闲状态。要启动温度测量和模拟到数字的转换,处理器须向其发出CONVERTT44H命令;转换完后,DS18B20回到空闲状态。温度数据是以带符号位的16BIT补码存储在温度寄存器中的。符号位说明温度是正值还是负值,正值时S0,负值时S1。访问DS18B20必须严格遵守这一命令序列,如果丢失任何一步或序列混乱,DS18B20都不会响应主机(除了SEARCHROM和ALARMSEARCH这两个命令,在这两个命令后,主机都必须返回到第一步)。A初始化DS18B20所有的数据交换都由一个初始化序列开始。由主机发出的复位脉冲和跟在其后的由DS18B20发出的应答脉冲构成。当DS18B20发出响应主机的应答脉冲时,即向主机表明它已处在总线上并且准备工作。BROM命令ROM命令通过每个器件64BIT的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20的ROM如表35所示,每个ROM命令都是8BIT长。指令协议功能读ROM33H读DS18B20中的编码即64位地址符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20V温度转换命令,适用于单个DS18B20工作告警搜索命令0ECH执行后,只有温度超过庙宇值上限或下限的片子才做出响应智能仪表综合课程设计13温度转换44H启动DS18B20进行温度转换,转换时间最长为500MS典型为200MS,结果丰入内部9字节RAM中读暂存器BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将RAM中第3、4字内容复制到E2PROM中重调E2PROM0B8H将E2PROM中内容恢复到RAM中的第3、4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”表35ROM命令34液晶显示模块341液晶显示模块电路液晶显示模块以其微功耗、体积小、显示内容丰富、模块化、接口电路简单等诸多优点得到广泛应用。液晶显示模块分字符型和点阵型两种,前者只能显示常用的字符,点阵型液晶显示模块除显示字符外还能显示各种图形和汉字。如图35所示,为液晶显示屏与单片机的连接电路图。35液晶显示屏与单片机的连接电路342液晶显示屏简介12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864,内置8192个1616点汉字,和128个168点ASCII字符集。该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字。可完成图形显示。电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。智能仪表综合课程设计15图36LCD结构尺寸基本特性低电源电压(VDD3055V)显示分辨率12864点内置汉字字库,提供8192个1616点阵汉字简繁体可选内置128个168点阵字符2MHZ时钟频率显示方式STN、半透、正显驱动方式1/32DUTY,1/5BIAS视角方向6点背光方式侧部高亮白色LED,功耗仅为普通LED的1/51/10通讯方式串行、并口可选内置DCDC转换电路,无需外加负压无需片选信号,简化软件设计工作温度055,存储温度2060控制器接口信号说明如表36,37RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据表36RS和R/W的配合选择决定控制界面的4种模式表37E信号忙标志BF。BF标志提供内部工作情况BF1表示模块在进行内部操作,此时模块不接受外部指令和数据BF0时,模块为准备状态,随时可接受外部指令和数据。利用STATUSRD指令,可以将BF读到DB7总线,从而检验模块之工作状态。字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF1为开显示(DISPLAYON,DDRAM的内容就显示在屏幕上,DFF0为关显示(DISPLAYOFF。DFF的状态是指令DISPLAYON/OFF和RST信号控制的。显示数据RAM(DDRAM)模块内部显示数据RAM提供642个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型168、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140D75F),GB(A1A0F7FFH)。字型产生RAMCGRAM字型产生RAM提供图象定义造字功能,可以提供四组1616点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6DB0中。光标/闪烁控制电路此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。E状态执行动作结果高低I/O缓冲DR配合/W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作智能仪表综合课程设计1735键盘输入模块一般具有人机对话的单片机系统少不了会有键盘。本设计采用三个按键,最佳的接口方案是独立式接法,即每一个I/O口上只接一个按键,按键的另一端接地。独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。我们将按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无按键按下时I/O口保护高电平。当有键按下时,此I/O口与地短路迫使I/O口为低电平。按键释放后,与单片机连接的上拉电阻使I/O口仍然保持高电平。本设计所要做的就是在程序中查询此I/O口的电平状态就可以了解是否有按键动作了。值得注意的是,本设计在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般在10200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒级的单片机而言则是漫长的。为了提高系统的稳定性,必须去除或避开它。此处我采用软件去抖动,实现方法是先查询按键当有低电平出现时立即延时10200毫秒以避开抖动,延时结束再读一次I/O口的值。按键分工,从左至右依次为1、2、3号按键,一号键模式键,二号三号键为加减键。图37键盘接口电路4设计语言及软件介绍41汇编语言介绍汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。42WAVE6000软件介绍这个软件是南京伟福公司的单片机开发软件,一般就是用在C51单片机。不需要购买仿真器,使用软件模拟器就可以了,使用很方便的。也支持KEILC,但最好不要在WAVE内使用C,如果想用C编写,还是用KEILC方便。WAVE6000编译软件,采用中文界面。用户源程序大小不受限制,有丰富的窗口显示方式,能够多方位、动态地展示程序的执行过程。其项目管理功能强大,可使单片机程序化大为小,化繁为简,便于管理。另外,其书签、断点管理功能以及外设管理功能等为51单片机的仿真带来极大的便利。智能仪表综合课程设计195系统软件设计51概述单片机开发中除必要的硬件外,同样离不开软件,本系统的软件编程设计是在KEIL软件环境中完成的。我们写的C语言、汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,KEIL软件是目前最流行开发51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持KEIL即可看出。KEIL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用C语言编程,那么KEIL几乎就是不二之选。即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令人事半功倍。KEILC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。52系统程序设计模块本课题设计的太阳能热水器控制系统的软件程序设计主要由(1)初始化程序,(2)扫描按键程序,(3)按键处理子程序,(4)读取水位信息、水箱温度和时间程序,(6)调用显示子程序,六个部分组成。系统总体流程图如图51所示。开始初始化扫描键盘,是否有按键N调用键盘处理子程序Y读取水位信息和水箱温度调用显示子程序显示水温时间图51系统总体流程图53初始化程序太阳能热水器控制系统在接通电源后,首先要对系统进行初始化。初始化的过程包括启动DS1302,启动12864,对12864进行清屏。初始化流程图如下智能仪表综合课程设计21初始化开始启动DS1302启动12864清屏图52系统初始化流程图VOIDSTARTVOID/初始化函数UNSIGNEDCHARISET_TIME0X8E,0X00/取消写保护SET_TIME0X80,0X00/启动时钟SET_TIME0X84,0X00/设置24小时模式SET_TIME0X90,0XA5/时钟时钟充电模式SET_TIME0X8E,0X80/启动写保护RES10RES11DIS_WRITE_CMD0XAF/启动12864CLEAN/清屏54按键检测及处理程序在太阳能热水器初始化完成之后,系统便会进入键盘扫描状态,此状态下,主控芯片AT89S52会不断扫描是否有键按下,即等待用户输入。在检测到有键按下后,根据按下的次数(按一下设置“分”,按两下设置“时”,三下设置“星期”,以此类推),在运用“加”“减”分别设置。按键检测及处理流程图如图所示(以按下“一下”为例)开始扫描是否有键按下否是一下(设置分)是否为“”键是“分”加1否“分”减1图53按键检测及处理程序流程图按键检测及处理程序清单如下WHILE1/总循环WHILESTATE_BUTTON0/状态0循环/无键按下的处理程序WHILESTATE_BUTTON0/状态非0循环SET_TIME0X80,0X80/启动时钟SET_TIME0X8E,0X00/启动保护位IFSTATE_BUTTON1/状态1设置分IFTIME_JIA1/判断按钮加是否按下过智能仪表综合课程设计23MINUTE0/分操作下面所有的加减同理IFMINUTE09/MINUTE0最大为9,MINUTE1最大为5MINUTE1MINUTE00IFMINUTE15MINUTE10TIME_JIA0/按键清零表示已经执行完IFTIME_JIAN1MINUTE0IFMINUTE00IDQ0/总线拉低DQDATE/发送最低位字节到DS18B20DELAY7/延迟30微秒左右,等DS18B20采样DQ1/将总线拉高DATE1/写入数据右移一位SIGNEDINTWENDU_READVOID/读温度字节程序UNSIGNEDCHARI0,T0,PN0/T为暂存变量FORI8I0IDQ0/总线为低电平准备读操作,然后在1微秒内释放总线,以便让DS18B20将数据反馈T1/将变量右移一位,刚好可以抵消读所需的延迟时间DQ1/总线拉为高电平后,执行下面代码IFDQ1/如果总线反馈为高电平T|0X80/则将变量最高位置1/如果反馈为0,则变量最高位为0DELAY4/延迟一顿时间,然后开始下次循环RETURNT/反馈读取的字节/DS1302/VOIDTIME_WRITEUNSIGNEDCHARTIME_WD/写温度函数UNSIGNEDCHARI,J/设置循环变量FORI0I1/待发送的数据右移1位SCLK1/拉高时钟信号SCLK0/写完一个字节,拉低时钟信号UNSIGNEDCHARTIME_READ/读时间函数UNSIGNEDCHARTIME_RD/设置返回变量UNSIGNEDCHARI/设置循环变量IO1/设置数据口方向为输入FORI0I1/接收寄存器右移1位IFIO1/判断信号是1还是0TIME_RDTIME_RD|0X80/把接收到的数据放到接收寄存器的最高位SCLK1/拉高时钟信号SCLK0/拉低时钟信号RETURNTIME_RD/返回读取到的数据UNSIGNEDCHARGET_TIMEUNSIGNEDCHARORD/读取时间函数UNSIGNEDCHARDD0/设置返回变量SCLK0/拉低时钟信号(只有在时钟信号为低时才可拉高CE)CE0/拉低CE(只有在CE为高电平时才可对DS1302进行操作)CE1/启动写数据操作TIME_WRITEORD/写入命令DDTIME_READ/读取时间CE0/拉低CERETURNDD/返回读取到的时间VOIDSET_TIMEUNSIGNEDCHARORD,UNSIGNEDCHARDD/写时间函数SCLK0/和读时间函数相同CE0CE1TIME_WRITEORD/写入命令TIME_WRITEDD/写入时间数据CE0VOIDSTARTVOID/初始化函数UNSIGNEDCHARISET_TIME0X8E,0X00/取消写保护SET_TIME0X80,0X00/启动时钟SET_TIME0X84,0X00/设置24小时模式SET_TIME0X90,0XA5/时钟时钟充电模式SET_TIME0X8E,0X80/启动写保护RES10RES11DIS_WRITE_CMD0XAF/启动12864CLEAN/清屏JIANJIE/关键函数,不可删除FORI1I20IDELAY10000CLEANTUXIANG/写入初始图像/温度/WENDU_RESET/温度复位WENDU_WRITE0XCC/跳过ROM搜索命令WENDU_WRITE0X44/启动一次转换WENDU_RESET/复位WENDU_WRITE0XCC/跳过ROM搜索命令WENDU_WRITE0XBE/发送读命令AWENDU_READ/读高字节8位BWENDU_READ/读低字节8位PNB/判断温度正负IFPN0/如果温度为正TB256A/16/直接转化为十进制数IFPN0X80/如果温度为负AA/将数据取反BBCA1/低位加1IFC0X00/当低位为255时,加1后为0,这时需进位B/向高位进1TB256C/16/再进行转换十进制WENDU_DISPLAYT,PN/将温度写入到12864中57调试及仿真系统的硬件电路设计与软件程序设计都完成之后,首先,在硬件电路的仿真环境PROTEUS中,将经过编辑、编译、汇编、连接几步生成的HEX文件加载到单片机AT89S52中,然后对系统进行整体调试。以下是调试过程中遇到的主要问题及相应的解决方法1、问题描述在控制系统中,涉及到了电加热模块,即当室外光强不足(阴天、下雨)智能仪表综合课程设计29时,对水箱的水进行电加热是很必要的,然而仿真中无法显示出是否在执行加热过程。解决方法用一个等来仿真加热过程,灯亮时表示加热,图中的三极管为光敏三极管(PROTEUS仿真元件库中没有),当灯亮时,光敏三极管导通,继电器闭合,电阻丝发热,完成了加热任务。所以只有当灯亮时为加热进行中。如图55所示。图55加热程序电路图2、问题描述在控制中,还有一个重要的部分,水位显示。也没有办法直接显示到仿真过程中,只有通过另一种模式模拟出来。解决方法起初想到两个方案。第一个方案是用多个温度传感器,通过温度比较,来确定水位,因为水下传感器的温度必定不同于不在水中的传感器,通过温度比较来判断,但是后来发现,多个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一手房经纪公司劳动合同
- 2025年福建省泉州市安溪一中、养正中学、泉州实验学校高考英语模拟试卷(4月份)
- 证券市场研究服务合同
- 稀有金属加工中的创新设计与实践考核试卷
- 架线工程进度计划与资源优化配置考核试卷
- 林木育种目标与选择考核试卷
- 皮手套的人体工程学设计与应用考核试卷
- 少先队员入队知识培训
- 护理学生职业定位
- 植物油加工新技术与产业发展趋势考核试卷
- 从专业走向管理
- 2022年中国矿业权评估新准则
- 抵押物清单(标准样本)
- 《物联网》课件第4章-物联网通信技术
- 搅拌车说明书
- XX大学学生中文成绩单(人力资源管理专业)
- 电动叉车控制器电路图大全
- 法学概论的试题及答案
- 福建省水文地质图
- JZLX输电线路工程专业监理实施细则(架线工程)
- TSG T7007-2022 电梯型式试验规则
评论
0/150
提交评论