可调整运行的电子钟设计方案.docx

上传人:b****1 文档编号:24976 上传时间:2022-10-01 格式:DOCX 页数:24 大小:249.22KB
下载 相关 举报
可调整运行的电子钟设计方案.docx_第1页
第1页 / 共24页
可调整运行的电子钟设计方案.docx_第2页
第2页 / 共24页
可调整运行的电子钟设计方案.docx_第3页
第3页 / 共24页
可调整运行的电子钟设计方案.docx_第4页
第4页 / 共24页
可调整运行的电子钟设计方案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

可调整运行的电子钟设计方案.docx

《可调整运行的电子钟设计方案.docx》由会员分享,可在线阅读,更多相关《可调整运行的电子钟设计方案.docx(24页珍藏版)》请在冰豆网上搜索。

可调整运行的电子钟设计方案.docx

可调整运行的电子钟设计方案

可调整运行的电子钟设计方案

第1章电子钟功能及总体方案的介绍

 

1.1电子钟功能介绍

1.1.1基本功能要求

可调整运行的电子钟具有三种工作状态:

“P.”状态、运行状态、调整状态。

(1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均无效,按A键有效,进入运行状态;

(2)、运行状态,按奇数次A键进入,在此状态下,按B、C、D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态;

(3)、调整状态,按偶数次A键进入,在此状态下,按A、B、C、D键均有效。

如按下A键,则退出调整状态,进入运行状态;按下B、C、D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态。

基本功能要求:

“P.”稳定地显示在LED显示器的最左端数码管(LED5)上,无A键按下(在“P.”状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“P.”。

按下A键后,电子钟以起始时间:

00时00分00秒开始运行。

再次按下A键后,电子钟退出运行状态,进入调整状态,利用B、C、D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。

注意:

每次按下B、C、D键,只允许加一,不允许连加。

1.1.2扩展功能要求

(1)、在调整状态下,按下B、C、D键,允许连加,而A键无论在何种状态下,均不允许连击;

(2)、时、分、秒的间隔符“。

”以一定频率闪烁;

(3)、时间显示以“灭零”方式进行;

(4)、可调整运行的电子钟用两个按键(例如:

A键、B键)来控制。

1.2总体方案介绍

1.2.1计时方案

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

该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。

1.2.2键盘/显示方案

AT89S52的P0口和P2口外接由六个LED数码管(LED5~LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。

AT89S52是一种低功耗,高性能的CMOS8位微型计算机。

它带有8KFlash可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。

简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本书中采用此的设计方案,结构如图1-1如示。

第2章电子钟的工作原理

 

2.1实现时钟计时的基本方法

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

(1)计数初值计算:

把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。

假设使用T/C0,方式1,50ms定时,fosc=12MHz。

则初值X满足(216-X)×1/12MHz×12μs=50000μs

X=15536→0011110010110000→3CB0H

(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);

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

2.2电子钟的时间显示

电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。

LED8LED7LED6LED5LED4LED3LED2LED1

37H36H35H34H33H32H31H30H

时十位时个位分隔分十位分个位分隔秒十位秒个位

2.3电子钟的启、停及时间调整

电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。

A键控制电子钟的启、停;

B键调整时;

C键调整分;

D键调整秒。

第3章电子钟原理图及元件清单

 

3.1电子钟电路原理图

电子钟原理图(见附录1)

3.2元件清单

电子钟元件清单如表1所示:

表1 电子钟元器件清单

元件名称

规格型号

数量(个)

单片机

AT89S52

1

显示驱动芯片

74LS245

2

8位一体的共阳LED显示器

7SEG-MPX8-CA-BLUE

1

晶振

12MHz

1

电容

33pF

2

电容

22μF

1

按键

BUTTON

5

电阻

0.2K

1

电阻

1K

1

上拉电阻

10K

4

限流电阻

0.1K

8

排阻

RESPACK-8/10K

1

 

第4章软件系统设计

 

4.1电子钟程序流程框图

4.1.1主程序流程框图

图4-1主程序流程框图

见图4-1所示

4.1.2键扫子程序流程框图

见图4-2所示

 

 

4.1.3中断服务程序流程框图

见图4-3所示

 

4.1.4“P.”点显示子程序流程框图

见图4-4所示

 

4.1.5显示子程序流程框图

见图4-5所示

4.1.6加一子程序流程框图

见图4-6所示

 

4.2电子钟总体程序清单

ORG0000H

AJMPMAIN

ORG000BH

LJMPINTT0

ORG0030H

MAIN:

MOVSP,#60H;确立堆栈区

MOVPSW,#00H;

MOVR0,#20H;RAM区首地址

MOVR7,#5FH;RAM区单元个数

QL:

MOV@R0,#00H;RAM清零

INCR0

DJNZR7,QL

MOVIP,#02H;IP初始化,优先定时器0

MOVIE,#82H;IE初始化,

MOVTMOD,#01H;定时器0方式1工作

LCALLPP;调P.子程序

NEXT:

LCALLKEY;按键检测子程序

JBACC.0,RUNF;A键按下运行

LCALLDISP;调用显示子程序

SJMPNEXT

RUNF:

LCALLOUTT;调传送子程序

LCALLTIME;开电子钟

JK:

LCALLDISP;调用显示子程序

LCALLKEY;按键检测子程序

JZJK

LCALLANKEY

LCALLDISP;调用显示子程序

SJMPJK

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;P点显示;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

PP:

MOV37H,#12;P点编码送寄存器

MOVR0,#30H;P点编码送寄存器

MOVR7,#07H

PPP:

MOV@R0,#10

INCR0

DJNZR7,PPP

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;键扫子程序;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KEY:

LCALLKEYS;调键值处理子程序

JZEXIT;没有键按下转到返回

LCALLDISP

LCALLDISP;调显示去抖动

LCALLKEYS

JZEXIT

MOVB,20H;保存键值

KEYSF:

LCALLKEYS;调键值处理子程序

JZKEYY;键释放,转到恢复键值

LCALLDISP;调显示子程序延时

AJMPKEYSF;等到键释放

KEYY:

MOVA,B;键值送20H单元保存

EXIT:

RET;返回

KEYS:

MOVP1,#0FFH;先向P1口写1

MOVA,P1;P1口值送累加器A

CPLA;A值取反

ANLA,#0FH;保存P1口的低4位

MOV20H,A;A值送20H保存

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;键功能子程序;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ANKEY:

CLREA;关中断

CHECK:

JBTR0,YXZ;判断是否运行

K0:

CJNEA,#01H,K1

AJMPRUN;转运行

K1:

CJNEA,#02H,K2

AJMPKEY1;转时调整

K2:

CJNEA,#04H,K3

AJMPKEY2;转分调整

K3:

CJNEA,#08H,OUT

AJMPKEY3;转秒调整

YXZ:

JBACC.0,STOP

AJMPOUT

KEY1:

MOVR0,#45H;时调整

LCALLADD1

CLRC

CJNEA,#24H,OUTT

ACALLCLR0

AJMPOUTT

KEY2:

MOVR0,#43H;分调整

LCALLADD1

CLRC

CJNEA,#60H,OUTT

ACALLCLR0

AJMPOUTT

KEY3:

MOVR0,#41H;秒调整

ACALLADD1

CLRC

CJNEA,#60H,OUTT

ACALLCLR0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;传送显示数据;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

OUTT:

MOV30H,40H;秒显示单元41H-42H

MOV31H,41H

MOV32H,#11;"-"

MOV33H,42H;分显示单元43H-44H

MOV34H,43H

MOV35H,#11;"-"

MOV36H,44H;时显示单元44-45H

MOV37H,45H

RET

STOP:

CLRTR0;关电子钟并跳出

RET

RUN:

LCALLTIME;运行电子钟

OUT:

SETBEA;无键按下或完成功能跳出

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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