关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 作息闹铃控制器设计方案

作息闹铃控制器设计方案

作者:时间:2011-04-26来源:网络收藏
系统软件实现

本文引用地址:http://www.eepw.com.cn/article/162138.htm

  主程序流程

  本系统主程序在考虑可设置每天最多40个打铃时间点,而时间点精确的分钟,因此每个时间点信息包括时、分两个字节存储,共需80字节作为打铃时间点存储缓冲区,此缓冲区在AT89C52内存中采用数组的形式定义,同时当打铃时间点设置好时,将此数据保存到CAT24WC02串行芯片中以防止掉电丢失,在下次启动首先从CAT24WC02芯片中读取数据保存到对应数据缓冲区中。运行主程序是首先读取时钟芯片时间数据并在数码管显示相关信息,随后将当前时间与各打铃时间点相比较看是否需要打铃,最后进行键盘信息处理,分别完成时间设定和打铃时间点设定等相关操作,具体流程如图4所示。

  

  图4 主程序流程图

  时间设置程序

  本中共采用8个按键,其中时间设置按键和设置按键为复用键,由图4可知当运行主程序时,按下相应键则程序进入时间设置或时间设置程序处理中,在闹铃时间设置程序中,此二键亦分别用于添加闹铃和删除闹铃设置,当6位数码管显示信息均处于闪烁状态时,此时按下添加键,则表示新添加一闹铃时间点,按下删除键则表示删除对应闹铃时间点,如6位数码管显示信息不全闪烁,则此二键不起作用。左移和右移按键则分别用来选择所要设置数据位(时或分),选择对应位后相应数据进入闪烁状态,此时操作增加或减小键进入相应数值设置,当仅闹铃时间序号闪烁时,增加和减小键同时有依次进行查询所有闹铃时间点的功能。信息设置完后当按下确认键则表示信息设置完成,此时所设置闹铃信息会统一进行从小到大排序(用于查询时从小到大显示),然后分别保存到单片机相应内存和CAT24WC02串行EEPROM中以防掉电丢失。如按下取消键,则表示放弃所设置信息,此时重新从CAT24WC02串行EEPROM中读取原闹铃时间信息到单片机相应内存相应缓冲区。具体流程图如图5所示。

  

  图5 主程序流程图

  闹铃时间信息显示程序则由显示程序void Display专门负责,闹铃设置时的数据分别放在临时显示缓冲区,结合其闪烁状态值一起传递给显示程序进一步处理,从而决定哪位数码管显示信息进行闪烁,闪烁状态值FlagBit共有5个取值参数,分别为0、1、2、3、4,其中0表示不闪烁, 1表示闹铃时间分值闪烁,2表示闹铃时间时值闪烁,3表示闹铃时间序号闪烁,4表示全部显示数值一起闪烁。具体闪烁控制则由定时中断服务程序里对闪烁标志不断取反,显示程序里根据此标志位的变化进行闪烁控制。

  时间设置处理程序则主要是通过按键设置好时间后对DS1302进行数据更新, 具体过程与闹铃设置程序类似,篇幅原因不在多述。

  结语

  实验初期本主要通过仿真软件完成,由于受实验条件影响,数码管显示部分采用静态显示方法完成,如考虑节约成本,在实际电路中本设计亦可采用动态显示电路或串行显示电路完成。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭