表4-1 LCD12864引脚说明128X64HZ 引脚说明 引脚号 引脚名称 方向 功能说明 1 VSS - 模块的电源地 2 VDD - 模块的电源正端 3 V0 - LCD驱动电压输入端 4 RS(CS) H/L 并行的指令/数据选择信号;串行的片选信号 5 R/W(SID) H/L 并行的读写选择信号;串行的数据口 6 E(CLK) H/L 并行的使能信号;串行的同步时钟 7~14 DB0~DB7 H/L 数据0~数据7 15 PSB H/L 并/串行接口选择:H-并行;L-串行 16 NC 空脚 17 /RET H/L 复位 低电平有效 18 NC 空脚 19 LED_A (LED+5V) 背光源正极 20 LED_K (LED-OV) 背光源负极 逻辑工作电压(VDD):4.5~5.5V 电源地(GND):0V
工作温度(Ta):-10℃ ~60℃(常温) / -20℃~70℃(宽温)
其中,VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。
LCD12864与单片机的连接如图3.11所示,其中,RT1电位器用来调节LCD的对比度,该对比度必须在LCD正常工作的时候调节到一个合适值。
图4.9 LCD12864电路原理图
4.5时钟电路设计
时钟电路是利用单片机STC89C52控制串行实时时钟芯片DS1302构成的,实现计时的功能。时钟芯片DS1302带有后备电池,具备对后备电源进行涓细电流充电的能力,保证电路断电后仍保存时间和数据信息,这些优点解决了目前常用实时时钟计时不可靠等缺点。
时钟芯片DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可
12
通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。
图4.10 DS1302的内部结构图
图4.11 时钟电路
4.6 光电开关电路设计
光电开关电路是利用光电反射传感器ST178来控制的。当检测到黑色带时,输出低电平电机转动即窗户运动,当检测到白色带时,输出高电平电机停止转动即窗户停止运动。
4.6.1、ST178的底视图和内部电路如下图:
图4.12 ST178的底视图和内部电路
4.6.2、ST178的特点
1.采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。 2.检测距离可调整范围大,4-10mm可用。 3.采用非接触检测方式。
13
4.7按键电路的设计
本设计的按键主要是用来设定开关窗的时间和是否要根据温湿度情况和设定时间的情况来开关窗。
图4.13按键电路的原理图
14
第5章 软件设计
5.1 主程序流程图
本系统的MCU使用了ATMEL公司的低功耗单片机STC89C52。主程序中仅完成了系统的初始化和开始的显示部分,然后就进入待机模式。其他功能模块都在中断服务子程序中完成。当产生中断时,MCU被唤醒并执行相应的中断服务子程序,从中断子程序返回后,系统又进入到待机模式,并关闭显示设备,节省电量。整个程序的设计使系统在绝大多数时间都处于最低功耗状态。整个程序用全部用C 语言编写,使用模块化的设计方法,把各个模块相关的程序放在一个文件中,便于分块调试和管理,缩短了调试周期,增加了程序的可移植性和可剪裁性。
在主程序中,首先关闭了看门狗和总中断,避免了在初始化过程中看门狗或其他中断导致单片机复位,使初始化无法完成。初始化过程分模块进行,增加了程序的可读性,而已便于分块调试,缩短了调试周期。
整个系统软件需要对温度传感器DHT11、报警器、窗户控制系统进行管理。温度传感器DHT11为数字式温度传感器,直接与单片机的串口连接来读取温度。以上所有模块均在主程序中完成初始化过程,系统流程图如图5-1所示。
开始 系统初始化 中断初始化 温湿度数据读取 有异常? N 处理 结束
图5.1 主程序流程图
5.2 各部分子程序 5.2.1温湿度检测程序
DHT11子程序是结合它的用户使用资料编写,主要完成的是初始化DHT11,从DHT11中读出一个字节的数据,向DHT11中写入一个字节的数据,配置DHT11包括警报温度的上
15