1、多功能定时装置 1 一、设计目的:一、设计目的: 1、在理论学习的基础上,通过完成一个涉及 MCS-51 单片机多种资源应用并具 有综合功能的小系统目标板的设计与编程应用; 2、能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识, 在软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼 和提高; 3、使学生增进对单片机的感性认识,加深对单片机理论方面的理解。使学生掌 握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、 I/O 口、串行口通信等; 4、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后 设计和实现单片机应用系统打下良好基
2、础。 二、设计功能说明二、设计功能说明 数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成 电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟 表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的 报时功能。数字钟已成为人们日常生活中的必需品,本设计可实现如下功能: 1、使用实时时钟芯片写入及读取时间 2、用 LCD 显示,可显示年、月、日、时、分、秒、星期、农历日期、节日 3、选择蜂鸣器电路,实现两个闹钟设置和事件提示功能 4、实现时钟校正功能,12 小时/24 小时切换功能 5、显示当前时间为上午时间或下午时间 6、整点报时功能 按
3、键功能如下:按键功能如下: 1、对显示时间的设置、对显示时间的设置 按键 0:进入设置模式,实现秒(S) 、分(M) 、时(H) 、年(Y) 、月(m) 、日 (D) 、星期(W)设置的切换,并在 LCD 右下角显示所设置的项目,当各项目 设置完毕后,再按下按键 0 则返回主界面正常显示时间; 按键 1:每按一次按键 1,对所设置的时间加 1,当设置的时间超过它的最大值 时,该项自动为 0,例如:当设置秒为 59 时,秒自动清零; 按键 2:每按一次按键:2,对所设置的时间减 1,当设置的时间小于 0 时,该项 自动为它的最大值; 按键 3:设置完成后的确认键并可按此键中途退出设置,时间按用户
4、设置值正常 计时; 按键 7:实现时钟校正功能,12 小时/24 小时切换功能。 2、对闹钟的设置、对闹钟的设置 按键 4:进入闹钟 1 的设置,并在 LCD 右上方显示“CLOCK1”并通过按键 0、 1、2 设置用户所需闹钟时间,完成闹钟 1 的设置后,通过按键 0 进入闹钟 2 的 多功能定时装置 2 设置,并在 LCD 右上方显示“CLOCK2” ,若无需设置闹钟 2,则通过按键 3 退 出闹钟设置,返回主界面正常显示时间; 按键 5:设置闹钟是否开启,例如:当设置闹钟 1 为开启状态时,在 LCD 右上 方显示“*CLOCK1”当闹钟,并在返回主界面后显示“C1”表示闹钟 1 开启;
5、 三、整体设计思路三、整体设计思路 这部分主要介绍工作安排和整体设计的思想。工作过程规划如下: 熟悉硬件 了解各引脚功能 完成整体电路图 认真学习 C 语言 分块设计各部分电路 将分块的电路组合 确定结构和思路 综合各程序完成整体程序 调试程序,进行修改 完成 编辑各个程序模块 对程序编译,下板测试 对测试中的问题再调试 多功能定时装置 3 四、主程序流程图四、主程序流程图 上电初始化 显示时间初值 与闹钟时间相同? 整点? 不响 Keyvalue=getkey () Key=0? Key=1? 是否开启? 响铃 不响 报时 进入时间设置 各设置项加一 Y Y N Y N Y Y N N N
6、N 多功能定时装置 4 Key=2? Key=3? Key=4? Key=5? Key=7? 结束 各设置项减一 退出设置回到主界面继续计时 闹钟设置 闹钟已开启? 关闭闹钟 开启闹钟,显示* 12/24 进制的转换 Y Y Y Y Y Y N N N N N 多功能定时装置 5 五、电气原理图(见附图)五、电气原理图(见附图) 六、实验程序六、实验程序 1、键盘程序(、键盘程序(Keyprocess) 键盘与 848 相连接,采用矩阵键盘的方式 P2 用于列扫描,P1 用于行扫描,经过消抖及 等待键释放的程序,将最终正确的结果置于 getkey();程序实现如下: #include“aduc848.h“ void KeyDelay(unsigned int KeyJsTime); /键盘扫描延时函数声明 unsigned char GetKey(); /扫描后获取键值 unsigned char GetKey() static unsigned char KeyHaveFree=1; static unsigned int KeyJs=0