最新电子钟课程设计完整创新版.docx

上传人:b****5 文档编号:6074253 上传时间:2023-01-03 格式:DOCX 页数:17 大小:1.94MB
下载 相关 举报
最新电子钟课程设计完整创新版.docx_第1页
第1页 / 共17页
最新电子钟课程设计完整创新版.docx_第2页
第2页 / 共17页
最新电子钟课程设计完整创新版.docx_第3页
第3页 / 共17页
最新电子钟课程设计完整创新版.docx_第4页
第4页 / 共17页
最新电子钟课程设计完整创新版.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

最新电子钟课程设计完整创新版.docx

《最新电子钟课程设计完整创新版.docx》由会员分享,可在线阅读,更多相关《最新电子钟课程设计完整创新版.docx(17页珍藏版)》请在冰豆网上搜索。

最新电子钟课程设计完整创新版.docx

最新电子钟课程设计完整创新版

电子钟课程设计

一.实验目的

1...学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。

2..设计任务及要求利用实验平台上4个LED数码管,设计带有记忆功能的数字时钟

3.掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;

4.进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;

5.提高电路布局﹑布线及检查和排除故障的能力;

6.培养书写综合实验报告的能力。

二、实验设备

STARES598PCI试验仪一套、PC机一台。

三、实验内容

1、使用8253定时功能,产生0.5S的定时中断给8259

2、在G5区的数码管上显示时间

3、允许设置时钟初值

4.使电子钟带有记忆功能.

设计所涉及的芯片

1、8253定时器:

用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。

2、8279接口芯片:

实现键盘输入和显示输出。

3、8259中断控制器:

用于产生中断。

4、LED:

六个LED用于显示时:

分:

秒值。

5、小键盘:

用于控制设置。

四、实验要求

1.在4位数码管上显示当前时间。

显示格式“秒,分,时”

2.由LED闪动做秒显示。

3.实现秒表功能(百分之一秒显示)

4.电子钟有记忆功能,电子钟启动之后,按F键,在显示秒的地方记录数据,然后电子钟重新开始启动,再次按F键,电子钟再次记录数据。

五、设计原理

利用定时器8253和8259以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式AA:

SS:

DD由左到右分别为时、分、秒,最大记时59:

59:

59超过这个时间时分秒位都清零从00:

00:

00重新开始。

设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。

系统一运行就从00点00分00秒开始计时,并在数码管上显示秒、分、时当前值,而且,可以用键盘设置当前时间。

基本工作原理:

每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。

C键:

置初值,显示00:

00:

00

G键:

显示动态变化(启动表);

D键:

显示静态不变(表停止);

E键:

终止程序,返回DOS;

P键:

设置秒:

分:

时的值

A0,A1—片内寄存器地址输入信号;

CLK一一-it数输入,用于输入定时基准脉冲或计数脉冲

OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形

GATE-迭通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

六、系统总体设计

本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8279做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。

8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。

即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。

程序由以下模块组成:

系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。

系统总体框图如下:

1.CPU模块

8088最小工作模式,作为整个电子表的核心控制部分。

在8088最小模式中,硬件连接上有如下特点:

(1)MN/MX端接+5V,决定了8088工作在最小模式。

(2)有1片8284A,作为时钟发生器。

(3)有3片8282,用来作为地址锁存器。

8282是典型的锁存器芯片,因为它是8位的,所以需要3片8282作为锁存器。

(4)当系统中所连的存储器和外设系统较多时,需要增加数据总线的驱动能力,这时,要用两片8286作为总线收发器。

8088构成的CPU

2.定时模块

定时模块是为8259提供中断请求信号的。

由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。

定时模块原理图

3.中断处理模块

中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

4.显示模块和小键盘模块

5.实物硬件连接图

七、实验步骤

1、主机连线说明:

E5区:

CLK

——

B2区:

2M

E5区:

CS、A0

——

A3区:

CS5、A0

E5区:

A、B、C、D

——

G5区:

A、B、C、D

B3区:

CS、A0

——

A3区:

CS1、A0

B3区:

INT、INTA

——

ES8088:

INTR、INTA

B3区:

IR0

——

C5区:

OUT0

C5区:

CS(8253)、A0、A1

——

A3区:

CS2、A0、A1

C5区:

GATE0

——

C1区:

VCC

C5区:

CLK0

——

B2区:

62.5K

2、运行程序,按G5区的F键,设置时钟初值;

3、观察G5区数码管上显示的时间是否正确。

中断信号送CPU处理。

八、演示程序

.MODELTINY

EXTRNDisplay8:

NEAR,GetKeyA:

NEAR,GetKeyB:

NEAR

IO8259_0EQU0F000H

IO8259_1EQU0F001H

Con_8253EQU0E003H

T0_8253EQU0E000H

.STACK200

.DATA

halfsecDB0;0.5秒计数

SecDB0;秒

MinDB0;分

hourDB0;时

bufferDB8DUP(0);显示缓冲区,8个字节

buffer1DB8DUP(0);显示缓冲区,8个字节

bNeedDisplayDB0;需要刷新显示

numberDB0;设置哪一位时间

bFlashDB0;设置时是否需要刷新

.CODE

START:

MOVAX,@DATA

MOVDS,AX

MOVES,AX

NOP

movsec,0;时分秒赋初值00:

00:

00

movmin,00

movhour,00

MOVbNeedDisplay,1;显示初始值

CALLInit8253

CALLInit8259

CALLWriIntver

STI

MAIN:

CALLGetKeyA;按键扫描

JNBMain1

CMPAL,0FH;设置时间

JNZMain1

CALLSetTime

Main1:

CMPbNeedDisplay,0

JZMAIN

CALLDisplay_LED;显示时分秒

MOVbNeedDisplay,0;1s定时到刷新转速

Main2:

JMPMAIN;循环进行实验内容介绍和测速功能测试

SetTimePROCNEAR

LEASI,buffer1

CALLTimeToBuffer

MOVNumber,0

Key:

CMPbFlash,0

JZKey2

LEASI,buffer1

LEADI,buffer

MOVCX,8

REPMOVSB

CMPhalfsec,0

JNZFLASH

MOVBL,number

NOTBL

ANDBX,07H

LEASI,buffer

MOVBYTEPTR[SI+BX],10H;当前设置位置产生闪烁效果

FLASH:

LEASI,buffer

CALLDisplay8

MOVbFlash,0

Key2:

CALLGetKeyA

JNBKey

CMPAL,0EH;放弃设置

JNZKey1

JMPMain1

Key1:

CMPAL,0FH

JZSetTime8

SetTime1:

CMPAL,10

JNBKey;无效按键

CMPnumber,0

JNZSetTime2

CMPAL,3;调整时的十位数

JNBKey

MOVbuffer1+7,AL

JMPSetTime7

SetTime2:

CMPnumber,1

JNZSetTime3

CMPbuffer1+7,1;调整时的个位数

JZSetTime2_1

CMPAL,4

JNBKey

SetTime2_1:

MOVbuffer1+6,AL

INCnumber

JMPSetTime7

SetTime3:

CMPnumber,3

JNZSetTime4

CMPAL,6;调整分的十位数

JNBKey

MOVbuffer1+4,AL

JMPSetTime7

SetTime4:

CMPnumber,4

JNZSetTime5

MOVbuffer1+3,AL;调整分的个位数

INCnumber

JMPSetTime7

SetTime5:

CMPnumber,6

JNZSetTime6

CMPAL,6;调整秒的十位数

JBSetTime5_1

JMPKey

SetTime5_1:

MOVbuffer1+1,AL

JMPSetTime7

SetTime6:

MOVbuffer1,AL;调整秒的个位数

SetTime7:

INCnumber

CMPnumber,8

JNBSetTime8

MOVbFlash,1;需要刷新

JMPKey

SetTime8:

MOVAL,buffer1+1;确认

MOVBL,10

MULBL

ADDAL,buffer1

MOVsec,AL;秒

MOVAL,buffer1+4

MULBL

ADDAL,buffer1+3

MOVmin,AL;分

MOVAL,buffer1+7

MULBL

ADDAL,buffer1+6

MOVhour,AL;时

JMPExit

Exit:

RET

SetTimeENDP

TimeToBufferPROCNEAR

MOVAL,hour

XORAH,AH

MOVBL,10

DIVBL

MOV[SI],AH

MOV[SI+1],AL;秒

MOVBYTEPTR[SI+2],10H;这位不显示

MOVAL,min

XORAH,AH

DIVBL

MOV[SI+3],AH

MOV[SI+4],AL;分

MOVBYTEPTR[SI+5],10H;这位不显示

MOVAL,sec

XORAH,AH

DIVBL

MOV[SI+6],AH

MOV[SI+7],AL;时

RET

TimeToBufferENDP

Display_LEDPROCNEAR

LEASI,buffer

CALLTimeToBuffer

LEASI,buffer

CALLDisplay8;显示

RET

Display_LEDENDP

Timer0Int:

PUSHAX

PUSHDX

MOVbFlash,1

INChalfsec

CMPhalfsec,2

JNZTimer0Int1

MOVbNeedDisplay,1

MOVhalfsec,0

INCsec

CMPsec,60

JNZTimer0Int1

MOVsec,0

INCmin

CMPmin,60

JNZTimer0Int1

MOVmin,0

INChour

CMPhour,24

JNZTimer0Int1

MOVhour,0

Timer0Int1:

MOVDX,IO8259_0

MOVAL,20H

OUTDX,AL

POPDX

POPAX

IRET

Init8253PROCNEAR

MOVDX,Con_8253

MOVAL,34H

OUTDX,AL;计数器T0设置在模式2状态,HEX计数

MOVDX,T0_8253

MOVAL,12H

OUTDX,AL

MOVAL,7AH

OUTDX,AL;CLK0=62.5kHz,0.5s定时

RET

Init8253ENDP

Init8259PROCNEAR

MOVDX,IO8259_0

MOVAL,13H

OUTDX,AL

MOVDX,IO8259_1

MOVAL,08H

OUTDX,AL

MOVAL,09H

OUTDX,AL

MOVAL,0FEH

OUTDX,AL

RET

Init8259ENDP

WriIntverPROCNEAR

PUSHES

MOVAX,0

MOVES,AX

MOVDI,20H

LEAAX,Timer0Int

STOSW

MOVAX,CS

STOSW

POPES

RET

WriIntverENDP

ENDSTART

九、软件设计和流程图

1、数字电子时钟主程序流程图

数字电子时钟主程序流程图

2、中断服务程序流程图

中断服务程序流程图如下图所示。

中断服务程序流程图

3.实验结论

通过运用数字集成电路设计的24小时制的数字电子时钟,经过试验,改装后成功实现了一下基本功能:

1.能准确的实现通过开关控制时分秒。

2.能准确计时,以数字形式显示秒、分、时的时间。

3.能实现记忆的功能,并能在记录完数据之后实现交替记录的功能。

十.实验总结

通过这次数字电子钟的课程设计,我们才把学到的东西和实践相结合。

从中对我们学的知识有了更进一步的理解,而且更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。

也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。

虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。

设计本身并不是有很重要的意义,而是同学们对待问题时的态度和处理事情的能力。

各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。

同一个电路可以用哪些芯片实现,各个芯片实现同一个功能的区别。

通过这次实践,我真正意识到自己的不足之处,在编程方面还有很多需要学习的地方,还有许多芯片的功能,也需要再进一步学习研究,来不断扩大自己的知识面。

参考文献

1.现代数字电路和逻辑设计清华大学出版社北京交通大学出版社.

2.模拟电子技术(修订版)清华大学出版社北京交通大学出版社

3.模拟电子技术教程电子工业出版社

5.朱定华主编.电子电路测试和实验.北京:

清华大学出版社,2004.

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

当前位置:首页 > 求职职场 > 简历

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

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