您好,欢迎访问三七文档
1常州信息职业技术学院智能电子产品综合项目实践设计报告2011—2012学年第二学期项目:液晶屏显示电冰箱温控器的设计班级:计应104学号:1008143314姓名:朱伟洵授课教师:居平制定日期:2012年6月2第一章总体设计1.1项目产生的背景及意义冰箱是深刻改变了人类生活的现代奇迹之一。在人们发明冰箱之前,保存肉类的唯一方法是腌制,而在夏天喝到冰镇饮料是一种奢侈。随着郭明经济的日益发展,人民的生活水平有了很大的提高,冷冻器具在家庭,医院,旅馆,餐厅和科研单位得到了广泛的应用。电冰箱作为应用较为普遍的家庭电器,近年来,随着微电子技术、传感器技术以及控制理论的发展,其呈现迅猛发展,电冰箱向大容量、多功能、无氟、节能、智能化、人性化方向发展,因此传统的机械式、简单的电子控制难以满足现代冰箱的发展要求。电冰箱一般设有冷冻室和冷藏室。冷冻室的温度为:-16~-24.摄氏度,冷藏室的温度为:2~8摄氏度。电冰箱控制的主要任务就是保持箱内食品最佳温度,达到保鲜的目的。1.2项目功能液晶显示电冰箱温控器的设计是以单片机AT89C51作为核心控制器,利用DALAS一线式温度传感器DS18B20实现对电冰箱内冷藏室和冷冻室的温度采集。通过按键可以对电冰箱内冷藏室和冷冻室的温度进行预先设定。当电冰箱内的温度值高于用户设定的温度值时,系统将由单片机控制继电器自动开启压缩机进行制冷,使冰箱内温度自动降温,当电冰箱内的温度值低于设定温度值时,系统将由单片机控制继电器自动关闭压缩机停止制冷,以此来自动实现电冰箱内温度的自动调节。同时相关的状态信息要在点阵汉字液晶屏上实时地显示。将当前时间显示在液晶屏上,并可以通过按键来更改当前时间,将冰箱外的温度显示在液晶屏上。项目功能项目功能在液晶屏上显示汉字和当前时间将冷藏室和冷冻室的现时温度显示在液晶屏上通过按键更改冷藏室和冷冻室的标准温度,从而来控制压缩机的开关定时器控制当前时间走时,通过按键更改当前时间31.3具体要求在汉字液晶屏上显示,第一行显示冷藏室:,第二行显示冷冻室:,第三行显示压缩机:(当冷藏室温度小于冷藏室标准设置温度并且冷冻室温度小于冷冻室标准设置温度时,压缩机显示关,则其它情况下压缩机显示开),第四行显示out:,第五行显示clock:。长按按键时,清屏,在屏幕上显示冷藏室:、冷冻室:,更改标准温度值。短按按键时,更改当前时间,更改的时间以黑底白字显示。4第二章硬件设计2.1硬件设计图2-1液晶屏显示电冰箱温控器硬件电路如图2-1所示,液晶模块与单片机的连接采用模拟输入输出口,用3个数字温度传感器DS18B20构成3个电子温度计,将所测的温度值在液晶屏显示出来。通过按键改变当前时间和标准温度值。2.2器件介绍单片机89C51:如图2-2所示为89C51的引脚图,MCS-51系列单片机的内部结构包括CPU,振荡器及定时电路,程序存储器,数据存储器,定时器/计数器,总线扩展控制,可编程I/O口,可编程串行口。CPU是单片机的核心,MCS-51系列单片机内含一个高性能的8位中央处理器,CPU的作用是从ROM中读取指令并进行分析,然后根据指令的功能控制单片机的功能部件执行操作。CPU由运算器和控制器两大功能器件组成。单片机内部有P0,P1,P2,P34个8位双向I/O口,外设与这些端口可以之间相连,无需另外的接口芯片。P0`P3既可以按字节输入或输出,也可以按位进行输入或输出,共32条口线,其控制十分灵活方便。各个端口的结构、功能有所不同。在该项目中,主要运用的就是单片机的输入输出口P1、P3口。温度传感器DS18B20:DS18B20的测温范围是-55度~125图2-25度,12位温度读数,分辨率为1/16摄氏度,温度转换时间最多位750ms,其引脚图如图2-3所示。DQ:数据输入输出。在数据总线供电方式可给传感器提供电源。VDD:可选的电源电压。DS18B20有两种供电方式,数据总线供电方式和外部供电方式。GND:电源地。每个DS18B20均有一个唯一的产品序列号,固化在内部的64位激光ROM中,其格式是:低8位是产品的工业代码,中间是每个器件唯一的48位序列号,高8位是针对前面56位的CRC校验码,这也是多个DS18B20可以采用一条数据线进行通信的原因,只要单片机用匹配命令即可访问总线上指定的DS18B20。点阵液晶屏TG12864B:TG12864B点阵液晶屏(如图2-4)显示模块是由128*64个液晶屏显示点组合的一个阵列,每个显示点对应一位二进制数,1表示点亮,0表示灭,储存这些点阵信息的RAM称为显示数据存储器,为了在屏幕指定位置显示某个图形或字符,需要将相应的点阵信息写入到DDRAM相应的单元中。TG12864B液晶屏实际上是由左右两块独立的64*64点阵液晶屏拼接而成,每半屏有一个8*64*8bitDDRAM,左右半屏驱动电路及存储分别有片选信号CS1和CS2选择。显示点在64*64液晶屏上的位置由行号(0~63)与列号(0~63)确定。DDRAM中某个存储单元由页地址(0~7)和列地址(0~63)确定。每个存储单元的8位二进制数对应屏幕上同一列的8个点阵。其引脚功能说明如表2-1所示:VDD/VSS:电源5(1±10%)V或接地。VSS/VDD:接地或电源5(1±10%)V。VDD:反视度调整。使用可变电阻调整,通常接地。RS:寄存器选择。1为选择数据寄存器;0为选择指令寄存器。R/W:读/写选择。1为读;0为写。E:使能操作。1为LCM可做读写操作;0为LCM不能做读写操作。DB0~DB7:双向数据总线的第0—7位。VDD:背光显示器电源+5V。VSS:背光显示器接地。图2-3图2-46管脚号管脚引脚说明1VSS电源地2VDD电源正极(+5V)3VO液晶显示器对比试调整端4D/I数据/指令选择:当D/I为高电平时,DB0~DB7为显示数据当D/I为低电平时,DB0~DB7为指令数据5R/W读/写选择:当R/W为高电平时,从液晶模块读数据当R/W为低电平时,将数据写入液晶模块6E读写使能,高电平有效,下降沿锁定数据7~14DB0~DB78位并行数据总线15CS1片选择信号,高电平时选择前64列16CS2片选择信号,高电平时选择后64列17RST复位信号,低电平有效18VEELCD驱动电源(-10V)19BLA背光电源,LED+20BLK背光电源,LED-定时器:在51系列单片机中有两个16位的加法计数器,分别叫做T0和T1.它们在计数脉冲的作用下,其计数值不断加1,在此过程中,计数器可能产生溢出,产生溢出后,可以向CPU发出中断请求。计数脉冲可以来源于系统时钟或外部电路。如果计数脉冲来自系统时钟,称之为定时器,每个机器周期计数器加1,;如果计数脉冲来自外部电路,称之为计数器。定时器方式寄存器TMOD用于控制定时器/计数器的工作方式,不具有位寻址能力。TMOD寄存器的高4位用于T1的设定,低4位用于T0的设定,其定义相同。定时器/计数器T1定时器/计数器T0D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M01.M0、M1:选择定时器/计数器的工作方式,T0有4种工作方式,T1有三种工作方式,00为方式0,01为方式1,10为方式2,11为方式3。2.C/¯T:定时方式/计数方式的选择控制位。C/¯T=0,选定时方式,计数脉冲来自系统时钟的12分频;C/¯T=1,选计数方式,计数脉冲来自外部电路。3.GATE:位被称为“门控制”。当GATE=0时,只要TR0=1,与门的输出就为1,计数开始。如果GATE为1时,只有TR0=1,并且P3.2-1时,才允许计数。表2-1表2-274.在使用定时器/计数器时,首先应根据要求对工作方式进行初始化,然后计算出初始值,初始化时应向TMOD寄存器写入工作方式控制字,将计数器的初值写入TH0、TL0/TH1、TL1,启动定时器/计数器,将TR0/TR1置1,采用中断方式,应将EA,ET0/ET1置1.按键:本系统中用到了4个按键,分别为K13,K14,K15,K16,通过按键来更改当前时间和设置标准温度值。其定义如下:#defineKSET0xe0#defineKSET_LONG0xe1#defineKINC0xd0#defineKDEC0xb0#defineKDOWN0x70图2-58第三章软件设计液晶屏显示电冰箱温控器分四个模块,一为主函数模块,二为读取温度值,三位液晶屏显示,四为定时器3.1液晶屏显示模块液晶屏显示结果如图3-1所示,第一行显示冷藏室:,第二行显示冷冻室:,第三行显示压缩机:,第四行显示out:,第五行显示clock:。TG12864B液晶屏显示4行16*16点阵的汉字,每行显示8列,如果列号小于4,则显示在左半屏,否则显示在右半屏。由于一个汉字占用2页,程序首先必须设置上半个汉字的页地址,起始列,并输出16个字节数据,随后设置下半个汉字的页地址、起始列地址,并输出16个字节数据,流程图如图下所示:#defineucharunsignedchar#defineuintunsignedint#defineKSET0xe0#defineKSET_LONG0xe1#defineKINC0xd0#defineKDEC0xb0#defineKDOWN0x70externvoidLCD_DispIni(void);externvoidInit_Timer0(void);externvoidLCD_DispFill(ucharfilldata);externvoidLCD_DispChar(bitcolor,ucharcy,ucharcx,chardispdata);externvoidLCD_DispStr(bitcolor,ucharcy,ucharcx,char*disp_str);externvoidLCD_DispHZ(ucharcy,ucharcx,uchardispdata);externvoidLCD_DispHZStr(ucharcy,ucharcx,uchar*disp_str);externvoidgettemp(intt[]);externvoidreadid(uchar*id);externunsignedchartime[3]={06,50,55};//时间:时、分、秒缓存externvoidclear(void);图3-19开始以filldata充填液晶屏初始化液晶屏复位驱动芯片打开显示在液晶屏的cy(0~3)行,cx(0~7)列显示汉字字符点阵列号为8?在左半屏显示在右半屏显示求出汉字子啊屏幕上的起始列设置汉字的页,列地址,显示汉字结束YN流程图3-1chardbuf[2]={5,-15};ucharmax[3]={24,60,60};//ucharcount=0;uchardp[16]={0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9};ucharbuf0[4]={2,3,4,0xff};ucharbuf1[4]={2,5,4,0xff};ucharbuf2[4]={8,9,10,0xff};ucharbuf3[2]={7,0xff};//开ucharbuf4[2]={6,0xff};//关ucharbuf5[2]={11,0xff};ucharbuf6[5]={12,13,14,15,0xff};voiddelay(uchart){uchari;while(t--)for(i=0;i250;i++);}voidshow(void){LCD_DispIni();LCD_DispHZStr(0,0,buf0);LCD_DispChar(0,1,7,':');LCD_DispHZStr(0,7,buf5);LCD_DispHZStr(1,0,buf1);LCD_DispChar(0,3,7,':');LCD_DispHZStr(1,7,buf5);LCD_DispHZStr(2,0,buf2);LCD_DispChar(0,5,7,':');LCD_D
本文标题:电冰箱实验报告
链接地址:https://www.777doc.com/doc-3673879 .html