8255微机实验
- 格式:doc
- 大小:1.88 MB
- 文档页数:6
电子信息工程系实验报告课程名称:微机原理与接口技术实验项目名称:8255并行接口流水灯实验 实验时间:2009.12班级: 姓名: 学号:一、实 验 目 的:(1)掌握8255的工作方式及应用编程。
(2)掌握8255的典型应用电路接法。
二、实 验 设备:PC 机一台,实验箱及外部线路一套。
三、实验内容:编写程序,使8255的A 口作为LED 灯的输出,实现8位数据灯的相对循环显示。
(思考:用B 口的一位作为输入,控制LED 灯的循环方向。
)四、实 验 原理:INTEL8255是一种通用的可编程并行I /O 接口芯片,是专为INTEL 公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A 口和B 口内具有中断控制逻辑,在外设与CPU 之间可用中断方式进行信息交换。
8255能与许多外部设备连接,例如:键盘、显示器、打印机等。
1、8255芯片特性(1)一个并行输入/输出的LSI 芯片,多功能的I/O 器件,可作为CPU 总线与外围的接口.(2)具有24个可编程设置的I/O 口,即使3组8位的I/O 口为PA 口,PB 口和PC 口.它们又可分为两组12位的I/O 口,A 组包括A 口及C 口(高4位,PC4~PC7),B 组包括B 口及C 口(低4位,PC0~PC3).A 组可设置为基本的I/O 口,闪控(STROBE)的I/O 闪控式,双向I/O3种模式。
2、8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU 进行通讯;/CS=1时,8255无法与CPU 做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU 从8255读取信息或数据。
微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。
2、掌握8255的典型应用电路接法。
二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。
2、用PC端口位控制法控制LED灯,依次点亮LED灯。
四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。
最新8255实验报告实验目的:本次实验旨在熟悉并掌握Intel 8255A可编程并行接口的功能及其编程方法。
通过实验,学习如何利用8255A实现并行数据的输入输出操作,并了解其在微型计算机系统中的应用。
实验设备与器件:1. 微机实验箱及接口电路板2. Intel 8255A 可编程并行接口芯片3. 8位微处理器(如8086)4. 示波器、逻辑笔等测试工具实验原理:Intel 8255A是一种3态可编程并行输入/输出接口芯片,具有三个8位并行I/O端口:端口A、端口B和端口C。
端口A和端口B可用于输入输出,端口C分为两个4位端口C1和C2,可分别进行输入输出操作。
8255A通过控制字寄存器(控制字1和控制字2)来设置工作模式和端口方向。
实验步骤:1. 初始化8255A:通过编程设置控制字寄存器,定义端口A、B的工作模式(例如,端口A为输入,端口B为输出)和端口C的配置(C1和C2的输入输出模式)。
2. 编写程序代码,实现端口A的数据读取和端口B的数据输出。
3. 使用示波器检测端口C的输入输出信号,验证其功能。
4. 通过改变控制字寄存器的设置,观察并记录端口工作模式变化后的行为。
实验结果:1. 端口A成功读取了外部输入的二进制数据,并在显示器上显示出来。
2. 端口B按照程序设定输出了相应的控制信号,通过LED灯或其他指示设备得到了验证。
3. 端口C1和C2在不同的控制字设置下,能够正确地执行输入输出操作,信号波形通过示波器得到了确认。
实验结论:通过本次实验,我们成功地对Intel 8255A可编程并行接口进行了编程和操作,实现了并行数据的输入输出。
实验结果表明,8255A在并行接口通信中具有重要作用,能够提高数据传输效率,适用于需要高速并行数据传输的场合。
实验四8255控制交通灯实验一、实验目的与要求1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。
学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。
2、连接线路验证8255的功能,熟悉它的使用方法。
四、实验原理图五、实验步骤1、连线说明:B4区:CS、A0、A1——A3区:CS1、A0、A1B4区:JP56(PA口)——G6区:JP652、观察实验结果,是否能看到模拟的交通灯控制过程。
六、演示程序.MODELTINYCOM_ADDEQU0F003HPA_ADDEQU0F000HPB_ADDEQU0F001HPC_ADDEQU0F002H.STACK100.DATALED_DataDB01111101B;东西绿灯,南北红灯DB11111101B;东西绿灯闪烁,南北红灯DB10111101B;东西黄灯亮,南北红灯DB11010111B;东西红灯,南北绿灯DB11011111B;东西红灯,南北绿灯闪烁DB11011011B;东西红灯,南北黄灯亮.CODESTART:MOVAX,@DATAMOVDS,AXNOPMOVDX,COM_ADDMOVAL,80H;PA、PB、PC为基本输出模式OUTDX,ALMOVDX,PA_ADD;灯全熄灭MOVAL,0FFHOUTDX,ALLEABX,LED_DataSTART1:MOVAL,0XLATOUTDX,AL;东西绿灯,南北红灯CALLDL5SMOVCX,6START2:MOVAL,1XLATOUTDX,AL;东西绿灯闪烁,南北红灯CALLDL500msMOVAL,0XLATOUTDX,ALCALLDL500msLOOPSTART2MOVAL,2;东西黄灯亮,南北红灯XLATOUTDX,ALCALLDL3SMOVAL,3;东西红灯,南北绿灯OUTDX,ALCALLDL5SMOVCX,6START3:MOVAL,4;东西红灯,南北绿灯闪烁XLATOUTDX,ALCALLDL500msMOVAL,3XLATOUTDX,ALCALLDL500msLOOPSTART3MOVAL,5;东西红灯,南北黄灯亮XLATOUTDX,ALCALLDL3SJMPSTART1DL500msPROCNEARPUSHCXMOVCX,60000DL500ms1:LOOPDL500ms1POPCXRETDL500msENDPDL3SPROCNEARPUSHCXMOVCX,6DL3S1:CALLDL500msLOOPDL3S1POPCXRETENDPDL5SPROCNEARPUSHCXMOVCX,10DL5S1:CALLDL500msLOOPDL5S1POPCXRETENDSTART七、实验扩展及思考1、如何对8255的PC口进行位操作?控制字最高位写0,中间三位无关取0,接着三位是编码了对应的C口哪几位,最低一位为0是复位,为1是置位。
《微机原理及应用技术》课程实验报告实验五可编程并行I/O接口8255【预习内容】1.怎样选中可编程I/O接口?怎样实现I/O端口的寻址?8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。
通过地址/数据总线,按照指定地址进行读写操作直接选中8255。
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片。
CPU与外设交换的数据是以字节为单位进行的。
因此一个外设的数据端口含有8位。
而状态口和命令口可以只包含一位或几位信息,所以不同外设的状态口允许共用一个端口,命令口也可共用。
数据信息、状态信息和控制信息的含义各不相同,按理这些信息应分别传送。
但在微型计算机系统中,CPU通过接口和外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送,且将状态信息作为输入数据,控制信息作为输出数据,于是三种信息都可以通过数据总线传送了。
但要注意,这三种信息被送入三种不同端口的寄存器,因而能实施不同的功能。
CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,也需要由译码电路来形成I/O端口地址。
I/O端口的编址方式有两种·存储器映象寻址方式·I/O指令寻址方式2.8255A接口芯片内含几个I/O端口?它们的名称分别是?这些I/O口地址有何特点?三个数据端口,三种工作方式A口可工作于方式0、方式1和方式2中的任一种B口可工作于方式0和方式1,但不能工作于方式2C口只能工作于方式08位数据端口:A口、B口、C口A口:PA7~PA0B口:PB7~PB0C口:PC7~PC0连接外部设备A口与B口为一个8位的输入口或输出口C口单独作为一个8位的输入口或输出口配合A口和B口使用,作为控制信号和状态信号3.8255A有几个控制字?怎样设置?它有两个控制字,一个是方式选择控制字,一个是对C口进行置位或复位控制字。
实验二8255A并行接口应用一、实验目的1.掌握8255A的功能及方式0、1的实现2.熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。
3.了解七段数码管显示数字的原理。
4.掌握同时显示多位数字的技术。
二、8255应用小结1.8255的工作方式一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。
方式0是基本型输入/输出。
这种方式和外设交换数据时,8255端口与外设之间不使用联络线。
方式1为选通型输入/输出。
用这种方式和外界交换数据时,端口和外设之间要有联络信号。
方式2是双向数据传送,仅A口有这项功能。
当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。
2. 工作方式选择字8255工作方式选择字共8位(如图),存放在8255控制寄存器中。
最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。
3.C口置/复位控制字8255的C口可进行位操作,即:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)。
C口置/复位字共8位,各位含义如下:3.8255A的控制信号与传输动作的对应关系4.命令字与初始化编程8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:①向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。
②当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。
这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。
注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。
实验报告
实验名称8255A小键盘实验
课程名称计算机接口技术综合实验
院系部:电气与电子工程学院专业班级:电气1202
学生姓名:蔡昆仑学号:1121140202
同组人: 景宁、杜诗月、贺紫渊、霍思佳实验台号:指导教师:魏振华成绩:
实验日期: 2015年5月30日
华北电力大学
一、实验目的
(1)掌握8255A编程原理。
(2)了解键盘结构,学会读取键盘输入的方法。
二、实验内容
用8255A来实现一个小键盘的输入识别(用行扫描法或反转法均可)。
三、仪器用具
四、实验接线图(或原理图)
(1)识别键盘上的闭合键,通常采用行扫描法或行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如果列值中有某位为低电平,则表明行列交点处的键被按下,否则扫描下一行,直到扫完全部的行线为止。
行反转法识别闭合键时,要将行线接一个并行口,先让它工作在输出方式,将列线也接到—个并行口,先让它工作在输人方式。
程序使CPU 通过输出端口往各行线上全部送低电平,然后读入列线的值。
如果此时有某一键被按下,则必定会使某一列线值为0。
然后,程序再对两个并行端口进行方式设置,使行线工作在输入方式,列线工作在输出方式.并且将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。
这样,当一个键被按下时,必定可以读取一对唯一的行值和列值。
(2)在程序设计时,将各个键对应的代码(列值,行值)放在一个表中,程序通过查表来确定具体按下的为哪一个键。
(3) 参考流程
键盘扫描程序参考流程 键盘主程序参考流程
五、程序设计:要求有流程图及程序代码,程序代码中有必要的注释。
DATA SEGMENT(对data进行初始化设定)
TABLE1 DW 0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H
DW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H
DW 0401H,0402H,0404H,0408H,0410H,0420H,0440H,0480H CHAR DB 'CDEFBA9845673210 RPMG'
MESS DB 'PRESS A KEY ON THE SMALL KEYBOARD!',0AH,0DH
DB 'IT WILL DISPLAY ON THE SCREEN ! ',0AH,0DH
DB 'PRESS R KEY, RETURN TO DOS !',0AH,0DH,'$' IOPORT EQU 0EC00H-200H
IO8255A EQU IOPORT+218H ;8255A口
IO8255B EQU IOPORT+219H ;8255B口
IO8255C EQU IOPORT+21BH ;8255控制端口
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MESS
MOV AH,09
INT 21H ;显示提示信息
Q1:
MOV AL,82H ;送8255控制字,A出口,B入口
MOV DX,IO8255C
OUT DX,AL
Q2:
MOV AL,00
MOV DX,IO8255A
OUT DX,AL ;A口输出行值
MOV DX,IO8255B
IN AL,DX ;B口读入列值
AND AL,0FFH
CMP AL,0FFH
JZ Q2
MOV BL,AL ;有键入,保存键值
MOV DI,0040 ;延迟,等待释放
BB:
MOV CX,6000H
AA:
LOOP AA
DEC DI
JNZ BB
MOV DX,IO8255C ;送8255控制字,B口出,A口入
MOV AL,90H
OUT DX,AL
MOV DX,IO8255B
MOV AL,BL
OUT DX,AL ;B口输出列值
MOV DX,IO8255A
IN AL,DX ;A口读入行值
CMP AL,0FFH
JNZ KEYN
KEYN:
PUSH AX ;去抖
MOV DX,IO8255A
RELEA:
IN AL,DX
CMP AL,0FFH
JNZ RELEA
POP AX
MOV AH,BL ;AH=列值,BH=行值
NOT AX ;键值AX求反
MOV SI,OFFSET TABLE1 ;送键值表指针
MOV DI,OFFSET CHAR ;送字符表指针
MOV CX,24
Q4:
CMP AX,[SI] ;键值查表
JZ Q5
ADD SI,02 ;未查到,修改表指针
INC DI
LOOP Q4
JMP Q1
Q5:
MOV DL,[DI] ;查到,显示该字符
CMP DL,'R'
JZ Q6
MOV AH,02H
INT 21H
JMP Q1
Q6:
MOV AX,4C00H ;键值='R',返回DOS
INT 21H
CODE ENDS
END START
六、实验方法与步骤
(1)基于图再完成下述连接,即
将8255A的CS端与218~21F插孔相连,此时:
8255A的端口A地址为218H
端口B地址为219H
端口C地址为21AH
控制口地址为21BH
(2)编写程序,使得在小键盘上按键后,微机屏幕上有相应字符显示出来。
七、实验结果
八、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。
)。