接口技术.docx
《接口技术.docx》由会员分享,可在线阅读,更多相关《接口技术.docx(12页珍藏版)》请在冰豆网上搜索。
接口技术
接口与通信
报告
学号:
姓名:
提交日期:
2010-12-9
成绩:
东北大学秦皇岛分校
1、设计目的
1.通过本次课程设计要掌握此三种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
2.熟悉掌握8086/88指令系统,以及理解掌握定时/计数器和中断的使用方法。
3.掌握微机原理实验系统的使用,掌握控制数码管显示的程序。
4.掌握一定的汇编语言知识,培养自己的动手操作能力。
二、设计要求
能够设定当前的日期及时间,能够显示当前的日期及时间,时间显示到秒。
键盘识别定时器、中断、数码显示,汇编语言编程。
利用8253可编程定时/计数器、8259中断控制器、8255可编程并行接口芯片和七段数码管设计一个电子钟的电路,并编制一段程序使的该电子钟能正常运行。
并且能用手动控制输入的方法修改电子时钟的时间
三、设计环境(用到的仪器和设备,例如各种芯片)
8253定时器:
用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。
8255并口:
用做接口芯片,和小键盘相连。
8259中断控制器:
用于产生中断。
LED:
六个LED用于显示时、分、秒值。
4、设计思想
本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。
在此系统中,8253可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。
通道2工作在3方式下,提供计算一秒的中断请求信号。
此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。
其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。
8259接收到信号后,产生中断信号送CPU处理。
具体方法
1.先在数据段开辟6个存储单元,用来存放时、分、秒的信息。
这6个存储单元分别对应时、分、秒的十位和个位。
调用子程序的清屏部分。
2.在主程序中分别对8253、8259、8255进行初始化编程。
8253的计数器0工作在方式3下,CLK0接19.2K的脉冲频率,经过19200次分频,在OUT0端口输出频率为1Hz的方波,产生秒脉冲。
3.8255的A口工作在方式0输入,B口工作在方式0输出,为基本的输入输出方式。
这部分为手动修改时间部分。
4.在中断服务程序中对中断次数进行统计。
当产生1次中断时,将秒的个位加1,判断是否到10,如到了则十位加1,个位清零;再判断十位是否到6,如到了则十位清零,分的个位加1,同理对分、时做相应的处理。
该电子钟为12进制的。
5.八段数码管显示程序做为主程序。
调用延时程序并不断将时、分、秒对应存储单元的内容分别取出,送到相应的数码管显示出来。
8259芯片:
8259引脚图如下:
8259一共有28条引脚,其中
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表所示:
中断序号
0
1
2
3
4
5
67
7
功能调用
20H
24H
28H
2CH
30H
34H
38H
3CH
矢量地址
20H--23H
24H--27H
28H--2BH
2CH--2FH
30H--33H
34H--37H
38H--3BH
3CH--3FH
说明
时钟
键盘
可用
可用
串行口
可用
可用
可用
8255芯片:
方式0—基本输入/输出方式
方式1—选通输入/输出方式
方式2—双向选通输入/输出方式
8255一共有40条引脚,其中
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;
RESET——复位输入信号
8255端口地址
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
5、设计内容(必须包括一些硬件原理图,汇编程序代码,设计的结果截屏,设计流程图等图)
键盘扫描程序流程图:
汇编程序代码
codesegment
assumecs:
code,ds:
code
org100h
start:
pushcs
popds
movax,3
int10h
movax,0b800h
moves,ax
cld
Q0:
leadx,Tips;提示输入时间
movah,9
int21h
;输入当前时、分、秒值
callinput_bcd
movHH,al
movax,0e3ah;':
'
int10h
callinput_bcd
movMM,al
movax,0e3ah;':
'
int10h
callinput_bcd
movdh,al
movch,HH
cmpch,23H
jaQ1
movcl,MM
cmpcl,59H
jaQ1
cmpdh,59H
jbeQ2
Q1:
leadx,Err
movah,9
int21h
jmpQ0
Q2:
movah,3
int1ah
callxssj
movah,4ch
int21h
input_bcd:
movcl,4
callkey
shlal,cl
movdl,al
callkey
addal,dl
ret
key:
movah,0
int16h
cmpal,'0'
jbkey
cmpal,'9'
jakey
movah,0eh
int10h
subal,'0'
ret
xssj:
movdi,(80*10+30)*2
T1:
movah,04;CX=2009DX=0222
int1ah;读取日期
;出口参数:
CX=年,DX=月/日
moval,ch;显示年
calldisp
moval,cl
calldisp
moval,'-'
stosb
moval,0ah;绿色
stosb
moval,dh;显示月
calldisp
moval,'-'
stosb
moval,0ah;绿色
stosb
moval,dl;显示日
calldisp
moval,20h
stosb
moval,0ah;绿色
stosb
movah,02;CX=1252DX=0300
int1ah;读取当前时间
;出口参数:
CX=时/分;DH=秒
moval,ch;显示时
calldisp
moval,':
'
stosb
moval,0ah;绿色
stosb
moval,cl;显示分
calldisp
moval,':
'
stosb
moval,0ah;绿色
stosb
moval,dh;显示秒
calldisp
movah,01
int16h;读键盘
jzxssj;无字符输入,继续显示时间
movah,0
int16h
cmpal,1bh
jnzxssj
ret
disp:
pushcx
movah,al
movcx,4
shral,cl
andal,0fh
oral,30h
stosb
moval,0ah;绿色
stosb
moval,ah
andal,0fh
oral,30h
stosb
moval,0ah;绿色
stosb
popcx
ret
Tipsdb'InputCurrentTime'
db0dh,0ah,'HH:
MM:
SS$'
Errdb0dh,0ah,'InputError!
',0dh,0ah,'$'
HHdb0
MMdb0
codeends
endstart
运行结果如下:
6、总结体会
在该电子时钟的设计过程中,要使每一个单独的模块完成自己的子任务,同时还要和主程序匹配,例如:
通过8255A,CPU可直接同外设相连接,其负责CPU和外设之间的数据传送。
8259A可管理8级优先级中断源,通过开关,最多可管理64级优先权的中断源。
8253可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。
通道2工作在3方式下,提供计算一秒的中断请求信号。
在编写程序时,经常性的调试运行、修改完善。
在这里我仔细的翻看了许多资料,掌握了如何使用8253,8255和8259,如何去接他们的接口,并且如何写他们的接口程序。
在电子时钟的设计实现过程中,很多理论并不能拿来直接为我们所用,必须考虑到客观条件,根据已有的条件进行调整完善,在设计过程中注意到模块分解使得整个系统的实现难度得以降低,逻辑性也更强。
作为一个基础性的硬件实现系统,相信该电子时钟的实现会为许多新型实用系统提供理论与实践的技术支持。
此次设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。
它不仅加深了我对知识的理解,还让我感受到了设计电路的乐趣。
在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,因此对我来说,这次作业是非常有意义的。