电子万年历的设计与实现
刘瑞涛
(石家庄职业技术学院电气与电子工程系 河北石家庄 050081)
摘要:电子万年历在公共场所和日常生活中使用非常普遍,同时也是单片机课程教学的典型工作任务。其主要由硬件系统和软件系统组成,硬件系统主要包括单片机最小系统,时间采集模块,温度采集模块,指令输入模块,信息显示模块5个模块组成。软件系统使用C51编程语言进行程序设计,编写DS1302时间采集函数,DS18B20温度采集函数,按键扫描函数,信息显示函数以及最后集成的主函数。单片机通过程序控制实现从DS1302中提取年、月、日、星期、时、分、秒等信息,从DS18B20采集温度值的数字量,再把这些信息通过数码管输出显示。
关键词:万年历 单片机 时钟芯片 温度传感器 数码管显示中图分类号:TP368.12文献标识码:A文章编号:1007-9416(2013)12-0159-01
随着经济社会的不断进步,电子万年历已经成为人们工作生活中不可缺少电子产品之一,它为人们提供当前的日期、时间、温度、湿度等信息,广泛使用在学校、医院、火车站、港口等公共场所。但通过我们对市场上的电子万年历深入分析发现它们都存在一些不足之处,例如:时间计时不准,每月的天数需手动调整,不能显示温度、湿度信息,可扩展性不强等,这些都为用户的使用产生了不便。为此,本文设计了一种时间计时准确,显示信息全备,性价比高的电子万年历。
1 计时方案分析
在设计之初首先要考虑的问题就是采用何种方式进行时间计时,这其中要考虑时间计时是否精准,元器件价格是否便宜,硬件设计是否简单,驱动程序编写是否容易。
在现阶段的市场中,有一些专用的时钟芯片,它们可以精确地计时时间,并且可以按照进制依次向日期信息进位,而且此类芯片的接口协议逐步趋于标准,操作起来有固定的模板可以借鉴,DS1302就是一款性价比高,时间计时精准,芯片体积小功耗低,日期自动带有调整补偿功能,可以持续计时的时钟芯片。DS1302采用串行接口与单片机进行数据传输,其控制引脚有三根,分别是SCLK、I/O、RST,通过这三根引脚的时序配合逐位进行数据的读与写,可以将时间与日期信息传输给单片机,继而通过数码管显示。
的封装是DIP8,配套电路还要有电源、地、外接32.768KHz晶振电路,如果要持续计时就要外接电池。其内部主要包括时间和日历7个信息寄存器,传输数据信息主要通过SCLK、I/O、RST三个引脚时序配合读写信息,而AT89S51没有专用的接口,所以只能通过三个IO口与这三个引脚相连,通过编程模拟时序变化。
按键及温度采集电路:按键采用微动开关,与单片机IO口连接时接1KΩ—10KΩ上拉电阻,另一端接地,这样当按键按下时输入为0,不按下时输入为1;DS18B20为三引脚封装,其中两边引脚分别接电源和地,中间引脚同样通过一个1KΩ—10KΩ上拉电阻接到单片机上的某一个IO口。
显示电路:由于显示的信息较多,且每个信息都相互独立,要使用多个两位一体或四位一体数码管,并根据使用场合选择不同尺寸大小的数码管。
4 软件程序设计
由于使用了时钟芯片DS1302、温度传感器DS18B20,单片机内部程序要控制IO口电平变化依据传输协议从DS1302各个寄存器读取时间和日期数据,从DS18B20中读出温度数据,再将它们放入显示缓冲单元中。显示程序模块只需从显示缓冲单元中取出数来并显示。在开机初始化程序中,要对DS1302和DS18B20进行初始化设置,同时还要启动计时开始。采集来的各项数据都要进行数制的转换与整理才能放入显示缓冲单元中。系统程序流程图如图1所示。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26593-25.html
美舰在我军的严厉警告下夹着尾巴逃跑了