数字钟设计大学论文Word格式文档下载.docx

上传人:b****5 文档编号:21353358 上传时间:2023-01-29 格式:DOCX 页数:17 大小:550.68KB
下载 相关 举报
数字钟设计大学论文Word格式文档下载.docx_第1页
第1页 / 共17页
数字钟设计大学论文Word格式文档下载.docx_第2页
第2页 / 共17页
数字钟设计大学论文Word格式文档下载.docx_第3页
第3页 / 共17页
数字钟设计大学论文Word格式文档下载.docx_第4页
第4页 / 共17页
数字钟设计大学论文Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数字钟设计大学论文Word格式文档下载.docx

《数字钟设计大学论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字钟设计大学论文Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

数字钟设计大学论文Word格式文档下载.docx

1.1研究背景及意义1

1.2国内外研究现状1

2硬件设计1

2.1元件组成1

2.2电路组成2

3软件设计2

3.1电路原理图设计2

3.2源程序2

4系统调试与实验4

5总结5

参考文献6

1引言

1.1研究背景及意义

随着科技文明的发展,人们对时钟这种生活必需品的要求在不断提高。

它不仅仅被看成是一种用来显示时间的工具,高精度、体积小、多功能、低功耗是时钟发展的必然趋势。

所以,时钟的数字化、多功能化已经成为现代时钟生产研究的主导方向。

数字钟是一种数字电路技术来实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

广泛用于个人家庭、码头、车站、办公室等公共场所,成为人们日常生活中不可缺少的必需品,由于数字集成电路的发展和石英晶体震荡器的广泛使用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常重要的意义。

1.2国内外研究现状

数字电子技术的迅速发展,使各种类型集成电路在数字系统、控制系统、信号处理等方面得到了广泛的应用。

为了适应现代电子技术迅速发展的需要,能够较好地面向数字化和专用集成电路的新时代。

目前,数字钟以其体积小、重量轻、抗干扰能力强、对环境要求高、高精确性、容易开发等特性,在工业控制系统、智能化器仪表、办公自动化等诸多领域取得了极为广泛的应用,并已经走入了寻常百姓家。

因此,数字钟技术开发和应用跟我们生活密切相关。

2硬件设计

2.1元件组成

在本设计中,组成电路原理图的元件有:

芯片AT89C51一个;

共阴极8位数码管一个;

按键3个;

普通电容2个;

电解电容一个;

晶振(CRYSTAL)一个;

电阻若干。

2.2设计要求

能够显示23时59分59秒,归零后重新开始,具有校时、校分、校秒功能,具有整点报时功能。

2.3电路组成

在本设计系统中,数字钟的设计原理图包括晶振电路、键盘控制电路、复位电路、数码管显示电路、分频电路、时分秒计数电路、校时电路、译码显示电路和功能扩展电路。

晶振电路:

全称为晶体震荡器,主要作用是产生单片机所需的时钟频率。

单片机执行程序所需的时间完全取决于晶振所提供的时钟频率。

晶振电路如图1所示。

图1

复位电路:

复位是单片机的初始化操作。

单片机启动运行时都需要先复位,其作用是使CPU及系统中其他部件处于一个确定的初始状态,并且从这个状态开始工作。

其电路图如图2所示。

图2

键盘控制电路:

数字钟最基本的功能除了能正常显示时间外,还需要对时间进行设置和调整,所以要配以相应的键盘控制电路。

该设计的键盘控制电路主要包括3个按键:

P0.0控制“秒”的调整,每按一次加1s;

P0.1控制“分”的调整,每按一次加1min;

P2.0控制“时”的调整,每按一次加1h。

键盘控制电路图如图3所示。

图3

数码管显示电路:

本次设计选择共阴极数码管,其中有6位显示“时”,“分”,“秒”,剩下两位显示“—”。

数码管A至DP接单片机P1端口,1至9接单片机P3端口。

其电路图如图4所示。

图4

分频电路:

分频器能将高频脉冲变换为低频脉冲,它可由触发器以及计数器来完成。

由于一个触发器就是一个二分频,N个触发器就是2n个分频器,如果用计数器做分频器,就要按进制数进行分频。

分频器的功能主要有两个:

一个是产生标准秒脉冲信号,二是提供功能扩展电路所需要的信号,如图5所示:

图5

时分秒计数器:

计数电路就要用到计数器,而计数器又有同步和异步之分。

这里时计数电路要用到24进制计数器;

分、秒计数器则需要用到60进制计数器。

74160计数器不仅具有二进制加法计数功能,还具有预置数、保持、和异步置零等附加功能。

如图6所示:

图6

校时电路:

当数字钟的显示时间于实际时间不同时,必须予以校准,校准电路如图7所示:

图7

译码显示电路如图8所示:

图8

3软件设计

在本设计系统中,要求达到的目的是设计一个电子时钟,显示格式为“XX:

XX:

XX”,由左向右分别是时、分、秒。

开机时,显示00:

00:

00的时间开始计时;

当时间不准时,可校时,P0.0控制“秒”的调整,每按一次加1s;

计时满23:

59:

59时,返回00:

00重新计时。

3.1电路原理图设计

根据设计要求,有上述各电路课组成数字钟系统结构图。

其结构图如图9所示。

图9

由结构图可以在proteus仿真软件中画出原理图。

其原理图如图10所示。

图10

3.2源程序

#include<

reg51.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

#definePPP1

ucharcodeSEG7[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

//显示缓冲

ucharnum[]={1,2,3,4,5,6,7,8};

uchardian=0xbf;

//定义数码管显示位码的端口P20--P25

sbitq1=P3^7;

sbitq2=P3^6;

sbitq3=P3^5;

sbitq4=P3^4;

sbitq5=P3^3;

sbitq6=P3^2;

sbitq7=P3^1;

sbitq8=P3^0;

//按键123456

sbitk3=P0^0;

sbitk2=P0^1;

sbitk1=P2^0;

//显示时间

uinth=0;

uintmin=0;

uintmiao=0;

//计数器计时变量

uintjishu1=0;

//时分秒变量

uinth1=18;

//

uintm1=0;

//

uints1=20;

//延时函数ms

void_delay_ms(uintt)

{

uinti,j;

for(i=0;

i<

t;

i++)

for(j=0;

j<

250;

j++);

}

//延时函数us

void_delay_us(uchart)

while(t>

0)t--;

//显示子函数

voiddispaly()

{

//------------------------------------------

//显示时间

//载入第12345678个数码管显示缓冲-

num[0]=SEG7[h%100/10];

num[1]=SEG7[h%10];

num[2]=dian;

num[3]=SEG7[min%100/10];

num[4]=SEG7[min%10];

num[5]=dian;

num[6]=SEG7[miao%100/10];

num[7]=SEG7[miao%10];

PP=~num[0];

//送位码

q1=0;

//延时后关闭位码

_delay_ms

(1);

q1=1;

//送段码---------------

PP=~num[1];

q2=0;

q2=1;

PP=~num[2];

q3=0;

q3=1;

PP=~num[3];

q4=0;

q4=1;

PP=~num[4];

q5=0;

q5=1;

PP=~num[5];

q6=0;

q6=1;

PP=~num[6];

q7=0;

q7=1;

PP=~num[7];

q8=0;

q8=1;

//按键处理函数

voidkey()

//按键端口拉高

k1=1;

k2=1;

k3=1;

//判断按键

if(k1==0){_delay_ms(50);

if(k1==0)h=(h+1)%24;

if(k2==0){_delay_ms(50);

if(k2==0)min=(min+1)%60;

if(k3==0){_delay_ms(50);

if(k3==0)miao=(miao+1)%60;

//主函数-

voidmain(void)

_delay_us

(1);

//-------定时器0配置

TMOD=0x01;

//使能定时器0

ET0=1;

//定时器的初值

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

//停止开启定时器0

TR0=1;

//使能中断

EA=1;

while

(1)

{

dispaly();

//-----------显示子函数

key();

//-----------按键处理

}

//----T0计数

voidTime0()interrupt1

//重装初值50ms;

//时间缓冲+1;

jishu1=jishu1+1;

if(jishu1>

=20)

{

jishu1=0;

miao++;

if(miao>

59)

min++;

miao=0;

if(min>

59){h=h+1;

min=0;

if(h==24)h=0;

4系统调试与实验

Keil软件是德国Keil公司推出的单片机软件编译器,其中uV3集成化开发环境工具和C51编译器主要用于典型的8051单片机系统开发。

KeiluV3可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建“.hex”文件,调试目标程序等。

所以我们可以用该软件来开发工程,调试程序,最终生成的“.hex”文件是可以执行的代码文件,用于Proteus中单片机系统的程序开发与仿真。

打开KeilVision3,新建KEIL项目,选择AT89C51单片机作为CPU,新建汇编源文件,编写程序,并将其导入到“SourceGroup1”中。

在"

OptionforTarget"

对话框中,选中”Output“选项卡中的”CreateHEXFile"

最终会生成“.hex”代码文件。

在ProeusISIS中,画出上述原理图,鼠标双击89C51芯片,在ProgramFile栏中添加生成的“.hex”文件。

完成后即可开始调试。

下图是分别为开机状态和启动状态下的数字钟调试结果。

开机状态启动状态

本次设计完成了一个数字钟的设计,其显示格式为“XX:

00重新计时,达到了课程设计的目的和要求。

5总结

在本次设计中,从开始的收集资料到修改程序、设计电路、画原理图、到完成调试这一过程中,使我更加熟悉了单片机的相关知识以及仿真软件的应用,同时也提高了自己的动手实践能力,更为重要的是培养了自身科学严谨的学习态度,一点小错误都有可能导致结果的偏差。

同时为我以后做毕业设计积累了一定的经验。

可以说本次课程设计让我收获颇丰。

通过本次实验,是我对已学过的电路、数电、模电等电子的知识更深一步的了解。

刚开始做这个设计的时候感到不知从何下手,脑子里比较凌乱,通过从温已学过的知识和参考一些文献,和老师的指导,使我对所设计的课题有所了解。

最后,感谢一下老师给我一次实践的机会。

使我增加了知识面。

参考文献

阎石。

数字电子技术基础.5版.北京:

高等教育出版社,2006

张毅刚。

单片机原理及接口技术[M].人民邮电出版社,2011

康华光。

电子技术基础:

数字部分.4版.北京:

高等教育出版社.2000

基于Proteus的单片机课程的基础实验与课程设计[M].人民邮电出版社,2012

朱清慧。

Proteus教程,清华大学出版社,2008

彭伟,等。

单片机C语言程序设计实训100例[M].北京:

电子工业出版社,2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1