1、 1 专业专业综合综合课程设计报告课程设计报告 题目:题目:智能电子钟(智能电子钟(LCD) 2 题目题目智能电子钟(智能电子钟(LCD) 一、 设计要求: 制作一个 LCD 显示的智能电子钟: (1) 计时:秒、分、时、日、月、年、星期。 (2) 闰年自动判别。 (3) 时间、年、月、日、星期交替显示。 (5) 自定任意时刻自动开/关屏。 (6) 计时精度:误差1 秒/月(具有微调设置) 。 二、 方案论证: 本实验可采用并行时钟芯片(DS12C887)和串行时钟芯片(DS1302), DS1302 要用户自己安装后备电池和串口通讯,要 32.768KHz 的晶振,而 DS12C887 自带
2、后备电池,并口通讯,无需外围元件,并且 DS12C887 多 了一个字节来记录世纪使用的,处在 RAM 的 32H 单元,但是其他的寄存 器定义都相同。 由于本实验用到了STC12C5A60S2直插40P封装的单片机、 nokia5110 液晶屏、独立式按键、四路 2 输入与门并且都是直插的,而 且在实验室做 PCB 只能是单层板,为了节约空间和简化电路于是就选用 了串行时钟芯片 DS1302。 三、 理论设计: 用用 CADCAD 软件软件绘制的硬件原理图绘制的硬件原理图 电源和程序下载端口, 此部分的USB可提供电源和下载端口适用于USB下载端口, 3 DOWN 端口适用于四角插针式下载、
3、BAT 为备用电源端口。 CPU 主控部分,此部分采用的是高速 51 系列的 STC12C5A60S2 的单片机,该芯片 不仅运行速度快稳定驱动能力更大,还为用户提供了内部集成 8 位/10 位可调分 辨率 ADC 模块(在此设计中有用到),1KB 可擦写 EEPROM 本设计中用其设计成可 调闹钟功能存放闹钟值。 4 此图为串行数据 nokia5110 的 LCD 显示器模块, 采用可控背光和可控电源有很好 的节能效果。该显示器能显示汉字,字符,图片、并且处理显示数据速度快。 此模块为串行数据实时时钟模块,此模块采用的是达拉斯公司生产的 DS1302 具 有闰年补偿。 此图为按键中断模块,
4、在此模块中每个独立式按键都能申请外部中断及时处理按 键按下的值来执行用户的操作。 5 此图为蜂鸣器模块此模块用于闹钟铃声设计,和开机提示。 6 此图为 PCB 版图 此图为 PCB 打印预览 7 软件流程图软件流程图 yes 其他键 yes 按下目录键 NO 功能 1(时间) 功能 2(温度) 功能 3(电压) 功能 4(闹钟) 程序清单 完整完整 C 程序源代码程序源代码 /* * * 主程序:顶层程序 * * 显示默认功能:时间日期显示; * * 调用子程序; 开始 按键检测, 判断按 键是否按下 初始化时钟 读数据 数据处理 显示 内 部 子 程 序,包括键 值处理,加 减上下,确 认,
5、背光控 制,闹钟, 时 间 日 期 的设置 时间处理 温度处理 电压处理 闹钟处理 返回 8 * * * * */ # include # include “zimo.h“ /字模程序; # include “nokia5110.h“/5110 驱动程序; # include “ds1302.h“ /ds1302 驱动程序; # include “key.h“ /按键扫描程序; # include “printf.h“ /显示函数; # include “power.h“ /电源模块; # include “main.h“ /引脚定义; # include “delay.h“ /延时函数; # include “macroandconst.h“/数据类型宏定义; # include “ADC.H“ /ADC 电压测量 # include “ds18b20.h“ /温度模块; void main() system_inint(); /系统初始化; /Set_RTC(); while(1) checkclock(); caidan(); /菜单显示; if(menue=0) if(ok=1) LCD_clear(); /清屏幕 while(menue=0