8255并行接口


8255并行接口


1  实验目的

1.  学习并掌握8255的工作方式及其应用。

2.  掌握8255典型应用电路的接法。

3.  掌握程序固化及脱机运行程序的方法。

2  实验设备

PC机一台,TD-PITE实验装置一套。

3  实验内容

1. 基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。

2. 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

3.输入输出实验。编写程序,输入4位开关K0-K3的值(0为断开,1为接通),并将其对应的数值以16进制形式在LED显示管进行显示。要求输入开关为0000时显示‘0’,输入开关为1111时,显示‘F’。

4  实验原理

4.31  8255内部结构及外部引脚图

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图4.31所示,8255工作方式控制字和C口按位置位/复位控制字格式如图4.32所示。

 

4.32  8255控制字格式

8255实验单元电路图如图4.33所示:

 

4.33  8255实验单元电路图

4.5.5  实验步骤

1.  基本输入输出实验

本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:

1)实验接线图如图4.34所示,按图连接实验线路图。

2)编写实验程序,经编译、连接无误后装入系统。

3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。

5)将短路跳线JDBG的短路块短接到RUN端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。

6)实验完毕后,请将短路跳线JDBG的短路块短接到DBG端。

 

4.34  8255基本输入输出实验接线图

 

实验程序清单(A82551.ASM)

SSTACK	SEGMENT STACK
		DW 32 DUP(?)
SSTACK	ENDS

CODE		SEGMENT
		ASSUME CS:CODE

START:	MOV DX, 0646H      ;8255 控制寄存器端口地址0646H,IOY1
		MOV AL, 90H	     ;1001 0000A口入B口出
		OUT DX, AL		
AA1:		MOV DX, 0640H    	 ;8255计数器A口地址
		IN  AL, DX
		CALL DELAY
		MOV DX, 0642H    	 ;8255计数器B口地址

		OUT DX, AL
		JMP AA1
DELAY:	PUSH CX
		MOV CX, 0F00H
AA2:		PUSH AX
		POP  AX
		LOOP AA2
		POP  CX
		RET
CODE		ENDS
		END  START

 

2.  流水灯显示实验

使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4.35所示。实验步骤如下所述:

1)按图4.35连接实验线路图。

2)编写实验程序,经编译、链接无误后装入系统。

3)运行程序,观察LED灯的显示,验证程序功能。

4)自己改变流水灯的方式,编写程序。

5)固化程序并脱机运行。

 

4.35  8255流水灯实验接线图

 

实验程序清单(A82552.ASM)


SSTACK	SEGMENT STACK
		DW 32 DUP(?)
SSTACK	ENDS

CODE		SEGMENT
		ASSUME CS:CODE

START:	MOV DX, 0646H      ;8255 控制寄存器端口地址0646H,IOY1
		MOV AL, 80H		;1000 0000A口出B口出
		OUT DX, AL
		MOV BX, 8001H

AA1:		MOV DX, 0640H    	 ;8255计数器A口地址
		MOV AL, BH         ;80H
		OUT DX, AL   
		ROR BH, 1			;循环右移
		MOV DX, 0642H    	 ;8255计数器B口地址
		MOV AL, BL
		OUT DX, AL
		ROL BL, 1 		;循环左移
		CALL DELAY
		CALL DELAY
		JMP AA1

DELAY:	PUSH CX
		MOV CX, 0F000H

AA2:		PUSH AX
		POP  AX
		LOOP AA2
		POP  CX
		RET

CODE		ENDS
		END  START

 

 

3.  输入输出实验

提示:使8255的A口为输入接K0-K3,B口为输出接LED显示A-DP,C口为输出接LED的X1-X6。实验接线图请自行设计连接,并编写程序。

其中,X1-X6为LED的位选择,低电平选中。

LED显示字型代码可参考如下定义:

DATA SEGMENT

TAB DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H

 DB  7FH,6FH,77H,7CH,39H,5EH,79H,71H

    DATA ENDS

实验步骤如下所述:

1)设计并连接实验线路图。

2)编写实验程序,经编译、链接无误后装入系统。

3)运行程序,观察LED灯的显示,验证程序功能。

实验程序清单(A82553.ASM)

DATA SEGMENT 
TAB DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H
	 DB  7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS

SSTACK	SEGMENT STACK
		DW 32 DUP(?)
SSTACK	ENDS

CODE		SEGMENT
		ASSUME CS:CODE,DS:DATA

START:	MOV AX,DATA     
		MOV DS,AX
		MOV BX,OFFSET TAB			;取偏移地址
		MOV DX, 0646H				;控制口
		MOV AL, 90H;				;初始化1001 0000,A口输入,B口输出		
		OUT DX, AL	
			
AA1:		MOV AL,0FEH				;1111 1110
		MOV DX,0640H				;A口
		IN  AL, DX
		CALL DELAY
		AND AL,0FH
		XLAT						;查表,使得AL←((BX)+(AL))
		MOV DX, 0642H				;B口
		OUT DX, AL
		CALL DELAY
		JMP AA1

DELAY:	PUSH CX					;延时
		MOV CX, 0F00H

AA2:		PUSH AX
		POP  AX
		LOOP AA2
		POP  CX
		RET

CODE		ENDS
		END  START

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花月诗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值