基于单片机的电子时钟课程设计单片机课程设计
目 录
摘要
3
1 设计课题任务、基本原理及方案
4
1.1 设计课题任务
4
1.2 软时钟的基本原理
4
1.3 设计课题总体方案
4
2 设计课题硬件系统的设计
5
2.1设计课题硬件系统各主要器件简要介绍
5
2.2设计课题硬件系统各模块功能简要介绍
7
硬件电路连接图
10
2.3 设计课题元器件清单
11
3 设计课题软件系统的设计
11
3.1 设计课题使用单片机资源的情况
11
3.2 设计课题软件系统个模块功能简要...
单片机课程设计
目 录
摘要
3
1 设计课题任务、基本原理及方案
4
1.1 设计课题任务
4
1.2 软时钟的基本原理
4
1.3 设计课题总体方案
4
2 设计课题硬件系统的设计
5
2.1设计课题硬件系统各主要器件简要介绍
5
2.2设计课题硬件系统各模块功能简要介绍
7
硬件电路连接图
10
2.3 设计课题元器件清单
11
3 设计课题软件系统的设计
11
3.1 设计课题使用单片机资源的情况
11
3.2 设计课题软件系统个模块功能简要介绍
11
3.3 设计课题软件系统程序
框图
12
3.4 课程设计各部分程序介绍
14
4 课程设计结论、误差分析、心得体会
19
4.1设计课题的设计结论
19
4.2设计课题的误差分析
19
4.3设计体会
20
5 参考文献
20
摘要
单片机即单片微型计算机,由RAM、ROM、CPU构成,定时、计数和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产业和工业自动化上。这次课程设计通过对它的学习、设计、开发软、硬的能力。
1957年,Ventura发明了世界上的第一个电子
,从而奠定的电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒进一分,满六十分进一小时,满二十四小时自动清零,从而达到计时的功能。电子时钟是人民生活中不可缺少的工具。
通常通过用单片机设计电子时钟有两种方法:一是通过单片机内部的定时器/计数器,采用软件编程的方法实现时钟计时,一般称为软时钟。这种方法硬件电路简单,系统的功能一般与软件的设计有关;二是采用时钟芯片,它的功能强大,功能部件集成在芯片的内部,自动产生时钟等相关的功能。这种方案硬件成本相对较高,软件编程简单,通常用在对时钟精度要求较高的场合。
本次课程设计采用深圳宏晶公司的STC 89C52RC单片机为核心,使用12MHz晶振与单片机STC 89C52RC相连接,通过软件编程的方法实现以24小时为一个周期的计时功能,并通过8位7段LED数码管显示当前的时间,显示的格式为:时—分—秒(如12-25-09)。该电子时钟电路中有四个按键:K0,K1,K2,RST。对按键进行相应的操作可以达到调时、复位的功能。
整个过程就是先设计和焊接好硬件电路,再通过汇编语言编写应用程序并下载到单片机上实现我们需要的功能。由于本实验的硬件电路的结构简单、直观,所以软件的编程及调试是本次课程设计的重点和难点。
1 设计课题任务、基本原理及方案介绍
1.1 设计课题任务
设计一个具有特定功能的电子钟。具有时间显示、并具有时间设定,时间调整,复位重置的功能。
1.2 软时钟的基本原理
软时钟是利用了单片机内部的定时器/计数器来实现的,它的处理过程如下:首先设定单片机内部的的一个定时器/计数器工作于定时方式,对机器周期计数形成基准时间(如10ms),然后用另一个定时器/计数器后软件计数的方法对基准时间计数形成秒(对10ms计数100次),对秒计数60次形成分,对分计数60次形成小时,对小时计数24次则表示计满了一天,单片机可以自动清零重新计时。
在计时的过程中可以通过数码管把技术的内容在相应的位置显示出来。数码管显示可以采用静态显示方法和动态显示方法。静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一般用6个或8个数码管。由于系统没有其他的复杂的任务需要处理,而且显示的时钟信息随时都可以变化,一般采用动态显示方法。动态显示方法,线路相对简单,但需要动态扫描,扫描的频率要大于人眼的视觉暂留频率(每秒24次),信息看起来才稳定。译码方式可分为软件译码和硬件译码,软件译码通过译码程序查询显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。
在具体处理中,定时器/计数器采用中断方式工作,对时钟的形成在在中断服务程序中实现。在主程序中只需要对定时器/计数器初始化、调用显示自程序和控制子程序。另外,为了使用方便,设计了简单的按键,可以通过按键实现对时、分的调整,这样在主程序中就要加入键盘设置的子程序。
1.3 设计课题总体方案
图1.1 总体设计方案图
2 设计课题硬件系统的设计
2.1 设计课题硬件系统各主要器件简要介绍
本设计的硬件系统主要采用以下电子元器件:单片机 STC 89C52RC,锁存器HD74LS373P,数码管(共阴极),NPN型三极管2N5551,电阻,电容,晶振,按键。
【1】单片机 STC 89C52RC为本次课程设计的核心器件。
图2.1 STC 89C52RC封装图
在单片机 STC 89C52RC中,有256KB的片内数据存储器和8KB的片内程序存储器,因此在组建单片机的最小应用系统时,不需要在单片机的外部扩展片外存储器。
单片机 STC 89C52RC中有四个8位的并行I/O接口:P0、P1、P2、P3。这四个接口,既可以作输入,也可以作输出,既可以按8位处理,也可以按位处理。P0口也可以作数据/地址线使用,在本次课程设计中,P0作数据线使用,向锁存器输出8位的字段码。P2口也可以作地址线使用,在本次实验中,P2口作位选码输出端。P1口中选三个端口作按键输入端。
单片机控制线介绍:
RST:上电复位端,当单片机振荡工作时,在该引脚上出现两个机器周期的高电平,单片机就可实现复位操作,使单片机回到初始状态。
XTAL1、XTAL2:外接晶振引脚。
/EA:片外程序存储器选用端,低电平有效。本次实验中不需要扩张存储器,因此,在电路中此端口接高电平。
/PSEN:片外程序存储器读选通信号输出端,低电平有效。本次试验中无片外程序存储器,故此功能不需要,此端口接高电平或悬空。
ALE:地址锁存信号输出端。本次试验中没有用到16位地址线,故此端口悬空处理。
VCC:电源端,接+5V电源正端。
GND:接地端,接+5V电源地端。
【2】锁存器HD74LS373P
图2.2 74LS373的结构图
HD74LS373P是一个带输出三态们的8位锁存器,具有8个输入端D0~D7,8个输出端Q0~Q7,G位数据锁存控制端,G位高电平,则把输入的数据存入锁存器中,/OE位输出允许端,低电平是把锁存器中的内容通过输出端输出。
图2.3 74LS373的功能表
【3】数码管(共阴极)
图2.4 数码管封装图
2.2 设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现:单片机最小系统模块,输入模块、输出模块。
(1)单片机最小系统模块:包括单片机STC 89C52RC、复位电路、晶振电路。本本模块STC 89C52RC系统控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。
图2.5 晶振电路
图2.6 复位电路
当复位键K3未按下时,RST端是低电平。当复位键K3按下时,RST端瞬间上升到电源电压,及为高电平,电路中电源对电容快速充电。当复位键弹起时,电容通过电阻向地端放电,RST端电压逐渐下降。在保证RST端能得到大于两个机器周期的高电平时,单片机完成复位初始化操作。
图2.7 单片机的最小系统
(2)输入模块:本模块共用到了3个按键独立式按键:K0键是选择功能键,K1加一功能,K2减一功能。单片机通过计数K0、K1、K2键被按下的次数,做出相应的反应:没有按键,则时钟正常走时。当按下K0键,进入调分状态,时钟停止走动;按K1或K2键可进行加1或减1操作;继续按K0键可分别进行分和小时的调整;最后按K0键将退出调整状态,时钟开始继续计时运行。
图2.8 输入模块
(3)输出模块:本次设计显示为8位,采用八位七段式数码管(共阴极)作为显示窗口.由于显示过程是采用了动态显示的方法,一次单片机只让一位数码管显示,但以高频率连续扫描八位数码管,使得人看到的是稳定的数字。每一次显示时,单片机的P0口作为数据线,输出一个数码管显示所需的八位字段码,并通过锁存器74LS373与数码管相连。P2口作为位选码输出端,分别通过NPN型三极管与共阴极的数码管的公共端相连。P2口的八位输出端每次只有一个端口输出高电平,使得相对应的NPN型三极管导通,从而使得相连的数码管公共端接地,则此公共端接地的数码管可以显示相应的字符。
图2.9 输出模块
图2.10 硬件电路路
2.3 设计课题元器件清单
序号
产品名称
规格型号
数量
1
单片机
STC89C52RC
1
2
晶振
12MHz
1
3
独石电容
30pF
2
4
电解电容
47μF
2
5
电解电容
10μF
1
6
按钮
4
7
RJ电阻
10KΩ
4
8
RJ电阻
510Ω
8
9
RJ电阻
4.7K
8
10
三极管
2N5551 NPN
8
11
锁存器
74LS373
1
12
8段式LED数码管
8
图2.11 元器件清单
3 设计课题软件系统的设计
3.1 设计课题使用单片机资源的情况
单片机资源使用的情况如下:
P0口作为段码输出口,输出数码管显示的段码信号;P1口作为按键输入口,将按键上的信号输入到单片机内部;P3口作为位码输出口,输出数码管的位显示,输出数码管位选信号;晶振11.0592M;
3.2 设计课题软件系统个模块功能简要介绍
本设计的软件系统模块大致分为:主程序模块,中断服务程序,数码驱动显示程序,键扫程序。
主程序:用于对程序进行全局控制,包括信号的输入输出,调用各个功能的子模块,调配按键的使用。
中断服务程序:用于产生1S的脉冲信号。
键盘扫描模块:用于及时校正计时状态。
数码驱动模块:用于驱动数码管的正确显示计时。
3.3 设计课题软件系统程序流程框图
主程序执行流程如下图:
主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下,则转入相应的功能程序.
图 3.1
定时器/计数器T0用于时间计时,选择方式1,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清零;分单元加到60则对时单元加1,同时分单元清零;时单元加到24则对时单元清零,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。 定时器/计数器T0中断服务程序流程图如下图:
本文档为【基于单片机的电子时钟课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。