课程设计 8086电子时钟设计.docx

上传人:b****7 文档编号:11518619 上传时间:2023-03-02 格式:DOCX 页数:26 大小:1.43MB
下载 相关 举报
课程设计 8086电子时钟设计.docx_第1页
第1页 / 共26页
课程设计 8086电子时钟设计.docx_第2页
第2页 / 共26页
课程设计 8086电子时钟设计.docx_第3页
第3页 / 共26页
课程设计 8086电子时钟设计.docx_第4页
第4页 / 共26页
课程设计 8086电子时钟设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

课程设计 8086电子时钟设计.docx

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

课程设计 8086电子时钟设计.docx

课程设计8086电子时钟设计

微机原理及其接口技术

课程设计

 

题目:

8086电子时钟设计

 

前言

课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动乎、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。

《微机接口技术》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。

所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。

时钟就是一种对时间进行累计的工具,即计时。

计时的本质就是计数,只不过这里的“数”的单位是时间单位,如果把一小片一小片计时单位累计起来,就可获得一段时间。

因此,使用计数器对时钟脉冲进行计数,就是时钟实现的基本原理;再用LED数码管显示出来,并设计出几个按键用于对时钟进行调整,这样,一个完整的时钟就设计完成了。

本次课程设计要求利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该键的时候,时钟从当前的设定值(可以在缓冲区中设置)开始走时。

同时,再定义三个按键,分别对时、分、秒进行校正。

 

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显示器的最左端数码管上,无A键按下(在“P.”状态下,按下B,C,D键无效),则不进入电子钟的运行状态,继续显示“P.”。

按下A键后,电子钟从当前的设定值开始走时。

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

 

2、电子时钟系统总体方案设计

2.1方案比较

方案一:

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

AT89S52的PO口和P2口外接LED数码管构成显示器;P1

口外接四个按键A,B,C,D构成键盘电路。

如图2-1所示。

图2-1AT89S52单片机设计方案框图

方案二:

以8086微处理器作为CPU,8253做定时计数器产生时钟脉冲,8255A

做可编程并行接口,接LED显示时钟和扩展调整按键。

如图2-2所示。

图2-2以8086为CPU设计方案框图

2.2方案选择

就方案一用单片机来设计电子时钟,从主要芯片耗材上来说比方案二要少,但是用单片机来设计电子时钟,需要做的其他模块,如单片机最小系统,相对方案二要复杂很多,而且就程序上的编写来说,方案二也比方案一简单。

因此,本设计采用方案二来做。

3、电子时钟的工作原理

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

利用8253的16位可编程定时/计数器及8086中断系统实现时钟计数。

(1)计数初值计算:

选用8253的定时/计数器1,把定时器设为工作方式2.输入250kHz,输出200Hz,定时时间为5-,则计数溢出200次即得时钟计时最小单位一秒.

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

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

8253的初始化程序段:

设置8253,t1,方式2,输入250kHz,输出200Hza

movdx,233hmovax,1250

mova1,74houtdx,al

outdx,almovaLah

movdx,231houtdx,al

3.2电子钟的时间显示

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

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

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

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

B键调整时

C键调整分

D键调整秒

4、硬件设计

4.1硬件设计电路图

4.1.1主电路模块

主电路模块由8086,8253,8255A构成,电路如图4-1所示。

4-1主电路模块电路

4.1.2LED显示模块

显示部分由6个LED组成,用8255A的A口作LED的段码输出口,B口作六个LED数码管的位控输出线。

电路如图4-2

4-2显示模块电路

4.1.3按键模块

四个按键A,B,C,D分别完成各自功能,由8255A的C口控制。

电路如图4-3

4-3按键模块电路

4.1.4总体电路图

总体电路图见附录l

4.2硬件设计所用芯片介绍

在本系统中,8086工作在最小模式下。

负责对8259,8253等芯片进行工作方式控制和数据处理,对时钟信号进行响应并控制led数码管进行显示。

1.AD7~AD0(双向。

三态)

  为低8位地址/数据的复用引脚线。

采用分时的多路转换方法来实现对地址线和数据线的复用。

在总线坐骑的T1状态。

这些银线表示为这些银线用作株距总线。

可见对复用信号使用时间来加以划分的。

它要求在T1状态线出现低8位地址时,用地址锁存器加以锁存。

这样在随后的T状态,即使这些线用作数据线,而第8位地址线的地址在个体却被记录保存下来,并送到地址总线上。

在DMA方式时,这些银线被浮置为高阻状态。

 2.A15~A8(输出,三态)

  为8位地址线。

在读写存储器或外设端口色中个总线周期内,都作为地址线输出高8位地址。

  在DMA方式时,这些引线被浮置为高阻。

  3.A19/S6~A16/S3(输出。

三态)

  为地址/状态服用引脚线,在总线周期的T1状态,这些线表示为最高4位的地址线,在总线周期的其他T状态,这些线用作提供状态信息,同样需要地址锁存器对T1状态出现的最高4位地址加以锁存。

  状态信息S6总是为低电平,S5反映当前允许中断标志的状态。

S4与S3一起指示当前那一个段寄存器被使用。

在DMA方式时,这些引线被浮置为高阻。

  4.RD(输出,三态)

  读信号,当其有效时表示正在对存储器或I/O端口进行读操作。

若IO/M为低电平,表示读取存储器的数据,若IO/M为高电平,表示读取I/O端口的数据。

  在DMA方式时,这些引线被浮置为高阻。

  5.READY(输入)

  为准备就绪信号。

低电平有效。

本信号由等待指令WAIT来检查。

我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。

  6.TEST(输入)

  为检测信号,低电平有效。

本信号由低呢古代指令WAIT来检查。

我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。

  7.INTR(输入)

  可屏蔽中断请求信号,高电平有效。

CPU在执行每条指令的最后一个T状态时,去采样INTR信号,若发现有效,而中断允许标志IF有为1,则CPU在结束当前指令周期后相应中断请求,赚取执行中断处理程序。

  8.NMI(输入)

  非屏幕中断请求信号,为一个边缘触发信号,不能有软件加以屏蔽。

只要在NMI线上出现由低到高的变化信号,则CPU就会在当前指令中,赚取之行给屏蔽中断处理程序。

  9.RESET(输入)

  复位信号,高电平有效,复位时该信号要求维持高电平值到4个时钟周期,若使初次加电,则高电平信号至少要保持50us,复位信号的到来,将立即结束CPU的当前操作,内部寄存器恢复到初始状态。

  当RESET信号从高电平回到低电平时,及复位后进入重新启动时,变质型从内存FFFF0H处带式的指令,通常在FFFF0H存放一条无条件转移指令,转移到系统程序的实际入口处。

这样只要系统被复位启动,就自动进入系统程序。

 10.CLK(输入)

  时钟信号,它为CPU和总线控制电路提供基准时钟,对时钟信号要求:

1/3周期为高电平,2/3周期为低电平。

8088的标准时钟频率为5MZ。

 11.电源和地

  VCC为电源引线,单一的为+5V电源。

引脚为1和20为两条GND线,要求均要接地。

 12.IO/M

  访问存储器或I/O端口的控制信号。

若IO/M为高电平,则访问的是I/O端口;若IO/M为低电平,则访问的是存储器。

 13.WR

  写信号。

当其有效时表示CPU正在对存储器或I/O端口进行写操作,具体对水进行写操作,有IO/M信号决定。

本信号在总线周期的T2,T3。

TW状态有效。

在DMA方式时,此线被浮置为高阻。

4.2.28253芯片的内部结构及引脚

8253有3个独立的十六位计数器,计数频率范围为0-2hIHZ。

它所有的计数方式和操作方式都通过编程控制。

8253的功能用途是:

(1)延时中断;

(2)可编程频率发生器;(3)事件计数器;(4)二进倍频器;(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器。

8253引脚图以及功能说明:

图4-58253引脚图

由上图可知,8253一共有24条引脚,其中:

D7-DO—双向数据线:

WR(低电平有效)—写输入信号;

RD(低电平有效)—读愉入信号;

CS(低电平有效)—片选输入信号:

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

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

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

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

4.2.38255A芯片的内部结构及引脚

8255A可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A,B,C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:

方式0-基木输入/输出方式

方式1-选通输入/输出方式

方式2-双向选通输入/输出方式

8255A引脚图如图4-6所示,各引脚功能如下:

D7-DO—与CPU侧连接的八条双向数据线;

WR(低电平有效)—写输入信号;

RD(低电平有效)—读输入信号;

CS(低电平有效)—片选输入信号:

A0,A1—片内寄存器选择输入信号;4-68255A引脚图

PAO—PA7A口外设双向数据线;

PB7-PBOB口外设双向数据线;

PC7-PCOC口外设双向数据线

RESET—复位输入信号

5、软件设计

5.1电子时钟部分程序流程框图

5.1.1主程序流程框图

图5-1主程序流程框图

5.1.2键扫子程序流程框图

如图5-2所示

图5-2键扫子程序流程框图

5.1.3中断处理程序流程框图

如图5-3所示

图5-3中断处理程序流程框图

5.2电子时钟总体程序

总程序见附录2

 

6、总结与体会

微机接口技术是一门应用性、综合性、实践性都较强的课程,通过本次课程设计过程,我基木熟悉和掌握了微机系统的软件、硬件设计的方法、设计步骤,是一次微机开发应用方面的初步训练;通过本次课程设计使我熟练掌握了微机系统与接口扩展电路的设计方法,并熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法.

这次的课程设计对我来说,是一次非常重要的锻炼,通过这次设计,我对所学的知识有了更深刻的了解和掌握,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

有了这次的设计经验,相信在以后的学习设计实践过程中,我可以做到更好。

回顾此次课程设计的过程,可以用“累并收获着”来概括。

通过本次设计,不但使我的专业知识得到巩固和开拓,而且能使我将所学与实践联系起来,认识到自身知识的缺漏,明确自己的努力的方向。

计算机技术的发展日新月异,其接口技术应用十分广泛,我不但要经常跟踪专业新技术、新动态,时刻走在时代的前列;还要注重积累经验,在此次设计中,积累一些通用俗语,才能使自己慢慢地融入专业之中,更快地进入工作角色:

此外,还要注重养成终身的学习习惯,扩大自己的知识面,才能促进自己不断进步。

 

参考文献

1.戴梅馨,史嘉权编著.微型计算机技术及应用(第三版)北京:

清华大学出版社,2003

2.李顺增,吴国东,赵河明等.微机原理及接口技术北京:

机械工业出版社,2006

3孙德文.微型计算机技术高等教育出版社

4.赵明富.黄丽雯,李文杰.微机原理及接口技术实验重庆工学院电子信息与白动化学院

5侯伯亨,李伯成微机原理与接口技术西安电子科技大学出版社

 

附录1

 

附录2

电子时钟程序

;8255用作读键盘信息

;8253提供时钟信号

;led采用动态显示

modelsmall

.stack50

,数据段

data

bufd60,0,0,0,0,0;显示缓冲区

;数码管笔形码

ledd63FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80h

hourd608h;时缓冲单元

mindb30h;分缓冲单元

seed630h;秒缓冲单元

mseod60;毫秒缓冲单元

dexdb0;笔形码索引值

;键盘编码表

keytabDW57FH,5BFH,5DFH,5EFH,5FEH,5FDH,5FBH,5F7H

DW67FH,6BFH,6DFH,6EFH,6FEH,6FDH,6FBH,6F7H

keyenddw7ffh

agekeydb12;键龄

oldkeydw0;键码字保存

keynumd60;键号

keyokdb0;按键响应标记

stated60;系统状态,。

一运行态;1一修改态

keymddb0;修改键标记,B一修改时;C一修改分;D-修改秒

somed60;时间设定单元,保存键盘输入的时间

二代码段

code

;主程序:

;实现8253的设置,中断向量的设置,检测系统大键盘信号,有按键就结束程序返回系统。

mainprocfar

start:

movax,data;设置数据段和附加段

movds,ax

moves,ax

cli;关中断

;设置8253,2l,方式2,输入250kHz,输出200Hz

movdx,233h

mova1,74h

outdx,al

m-dx.231h

movax,1250

outdx,al

moval,ah

outdx,al

;保存原中断向量

a1,Obh

ah,35b

21h

esbxds

︸︸intnushvushPush

;设置新中断向量

movdx,offsetintpro

movax,segintpro

movds,ax

mova1,Obh

movah,25h

tm21h

;打开中断屏蔽

popds

ina1,21h

andal,Of7h

out21h,a1

sti;开中断

;等持按键,返回系统

wat:

movah,l

intlbh

jzwat

;回复中断向量

popdx

popds

mova1,Obh

movah,25h

int21h

;退出程序,返回系统

movax,4e00h

im21h

,中断一f程序:

;完成时钟处理、键盘监控和显示功能

tntproprocnear

pushds;保存寄存器

pushax

pushcx

ax

ax,data;设置数据段和代码段寄存器

ds,ax

;不是修改状态才走时钟

nush

;时钟处理模块,以5毫秒为单位调整时、分秒。

elk:

incmsec

nU

鱿、h

cn]nlmmladdamlcn]nl抑mI

addal,l

min,al

min,60h

daa﹄cmP

jnenext

movmin,0

moval,hour

addal,l

daa

movhour,al

cmphour,24h

jnenext

movhour,0

,键盘监控模块

next:

decagekey

jznextl

jmpdsp

nextl:

movagekey,12

movdx,223h;设置PA输出,PB输入

mova1,82h

outdx,al

mova1,0;A口输出低电平,读B口

movdx,220h

outdx,al

movdx,221h

inal,dx

movbh,al

movdx,223h;设置PB输出,PA输入

mova1,90h

outdx,al

moval,();b

movdx,22lh

outdx,al

movdx,220b

inal,dx

movbl,al;i?

andbx,7ffh;去除键码中无用位数

cmpbx,7ffh

jnekeyon;有按键则进入按键处理

movkeyok,0;无按键则清除响应标志退出按键处理

jmpdsp

keyon:

cmp.bx,oldkey

jekeyonl;已经去抖动则直接处理按键

movagekey,4;有新按键则设置键龄退出中断

movkeyok,0

movoldkey,bx

impdsp

keyonl:

cmpkeyok,l

jneII;按键已响应则退出键盘处理

impdsp

11:

movkeyok,l;设立按键响应标记

std

leadi,keyend;指向键码表

movax,bx;读取键号,地址递减,cx的值为键号

movcx,17

repnescasw

jekeyon2

impdsp

keyon2:

movkeynum,cl;保存键号

cmpstate,0;系统在修改态否?

jnekeyon3;跳到修改态的处理

cmpkeynum,0ah;为A键否

jnekeyb

movkeymd,l;作a键修改标志

movhour,0aah沙时显示为一

movstate,l;进入修改态

impdsp

keyb:

cmpkeynum,Obh;为B键否

jnekeye

movkeymd,2;作b键修改标志

movmin,0aah;分钟异示为..

movstate,l;进入修改态

impdsp

keyc:

cmpkeynum,Och;为c键否

jekeycl

impdsp

keycl:

movkeymd,3;作c键修改标志

movsec,0aah

movstate,l;秒显示为..

impdsp

keyon3:

cmpkeynum,9;在修改态,判断是否为数字键

jbekeys;<=9则认为是数字键

impkeyen;否则判断是否为确定键

keyn:

moval,stime滋取输入时间,十进制格式

movc1,4

shlal,cl;在确定以前最后输入的两个十进制数有效

oral,keynum

movstime,al

impdsp

keyen:

cmpkeynum,Ofh;处理f键

jekeyenl

impdsp

keyenl:

movstate,0;恢复到运行态

cmpkeymd,l;将修改内容送小时单元

jnekeyen2

movkeymd,0;清除修改小时标志

empstime,24h;判断输入时间是否>=24

jbkey-3

movhour,0;大于24时,输入为。

movsdme,0;清除时间单元

impdsp

key-3:

moval,stime

movhour,al;小于24时,输入设定时间

movstime,0;清除时间单元

impdsp

key-2:

-pkeymd,2;将修改分钟标志

jnekeyen4

movkeymd,0;请除修改分钟标志

cmpsfme,60h

jbkeyen5

movmin,0

movstime,0

impdsp

keyen5:

moval,stime

movmfn,al

movstime,0

impdsp

keyen4:

cmpkeymd,3;将修改秒

jnedsp

movkeymd,0

cmpstime,60h

j6keyen6

movsec,0

movstime,0

impdsp

keyen6:

moval,stime

movsec,al

movstime,0

显示模块

dsp:

movsi,0;将时、分、秒信号拷贝到显示缓冲区

movc1,4

movch,2

moval,hour

lpl:

rolal,cl

movah,al

anda1,Oflr

mov6u兀sii,al

moval,ah

mem

decch

jazlpl

movch,2

moval,mir

Ip2:

rolal,cl

movab,al

anda1,Oflr

mov6u几si

moval,ah

mes

decch

jnz)p2

movcb,2

moval,sec

Ip3:

rolal,cl

movah,al

anda1,Oflr

movbu兀si],al

moval,ah

me勺

decch

jnzlp3

movcl,dex;显示数码管的某一位

moval,l

rolal,cl

movdx,210h

out击al

andax,0

moval,dex

movsi,ax

movbl,buf]si]

movbh,0

moval,led[bx]

movdx,211h

outdx;al

inedex

empdex,6

jneexit

movdex,0

exit:

mov.a1,20h

out20h,a1

pop血

popcx

popax

popds

iret

intproendp

endstart

 

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

当前位置:首页 > 法律文书 > 调解书

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

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