数理与信息工程学院.doc_第1页
数理与信息工程学院.doc_第2页
数理与信息工程学院.doc_第3页
数理与信息工程学院.doc_第4页
数理与信息工程学院.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数理与信息工程学院单片机原理及应用期末课程设计太阳能热水器控制器 数理与信息工程学院单片机原理及应用期末课程设计 题 目: 太阳能热水器控制器 专 业: 计算机科学与技术(专升本) 班 级: 计算机071班 姓 名: 章 秀 芳 学 号: 07191107 指导老师: 余 水 宝 成 绩: ( 2008.6 )目 录 第1节 引 言31.1 太阳能热水器控制器概述31.2 本设计任务和主要内容4第2节 系统主要硬件电路设计52.1 总体设计52.2 主要电路概述52.2.1水位检测电路设计5 2.2.2水温检测电路设计62.3 具体电路设计82.3.1温度采样电路9 2.3.2温度控制电路92.3.3主机控制电路10 2.3.4键盘及数字显示102.3.5微机控制及图形显示11第3节 系统软件设计13 3.1 水温键盘显示程序133.2 主程序22 第4节 结束语34参考文献36太阳能热水器控制器数理与信息工程学院 07计算机专升本 章秀芳指导教师:余水宝 第1节 引 言 随着电子技术和计算机技术的飞速发展,网络技术和通信技术的融合,人们有可能对家居的自动化和信息化程度提出越来越高的要求,生产厂家也愿意迎合用户对家用设备控制的灵活性以及对外部信息获取的方便性所提出的新要求。本设计提出的水箱多点水位与水温控制系统太阳能热水器正是基于以上特点而设计的,并具有电路结构简单、操作方便、显示直观、成本低等诸多优点,经实践证明该系统稳定可靠,可大力推广应用到生活中去。1.1 太阳能热水器控制器概述据史料记载,人类利用太阳能的历史已有3000多年,将太阳能作为一种能源和动力加以利用,却只有300多年的历史。20世纪70年代以后,世界各国加大了对太阳能研究开发的投入,太阳能热水、太阳能建筑、太阳能发电等项目发展速度迅速,规模逐渐扩大。能源危机和环保意识使对太阳能利用达成全球范围的共识。随着我国经济的发展和人民生活水平的提高,人们对生活用热水器的需求将日益迫切。但是以我国目前燃气和电力供应的实际条件而言,普遍采用燃气热水器和电热水器是不现实的。尤其对于占全国三分之二以上的广大农村更不现实。太阳能不分东西南北,也不管城市乡村,处处皆有,再生能力强。广泛采用多点水位与水温控制系统太阳能热水器是解决我国城乡生活热水供应的一条切实可行的途径。单片机控制系统具有低价、智能的优势,能够根据需求的不同而作相应的调整,更加个性化。同时,使用单片机控制系统能够节约能源,保护设备,延长设备的使用时间。总之,无论从市场或技术抑或价格的角度来说,此款热水器具有很大的优势。它市场前景广阔、技术先进、价格合理、高度智能化,方便省事,是当前市面上热水器的升级产品。它不但适合于城乡民宅需求,还适用于写字楼、饮食、娱乐、商业服务浴室、理发、旅馆、招待所、托儿所、敬老院及外贸出口等各种需求。本文利用单片机解决了目前多点水位与水温控制系统太阳能热水器用户急待解决的智能化管理问题,具有很好的市场前景,并在智能化家庭住宅模式,以及更好的节约能源,利用可持续性能源方面作了积极的探索和研究。1.2 本设计任务和主要内容嵌入式系统因它的灵活性和廉价优势在这一进程中担当了不可或缺的角色。所以从目前热水器市场看,一般的太阳能热水器控制器从安全性和方便性角度出发至少具有以下功能:(1)水箱的恒温控制。一般允许将水箱内的冷水加热到80以下的某个设定值。(2)防止干烧。防止由于意外原因在水箱尚未注水情况下的加热管干烧。(3)水温设定和显示。(4)水位的控制。实现自动上水。(5)声光报警。当没水、水满、水温太高或太低时报警。然后本文设计了太阳能热水器控制系统的硬件电路。包括:水位检测、温度检测、键盘设定、显示、报警、驱动电路等。第2节 系统主要硬件电路设计 2.1 总体设计为了实现系统的各项功能,如水位检测、温度检测、键盘设定、显示、报警、驱动电路等。多点水位与水温控制系统太阳能热水器控制器的总体设计如图2-1所示:主要由水位采集、温度采集、显示电路及单片机控制电路组成。图2-1 系统总体框图系统有两路输入信号:其中一个支路提取水箱中的水位信号,再送单片机处理,当水位低于下限时,声光报警,并启动水泵加水,当水位到达上下限之间时,停止声光报警,但要继续加水,直到水位到达上限为止,若开机时水位在上下限之间时,不作任何处理,直到低于下限或超过上限时才处理,若超过上限,则关掉水泵,并打开出水阀门,并声光报警,直到水位下降到上下限之间;另一个支路提取水箱中的水温信号,当水温未达到设置温度时,启动电加热器进行加热,由于水在太阳能的作用下,温度一般比较接近设置温度或超过了设置温度,所以加热并不需要太长时间,可以充分的节约电能,除非在冬天经常没有太阳的照射,但此时有电加热器加热,又不会使水温太低。22 主要电路概述2.2.1水位检测电路设计水位测量主要是基于相界面两侧物质的物性差异或水位改变时引起有关物理参数的变化的原理而实现的。这些物理参数可能是电量的或非电量的,如电阻、电容、电感、差压以及声速和光能等,它们的共同特点是能够反映相应的液位变化并易于检测。电路如图2-2所示,水位传感器1,3间作为上限处理,2,3间作为下限处理。图中接了一个运放,为了节省电源,运放接成单极性方式,并采用5V供电。2个放大器都作比较器用,先调节RP,将RP的反相输入端调节至3.75左右,当水箱中的水未到达上限时,1,3间相当于开路,那么同相输入端电压为5V左右,经过比较器,则输出为高电平(5V左右),当水位到达上限后,电阻突然下降,经电阻分压,同相输入端电压为2.5V左右,小于反相输入端,则输出为低电平(实测值1.1V),单片机通过检测高低电平即可知道水位的变化。图2-2 水位检测电路2.2.2水温检测电路设计采用单片机89C52为核心。采用了温度传感器AD590采集温度变化信号,A/D采样芯片ADC0804将其转换成数字信号并通过单片机处理后去控制温度,使其达到稳定。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。本电路以单片机为基础核心,系统由前向通道模块、后向控制模块、系统主模块及键盘显示模块等四大模块组成。现将各部分主要元件及电路做以下的论证:(1)、传感器的选取选用美国Analog Devices 公司生产的二端集成电流传感器AD590,此器件具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-50- +150,满刻度范围误差为0.3,当电源电压在510V之间,稳定度为1时,误差只有0.01,其各方面特性都满足此系统的设计要求。(2)CPU模块的选择方案一:采用8031芯片,其内部没有程序存储器,需要进行外部扩展,这给电路增加了复杂度。方案二:本方案的CPU模块采用2051芯片,其内部有2KB单元的程序存储器,不需外部扩展程序存储器。但由于系统用到较多的I/O口,因此此芯片资源不够用。方案三:采用89C52单片机,其内部有8KB单元的程序存储器。而且具有三个定时器,正好满足系统多机通信时所用。 比较以上三种方案,综合考虑单片机的各部分资源,因此此次设计选用方案三。(3)、控制与显示电路采用单片机AT2051与地址译码器74LS138组成控制和扫描系统,并用2051的串口对主电路的单片机进行通信,这种方案既能很好的控制键盘及显示又为主单片机大大的减少了程序的复杂性,而且具有体积小,价格便宜的特点。图2-3水温显示电路图,图2-4水温控制电路图。 图2-3 水温显示电路图图2-4 水温控制电路图23具体电路设计本电路总体设计包括五部分:主机控制部分(89C52)、前向通道(温度采样电路)、后向通道(温度控制电路)、键盘和数字显示部分、微机控制及图形显示。2.3.1 温度采样电路系统的信号采集电路主要由温度传感器(AD590)、基准电压(7812)及A/D转换电路(ADC0804)三部分组成。电路图如图2-5所示。 图2-5 温度采样电路原理图(1)AD59性能描述:测量范围在-50- +150,满刻度范围误差为0.3,当电源电压在510V之间,稳定度为1时,误差只有0.01 。AD590为电流型传感器温度每变化1其电流变化1uA在35和95时输出电流分别为308.2uA 和368.2uA 。(2)ADC0804性能描述:ADC0804为8bit的一路A/D转换器,其输入电压范围在05v,转换速度小于100us,转换精度0.39。满足系统的要求。 (3)电路原理及参数计算:温度采样电路的基本原理是采用电流型温度传感器AD590将温度的变化量转换成电流量,再将电流量转换成电压量通过A/D转换器ADC0804将其转换成数值量交由单片机处理。2.3.2 温度控制电路此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。MOC3041光电耦合器的耐压值为400v,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100电阻与0.01uF电容组成双向可控硅保护电路。控制部分电路图如图2-6。图2-6 2.3.3 主机控制电路 此部分是电路的核心部分,系统的控制采用了单片机89C52。如图2-7所示单片机89C52内部有8KB单元的程序存储器及256字节的数据存储器。因此系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部分。 图2-72.3.4 键盘及数字显示在设计键盘/显示电路时,我们使用单片机2051做为电路控制的核心,单片机2051具有一个全双工的串行口采用串口,利用此串行口能够方便的实现系统的控制和显示功能。键盘/显示接口电路如图2-8所示。 图2-8 键盘/显示部分电路图2-8中单片机的P1口接数码管的8只引脚,这样易于对数码管的译码,使数码管能显示设计者所需的各数值、小数点、符号等等。 单片机的P3.3、P3.4、P3.5接3-8译码器74L138,译码器的输出端直接接八个数码管的控制端和键盘,键盘扫描和显示器扫描同用端口这样能大大的减少单片机的I/O,减少硬件的花费。键盘接法的差别直接影响到硬件和软件的设计,考虑到单片机2051的端口资源有限,所以我们在设计中将传统的4*4的键盘接成8*2的形式(如图2-9),键盘的扫描除了和显示共用的8个端外,另外的两个端直接和2051的P3.2和P3.7相连。图2-9 键盘接线如图2-9的接法已经完全用完了单片机的15个I/O口,有效的利用了单片机的资源。2.3.5 微机控制及图形显示为了使系统具有更好的人机交换界面,在系统设计中我们通过Visual Basic语言设计了微机控制界面。通过系统与微机的通信大大的提高了系统的各方面性能。其控制界面见图2-10。由于单片机89C52串行口为TTL电平,而PC机为RS232电平,因此系统采用了MAX232电平转换芯片。由于系统设计了多机通信的功能,即主系统(89C52)和键盘及数字显示部分的通信、主系统(89C52)和PC机图2-10的通信,所以在设计电路时要特别注意多机通信的时序及竞争问题,针对此类问题在设计中我们特地的在两根串行通信线上增加了如图2-10的电路:如图2-10由于主机部分发送两个从机都可以接受,因此主机的发送部分(及主机TXD)不存在竞争问题。而两个从机可能同时向主机发送各类控制信息,因此会存在竞争问题。其实图2-10为一个与门电路,图中R1为提升电阻,D1、D2为开关二极管,当pcTXD(或2051 TXD)中有一个为低电平时主机RXD为低电平,同时另一个分机无效,当pcTXD(或2051 TXD)中有一个为高电平时主机RXD为高低电平。图2-10第3节 系统的软件设计在完成控制系统的硬件设计和确定出控制策略之后,即可进行控制系统的软件编写,我们把该系统的软件设计为模块化结构,大致可分为主程序、显示子程序、读温度子程序、判断子程序、键盘中断服务程序。3.1水温键盘显示程序开机 机系统初始化显示清零,各记数指针清零否是消除颤抖判断是否有键按下?设定水温显示温度确定单步清零取消输出12345输出65 图3-1 键盘显示程序图3-1中的设定水温、显示温度、确定、取消、清零、输出。FLAGA BIT 00H ; 菜单键按下标志COUNTER EQU 2FHCBAI EQU 30H ; 给定温度百位值CGE EQU 32H ; 给定温度个位值CSHI EQU 31H ; 给定温度十位值CDAN EQU 33H ; 给定温度单位GBAI EQU 34H ; 实测温度百位值GSHI EQU 35H ; 实测温度十位值GGE EQU 36H ; 实测温度个位值GDAN EQU 37H ; 实测温度单位YiMa_Return EQU 38HYiMa_shi EQU 39HJieShou EQU 3AHChucun_Ge EQU 3BH ; 设定温度存储Chucun_Shi EQU 3CHChucun_bai EQU 3DHBAOCUN EQU 3EHBAOCUN1 EQU 3FH ORG 0000H JMP START ORG 0023H JMP UARTISTART: MOV SP, #60H MOV SCON,#50H ;方式一编程 MOV PCON,#00H ;取波特率为振荡频率/32 MOV TMOD,#20H ;工作方式二,用于波特率发生器 MOV TH1,#0FDH ;波特率9600 MOV TL1,#0FDH MOV IE,#10010000B ;中断使能 SETB TR1 CLR FLAGA ;清标志位 MOV COUNTER,#00H ;计数指针 ;设显示初值 MOV GDAN,#11000110B ;C MOV GGE, #11000000B ;0 MOV GSHI,#11000000B ;0 MOV GBAI,#11000000B ;0 MOV CDAN,#11000110B ;C MOV CGE, #11000000B ;0 MOV CSHI,#11000000B ;0 MOV CBAI,#11000000B ;0L1: MOV R0,#0BAH ;键盘扫描 MOV R3,#0C7H MOV R1,#00H ;键盘计数指针 MOV R2,#08H ;扫描所用的次数L2: MOV A,R0 MOV P1,A MOV A,R3 CALL AAA ;译码点亮数码管 MOV A,P3 MOV R4,A ;保留按键无按下时的值,用作后面比较 CALL DELAY ;为零表示有按键按下,跳键盘程序L3: JNB P3.2,KEYIN INC R1 JNB P3.7,KEYIN ;为零表示有按键按下,跳键盘程序 INC R1 INC R0 ADD A,#08H ;显示扫描指针加1 MOV R3,A DJNZ R2,L2 MOV P3,#0C7H JMP L1 ;重复扫描键盘KEYIN: MOV R7,#150 ;消除抖动D2: MOV R6,#248 DJNZ R6,$ DJNZ R7,D2D3: MOV A,P3 ;判断按键是否放下 XRL A,R4 MOV R3,#0B6H JZ KEYY103 MOV A,R1 ;查表确定按键值 MOV DPTR,#TABLE MOVC A,A+DPTR ; 取LED码;-0AH 菜单 CJNE A,#10011111B,QUER ;开始键 SETB FLAGA JMP L1;-0BH 确定QUER: CJNE A,#10010011B,QingL ;确定给定温度并启动串行 JNB FLAGA,L1 MOV A,35H ;A=(34H)*10+(35H) MOV Chucun_shi,A CALL YiMa MOV A,YiMa_Return ANL A,#0FH MOV YiMa_shi,A MOV A,34H MOV Chucun_bai,A CALL YiMa MOV A,YiMa_Return SWAP A ANL A,#0F0H ORL A,YiMa_shi CALL ZHUAN MOV SBUF,A ;将设定温度送缓冲区 CLR FLAGA ;清标志位 JMP L1KEYY103: JMP KEY103;-0CH 清零QingL: CJNE A,#10000011B,QuXiao JNB FLAGA,SHUZI1 MOV GGE,#11000000B MOV GSHI,#11000000B MOV GBAI,#11000000B MOV COUNTER,#00H JMP L1;-0DH 取消QuXiao: CJNE A,#11000110B,DIAN JNB FLAGA,SHUZI1 MOV A,Chucun_Ge MOV GGE,A MOV A,Chucun_Shi MOV GSHI,A MOV A,Chucun_bai MOV GBAI,A JMP L1;-小数点DIAN: CJNE A,#10100001B,JIA1 JNB FLAGA,SHUZI1 MOV A,GSHI ANL A,#01111111B MOV GSHI,A JMP L1SHUZI1: JMP SHUZI0 ;*温度加1JIA1: CJNE A,#10001110B,SHUZI JNB FLAGA,SHUZI0 MOV A,GBAI CALL YiMa MOV A,YiMa_Return ANL A,#0FH MOV GBAI,A MOV A,GSHI CALL YiMa MOV A,YiMa_Return ANL A,#0FH INC A MOV GSHI,A CJNE A,#10,JIA MOV GSHI,#00H MOV A,GBAI INC A MOV GBAI,A CJNE A,#10,JIA MOV GBAI,#00HJIA: MOV A,GSHI MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV GSHI,A MOV A,GBAI MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV GBAI,A JMP L1 ;-显示数字SHUZI: JNB FLAGA,SHUZI0 ;设定温度送显示缓冲区 INC COUNTER MOV R5,COUNTER CJNE R5,#01,SHUS MOV 34H,ASHUS: CJNE R5,#02H,SHUGE MOV 35H,ASHUGE: CJNE R5,#03H,SHUZI0 MOV 36H,A MOV COUNTER,#00HSHUZI0: LJMP L1AAA: MOV C,ACC. 3 ;给P3.3,P3.4,P3.5赋值 MOV P3.3,C MOV C,ACC.4 MOV P3.4,C MOV C,ACC.5 MOV P3.5,C RET;使按键按下时数码管不熄灭程序KEY103: ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11000111B ; 1 CALL AAA MOV P1,30H ;给定温度的单位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11001111B ; 2 CALL AAA MOV P1,31H ;给定温度的个位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11010111B ; 3 CALL AAA MOV P1,32H ;给定温度的十位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11011111B ; 4 CALL AAA MOV P1,33H ;给定温度的百位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11100111B ; 5 CALL AAA MOV P1,34H ;实测温度的单位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11101111B ; 6 CALL AAA MOV P1,35H ;实测温度的个位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11110111B ; 7 CALL AAA MOV P1,36H ;实测温度的十位 CALL DELAY1 ORL P3,#00111111B MOV A,P3 ORL A,#00111000B ANL A, #11111111B ; 8 CALL AAA MOV P1,37H ;实测温度的百位 CALL DELAY1 DJNZ R3, KY103 JMP D3 ;返回按键是否放开KY103: JMP KEY103 ;重新显示;将LED码转换为十六进制码;YiMa: CJNE A,#11000000B ,YM0 ; 0 MOV YiMa_Return,#00HYM0: CJNE A,#11111001B ,YM1 ; 1 MOV YiMa_Return,#01HYM1: CJNE A,#10100100B ,YM2 ; 2 MOV YiMa_Return,#02HYM2: CJNE A,#10110000B ,YM3 ; 3 MOV YiMa_Return,#03HYM3: CJNE A,#10011001B ,YM4 ; 4 MOV YiMa_Return,#04HYM4: CJNE A,#10010010B ,YM5 ; 5 MOV YiMa_Return,#05HYM5: CJNE A,#10000010B ,YM6 ; 6 MOV YiMa_Return,#06HYM6: CJNE A,#11111000B ,YM7 ; 7 MOV YiMa_Return,#07HYM7: CJNE A,#10000000B ,YM8 ; 8 MOV YiMa_Return,#08HYM8: CJNE A,#10010000B ,YM_END ; 9 MOV YiMa_Return,#09HYM_END: RET;十进制转十六进制ZHUAN: MOV BAOCUN,A ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV BAOCUN1,A MOV A,BAOCUN ANL A,#0FH ADD A,BAOCUN1 RET ;# 中断程序 #UARTI: PUSH ACC PUSH PSW JBC RI,UI0 CLR TI JMP UI_ENDUI0: MOV A,SBUF MOV JieShou,A;接受到的数据译码并存入显示缓冲区 ANL A,#0F0H SWAP A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV CBAI,A MOV A,JieShou ANL A,#0FH MOV DPTR,#TABLE1 MOVC A,A+DPTR ANL A,#7FH MOV CSHI,AWAIT2: JBC RI, UI1 JMP WAIT2UI1: MOV A,SBUF MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV CGE,A UI_END: POP PSW POP ACC RETIDELAY: MOV R7,#06 ;显示器扫描时间D1: MOV R6,#100 DJNZ R6,$ DJNZ R7,D1 RETDELAY1: MOV R7,#60 DJNZ R7,$ RET; 表 格 ORG 0300HTABLE: DB 11111001B,10100100B,10110000B,10011111B ;1;2;3;C DB 10011001B,10010010B,10000010B,10000011B ;4;5;6;D DB 11111000B,10000000B,10010000B,10100001B ;7;8;9;E DB 10010011B,11000000B,11000110B,10001110B ;A;0;B;FTABLE1: DB 11000000B,11111001B,10100100B,10110000B ;0;1;2;3 DB 10011001B,10010010B,10000010B,11111000B ;4;5;6;7 DB 10000000B,10010000B ;8;9 END3.2主程序开机 机系统初始化显示清零,各记数指针清零设定定时器及中断否是调用相映的中断程序判断是否有中断?PID算法PWM波产生接收及发射串显示数据PC机通信子程序 图3-2 主程序流程图各类数值转换子程序 WD BIT P3.6RD BIT P3.7C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论