工程综合设计 设计报告
万年历时钟的设计
班级: 电气071班 专业: 电气工程及其自动化 设计人(学号):
完成日期: 2010年12月10日
成都信息工程学院控制工程学院
一、 设计目的:
1、 掌握C51程序用于实践并实现相应的功能; 2、 掌握时钟程序的使用方法; 3、 掌握时间函数的使用方法; 4、 掌握键盘的程序使用方法;
二、 设计任务:
设计一个智能化万年历时钟电路,LED数码管作为电路的显示部分,按钮开关作为调时部分,通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期等功能,并能准确计算闰年闰月的显示。 三、 设计要求:
通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期等功能,并能准确计算闰年闰月的显示,七个按钮连接P0口可以精确调整每一个时间数值,通过对所设计的万年历时钟电路进行实验测试,达到了动态显示时间,随时调整时间等技术指标。 四、 系统方案设计:
1、系统总体设计: 1) 原理构成框图
本设计用AT89C51作为核心控制部分,外接晶振电路与复位电路,74LS138作为位选扩展电路,P0口接七个开关作为时间调整部分,以两个四位数码管作为显示部分,开关控制显示时间与日期,P2口作为段选,P1口作为位选部分。具体框图如图1所示:
晶振电路 开关调整时间 部分 单片机 AT89C51 数码管段选部复位电路 分 三八译码 器,扩展位选部分 四位数码管显示部分 图1 原理框图
2) 设计思路
通过一段时间对专业书籍及多种设计方案的研究分析,我采用了比较常用的AT89C51作为核心控制芯片,用C语言进行编程来满足设计的要求。用LED数码管来实现年、月、日、时、分、秒、星期的显示,通过七个开关可以在日期与时间间切换和对时钟进行调整,其他外接电路还有晶振电路、复位电路等等。
3) 主程序的设计
系统程序采用C语言按模块化方式进行设计,然后通过KeilC51L软件开发平台将程序转变成十六进制程序语言,得到HEX文件,接着使用Proteous进行仿真,其次,按照Proteous的仿真电路图,在Protel99SE中完成电路板的逻辑布局及布线。
系统程序主要包括主程序,读出时钟子程序、计算时间子程序、键盘扫描子程序和显示数据刷新子程序。主程序流程图如图2所示: