课程设计8086电子时钟设计.docx
- 文档编号:20136577
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:26
- 大小:1.43MB
课程设计8086电子时钟设计.docx
《课程设计8086电子时钟设计.docx》由会员分享,可在线阅读,更多相关《课程设计8086电子时钟设计.docx(26页珍藏版)》请在冰豆网上搜索。
课程设计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、电子时钟系统总体方案设计
方案一:
利用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设计方案框图
就方案一用单片机来设计电子时钟,从主要芯片耗材上来说比方案二要少,但是用单片机来设计电子时钟,需要做的其他模块,如单片机最小系统,相对方案二要复杂很多,而且就程序上的编写来说,方案二也比方案一简单。
因此,本设计采用方案二来做。
3、电子时钟的工作原理
利用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
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAN中设置显示缓冲区共6个单元。
3.3电子钟的启、停及时间调整
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整
A键控制电子钟的启、停:
B键调整时
C键调整分
D键调整秒
4、硬件设计
主电路模块由8086,8253,8255A构成,电路如图4-1所示。
4-1主电路模块电路
4.1.2LED显示模块
显示局部由6个LED组成,用8255A的A口作LED的段码输出口,B口作六个LED数码管的位控输出线。
电路如图4-2
4-2显示模块电路
四个按键A,B,C,D分别完成各自功能,由8255A的C口控制。
电路如图4-3
4-3按键模块电路
总体电路图见附录l
在本系统中,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。
VCC为电源引线,单一的为+5V电源。
引脚为1和20为两条GND线,要求均要接地。
12.IO/M
访问存储器或I/O端口的控制信号。
假设IO/M为高电平,那么访问的是I/O端口;假设IO/M为低电平,那么访问的是存储器。
写信号。
当其有效时表示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-2所示
图5-2键扫子程序流程框图
如图5-3所示
图5-3中断处理程序流程框图
总程序见附录2
6、总结与体会
微机接口技术是一门应用性、综合性、实践性都较强的课程,通过本次课程设计过程,我基木熟悉和掌握了微机系统的软件、硬件设计的方法、设计步骤,是一次微机开发应用方面的初步训练;通过本次课程设计使我熟练掌握了微机系统与接口扩展电路的设计方法,并熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法.
这次的课程设计对我来说,是一次非常重要的锻炼,通过这次设计,我对所学的知识有了更深刻的了解和掌握,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。
有了这次的设计经验,相信在以后的学习设计实践过程中,我可以做到更好。
回忆此次课程设计的过程,可以用“累并收获着〞来概括。
通过本次设计,不但使我的专业知识得到稳固和开拓,而且能使我将所学与实践联系起来,认识到自身知识的缺漏,明确自己的努力的方向。
计算机技术的开展日新月异,其接口技术应用十分广泛,我不但要经常跟踪专业新技术、新动态,时刻走在时代的前列;还要注重积累经验,在此次设计中,积累一些通用俗语,才能使自己慢慢地融入专业之中,更快地进入工作角色:
此外,还要注重养成终身的学习习惯,扩大自己的知识面,才能促进自己不断进步。
参考文献
1.戴梅馨,史嘉权编著.微型计算机技术及应用(第三版)北京:
清华大学出版社,2003
2.李顺增,吴国东,赵河明等.微机原理及接口技术北京:
机械工业出版社,2006
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
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 8086 电子 时钟 设计