《并口控制器应用实验(共7页).doc》由会员分享,可在线阅读,更多相关《并口控制器应用实验(共7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 8255并口控制器应用实验 1 实验目的 (1) 掌握8255的工作方式及应用编程。 (2) 掌握8255的典型应用电路接法。 2 实验设备 PC微机一台、TD-PIT+ 实验系统一套。 3 实验内容 (1) 基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。 (2) 流水灯显示实验。编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。 4 实验原理 并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同
2、时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示。 图1 8255的内部结构及引脚(a)工作方式控制字(b)C口按位置位/复位控制字图2 8255控制字格式5 实验说明及步骤 (1) 基本输入输出实验 本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号
3、接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。参考程序流程如图3所示。 图3 8255并口应用实验(1)参考程序流程图图4 8255并口应用实验(1)参考接线图实验步骤:a) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 b) 参考图4所示连接实验线路。 c) 首先运行CHECK程序,查看I/O空间始地址。 d) 利用查出的地址编写程序,然后编译链接。 e) 运行程序,拨动开关,看数据灯显示是否正确。 ;8255基本输入输出实验代码;*根据查看端口资源修改下列符号值*IOY0 EQU 9C00H ;片选IOY0对应的端口始地址;*MY8255_
4、A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,82H ;工作方式0,A口输出,B口输入 OUT DX,ALLOOP1: MOV DX,MY8
5、255_B ;读B口 IN AL,DX MOV DX,MY8255_A ;写A口 OUT DX,AL MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21HCODE ENDS END START(2) 流水灯显示实验 首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。参考实验程序流程如图5所示。 图5 8255并口应用实验(2)参考程序流程图图6 8255并口应用实验(2)参考接线图实验步骤: a) 确认从
6、PC机引出的两根扁平电缆已经连接在实验平台上。 b) 首先运行CHECK程序,查看I/O空间始地址。 c) 利用查出的地址编写程序,然后编译链接。 d) 参考图6所示连接实验线路。 e) 运行程序,看数据灯显示是否正确。 ;8255流水灯显示实验代码;*根据查看端口资源修改下列符号值*IOY0 EQU 9C00H ;片选IOY0对应的端口始地址;*MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03
7、H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT LA DB ? ;定义数据变量LB DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX, DATA MOV DS, AX MOV DX,MY8255_MODE ;定义8255工作方式 MOV AL, 80H ;工作方式0,A口和B口为输出 OUT DX, AL MOV DX,MY8255_A ;写A口发出的起始数据 MOV AL, 80H OUT DX, AL MOV LA,
8、 AL MOV DX,MY8255_B ;写B口发出的起始数据 MOV AL, 01H OUT DX, AL MOV LB, ALLOOP1: CALL DELAY MOV AL,LA ;将A口起始数据右移再写入A口 ROR AL, 1 MOV LA, AL MOV DX, MY8255_A OUT DX, AL MOV AL,LB ;将B口起始数据左移再写入B口 ROL AL, 1 MOV LB, AL MOV DX, MY8255_B OUT DX, AL MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21HDELAY PROC NEAR ;软件延时子程序 PUSH CX PUSH AX MOV CX, 3FFHD1: MOV AX, 0FFFFHD2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RETDELAY ENDPCODE ENDSEND START专心-专注-专业