图15 按键电路
对以上4个按键作简要说明:S4——SET 键,S3——UP键,S2——DOWN键,S5——OUT/STOP键。
SET 键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以及星期的校准;
UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作; DOWN键:当SET键按下时,DOWN进行SET选定项(如:小时)的减操作;
OUT键:当OUT键按下时,此键功能为退出校准功能,进入下一模式,显示温度值和上下限的温度值。
3.6复位电路的设计
当STC89C52单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz的晶振,因此一个机器周期为1μs,那么复位脉冲宽度最小应为2μs。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。
根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。 上电复位要求接通电源后,自动实现复位操作。STC89C52单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的
17
功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。
本设计采用上电且开关复位电路,如图16所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=10~30μF,本设计采用的电容值为10μF的电容和电阻为4.7K的电阻。
图16 复位电路 18
4 系统的软件设计
电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。
本系统的软件部分主要要进行公历计算程序设计,温度测量程序设计,按键的扫描输入等。程序开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化命令进行初始化,初始化完成后运行温度测量程序,读取出温度传感器测量出来的温度,然后运行公历计算程序,得到公历的时间、日期信息,再运行按键扫描程序,检测有无按键按下,如果没有按键按下则直接调用节日计算程序,根据得到的公历日期信息计算出节日,如果有按键按下则更新按键修改后的变量后送给节日计算程序,由节日计算程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管让其显示。
4.1主程序流程图的设计
主程序流程图如图17:
19
开始 DS1302初始化 设置DS1302 读年月日星期时分秒 将读取的数据处理后送液晶屏显示 返回
图17 主程序流程图
4.2 程序设计(见附录)
5 系统的机体设计
5.1系统的模块组成
本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统的核心采用的是STC89C52单片机;数据显示模块采用的是LCD液晶显示;温度采集模块用的是
DS18b20温度传感器,该传感器所采用的是单总线传输,内部带有A/D转换,用起来非常方便;时间处理模块用的是DS1302时钟芯片,可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能;调整设置模块共包括四个按键:模式选择键、功能选择键、调整加按键、调整减按键。
5.2 功能实现
20

