8255并行接口应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8255并行接口应用
1.课程设计的目的
为了巩固《微型计算机技术》课程学到的相关知识,通过对本课程所学知识的综合运用,使学生融会贯通课程中所学的理论知识,加深对计算机系统各个部分的工作原理及相互联系的认识,加深对接口的理解,清晰地建立计算机系统的概念,培养学生进行微机应用系统硬件和软件开发的实践工作能力。

2.设计方案论证
2.1 芯片简介
Intel 8255是微机系统的中通用的可变成并行接口(Programmable Peripheral Interface)芯片,其中具有3个8位的并行I/O端口(PA、PB、PC)、3种工作方式,可以通过程序设计输入输出结构和工作方式。

2.1.1 8255内部结构
8255的内部由3个相互独立的数据结构端口—A端口、B—端口、C—端口及A组控制器、B组控制器组成,如图1所示。

并行接口芯片具有的功能:
(1)具有两个以上的输入/输出数据端口(锁存/缓冲);
(2)每个数据端口有与CPU用应答方式交换信息所必须的控制和状态信息;也有与外设交换信息所必需的控制和状态信息;
(3)通常每个数据端口还具有能用中断方式与CPU交换信息所必须的电路;
(4)具有进行片选和读写控制的电路;
(5)可编程(由程序来选择数据端口,数据传送方向,交换信息的方式等)。

2.1.1.1 三个独立的数据口
8255A的3个数据口分别是A端口、B端口、C端口,它们彼此独立,都是8位的数据口,用来完成和外设之间的信息交换。

3个口在使用上有所不同。

(1)A端口
A端口对应一个8位的数据输入锁存器和一个8位的数据输出锁存器和缓冲器。


沈阳大学
此,A端口适合用在双向的数据传输场合,不管是输入还是输出,都可以锁存。

(2)B端口和C端口
这两个口分别是由一个8位的数据输入缓冲器和一个8位的数据输出锁存器和缓冲器组成。

因此用B端口和C端口传送数据做输出端口时,数据信息可以实现锁存;用作出入端口时,则不能对数据实现锁存,这一点在使用中要注意。

在实际应用中,A端口和B端口通常作为独立的输入口和输出口,而C口常用来配合A端口和B端口的工作使用。

C端口分成两个4位的端口,这两个4位端口分别作为A端口和B端口的控制信号和输入状态信号使用。

图1 8255内部结构
沈阳大学
2.1.1.2A组控制电路和B组控制电路
控制电路分成A组控制和B组控制两组,A组控制电路控制A端口和C端口的高4位(PC4-PC7)。

B组控制电路控制B端口和C端口的低4位(PC0-PC3)。

这两组控制电路的作用:由它们内部的控制寄存器接收CPU输出的方式控制字,还接收来自读/写控制逻辑电路的读/写命令,根据控制命令决定A组和B组的工作方式和读/写操作。

2.1.1.3 读写控制逻辑电路
这部分电路是用来完成对8255A内部3个数据口的译码工作,由CPU的地址总线A0、A1和8255A的片选信号/CS和读信号/RD,写信号/WR组合后产生控制命令,并将产生的控制命令传送给A组和B组的控制电路,从而完成对数据信息的传输控制。

2.1.1.4 数据总线缓冲器
这是一个双向的、三态的8位数据总线缓冲器,是8255A和系统总线的相连的通道,用来传送输入/输出、CPU发出的控制字以及外设的状态信息。

总之,8255A与CPU之间的所有信息传输都要经过数据总线缓冲器。

2.1.2引脚功能
8255A采用DIP40的封装结构,引脚如图2所示,除第26脚+5V电源引脚和第7脚是地线引脚外,其他引脚分为两组。

图2 8255引脚图
沈阳大学
2.1.2.1 与CPU相连的引脚
RESET:芯片的复位信号,高电平时有效。

复位后把8255A内部的所有寄存器都清0,并将三个数据口自动设置为输入口。

CS:片选信号,低电平时有效,通常要求此引脚连接在地址总线(或地址总线译码电路)上。

当=0时,芯片被选中,CPU与8255A可以进行信息交换。

RD:读信号,低电平有效,与CPU的引脚相连接。

当=0,允许从8255A的三个端口中读取数据或读取外设的状态信息。

WR:写信号,低电平有效,与CPU的引脚相连接。

当=0,允许CPU向8255A的三个端口写入数据或者是写入控制字。

A1、A0:端口译码信号,由CPU地址总线或译码电路产生。

用来选择8255A内部的三个数据端口和一个控制端口的地址。

当A1A0=00时,选中A端口。

当A1A0=01时,选中B端口。

当A1A0=10时,选中C端口。

当A1A0=11时,选中控制端口。

其中对控制口只能进行写操作。

D7~D0:双向三态8位数据线,与系统的数据总线相连接。

A1、A0与读、写信号组合对个端口所执行的操作如表1所示。

表1 各端口执行的操作
CS RD WR A1 A0 操作数据传送方式
0 0 1 0 0 读端口A 端口A数据→数据总线
0 0 1 0 1 读端口B 端口B数据→数据总线
0 0 1 1 0 读端口C 端口C数据→数据总线
0 1 0 0 0 写端口A 数据总线数据→端口A
0 1 0 0 1 写端口B 数据总线数据→端口B
0 1 0 1 0 写端口C 数据总线数据→端口C
0 1 0 1 1 写控制口数据总线数据→控制口
沈阳大学
2.1.2.2 和外设端相连的引脚
PA7-PA0:A端口的I/O引脚,共8条,传输方向及功能有工作方式决定;
PB7-PB0:B端口的I/O引脚,共8条,传输方向及功能有工作方式决定;
PC7-PC0:C端口的I/O引脚,共8条,传输方向及功能有工作方式决定,用来连接外设或者作为控制信号。

2.1.3 8255A的控制字
2.1.
3.1 方式选择控制字(A10A=11)
方式选择控制字用来决定8255A的3 个数据端口各自的工作方式,格式如表2所示。

表2 8255A方式控制字
1 D6 D5 D4 D3 D
2 D1 D0
特征位
A组方式
00=方式0
01=方式1
1X=方式2
A出口
0=输出
1=输入
C口高4 位
0=输出
1=输入
B组方式
0=方式0
1=方式1
B口
0=输出
1=输入
C口低4位
0=输出
1=输入
2.1.
3.2 端口C置1/置0控制字(A1A0=11)
端口C常用作控制或应答信号,通过对8255A的控制口写入按位置位/复位控制字,可使C口的任何一个引脚的输出单独置1或置0。

格式如表3所示。

表3 C口按位置位/复位控制字格式
0 D6 D5 D4 D3 D2 D1 D0
特征位不用
位选择
000=C口0位—111=C口7位
0=复位
1=置位
沈阳大学
2.1.4 工作方式
8255A有3种工作方式,用户可以通过编程来设置。

方式0 简单输入/输出——查询方式:A,B,C三个端口均可。

方式1 选通输入/输出——中断方式:A,B两个端口均可。

方式2 双向输入/输出——中断方式:只有A端口才有。

工作方式的选择课通过向控制端口写入控制字来实现。

2.1.4.1 方式0——基本的输入/输出方式
适用于不需要应答的信号的简单I/O场合。

其基本的功能可概括如下:
(1)可具有两个8位端口(A、B)和两个4位端口(C口的上半部分和下半部分)。

(2)任何一个端口都可以设定为输入或输出,各端口的输、输出可构成16种组合。

(3)数据输出时可以锁存,输入时不锁存。

方式0的输入、输出时序图分别如图3,图4所示。

图3 方式0的输入时序图
图4 方式0的输出时序图
沈阳大学
2.1.4.2 方式1——选通输入/输出方式
输入或输出都通过应答信号实现,这是端口A和端口B用作数据口,端口C的部分引脚用作握手信号线与中断请求线。

数据口的输入、输出数据都能锁存。

方式1选通输入下对应的控制信号如图5所示。

图5 方式1选通输入下对应的控制信号
各应答信号的意义:
STB-数据选通输入信号,低电平有效,由外设输入。

IBF-输入缓冲期满信号,高电平有效,由8255输出的状态信号,表示输入锁存器已满,向外设指明不能在送入信号。

INTE-中断允许信号,是控制8255能否向CPU发中断请求信号,他没有外部引脚。

INTR-中断请求信号,高电平有效。

是8255A向CPU发出的请求中断信号,要求CPU服务。

方式1选通输出下A、B对应的控制信号如图6所示。

图6 选通输出下A、B对应的控制信号
沈阳大学
各应答信号的意义:
OBF-输出缓冲期满信号,输出,低电平有效。

表示CPU已输出数据到指定端口。

ACK-外设的回答信号,低电平有效,由外设送给8255A。

表示CPU送到指定端口的数据已被外设接受。

INTR-中断请求信号,高电平有效。

INTE-中断请求信号,高电平有效。

当该信号为“1”时,允许中断。

8255A方式1输入、输出的时序图分别如图7,图8所示。

图7 8255A方式1输入时序图
图8 8255A方式1输出的时序图
2.1.4.3 方式2——双向传输方式
只适用于A端口,一个8位的双向端口(A端口)和一个5位的控制端口(C端口),A端口的输入和输出都可以被锁存,这是PA7-PA0作为双向的数据总线,PC3-PC7用作A 端口的联络控制信号。

PC2-PC0可用作B端口的应答信号或做I/O线。

其主要功能课概括如下:
(1)有一个8位双向数据输入/输出端口A和一个5位控制信号端口C。

(2)输入、输出均可锁存。

(3) 5位控制信号端口C作为8位双向数据输入/输出端口A的控制/状态信号。

(4)工作方式2只适用于A口。

2.2 LED发光二极管简介
2.2.1 LED发光二极管的特点
它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。

发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。

当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。

不同的半导体材料中电子和空穴所处的能量状态不同。

当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。

常用的是发红光、绿光或黄光的二极管。

电压:LED使用低压电源,供电电压在6-24V之间,根据产品不同而异,所以它是一个比使用高压电源更安全的电源,特别适用于公共场所。

效能:消耗能量较同光效的白炽灯减少80% 适用性:体积很小,每个单元LED小片是3-5mm的正方形,所以可以制备成各种形状的器件,并且适合于易变的环境。

稳定性:10万小时,光衰为初始的50% 。

响应时间:其白炽灯的响应时间为毫秒级,LED灯的响应时间为纳秒级。

对环境污染:无有害金属汞。

颜色:发光二极管方便地通过化学修饰方法,调整材料的能带结构和禁带宽度,实现红黄绿蓝橙多色发光。

红光管工作电压较小,颜色不同的红、橙、黄、绿、蓝的发光二极管的工作电压依
次升高。

价格:LED的价格现在越来越平民化,因LED省电的特性,也许不久的将来,人们都会的把白炽灯换成LED灯。

现在,我国部分城市公路、学校、厂区等场所已换装万LED路灯、节能灯等。

2.2.2 LED的显示结构
它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。

发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N 型半导体之间有一个过渡层,称为PN结。

在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。

PN结加反向电压,少数载流子难以注入,故不发光。

这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。

当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。

共阳极和共阴极LED 的显示结构如图9所示。

图9 共阳极和共阴极LED显示器结构
沈阳大学
2.2.3 LED灯的工作原理
其发光原理跟激光的产生相似。

一个原子中的电子有很多能级,当电子从高能级向低能级跳变时,电子的能量就减少了,而减少的能量则转变成光子发射出去。

大量的这些光子就是激光了。

LED原理类似。

不过不同的是,LED并不是通过原子内部的电子跃变来发光的,而是通过将电压加在LED的PN结两端,使PN结本身形成一个能级(实际上,是一系列的能级),然后电子在这个能级上跃变并产生光子来发光的。

工作原理方案1,方案2分别如如图10,图11所示。

图10 LED显示器与同相驱动前接口
图11 LED显示器与反向驱动器接口
沈阳大学
3.设计的过程与分析
3.1 设计目的与要求
(1)、8255A的PB4-PB7连L1-L4(黄灯)
(2)、PC0-PC7连L5-L12。

(3)、L5-L8为红灯,L9-L12为绿灯。

(4)、CS与218-21F相连。

交通灯亮灭规律:设一十字路口,1、3为南北,2、4为东西。

初始红灯全亮,再1、3路口绿灯亮,2、4路口红灯亮,延迟一段时间后,1、3路口绿灯熄灭,而黄灯开始闪烁若干次,之后1、3路口红灯亮,同时2、4路口绿灯亮,延迟一段时间后2、4绿灯灭,黄灯闪烁若干次,再切换到1、3路口方向,之后重复以上过程。

提示:三个端口均工作于方式0,处于输出状态。

A端口地址218H;B端口地址219H;C 端口地址21AH;控制口地址21BH。

3.2 程序流程图
程序图如图12所示
图12 程序流程图
沈阳大学
3.3 程序清单
开关控制指示灯显示
MY8255_A EQU 0A860H;8255A口地址
MY8255_B EQU 0A861H;8255B口地址
MY8255_C EQU 0A862H;8255C口地址
MY8255_MODE EQU 0A863H;8255控制口地址
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,MY8255_MODE
MOV AL,82H
OUT DX,AL ;将控制字21BH写入8255控制口,A口方式0输出,B口方
式0输入,C口未用到。

A1: MOV DX,MY8255_B
IN AL,DX ;读8255 B口内容
MOV DX,MY8255_A
OUT DX,AL ;将前面读到的B口内容送到A口,即A口内容=B口内容
CALL BREAK ;调用子程序BREAK
JMP A1;跳转到A1
BREAK PROC NEAR ;BREAK子程序
MOV AH,1
INT 16H
JZ RETURN ;读按键字符,ZF=1,则返回;ZF=0,则AL=字符
MOV AX,4C00H
INT 21H;返回DOS
RETURN:RET
BREAK ENDP
CODE ENDS
END START
流水灯显示
MY8255_A EQU 0b860H;8255A口地址
MY8255_B EQU 0b861H;8255B口地址
MY8255_C EQU 0b862H;8255C口地址
MY8255_MODE EQU 0b863H;8255控制口地址
沈阳大学
DATA SEGMENT
LA DB ? ;留出1个字节
LB DB ? ;留出1个字节
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_MODE
MOV AL,80H
OUT DX,AL ;控制字21BH送入8255控制口,A口、B口都是方式0输出,
C口未用到。

MOV DX,MY8255_A
MOV AL,7FH
OUT DX,AL ;将218H送入A口
MOV LA,AL ;将218H送入LA存储单元
MOV DX,MY8255_B
MOV AL,0FEH
OUT DX,AL ;将219H送入B口
MOV LB,AL ;将219H送入LB存储单元
CALL DALLY
A1: MOV AL,LA
ROR AL,1 ;LA内容循环右移1次
MOV LA,AL
MOV DX,MY8255_A
OUTDX,AL ;将循环右移后的LA内容送A口,其目的是让A口连接的LED灯
依次向右循环点亮
MOV AL,LB
ROL AL,1 ;LB内容循环左移1次
MOV LB,AL
MOV DX,MY8255_B
OUTDX,AL ;将循环左移后的LB内容送B口,其目的是让B口连接的LED灯依次向左循环点亮CALL DALLY ;延时,让一个LED灯发光稳定之后再点亮另一个
CALL BREAK ;调用BREAK子程序,看是否有键按下
JMP A1 ;跳转到A1
DALLY: MOV CX,3FFH ;延时子程序
D1: MOV AX,0FFFFH
沈阳大学
D2: DEC AX
JNZ D2
LOOP D1
RET
BREAK PROC NEAR ;是否有键按下
MOV AH,06H
MOV DL,0FFH
INT 21H
JE RETURN ;若无,则转RETURN
MOV AX,4C00H
INT 21H ;返回DOS
RETURN:RET
BREAK ENDP
CODE ENDS
END START
4.设计体会
这次的微型计算机的课程设计完成了,这其中有成功的喜悦,也不乏有为取得那份成功而付出的汗水与艰辛,正所谓有失必有得。

为了这个课设付出了很多,由于之前的相关课程学习有所欠缺,很多知识都不是很熟悉,所以完成这次的课程设计有一定的困难,不过现在看来,课程设计的完成对我来说有不小的收获,一切当初看来没有任何头绪,困难重重的问题通过查阅资料,请教同学都能顺利的解决。

这使我更能认识到遇到困难坎坷是,只有坚持,想一切办法去解决才能够保持向前。

同时,在这次做课设的过程中我意识到化程序图是很有必要的,因为通过程序方框图,在做设计的过程中我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路。

我感觉这是这次做课程设计中最大的收获,我会将理论与实际相结合,来提高自己的实际动手能力和独立思考能力,积极地将这种体会与经验应用到以后的生活学习和工作中。

5.参考文献
[1]范立南.微型计算机原理及应用[M].沈阳:东北大学出版社,2001.11:28-67
[2]戴梅萼.微型计算机技术及应用[M].北京:清华大学出版社,2000.1:25-97
[3]齐志儒.汇编语言程序设计[M].沈阳:东北大学出版社,1995.12:45-60
[4]朱金钧.微型计算机原理及应用技术[M].西安:机械工业出版社,2005.5:36-77
[5]杨立.微型计算机原理与接口技术[M].北京:科学出版社,2008.8:230—254
沈阳大学
参考文献要列出3篇以上,格式如下:[1]谢宋和,甘勇.微机原理与接口技术[M].北京:北京大学出版社,1999.5:23-25 [1]单片机模糊控制系统设计与应用实例[M].北京:电子工业出版社, 1999.5:20-25(参考书或专著格式为:
著者.书名[M].版本(第1版不注).出版地:出版者,出版年月:引文所在页码)
[2]潘新民,王燕芳.微型计算机控制技术[M],第2版.北京:电子工业出版社, 2003.4:305-350
(1本书只能作为1篇参考文献,不能将1本书列为多个参考文献)
[3]范立南,谢子殿.单片机原理及应用教程[M].北京:北京大学出版社, 2006.1:123-130
[4] Newman W M, Sbroull R F. Principles of Interactive Computer Graphics[M]. New York: McGraw Hill, 1979.10:10-25
(参考期刊杂志格式为:
作者.论文题目[J].期刊名,出版年,卷号(期号):页码)(期刊名前不写出版地)
[6]Mastri A R. Neuropathy of diabetic neurogenic bladder[J]. Ann Intern Med, 1980, 92(2):316-318
[7]范立南,韩晓微,王忠石等.基于多结构元的噪声污染灰度图像边缘检测研究[J].武汉大学学报(工学版), 2003,49(3):45-49
[8] index.asp
(一般情况下不要用网址作为参考文献,如果用,最多1个)
注:[M]表示参考的是书籍;[J]表示参考的是学术期刊的论文;如果参考会议论文集中的论文用[C]。

要求:
全部打印在A4纸(二本),各级标题四号宋体加粗,正文文字小四号宋体,程序五号times new roman,字数3000字以上,15页以上。

严禁抄袭,如有雷同者,均按不及格论处
图及表格要有图注(在图的下方,居中,黑体5号字)及表注(在表的上方,居中,黑体5号字)
注:本页不用打印。

相关文档
最新文档