文档详情

数字电子钟的制作.docx

发布:2024-05-14约5.2千字共20页下载文档
文本预览下载声明

电子工艺实训2

电子工艺实训2

1

1

《数字电子钟的制作》

设计报告

学院:计算机与电子信息学院

学院:计算机与电子信息学院

队长:1307300413李子康小组成员:1307200108高维春

1226211614黄凯操

指导老师:聂雄

日期:2015.6.30

目录

一、任务与要求 2

二、设计思路 2

时钟计数的设计 2

按键控制时间的设定和调整 2

定时器/计数器0实现1s计数 3

三、数字钟的组成部分 3

硬件模块 3

软件模块 3

四、数字钟程序设计流程图 4

五、数字钟程序设计 5

数码管显示 5

时钟初始化 5

中断设计 5

按键程序 7

六、遇到的问题 9

定时时间的控制 9

数码管的显示 9

七、仿真效果图 10

八、实物图 11

九、心得与体会 11

十、附录:程序代码 12

电子工艺实训2

电子工艺实训2

PAGE

PAGE2

一、任务与要求

设计并制作一个数字电子钟,实现如下功能:

采用数码管或LCD屏幕显示时、分和秒时间(b)通过按键可以调整和设定当前时间

要求计时准确(10分钟内计时误差1s)

设计原理图、PCB图,制作和调试电路(如果有现成的单片机板子,也可以直接使用)

(f)编写电子钟控制软件(g)编写实训设计报告

二、设计思路

时钟计数的设计

用AT89C51单片机的定时器/计数器T0产生1s的定时时间,作为秒计数时间,当一秒产生时,秒计数加1开始计时。显示00-00-00的时间,开始计时;

按键控制时间的设定和调整

P1.0口控制“秒”的调整,每按一次按键加1s;P1.1口控制“分”的调整,每按一次按键加1min;P1.2口控制“时”的调整,每按一次按键加1h;计时满23-59=59时,返回00-00-00重新计时。

P1.3 口用做复位键,在计时过程中,如果按下它,则返回

00-00-00重新开始计时。

定时器/计数器0实现1s计数

单片机选择16位定时工作方式。对T0来说,系统时钟为12MHZ,最大定时也只有65535us,无法达到所需要的1s的定时,因此必须通过软件来处理这个问题,取T0的最大定时为50ms,要定时1s需要经过20次的50ms的定时。这20次计数,采用软件的方法来实现。

设TMOD=01H,设置定时器\计时器0工作在方式1,则

TH0=(65535-50000)/256TL0=(65536-50000)%256

这样,当计数器/定时器0计满50ms时,产生一个中断,在

中断服务程序中对中断次数加以统计,就能实现数字钟的逻辑功能了。

三、数字钟的组成部分

硬件模块

单片机芯片,八位共阴数码管,驱动数码管译码的芯片

74HC573(仿真时为74LS245),按键,外加电阻,导线若干;

软件模块

数码管显示程序设计,定时器初始化,定时器中断编程,时钟的时、分、秒控制,按键程序设计,时间的调整与设定。

四、数字钟程序设计流程图

开始

显示设计,设置定时器,定时50ms

根据计数值显示时间

秒键被按下? 否

分键被按下?

秒计数加1 否

到60s?

时键被按下?

是 否

分计数加1

到60min?

复位键被按下?

小时加1

到24h?

开始

五、数字钟程序设计

数码管显示

定义数码管的位选和段选数组

ucharcodewei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};ucharcodeduan[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F};

通过程序控制来选择数码管的位码和断码

时钟初始化

HOUR=0;//时为0MINITE=0;//分为零SECOND=0;//秒为零TMOD=0x01;//选择计数方式

TH0=(65536-50000)/256;//赋初值TL0=(65536-50000)%256;

中断设计

voidTimer0(void)interrupt1using1

{

TH0=(65536-50000)/256;TL0=(65536-50000)%256;

TCNT++;//控制中断次数

if(TCNT==20)

{

SECOND++;TCNT=0;if(SECOND==60)

{

MINITE++;

SECOND=0;

if(MINITE==60)

{

HOUR++;

MINITE=0;

if(HOUR==24)

{H

显示全部
相似文档