1、单片机技术课程设计数字电子钟学院: 班级: 姓名: 学号: 教师: 摘 要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用 AT89C52单片机为核心,使用 12MHz 晶振与单片机 AT89C52 相连接,通过软件编程的方法实现以 24 小时为一个周期,同时 8 位 7 段 LED 数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键 KEY1、KEY2、KEY3、KEY4 和KEY5 键,进行相应的操作就可实现校时、定时、复位功
2、能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。关键词:电子钟 AT89C52 硬件设计 软件设计目 录一、数字电子钟设计任务、功能要求说明及方案介绍 .41.1 设计课题设计任务 .41.2 设计课题的功能要求说明 .41.3 设计课的设计总体方案介绍及工作原理说明 .4二、设计课题的硬件系统的设计 .52.1 硬件系统各模块功能简要介绍 .52.1.1 AT89C52 简介 .52.1.2 按键电路 .6三、设计课题的软件系统的设计 .63.1 使用单片机资源的情况 .63.2 软件系统个模块功能简要介绍 .73.3 软件系统程序流程框图
3、 .73.4 软件系统程序清单 .7四、设计课题的设计结论、仿真结果、误差分析 .94.1 设计结论及使用说明 .94.2 仿真结果 .10结 束 语 .12参考文献 .12附 录 .13附录 A:程序清单 .13一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。具有时间显示,并有时间设定,时间调整 功能。1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22” , 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从 12 时 59 分 0 秒开始运行,进入时钟运行状态;
4、按电子钟 S5 键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按 S5 键再次进入时钟运行状态。1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图 1 所示: 图1-1总体设计方案图本电子钟的所有的软件、参数均存放在 AT89C52 的 Flash ROM 和内部 RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程
5、序的不同状态,实现不同功能。二、设计课题的硬件系统的设计2.1 硬件系统各模块功能简要介绍2.1.1 AT89C52 简介(1) 兼容 MCS51 指令系统;(2)8kB 可反复擦写(大于 1000 次)Flash ROM;(3)32 个双向 I/O 口;(4)256x8bit 内部 RAM;(5)3 个 16 位可编程定时/计数器中断;(6)时钟频率 0-24MHz;(7)2 个串行中断,可编程 UART 串行通道;(8)2 个外部中断源,共 8 个中断源;(9)2 个读写中断口线,3 级加密位;(10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;(11)有 PDIP、PQFP、TQFP
6、及 PLCC 等几种封装形式,以适应不同产品的需求。它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。其芯片引脚图如图 2-1 所示。图 2-1 单片机 AT89S52 引脚图2.1.2 按键电路图 22 按键图三、设计课题的软件系统的设计3.1 使用单片机资源的情况设计课题使用单片机资源的情况如下:P0 口输出数码管段选信号,P2 口输出数码管位选信号;晶振 12MHz;调整选择键 KEY1:P1.0;通过选择键选择调整位,选中位闪烁;增加键KEY2:P1.1;按一次使选中位加 1;减少键 KEY3:P1.2;按一次使选中位减1;此数字钟可实现基本的走时
7、和显示时间时、分、秒;时间的调整;闹钟的设定和调整;闹钟的开启和关闭功能,具体如下:(1)实现基本的走时和显示时间的时、分、秒,上电自动显示初始时间 12-59-00,且控制闹钟状态的的红色 led 灯为亮的状态;(2)当第一次按下第一个弹性按键时进入时间的调节状态,此时实现对显示时间的小时调节,按下第二个按键时实现小时的加一调节,按下第三个按键时实现小时的减一调节;(3)当第二次按下第一个弹性按键时进入显示时间的分钟调节状态,按下第二个按键时实现分钟的加一调节,按下第三个按键时实现分钟的减一调节;(4)当第三次按下第一个弹性按键时进入闹钟的小时调节状态,按下第二个按键时实现闹钟小时的加一调节
8、,按下第三个按键时实现闹钟小时的减一调节;(5)当第四次按下第一个弹性按键时进入闹钟的分钟调节状态,按下第二个按键时实现闹钟分钟的加一调节,按下第三个按键时实现闹钟分钟的减一调节;(6)当第五次按下第一个弹性按键时返回正常的显示时间走时状态;(7)当同时按下第二和第三个弹性按键时,关闭闹钟,且此时蓝色 led 灯为灭,及定时时间到蜂鸣器并不响,若再次同时按下第二和第三个弹性按键,则开启闹钟,且此时红色 led 灯为亮,定时时间到蜂鸣器发出滴滴的闹铃声,同时按下第二和第三个弹性按键即可关闭闹铃。闹铃状态默认为开启。3.2 软件系统个模块功能简要介绍本设计的软件系统主要采用以下基本模块来实现,主程
9、序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。键盘输入程序模块:主要是用于确定按键并得到特定的键码值。数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时。3.3 软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过 Keil 软件开发平台将程序转变成十六进制程序语言,接着使用 Proteous 进行仿真,读出显示数据。3.4
10、 软件系统程序清单本电子钟实现 24 小时制,8 位数码管显示时分秒,显示式:12-59-00。通过 4 只按键来调整时间:KEY1(P1.0):调整选择键,选中位闪烁;KEY2(P1.1):增加键,按一次使选中位加 1;KEY3(P1.2):减少键,按一次使选中位减 1;Bear(P3.1):到了整点和闹钟就会响;Led (P1.2):闪烁;P0 口输出数码管段选信号,P2 口输出数码管位选信号;晶振 12MHz。开始显示初始化 d . 1 0 0 4 - 2 2循环扫描检测按键状态K E Y 1 是否按下标志位加一 , 进入调整状态K E Y 2 是否按下分时加 1 调整K E Y 3 是
11、否按下分时减 1 调整YYK E Y 2 , K E Y 3 是否同时按下控制闹钟开关N图 3-1 主程序流程框图图 3-2 显示时钟数组子程序 图 3-3 中断服务程序程序四、设计课题的设计结论、仿真结果、误差分析4.1 设计结论及使用说明本设计为基于单片机的电子钟的设计。刚开始,我们很多地方理不清头绪,无从下手,但通过认真研究设计课题,找书上网查资料,确定基本设计方案,对所用芯片功能进行查找、调试,然后画电路图等,积累了很多宝贵的经验。本设计用 2 个四位一体的共阳数码管做为显示器,它显示时间值;设计中有三个按键,其中 KEY1 为启动键,KEY2 为加控制键 KEY3 为减控制键 。图 41 结果图4.2 仿真结果在 Proteus ISIS 的 Debug 菜单中选择 Execute,运行程序,系统仿真结果如图所示。实现功能:可调整运行的电子钟具有三种工作状态:“d.1004-22”状态、运行状态、调整状态。图 4-2“d.1004-22”上电初始化运行状态仿真结果