单片机实现数字钟Word格式文档下载.docx

上传人:b****1 文档编号:5767705 上传时间:2023-05-05 格式:DOCX 页数:23 大小:240.14KB
下载 相关 举报
单片机实现数字钟Word格式文档下载.docx_第1页
第1页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第2页
第2页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第3页
第3页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第4页
第4页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第5页
第5页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第6页
第6页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第7页
第7页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第8页
第8页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第9页
第9页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第10页
第10页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第11页
第11页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第12页
第12页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第13页
第13页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第14页
第14页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第15页
第15页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第16页
第16页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第17页
第17页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第18页
第18页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第19页
第19页 / 共23页
单片机实现数字钟Word格式文档下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机实现数字钟Word格式文档下载.docx

《单片机实现数字钟Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实现数字钟Word格式文档下载.docx(23页珍藏版)》请在冰点文库上搜索。

单片机实现数字钟Word格式文档下载.docx

指导教师

专业负责人

2011年3月13日

一、概述

单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

下面是单片机的主要发展趋势。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的绝绝大部分功能,现在已能用单片机通过软件方法来实现了。

用单片及制作数字钟是单片机的一个典型应用。

通过设计制作一个数字钟,我们能够充分了解单片机的工作原理,学会如何用单片机实现数据的处理,设备的控制等。

制作一个数字中虽然简单,但你它涉及到的内容却很广泛。

本设计的数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,因为数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

所以,研究数字钟及扩大其应用,有着非常现实的意义。

在本设计中,我们用到了键盘控制,需要加接键盘;

用到了定时中断功能和电平触发外部中断功能;

用到了显示模块,显示时间;

另外还涉及单个口的操作。

另外单片机工作还需要软件支持,所以程序的编写,调试也是制作数字钟的一个重要的方面。

二、硬件电路设计及描述;

1、MCS-51单片机

单片机是在一块硅片上集成了各种部件的微型计算机。

这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。

8051单片机的结构特点有以下几点:

8位CPU;

片内振荡器即时钟电路;

32根I/O线;

外部存储器ROM和RAM;

寻址范围各64KB;

两个16位的定时器/计数器;

5个中断源,2个中断优先级;

全双工串行口。

定时器/计数器

8051内部有两个16位可编程定时器/计数器,记为T0和T1。

16位是指他们都是由16个触发器构成,故最大计数模值为2

-1。

可编程是指他们的工作方式由指令来设定,或者当计数器来用,或者当定时起来用,并且计数(定时)的范围也能够由指令来设置。

这种控制功能是通过定时器方式控制寄存器TMOD来完成的。

在定时工作时,时钟由单片机内部提供,即系统时钟经过12分频后作为定时器的时钟。

技术工作时,时钟脉冲由TO和T1输入。

中断系统

8051的中断系统允许接受五个独立的中断源,即两个外部中断申请,两个定时器/计数器中断以及一个串行口中断。

外部中断申请通过INTO和INT1(即P3.2和P3.3)输入,输入方式能够使电平触发(低电平有效),也能够使边沿触发(下降沿有效)。

2、8051的芯片引脚

如图1-2所示

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它能够被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH实行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是因为内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并所以作为输入时,P2口的管脚被外部拉低,将输出电流。

这是因为内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器实行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器实行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,因为外部下拉为低电平,P3口将输出电流(ILL)这是因为上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3.0RXD(串行输入口);

P3.1TXD(串行输出口);

P3.2/INT0(外部中断0);

P3.3/INT1(外部中断1);

P3.4T0(记时器0外部输入);

P3.5T1(记时器1外部输入);

P3.6/WR(外部数据存储器写选通);

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

所以它可用作对外部输出的脉冲或用于定时目的。

不过要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

3、时钟的控制

本设计采用51单片机系列AT89S51.对时钟实行控制

(1) 

开机时,显示12:

00:

00的时间开始计时;

(2) 

P1.0/AD0控制“秒”的调整,每按一次加1秒;

(3) 

P1.1/AD1控制“分”的调整,每按一次加1分;

(4) 

P1.2/AD2控制“时”的调整,每按一次加1个小时;

数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。

所以,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。

8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。

数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。

“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。

“时单元”采用24进制计时器,可实现对一天24小时的累计。

显示电路将“时”、“分”、“秒”通过七段显示器显示出来。

校时电路时用来对“时”、“分”、“秒”显示数字实行校对调整,按一下ksec单元就加1,按一下kmin就加1,按一下khour就加1。

电路总体框架:

图3.1硬件电路框图

三、软件设计流程及描述;

1、电路原理图:

1. 

把“单片机系统”区域中的P0.0-P0.7端口用8芯排线连接到“动态数码显示”区域中的C1--C8端口上;

2. 

把“单片机系统:

区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的L1的C9—C12端口上和L2的C9—C12端口上;

3. 

把“单片机系统”区域中的P1.0/AD0、P1.1/AD1、P1.2/AD2端口分别用导线连接到“独立式键盘”区域中的ksec、kmin、khour端口上;

2、数字钟的PCB图:

3、数字钟的软件设计

主程序是先开始,然后启动定时器,定时器启动后在实行按键检测,检测完后,就能够显示时间。

按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;

如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;

如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;

如果没有按下,就把时间显示出来。

定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;

如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;

如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。

这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。

程序流程图按键处理流程图定时器中断流程图

四、源程序代码

#include<

AT89X51.H>

sbitksec=P1^0;

sbitkmin=P1^1;

sbitkhour=P1^2;

unsignedcharsecshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;

unsignedintnum=0,sec=0,min=0,hour=12;

unsignedcharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

voiddelay(unsignedint);

voidkeyscan();

voiddisplay();

main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

while

(1)

{display();

keyscan();

}

voiddelay(unsignedintz)

{

unsignedintx,y;

for(x=z;

x>

0;

x--)

for(y=110;

y>

y--);

}

//定时器中断子程序

voidt0(void)interrupt1using0

num++;

//LED显示程序

voiddisplay()

if(num==20)

num=0;

sec++;

if(sec==60)

sec=0;

min++;

if(min==60)

min=0;

hour++;

if(hour==24)

hour=0;

min=0;

sec=0;

secge=sec%10;

secshi=sec/10;

minge=min%10;

minshi=min/10;

hourge=hour%10;

hourshi=hour/10;

P3=0xfe;

P0=table[secge];

delay(5);

P3=0xfd;

P0=table[secshi];

P3=0xfb;

P0=0x40;

P3=0xf7;

P0=table[minge];

P3=0xef;

P0=table[minshi];

P3=0xdf;

P3=0xbf;

P0=table[hourge];

P3=0x7f;

P0=table[hourshi];

//按键控制子程序

voidkeyscan()

if(ksec==0)

delay(10);

sec++;

if(sec>

=60)

while(ksec==0)

display();

if(kmin==0)

min++;

if(min>

while(kmin==0)

if(khour==0)

hour++;

if(hour>

hour=0;

while(khour==0)

五、附件

Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。

Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。

通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。

用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示。

走时:

默认为走时状态,按24小时制分别显示“时时-分分-秒秒”,有2个“-”动态显示,时间会按实际时间以秒为最少单位变化。

走时调整:

按ksec对秒实行调整,按一下加一秒;

按kmin对分实行调整,按一下加一分;

按khour对时实行调整,按一下加一小时,从而达到快速设定时间的目的。

软件程序的调试一般能够将重点放在分模块调试上,统调是最后一环。

软件调试能够采取离线调试和在线调试两种方式。

前者不需要硬件仿真器,可借助于软件仿真器即可;

后者一般需要仿真系统的支持。

本次课题,Keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于准确,最后统调程序。

仿真部分采用protus7.4sp3软件,此软件功能强大且操作较为简单,能够很容易的实现各种系统的仿真。

首先打开protus7.4sp3软件,在元件库中找到要选用的所有元件,然后实行原理图的绘制;

绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。

课程设计体会

一周的课程设计很快过去,我在这个次数字电子钟的设计过程中,有很大的收获。

我们已经对MC-51单片机有了一个基本的了解,使我对所学的单片机的知识实行了回顾,课程设计加深了自己对编译这门课的理解,发现自己还有很多地方要复习。

我需要充分利用所学知识结合实际应用,完成本设计。

通过做本设计这为我们今后进一步深化学习,积累了一定宝贵的经验。

设计,给人以创作的冲动。

“态度决定一切”,拥有好的态度让我有好的心态,即使遇到困难也不会放弃,我会积极寻找解决方法。

通过本设计使我学会独立分析和解决问题,养了我们使用所学知识解决实际问题的水平。

使我们懂得独立思考,查资料解决设计遇到的问题。

这个设计十分有意义不但使我我获得了设计单片机程序的经验,也让我知道了理论和实际想结合的重要性,从中得知了很多书本上无法得知的知识。

参考文献

[5]单片机应用设计教程,张迎新编著,北京航空航天大学出版社;

东北石油大学课程设计成绩评价表

课程名称

单片机原理及应用课程设计

题目名称

单片机实现数字钟(LED显示小时:

秒)

学生姓名

郝艳玲

学号

070901140502

指导教师姓名

职称

序号

评价项目

指标

满分

评分

1

工作量、工作态度和出勤率

按期圆满的完成了规定的任务,难易水准和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。

20

2

课程设计质量

课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备准确。

45

3

创新

工作中有创新意识,对前人工作有一些改进或有一定应用价值。

5

4

答辩

能准确回答指导教师所提出的问题。

30

总分

评语:

指导教师:

年月日

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2