目录
1需求分析 ..................................................................................... 2
1.1 基本功能 ......................................................................................................... 2 1.2 功能要求说明 ................................................................................................. 2
2系统总体方案 .............................................................................. 2 3 系统硬件设计 ............................................................................. 3
3.1单片机控制模块 .............................................................................................. 3 3.2时钟显示模块 .................................................................................................. 4 3.3按键调时模块 .................................................................................................. 4 3.4整点报时模块 .................................................................................................. 5 3.5电子时钟整体电路图 ...................................................................................... 5
4 软件系统设计 ............................................................................. 6
4.1设计电子时钟使用单片机资源情况 .............................................................. 6 4.2软件系统模块功能介绍 .................................................................................. 7 4.3软件系统程序流程图 ...................................................................................... 7
5仿真结果,误差分析 ................................................................. 11
5.1 设计课题的仿真结果 ................................................................................. 11 5.2 设计课题的误差分析 ................................................................................. 12
1
电子设计自动化 基于单片机的电子时钟设计
基于单片机的电子时钟设计
1需求分析
1.1 基本功能
1、能够在LED显示器上清晰的显示小时,分钟和秒; 2、能够通过按键准确调整小时,分钟和秒; 3、具有整点报时的功能。
1.2 功能要求说明
设计一个具有特定功能的电子时钟。该电子时钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子时钟启动/调整键,电子时钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子时钟启动/调整键,则电子时钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后按启动/调整键,则电子时钟再次进入到时钟运行状态。
2系统总体方案
根据需求分析所要实现功能的具体要求,将整个电子时钟系统分为:单片机控制模块、按键调时模块、时钟显示模块和整点报时模块。设计的总体方案如图1.1所示:
图1 总体设计方案图
晶振电路蜂鸣器键盘3*1P1P3数码管驱动74LS245四位一体LED数码显示复位电路AT89S52单片机P0本设计的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM
2
电子设计自动化 基于单片机的电子时钟设计
中,减少了芯片的使用数量,简化了整体电路也降低了整机的工作电流。由于AT89S52芯片内部Flash ROM有8KB,RAM有256个字节,故软件下载编译时有足够的存储空间。键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字时钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
3 系统硬件设计
3.1单片机控制模块
根据需求分析的要求,单片机控制模块如图3.1所示:
图3.1单片机控制模块
单片机控制模块包括低功耗、高性能CMOS、8位微控制器AT89S52;复位电路;晶振电路。单片机控制模块中AT89S52是系统控制的核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶
3
电子设计自动化 基于单片机的电子时钟设计
体振荡器和两只电容,这样就构成一个稳定的自激振荡器。
3.2时钟显示模块
根据需求分析的要求,电子时钟显示模块如图3.2所示:
图3.2 时钟显示模块
时钟显示模块中LED显示器为8位,采用两个四位一体共阳极数码管作为显示窗口,既可以节约成本又能简化电路。数码管驱动为74LS245芯片。当有脉冲信号时,脉冲信号经过74LS245驱动LED显示器显示当前时间。
3.3按键调时模块
根据系统分析要求,电子时钟的按键调试模块如图3.3所示:
4
电子设计自动化 基于单片机的电子时钟设计
图3.3 按键调时模块
按键调时模块共用到了3个按键, 3个按键采用独立式键盘,S1键控制电子时钟的启动/调整状态,S2键为加1键,S3键为减1键。而且S1、S2、S3任一键都独自连一个I/O(P1.0、P1.1、P1.2)口线,以便使它们能够独立实现相应的电子时钟功能。
3.4整点报时模块
根据需求分析的要求,电子时钟的整点报时模块如图3.4所示:
图3.4整点报时模块
电子时钟的整点报时模块主要有蜂鸣器和外围电路组成。
3.5 电子时钟整体电路图
根据需求分析的要求,电子时钟的整体电路图如图3.5所示:
5
电子设计自动化 基于单片机的电子时钟设计
图3.5 电子时钟电路图
4 软件系统设计
4.1 设计电子时钟使用单片机资源情况
根据需求分析的要求以及对电子时钟硬件设计的分析,我们经过综合考虑,电子时钟使用单片机资源的情况如下:
P0口输出数码管段选信号,P3口输出数码管位选信号;晶振11.0592M;调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1;按一次使选中位加1;减少键DEC_KEY:P1.2;按一次使选中位减1;P2.1为蜂鸣器发声报时;50H-5FH;16个寄存器单元作为显示单元;
50H 用于控制秒基准时钟源的产生;51H 清零秒寄存器; 52H 清零分寄存器;53H 清零时寄存器; 5FH 用于秒个位;5EH 用于秒十位; 5DH 用于分个位;5CH 用于分十位;
6
电子设计自动化 基于单片机的电子时钟设计
5BH 用于时个位;5AH 用于时十位; 54H 用于控制调时闪烁;堆栈栈底:70H。
4.2软件系统模块功能介绍
电子时钟的软件系统主要采用的基本模块有:主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。
主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。
中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。 键盘输入程序模块:主要是用于确定按键并得到特定的键码值。 数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。 延时模块:程序中有两种延时子程序,一种是短延时用于判断键按下等,一种是长延时。
4.3软件系统程序流程图
系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成十六进制程序语言,接着使用Protues 进行仿真,读出显示数据。
主程序流程框图如4.1所示; 加1子程序如4.2所示; 中断服务程序程序如4.3所示; 键盘扫描子程序框图如4.4所示; 显示子程序框图如4.5所示;
7
电子设计自动化 基于单片机的电子时钟设计
开始程序初始化关闭定时器T0键盘扫描子程序送“P.”显示代码时、分、秒“—”数值处理,送缓冲区NS1键是否按下显示Y开中断EA=1 图4.1 主程序流程框图
ADD1取十位数个位数送缓冲单元取十位数占A高半字节把十位数交换到低半字节取个位数,并占A低半字节十位数送缓冲单元加1返回十进制调整图4.2 加1子程序流程框图
8
电子设计自动化 基于单片机的电子时钟设计
TIMET0现场保护计数器重新加载循环次数减1是否满20次NY秒值加1是否满60sNY秒显示缓冲单元清0分值加1是否满60minNY分显示缓冲单元清0时值加1是否满24hNY时显示缓冲单元清0现场恢复返回图3.3 中断子程序
9
电子设计自动化 基于单片机的电子时钟设计 开始N有键闭合Y调延时去抖动有键闭合NY键是否释放调显示子程序NY保存键值结束图4.4 键盘扫描子程序
开始查表取段控码段控码送段控口(P0口)位控码送位控口(P3口)延时5毫秒修改段控码修改位控码N8位显示扫描是否完成Y结束图4.5 显示子程序
10
电子设计自动化 基于单片机的电子时钟设计
5仿真结果,误差分析
5.1 设计课题的仿真结果
在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图5.1与5.2所示。本设计用2个四位一体的共阳数码管做为显示器显示时间值;设计中有三个按键,其中S1为启动/选择调整位置,S2为加1控制键,S3为减1控制键。当整点时间到的时候,蜂鸣器报警。
实现功能:
电子时钟具有三种工作状态:“P.”状态、运行状态、调整状态。 (1)“P.”状态,依靠上电或按复位键进入,在此状态下,按S2、S3键均无效,按S1键有效。当S1键按下时,进入运行状态;
(2)运行状态,在此状态下,按S2、S3键均无效,只有按S1键有效,当按下S1键后,退出运行状态,进入调整状态;
(3)调整状态,按S1键进入时、分、秒的闪烁,在此状态下,按S2(+1键)、S3(-1键)键均有效;调整结束后必须按S1键,即可退出调整状态,进入运行状态。在调整状态时长按S2、S3时可以连加及连减。
时间显示格式为:时-分-秒;
图5.1 “P.”运行状态仿真
11
电子设计自动化 基于单片机的电子时钟设计
图5.2 时钟运行状态仿真
5.2 设计课题的误差分析
该电子时钟在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来实现。而当电子钟运行时间1秒时,又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的,其次还有硬件系统也有一定的影响。第三,设计用到11.0592MHz的晶振,计算是满20次为一秒钟,但是实际上会慢很多。
=END=
12
因篇幅问题不能全部显示,请点此查看更多更全内容