AT89C51单片机电子时钟设计资料.docx

上传人:b****5 文档编号:6361396 上传时间:2023-01-05 格式:DOCX 页数:22 大小:138.86KB
下载 相关 举报
AT89C51单片机电子时钟设计资料.docx_第1页
第1页 / 共22页
AT89C51单片机电子时钟设计资料.docx_第2页
第2页 / 共22页
AT89C51单片机电子时钟设计资料.docx_第3页
第3页 / 共22页
AT89C51单片机电子时钟设计资料.docx_第4页
第4页 / 共22页
AT89C51单片机电子时钟设计资料.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

AT89C51单片机电子时钟设计资料.docx

《AT89C51单片机电子时钟设计资料.docx》由会员分享,可在线阅读,更多相关《AT89C51单片机电子时钟设计资料.docx(22页珍藏版)》请在冰豆网上搜索。

AT89C51单片机电子时钟设计资料.docx

AT89C51单片机电子时钟设计资料

AT89C51单片机电子时钟设计

学院

专业:

学号:

学生:

1电子时钟..........................................................4

1.1电子时钟简介................................................4

1.2电子时钟的基本特点..........................................4

1.3电子时钟的原理..............................................4

2单片机识的相关知识................................................4

2.1单片机简介...................................................4

2.2单片机的特点................................................5

2.3AT89C51单片机介绍...........................................5

3设计方案的选择....................................................7

3.1计时方案.....................................................7

3.2显示方案....................................................7

3.3数码管显示工作原理..........................................8

3.4键盘电路设计................................................9

3.5主控模块AT89C51.............................................9

4系统软件设计......................................................9

附录...............................................................12

摘要:

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

由于具有上述优点,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次设计通过对它的学习、应用,以AT89C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。

关键词:

单片机;电子时钟;AT89C51

电子时钟1

1.1电子时钟简介

本设计采用AT89C51单片机,以汇编语言为程序设计的基础,设计一个用六位数码管显示时、分、秒的时钟。

现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零,从而达到计时的功能,是人民日常生活不可缺少的工具。

1.2电子时钟的基本特点

现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

1.3电子时钟的原理

该电子时钟由AT89C51,键盘,八段数码管等构成,采用晶振电路作为驱

动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。

单片机识的相关知识2

2.1单片机简介

单片机是指一个集成在一块芯片上的完整计算机系统。

尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:

CPU、内存、内部和外部总线系统,目前大部分还会具有外存。

同时集成诸如通讯接口、定时器,实时时钟等外围设备。

而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

2.2单片机的特点

1.单片机的存储器ROM和RAM时严格区分的。

ROM称为程序存储器,只存放程序,固定常数,及数据表格。

RAM则为数据存储器,用作工作区及存放用户数据。

2.采用面向控制的指令系统。

为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。

3.单片机的I/O口通常时多功能的。

由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。

4.单片机的外部扩展能力很强。

在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。

2.3AT89C51单片机介绍

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;编程期间,此引脚也FLASH端保持高电平时,此间内部程序存储器。

在/EA当.

用于施加12V编程电源(VPP)。

图1AT89C51单片机

设计方案的选择3

3.1计时方案

方案1:

采用实时时钟芯片

现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。

这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。

因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

方案2:

使用单片机内部的可编程定时器

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。

该方案节省硬件成本,但程序设计较为复杂。

3.2显示方案

对于实时时钟而言,显示显然是另一个重要的环节。

通常LED显示有两种方式:

动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开数量较LED比较适用于就必须占有几个并行口,LED需要几个电路复杂。

销大,

少的场合。

当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。

LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。

本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。

3.3数码管显示工作原理

数码管是一种把多个LED显示段集成在一起的显示设备。

有两种类型,一

种是共阳型,一种是共阴型。

共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。

共阴型就是把多个LED显示段的阴极接在一起,即为公共商。

阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。

通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP是小数点位段。

而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。

即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。

数码管显示方法可分为静态显示和动态显示两种。

静态显示就是数码管的8段输入及其公共端电平一直有效。

动态显示的原理是,各个数码管的相同段连接在一起,共同占用8位段引管线;每位数码管的阳极连在一起组成公共端。

利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。

数码管2图

3.4键盘电路设计减少了硬件资源的损该设计只用了一个键盘,但实现的功能却是比较完善,当按键按下该键盘可以实现小时和分钟的调节以及控制是否进入省电模式。

耗,又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,而连续两次按下按键不放每按一次分钟加一;则可以通过按键实现分钟的累加,松,则可实现小时的调节,同样每按一次小时加一。

达到时间调节的目的。

选择所示。

的多功能按键如图3

多功能控制键3图

AT89C51

主控模块3.5

技术,晶振时钟ROM位单片机,片内ROM全部采用FLASH是一个AT89C518个八位的并40引脚双列直插式集成电路芯片,有4为12MHz。

AT89C51是标准的引脚需要接高电位使单片机。

第31、P0、P1P2、P3端口,分别记作行双向I/O引脚为接地端20脚为电源端VCC,接+5V电源,第40选用内部程序存储器;第μF高频滤波电容。

VSSVSS,通常在VCC和引脚之间接0.1系统软件设计4

时的存储单元。

秒、在主程序的开始定义了一组固定单元用来存储计数的分、在主程序中,对不同的按键进行扫描,实现秒表,时间调整。

系统总体流程图如图4所示。

开始

T0中断入口

通过查表方式显示数据

1

数码位选加

N

=8

位选值

Y

=0位选数值

1

秒计数加

N

=500

秒计数Y

=0

秒计数

1

SECOND

中断返回

总体流程图4图

所示。

系统子程序流程图如图5

子程序入口

N

SECOND=60

Y

1

加SECOND=0,并MINUTE

N

MINUTE=60

Y

1

HOU,MINUTE=0

N

Y

HOUR=24

显示数据处理

中断返回

5子程序流程图图

附录

程序清单

源程序

ORG0000H;程序执行开始地址

LJMPSTART;跳到标号START执行

ORG0003H;外中断0中断程序入口

RETI;外中断0中断返回

ORG000BH;定时器T0中断程序入口

LJMPINTT0;跳至INTTO执行

ORG0013H;外中断1中断程序入口

RETI;外中断1中断返回

ORG001BH;定时器T1中断程序入口

LJMPINTT1;跳至INTT1执行

ORG0023H;串行中断程序入口地址

RETI;串行中断程序返回

START:

MOVR0,#70H;清70H-7AH共11个内存单元

MOVR7,#0BH

CLEARDISP:

MOV@R0,#00H

INCR0

DJNZR7,CLEARDISP

MOV20H,#00H;清20H(标志用)

MOV7AH,#0AH;放入熄灭符数据

MOVTMOD,#11H;设T0、T1为16位定时器

MOVTL0,#0B0H;50MS定时初值(T0计时用)

MOVTH0,#3CH;50MS定时初值

MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)

MOVTH1,#3CH;50MS定时初值

总中断开放;EASETB

SETBET0;允许T0中断

SETBTR0;开启T0定时器

MOVR4,#14H;1秒定时用初值(50MS×20)

START1:

LCALLDISPLAY;调用显示子程序

JNBP3.7,SETMM1;P3.7口为0时转时间调整程序

SJMPSTART1;P3.7口为1时跳回START1

SETMM1:

LJMPSETMM;转到时间调整程序SETMM

1秒计时程序

INTT0:

PUSHACC;累加器入栈保护

PUSHPSW;状态字入栈保护

CLRET0;关T0中断允许

CLRTR0;关闭定时器T0

MOVA,#0B7H;中断响应时间同步修正

ADDA,TL0;低8位初值修正

MOVTL0,A;重装初值(低8位修正值)

MOVA,#3CH;高8位初值修正

ADDCA,TH0

MOVTH0,A;重装初值(高8位修正值)

SETBTR0;开启定时器T0

DJNZR4,OUTT0;20次中断未到中断退出

ADDSS:

MOVR4,#14H;20次中断到(1秒)重赋初值

MOVR0,#71H;指向秒计时单元(71H-72H)

ACALLADD1;调用加1程序(加1秒操作)

MOVA,R3;秒数据放入A(R3为2位十进制数组合)

CLRC;清进位标志

CJNEA,#60H,ADDMM

ADDMM:

JCOUTT0;小于60秒时中断退出

ACALLCLR0;大于或等于60秒时对秒计时单元清0

)76H-77H指向分计时单元(;R0,#77HMOV

ACALLADD1;分计时单元加1分钟

MOVA,R3;分数据放入A

CLRC;清进位标志

CJNEA,#60H,ADDHH

ADDHH:

JCOUTT0;小于60分时中断退出

ACALLCLR0;大于或等于60分时分计时单元清0

MOVR0,#79H;指向小时计时单元(78H-79H)

ACALLADD1;小时计时单元加1小时

MOVA,R3;时数据放入A

CLRC;清进位标志

CJNEA,#24H,HOUR

HOUR:

JCOUTT0;小于24小时中断退出

ACALLCLR0;大于或等于24小时小时计时单元清0

OUTT0:

MOV72H,76H;中断退出时将分、时计时单元数据移

MOV73H,77H;入对应显示单元

MOV74H,78H

MOV75H,79H

POPPSW;恢复状态字(出栈)

POPACC;恢复累加器

SETBET0;开放T0中断

RETI;中断返回

闪动调时程序

;T1中断服务程序,用作时间调整时调整单元闪烁指示

INTT1:

PUSHACC;中断现场保护

PUSHPSW

MOVTL1,#0B0H;装定时器T1定时初值

MOVTH1,#3CH

DJNZR2,INTT1OUT;0.3秒未到退出中断(50MS中断6次)

秒定时用初值0.3重装;R2,#06HMOV

CPL02H;0.3秒定时到对闪烁标志取反

JB02H,FLASH1;02H位为1时显示单元熄灭

MOV72H,76H;02H位为0时正常显示

MOV73H,77H

MOV74H,78H

MOV75H,79H

INTT1OUT:

POPPSW;恢复现场

POPACC

RETI;中断退出

FLASH1:

JB01H,FLASH2;01H位为1时,转小时熄灭控制

MOV72H,7AH;01H位为0时,熄灭符数据放入分

MOV73H,7AH;显示单元(72H-73H),将不显示分数据

MOV74H,78H

MOV75H,79H

AJMPINTT1OUT;转中断退出

FLASH2:

MOV72H,76H;01H位为1时,熄灭符数据放入小时

MOV73H,77H;显示单元(74H-75H),小时数据将不显示

MOV74H,7AH

MOV75H,7AH

AJMPINTT1OUT;转中断退出

加1子程序

ADD1:

MOVA,@R0;取当前计时单元数据到A

DECR0;指向前一地址

SWAPA;A中数据高四位与低四位交换

ORLA,@R0;前一地址中数据放入A中低四位

ADDA,#01H;A加1操作

DAA;十进制调整

MOVR3,A;移入R3寄存器

0

高四位变;A,#0FHANL

MOV@R0,A;放回前一地址单元

MOVA,R3;取回R3中暂存数据

INCR0;指向当前地址单元

SWAPA;A中数据高四位与低四位交换

ANLA,#0FH;高四位变0

MOV@R0,A;数据放入当削地址单元中

RET;子程序返回

清零程序

CLR0:

CLRA;清累加器

MOV@R0,A;清当前地址单元

DECR0;指向前一地址

MOV@R0,A;前一地址单元清0

RET;子程序返回

时钟调整程序

;当调时按键按下时进入此程序

SETMM:

CLRET0;关定时器T0中断

CLRTR0;关闭定时器T0

LCALLDL1S;调用1秒延时程序

JBP3.7,CLOSEDIS;键按下时间小于1秒,关闭显示(省电)

MOVR2,#06H;进入调时状态,赋闪烁定时初值

SETBET1;允许T1中断

SETBTR1;开启定时器T1

SET2:

JNBP3.7,SET1;P3.7口为0(键未释放),等待

SETB00H;键释放,分调整闪烁标志置1

SET4:

JBP3.7,SET3;等待键按下

LCALLDL05S;有键按下,延时0.5秒

JNBP3.7,SETHH;按下时间大于0.5秒转调小时状态

分钟操作1秒加0.5按下时间小于;R0,#77HMOV

LCALLADD1;调用加1子程序

MOVA,R3;取调整单元数据

CLRC;清进位标志

CJNEA,#60H,HHH;调整单元数据与60比较

HHH:

JCSET4;调整单元数据小于60转SET4循环

LCALLCLR0;调整单元数据大于或等于60时清0

CLRC;清进位标志

AJMPSET4;跳转到SET4循环

CLOSEDIS:

SETBET0;省电(LED不显示)状态。

开T0中断

SETBTR0;开启T0定时器(开时钟)

CLOSE:

JBP3.7,CLOSE;无按键按下,等待。

LCALLDISPLAY;有键按下,调显示子程序延时削抖

JBP3.7,CLOSE;是干扰返回CLOSE等待

WAITH:

JNBP3.7,WAITH;等待键释放

LJMPSTART1;返回主程序(LED数据显示亮)

SETHH:

CLR00H;分闪烁标志清除(进入调小时

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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