课程设计8086电子时钟设计课件.docx
《课程设计8086电子时钟设计课件.docx》由会员分享,可在线阅读,更多相关《课程设计8086电子时钟设计课件.docx(27页珍藏版)》请在冰豆网上搜索。
课程设计8086电子时钟设计课件
计算机原理
课程设计报告
题目基于8086CPU的电子时钟的设计
学院电子信息工程学院
专业电气工程及其自动化
学生姓名庞长春
学号201010316117年级10级1班
指导教师徐嘉莉职称副教授
2012年6月28日
摘要
《微机接口技术》是一门应用性、综合性、实践性较强的课程,通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。
时钟就是一种对时间进行累计的工具,即计时。
计时的本质就是计数,只不过这里的“数”的单位是时间单位,如果把一小片一小片计时单位累计起来,就可获得一段时间。
因此,使用计数器对时钟脉冲进行计数,就是时钟实现的基本原理;再用LED数码管显示出来,并设计出几个按键用于对时钟进行调整,这样,一个完整的时钟就设计完成了。
关键字:
原理、芯片、流程图、程序
第一章绪论
1.1电子时钟背景介绍.................................................4
1.2电子时钟功能介绍4
1.3课程设计的目的及要求.............................................4
2.3电子时钟启、停及时间调整...........................................5
3.1.1主电路模块...................................................6
3.2.38259芯片的内部结构及引脚....................................12
4.2电子时钟总体程序.................................................16
参考文献.................................................................18
附录.....................................................................19
第1章绪论
1.1电子时钟背景介绍
电子钟亦称数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。
相对于其他时钟类型,它的特点可归结为“两强一弱”:
比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显时较为单调。
1.2电子时钟功能介绍
可调整运行的电子钟具有三种工作状态:
"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键,电子钟则退出调整状态,进入运行状态。
1.3课程设计目的和要求
(1)进一步熟悉8259、8279、8253芯片的内部结构及其功能;
(2)使用8253定时功能,产生0.5S的定时中断给8259;
(3)在G5区的数码管上显示时间;
(4)允许设置时钟初值。
新的一章要换页!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
第二章电子时钟的工作原理
2.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
2.2电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAN中设置显示缓冲区共6个单元。
2.3电子钟的启、停及时间调整
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。
A-键控制电子钟的启、停
B-键调整时
C-键调整分
D-键调整秒
第三章硬件设计
3.1硬件设计电路图
3.1.1主电路模块
3.1.2LED显示模块
显示部分由6个LED组成,用8255A的A口作LED的段码输出口,B口作六个LED数码管的位控输出线。
电路如图4-2。
!
!
!
!
!
!
!
!
!
!
下面的图标跟这个不符合
图3-1-1显示模块电路
3.1.3按键模型
四个按键A,B,C,D分别完成各自功能,由8255A的C口控制。
电路如图4-3。
图3-1-2按键模块电路图
3.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方式时,此线被浮置为高阻。
3.2.18253芯片的内部结构及引脚
8253有3个独立的十六位计数器,计数频率范围为0-2hIHZ。
它所有的计数方式和操作方式都通过编程控制。
8253的功能用途是:
(1)延时中断;
(2)可编程频率发生器;(3)事件计数器;(4)二进倍频器;(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器。
8253引脚图以及功能说明:
图3-2-18253引脚图
由上图可知,8253一共有24条引脚,其中:
D7-DO—双向数据线:
WR(低电平有效)—写输入信号;
RD(低电平有效)—读愉入信号;
CS(低电平有效)—片选输入信号:
A0,A1—片内寄存器地址输入信号;
CLK一一-it数输入,用于输入定时基准脉冲或计数脉冲
OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形
GATE-迭通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
3.2.28279芯片的内部结构及引脚
图3-2-28279引脚图
图要居中!
!
!
!
!
!
!
!
!
!
8279采用单±5V电源供电,40脚封装。
DB0~DB7:
双向数据总线,用来传送8279与CPU之间的数据和命令。
CLK:
时钟输入线,用以产生内部定时的时钟脉冲。
RESET:
复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。
CS:
片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。
A0:
缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。
RD:
读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。
WR:
写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。
RL2--140--VCC RL3--239--RL1 CLK--338--RL0 IRQ--437--CNTL/STB RL4--536--SHIFT RL5--635--SL3 RL6--734--SL2 RL7--833--SL1 RESRT--932--SL0 RD--1031--OUTB0 WR--1130--OUTB1 DB0--1229--OUTB2 DB1--1328--OUTB3 DB2--1427--OUTA0 DB3--1526--OUTA1 DB4--1625--OUTA2 DB5--1724--OUTA3 DB6--1823--BD DB7--1922--CS VSS--2021--A0
IRQ:
中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时, 此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM 中还有信息,则此线重又变为高电平。
在传感器工作方式中,每当探测到传感器信号变化时,中断线就变为高电平。
SL0~SL3:
扫描线,用来扫描按键开关,传感器阵列和显示数字,这些可被编程或被译码。
RL0~RL7:
回送线,经过按键或传感器开关与扫描线联接,这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。
SHIFT:
换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。
CNTL/STB:
当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFORAM中。
OUTA3~OUTA0及OUTB3~OUTB0:
显示输出A口及B口,这两个口是16×4切换的数字显示。
这两个端口可被独立控制,也可看成一个8位端口。
BD:
空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。
VCC:
+5V电源输入线。
VSS:
地线输入线。
3.2.38259A芯片的内部结构及引脚
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
8259引脚图如图3.3,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;图3-2-38259引脚图
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表3.1所示:
表3.2.18259A中断矢量表
中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
矢量地址
20H
~
23H
24H
~
27H
28H
~
2BH
2CH
~
2FH
30H
~
33H
34H
~
37H
38H
~
3BH
3CH
~
3FH
说明
时钟
键盘
可用
可用
串行口
可用
可用
可用
新的一章要换页!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
第四章软件设计
4.1电子时钟部分程序流程框图
4.1.1主程序流程框图下面这个图的图标呢?
!
!
!
!
!
!
!
!
!
!
!
!
!
流程图也要有图的标号哈
4.1.2键扫子程序流程框图
4.1.3中断处理程序流程框图
4.2电子时钟总体程序
总程序见附录1
第五章心得体会
微机接口技术是一门应用性、综合性、实践性都较强的课程,通过本次课程设计过程,我基木熟悉和掌握了微机系统的软件、硬件设计的方法、设计步骤,是一次微机开发应用方面的初步训练;通过本次课程设计使我熟练掌握了微机系统与接口扩展电路的设计方法,并熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法.
这次的课程设计对我来说,是一次非常重要的锻炼,通过这次设计,我对所学的知识有了更深刻的了解和掌握,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
有了这次的设计经验,相信在以后的学习设计实践过程中,我可以做到更好。
回顾此次课程设计的过程,可以用“累并收获着”来概括。
通过本次设计,不但使我的专业知识得到巩固和开拓,而且能使我将所学与实践联系起来,认识到自身知识的缺漏,明确自己的努力的方向。
计算机技术的发展日新月异,其接口技术应用十分广泛,我不但要经常跟踪专业新技术、新动态,时刻走在时代的前列;还要注重积累经验,在此次设计中,积累一些通用俗语,才能使自己慢慢地融入专业之中,更快地进入工作角色:
此外,还要注重养成终身的学习习惯,扩大自己的知识面,才能促进自己不断进步。
参考文献
[1].戴梅馨,史嘉权编著.《微型计算机技术及应用》.第三版.北京:
清华大学出版社,2003:
[2].李顺增,吴国东,赵河明等编著.《微机原理及接口技术》.第二版.北京:
机械工业出版社,2006:
[3].孙德文编著.《微型计算机技术》.第四版.高等教育出版社,2001:
[4].赵明富.黄丽雯,李文杰等编著.《微机原理及接口技术实验》.第二版.重庆工学院电子信息与白动化学院出版,2002:
[5].侯伯亨,李伯成编著.《微机原理与接口技术》.第五版.西安电子科技大学出版社,2000:
附录
.MODEL
TINY
EXTRN
Display8:
NEAR,GetKeyA:
NEAR,GetKeyB:
NEAR
IO8259_0
EQU
0F000H
IO8259_1
EQU
0F001H
Con_8253
EQU
0E003H
T0_8253
EQU
0E000H
.STACK
200
.DATA
halfsec
DB
0
;0.5秒计数
Sec
DB
0
;秒
Min
DB
0
;分
hour
DB
0
;时
buffer
DB
8DUP(0)
;显示缓冲区,8个字节
buffer1
DB
8DUP(0)
;显示缓冲区,8个字节
bNeedDisplay
DB
0
;需要刷新显示
number
DB
0
;设置哪一位时间
bFlash
DB
0
;设置时是否需要刷新
.CODE
START:
MOV
AX,@DATA
MOV
DS,AX
MOV
ES,AX
NOP
mov
sec,0
;时分秒赋初值23:
58:
00
mov
min,58
mov
hour,23
MOV
bNeedDisplay,1
;显示初始值
CALL
Init8253
CALL
Init8259
CALL
WriIntver
STI
MAIN:
CALL
GetKeyA
;按键扫描
JNB
Main1
CMP
AL,0FH
;设置时间
JNZ
Main1
CALL
SetTime
Main1:
CMP
bNeedDisplay,0
JZ
MAIN
CALL
Display_LED
;显示时分秒
MOV
bNeedDisplay,0
;1s定时到刷新转速
Main2:
JMP
MAIN;循环进行实验内容介绍与测速功能测试
SetTime
PROC
NEAR
LEA
SI,buffer1
CALL
TimeToBuffer
MOV
Number,0
Key:
CMP
bFlash,0
JZ
Key2
LEA
SI,buffer1
LEA
DI,buffer
MOV
CX,8
REP
MOVSB
CMP
halfsec,0
JNZ
FLASH
MOV
BL,number
NOT
BL
AND
BX,07H
LEA
SI,buffer
MOV
BYTEPTR[SI+BX],10H
;当前设置位置产生闪烁效果
FLASH:
LEA
SI,buffer
CALL
Display8
MOV
bFlash,0
Key2:
CALL
GetKeyA
JNB
Key
CMP
AL,0EH
;放弃设置
JNZ
Key1
JMP
Exit
Key1:
CMP
AL,0FH
JZ
SetTime8
SetTime1:
CMP
AL,10
JNB
Key
;无效按键
CMP
number,0
JNZ
SetTime2
CMP
AL,3
;调整时的十位数
JNB
Key
MOV
buffer1+7,AL
JMP
SetTime7
SetTime2:
CMP
number,1
JNZ
SetTime3
CMP
buffer1+7,1
;调整时的个位数
JZ
SetTime2_1
CMP
AL,4
JNB
Key
SetTime2_1:
MOV
buffer1+6,AL
IN