文档库 最新最全的文档下载
当前位置:文档库 › 数码管显示电子钟设计-课程设计说明书

数码管显示电子钟设计-课程设计说明书

《单片机原理及应用》

课程设计说明书

题目数码管显示电子钟设计

系(部) 电子与通信工程系

专业(班级)

姓名

学号

指导教师

起止日期

长沙学院课程设计鉴定表姓名*** 学号班级

设计题目数码管显示电子钟设计指导教师

指导教师意见:

评定等级:教师签名:日期:

答辩小组意见:

评定等级:答辩小组长签名:日期:

教研室意见:

教研室主任签名:日期:

系(部)意见:

系主任签名:日期:

说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;

《单片机原理及应用》课程设计任务书14系(部):电信系专业:2010级光电信息工程指导教师:王新辉、刘辉

课题名称数码管显示电子钟设计

设计内容及要求

1、课题内容:设计一种基于AT89S52单片机的数码管显示电子时钟,要求如下:

(1)、能正确显示时间,时钟由数码管显示,显示格式为:XX小时?XX 分?XX秒。

(2)、时间能够由按键调整,误差小于1S。

(3)、闹钟功能:时间运行到与闹钟设定时间时,闹钟响(持续响5秒)。

(4)、报时功能:时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响2秒,每两声之间时间间隔2秒)。

2、要求:

完成该系统的硬件和软件的设计,在Proteus软件上仿真通过,提交一篇课程设计说明书。

设计工作量

1、汇编或C51语言程序设计;

2、程序调试;

3、在Proteus上进行仿真成功;

4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。

进度安排起止日期(或时间量)设计内容(或预期目标)备注第一天课题介绍,答疑,收集材料,C51介绍

第二天设计方案论证,练习编写C51程序第三天~第六天程序设计

第六天~第八天程序调试、仿真

第九天~第十天系统测试并编写设计说明书

教研室

意见

年月日系(部)主

管领导意见

年月日

摘要

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛的应用与走动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作为完善。

本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法。

本次做的数字电子中是以单片机(AT89C51)为核心,结合相关的元器件,再配以相应的软件,它具有时,分,秒显示;闹钟及整点报时的功能,并且时,分,秒还可以调整。此次设计电子钟是为了了解电子数字中的原理,从而学会制作电子数字中。而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及使用方法。通过它可以进一步学习与掌握单片机原理与使用方法。

关键词数字电子钟;AT89C51单片机;数码管

1 设计课题任务、功能要求说明及总体体方案绍

1.1课题设计任务

设计一个具有特定功能的数字电子钟。并要求该电子钟具有时间显示、时间调整、闹钟、整点报时等功能。

1.2功能要求说明

设计一个具有特定功能的电子钟。该电子钟具有设定闹钟,及整点报时功能。【时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响2秒,每两声之间时间间隔2秒)。】

1.3电子时钟功能及工作原理

本电子钟主要由单片机、3*1独立式键盘、显示接口电路和复位电路等部分组成,该课题的总体方案如图1所示:

图1 总体设计方案图

1.3.1电子时钟功能及方案介绍

电子时钟设置4个按键通过程序控制来完成电子时钟的时间调整。调整时钟时只设计了加键、减键、模式键、闹钟键。

K1键为模式设置; k2键加一键;

K3键减一键; k4键闹钟设置键。

(1)、k1键:模式设置键,直接按下模式键时可以调节时间,多次按键时,

调节在秒、分、时之间变换。

(2)、k2键:进入模式后,调节位出现一个标志点,按一下k2键则该位加一。同理,按下k3键该位减一。

(3)、k4键:按下k4键,数码管显示程序既定的闹钟时刻,按下模式键,出现标志点后按k2、k3调节闹钟。

1.3.2时钟计时的基本方法

利用AT89C51单片机的可编程定时/计数器、中断系统来实现时钟计数。

(1)计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而计数可用软件方法实现。假设使用T/C0,方

=12MHz。则初值X满足(216-X)×1/12MHz×12μs =50000式1,50ms定时,f

osc

μs

X=15536→0011110010110000→3CB0H,则TH0=3CH,TL0=0BOH。

(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒),就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新秒计数;

(4)从秒到分,从分到时的计时是通过累加和数值比较实现。

2 系统硬件设计

2.1硬件系统结构

单片机的选择选用AT89s52单片机,并配备12MHz晶振,复位电路采用上电和按键复位。

2.1.1 AT89C51单片机的介绍

AT89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行I/O口(4个8位I/O 口)、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是微处理器(CPU)加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式,以实现不同的功能。

AT89C51单片机如图2.1所示。

图2.1 AT89C51单片机

2.1.2引脚功能介绍

Vcc(40引脚):接+5V电源。

Vss(20引脚):接地。

XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。

XTAL2(18引脚):片内震荡器反相放大器的输出端。

RST:复位引脚,高电平有效。

EA:外部程序存储器访问允许控制端。

ALE:低8位地址锁存允许信号端。

PSEN:读外部程序存储器的选通信号端。

P0口:8位,漏极开路的双向I/O口。

P1口:8位,准双向I/O口,具有内部上拉电阻。

P2口:8位,准双向I/O口,具有内部上拉电阻。

P3口:8位,准双向I/O口,具有内部上拉电阻。

2.1.3 LED数码管的介绍

LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的

图3 LED引脚图

字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

ED的7段数码管利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。在这次的设计中采用的均是共阴极的LED显示,当I/O口输出为高电平的时候,对应段就被点亮。LED数码管的结构图如图4(b)所示。

3.1电子时钟程序流程框图

3.1.1主程序流程框图

主程序功能主要是初始化、正常显示时间和判断功能转换键。初始化包括数据堆栈区、定时/计数器的初始化、AT89C51芯片的初始化及时间、显示数据的初始化。定时/计数器的初始化:包括对TMOD、TCON以及根据定时时间对时间初值的设置。显示时间调用显示子程序。当P1.0端口的S/H键按下时,转入调时功能。主程序流程图如图3所示。

开始

内存单元清零

T0,T1为16位计

数器

允许T0中断

调用显示子程序

N

P1.0=0

Y

调时程序

图3 主程序流程框图

键盘扫描程序是通过CPU来对外围键盘电路进行查询。该程序能够解决的问题有:

(1)是否有键按下;

(2)若有键按下,判断是哪一个键并确定其键值或键号;

(3)去抖动:一个电压信号是通过机械触点的闭合、断开过程来实现信号传递的。抖动时间一般为5~10ms。按键的稳定闭合期为几百毫秒到几秒钟时间。为了保证CPU对按键闭合仅做一次键输入处理,必须去除抖动影响,通常硬件或软件延时10ms处理。

去抖之后再次进行查询。然后通过按键的键号执行相应的功能。键扫子程序流程框图图4所示。

开始

保护现场

N

键按下?

Y

Y

有抖动?

N

执行相应的功能

保存键值

返回

图4 键扫子程序流程框图

定时中断是电子时钟的核心。定时/计数器T0和T1的工作方式设置为: (1)T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为f OSC /24,所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。

(2)T1工作在定时状态下,最大定时时间为65ms ,达不到1秒的定时,所以采用定时50ms ,共定时20次,即可完成1秒的定时功能。

时钟的最小计时单位是秒,60s 进位为1min ,60min 进位为1h ,24h 进位为1天。T0用于产生最小单位1s ,定时时间为50ms,中断累计20次即为1s 。计数单元中每逢60进位。定时中断程序流程如图5所示。

3.1.4调时程序流程框图

进行时间调整时,正在被调整的时间的间隔符以闪烁的形式表现。调整时间的方法是:按下S/H 键,进入调时状态,按下W 键,星期单元加1,加至8时变为1(7过后即显示1,不显示8);按下H 键,时单元加1,在加至24时变为00(23过后即显示0,不显示24);按下M 键,分单元加1,加至60时变为00(59过后即显示00,不显示60);按下S 键,秒单元加1,秒如分一样,加至60时变为00,在调节好时间后,按下S/H 键,保存操作者对时钟时间的修改并退出调时模式进入正常运行状态,时间正常显示。调时程序流程图如图6所示。

开始

K2键按下 进入调整状态

S/H 键按下

K4键按下

加一

减一

进入闹钟

K3键按下 K1键按下 进入模式

S/H键再次按下

退出调整状态,进入运行状态

图6 加一子程序流程框图

3.2设计课题软件系统程序清单

;-------------------------------------------------------------------- ;本电子钟实现24小时制,8位数码管显示时分秒,可整点报时

;显示格式:xx-xx-xx

;通过4只按键来调整时间和闹钟。

;调整选择键SET_KEY:P3.0;通过选择键选择调整位,选中位闪烁

;增加键ADD_KEY:P3.1;按一次使选中位加1

;减少键DEC_KEY:P3.2;按一次使选中位减1

;

4调试过程、proteus仿真结果及误差分析

4.1 keil调试

启动Keil软件,选择“Project”菜单下的“New Project”命令,输入项目的文件名,选择存储路径,点击“保存”按钮。

在“Select Device”窗口中选择“Atmel”下的“AT89c51”芯片,单击“确定”按钮。展开“Project Workspace”窗口中的“Target 1”, 右击“Target 1”,选择“Options for Target ’Target 1’”,选择“Target”选项在Keil (MHZ)右边输入“12M”。选择“Debug”选项,选择“Use Keil Monitor-51 Driver”。单击“OK”按钮。

右击“Source Group 1”,选择“Add files to Group ‘Source Group 1’,在文件类型中选择“Asm Source file”,找到将要编译的程序,单击“ADD”按钮,然后再单击“CLOSE”按钮。单击“Rebuild all target files”,在“Build”窗口中观察编译结果,根据提示修改程序,直到没有错误出现。结果如下:

图7 keil

4.2 proteus仿真结果

在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图8与9所示。

实现功能:

可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。

(1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按S2、S3键均无效,

按S1键有效,进入运行状态;

(2)、运行状态,在此状态下,按S2、S3键均无效,只有按S1键有效,按下S1键后,退出运行状态,进入调整状态;

(3)、调整状态,按S1键进入时、分、秒的闪烁,在此状态下,按S2(+1键)、

S3(-1键)键均有效;调整结束后必须按S1键,即可退出调整状态,

进入

运行状态。在调整状态时长按S2、S3时可以连加及连减。

时间显示格式为:时-分-秒;

图8 运行状态仿真

图9 闹钟运行状态仿真

相关文档
相关文档 最新文档