实验二 8255A并行接口实验
实验二 8255A并行接口实验
实验二 8255A并行接口实验(一)一实验目的1、掌握通过8255A并行口传输数据控制LED发光二极管的亮灭;进一步熟悉软件编程环境。
二实验设备1、微机系统一套;2、TPC-3型微机接口实验系统一台;3、导线若干。
三实验内容1、基础部分:用8255A的A端口控制8个LED发光二极管的亮和灭(端口输出为1则亮,输出为0则灭)。
其中L0―L2为东西方向,L5―L7为南北方向、L3-L4不用,PA口与相应的发光二极管驱动信号输入端相连,输入端为1时发光二极管亮。
接线如图4-5所示。
图4-5编制程序,通过8255A控制发光二极管,以模拟交通灯的管理。
2.提高部分:利用开关K0,K1的控制,以模拟几种交通灯的管理,具体要求为:K0K1灯控制00正常运行01南北路口绿灯亮、东西路口红灯亮10东西路口绿灯亮、南北路口红灯亮3.如果模拟车流量大小来来决定红绿灯交通时间,请问你有什么解决办法。
如果能解决请加以解释并编程调试。
四、编程提示:1.要完成本实验,首先必须了解交通灯的亮灭规律。
设有一个十字路口,南北、东西方向初始态为四个路口的红灯全亮。
之后,南北路口的绿灯亮,东西路口的红灯亮,南北路口方向通车。
延迟一段时间后,南北路口的绿灯熄灭,而南北路口的黄灯开始闪烁。
闪烁8次后,南北路口的红灯亮,同时东西路口的绿灯亮,东西路口方向开始通车。
延迟一段时间后,东西路口的绿灯熄灭,而黄灯开始闪烁。
闪烁苦干次后,再切换到南北路口方向。
之后,重复上述过程。
2.程序中应设定好8255A的工作模式,使三个端口均工作于方式0,并处于输出态3.8255A的A端口地址为:288HB端口地址为:289HC端口地址为:28AH控制口地址为:28BH五、实验要求:1.做好实验预习和准备工作,并写出预习报告(要求写出实验的流程图及程序),熟练掌握8255A编程原理及编程方法。
2.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。
8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告
计算机与信息工程学院设计性实验报告一、实验目的:1、掌握8255A编程原理。
2、了解键盘电路的工作原理。
3、掌握键盘接口电路的编程方法。
二、实验设备:EL-8051-III型单片机实验箱三、实验原理:1、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
本实验例程采用的是行反转法。
行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。
这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。
2、程序设计时,要学会灵活地对8255A的各端口进行方式设置。
3、程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。
实验题目利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。
四、实验步骤:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。
五、实验电路:六、程序框图T8.ASM七、参考程序:T8.ASMNAME t8 ;8255键盘实验PA EQU 0CFA0HPB EQU PA+1PC0 EQU PB+1PCTL EQU PC0+1CSEG AT 4000HLJMP STARTCSEG AT 4100HSTART: MOV 42H,#0FFH ;42H中放显示的字符码,初值为0FFH STA1: MOV DPTR,#PCTL ;设置控制字,ABC口工作于方式0;AC口输出而B口用于输入MOV A,#82HMOVX @DPTR,ALINE: MOV DPTR,#PC0 ;将字符码从C口输出显示MOV A,42HCPL AMOVX @DPTR,AMOV DPTR,#PA ;从A口输出全零到键盘的列线MOVX @DPTR,AMOV DPTR,#PB ;从B口读入键盘行线值MOVX A,@DPTRMOV 40H,A ;行线值存于40H中CPL A ;取反后如为全零;表示没有键闭合,继续扫描JZ LINEMOV R7,#10H ;有键按下,延时10MS去抖动DL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0MOV DPTR,#PCTL ;重置控制字,让A为输入,BC为输出 MOV A,#90HMOVX @DPTR,AMOV A,40HMOV DPTR,#PB ;刚才读入的行线值取出从B口送出MOVX @DPTR,AMOV DPTR,#PA ;从A口读入列线值MOVX A,@DPTRMOV 41H,A ;列线值存于41H中CPL A ;取反后如为全零JZ STA1 ;表示没有键按下MOV DPTR,#TABLE ;TABLE表首地址送DPTRMOV R7,#18H ;R7中置计数值16MOV R6,#00H ;R6中放偏移量初值TT: MOVX A,@DPTR ;从表中取键码前半段字节,行线值与实CJNE A,40H,NN1 ;际输入的行线值相等吗?不等转NN1INC DPTR ;相等,指针指向后半字节,即列线值MOVX A,@DPTR ;列线值与实际输入的列线值CJNE A,41H,NN2 ;相等吗?不等转NN2MOV DPTR,#CHAR ;相等,CHAR表基址和R6中的偏移量MOV A,R6 ;取出相应的字符码MOVC A,@A+DPTRMOV 42H,A ;字符码存于42HBBB: MOV DPTR,#PCTL ;重置控制字,让AC为输出,B为输入MOV A,#82HMOVX @DPTR,AAAA: MOV A,42H ;将字符码从C口送到二极管显示MOV DPTR,#PC0CPL AMOVX @DPTR,AMOV DPTR,#PA ;判断按下的键是否释放CLR AMOVX @DPTR,AMOV DPTR,#PBMOVX A,@DPTRCPL AJNZ AAA ;没释放转AAAMOV R5,#2 ;已释放则延时0.2秒,减少总线负担DEL1: MOV R4,#200DEL2: MOV R3,#126DEL3: DJNZ R3,DEL3DJNZ R4,DEL2DJNZ R5,DEL1JMP START ;转STARTNN1: INC DPTR ;指针指向后半字节即列线值NN2: INC DPTR ;指针指向下一键码前半字节即行线值INC R6 ;CHAR表偏移量加一DJNZ R7,TT ;计数值减一,不为零则转TT继续查找JMP BBBTABLE:DW 0FE06H,0FD06H,0FB06H,0F706H;TABLE为键值表,每个键位占 DW 0BF06H,07F06H,0FE05H,0FD05H; 两个字节,第一个字节为行 DW 0EF05H,0DF05H,0BF05H,07F05H ;线值,第二个为列线值DW 0FB03H,0F703H,0EF03H,0DF03H;CHAR: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;字符码表DB 0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,13HDB 14H,15H,16H,17HEND八、实验小结行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行,然后对照表格,输出对应的内容即可教师签名:年月日。
实验二_8255并行接口应用实验
实验二_8255并行接口应用实验一、实验目的1. 熟悉8255并行接口的功能和应用。
2. 掌握8255并行接口的控制字的含义和编写方法。
3. 熟悉并行接口的IO读写操作。
二、实验仪器1. PC机2. AT8051开发板4. 其他配件线路三、实验原理8255芯片是Intel公司提供的一种通用并行接口芯片。
它可以实现外围设备、传感器的控制、数据的输入/输出等功能,是一种非常实用的通用接口芯片。
8255是一个三端口、24线单片并行接口芯片,它可以直接连接CPU总线或I/O总线,采用AHB (AMBA High-Performance Bus)总线。
总线与8255之间的通讯方式采用输入/输出端口的方式,在CPU访问8255时,必须指定8255的端口地址。
CPU在访问8255时,AV(地址有效)为高电平,同时CS和RD为有效低电平。
8255所使用的端口地址由登录的端口号选择器(P0、P1、P2)决定。
8255的主要特点:a. 具有3个通用I/O端口,每个端口有8位,共有24条I/O线。
b. 可以通过外部信号线与中间件或总线连接。
c. 具有3种基本工作方式:安装、双向缓冲装置和输入输出方式。
d. 为减少芯片引脚数,端口地址用地址寄存器低端口号器(P0,P1)来指定。
端口的寄存器编号可以选择0或1。
e. 以可编程方式控制I/O端口。
f. 内接有二进制计数器,可用于计时和计数应用。
2. 编程实现原理本次实验中,我们将用8051的C语言编程,控制8255进行I/O读写操作。
在编程时,我们将根据需要设置8255的控制字,并利用控制字来控制8255的输入输出。
同时,在控制8255的I/O读写操作中,我们还需将相应的端口地址赋值给端口指针,以实现读写操作。
3. 硬件连接我们将在AT8051开发板上搭建实验电路,具体如下:a. 8255芯片的输入输出口A、B、C分别连接到LED灯,以控制LED灯的开关状态。
b. AT8051开发板的P0、P1、P2分别连接到8255的A1、A0、CS/WR、RD/CS口线,以进行8255的读写操作。
10_8255A可编程并行接口实验(2)
4.4 8255A可编程并行接口实验二4.4.1 实验目的1、进一步掌握8255A并行接口芯片的基本结构及工作原理。
2、掌握8255A的A口或B口工作于方式1时的特点及其使用方法;掌握方式1输入或输出时C口用作联络信号的引脚的定义及功能。
4.4.2 实验预习要求1、复习8255A工作方式1的特点及工作原理;C口用作联络信号的引脚定义及功能。
2、复习中断服务程序的编写方法。
3、预先编写好实验程序。
4.4.3 实验内容按图4.4-1连接线路。
& &图4.4-18255A的A口工作于方式1输出。
C口的PC3用作中断请求信号(INTR)。
PC6用作外设应答信号(ACK),表示CPU输出到8255A的数据已被外设取走。
PC7用作输出缓冲器满信号(OBF),OBF 信号实验中未用。
用每按一次单脉冲按钮K所产生的负脉冲(模拟外设的应答信号)使8255A产生一次中断请求,让CPU进行一次中断服务。
在中断服务程序中向8255A依次输出01H、02H、04H、08H、10H、20H、40H、80H使L0 L7依次发光,中断8次程序结束返回DOS。
4.4.4 实验提示1、主机中可编程中断控制器8259A的I/O地址为20H和21H。
2、8255A的I/O地址为:控制寄存器端口地址28BHA口的地址288HC 口的地址28AH3、实验台接口卡设置为使用ISA总线中的IRQ7将实验台上的中断请求信号IRQ送到主板的8259A,若接口卡非如此设置,请根据具体设置在编写程序时作适当修改。
4、中断服务程序中通过OUT指令将数据输出到8255A的A口,以便点亮发光二极管时,要延时一段时间,否则将无法看到二极管发光。
实验程序流程图如图4.4-2和4.4-3所示。
4.4.5 实验报告要求1、根据流程图编写实验程序,并说明在实验过程中遇到了哪些问题,是如何处理的。
2、总结8255A工作方式1的特点及使用方法。
3、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。
实验二 8255并行输入输出实验
实验二8255并行输入输出实验一、实验目的与要求了解8255A的内部结构、工作原理;掌握对8255A的初始化编程方法。
二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、选通输入实验:B口有8个发光二极管PBi(i=0~7),要求K3K2K1=000时LED1亮~K3K2K1=111时LED8亮,预置开关K为一组状态后按下BUTTON产生一负脉冲信号输入到PC4上,用LEDi(i=1~8)亮来显示K的状态。
2、选通输出实验:A口有8个发光二极管PAi(i=0~7),显示LED0亮,然后每按一次BUTTON使LED循环下移一位亮。
四、实验原理图1、2、五、实验步骤1区:单脉冲(2)运行程序(3)预置开关K为一组状态后上下拨动单脉冲开关,拨动两次,产生一个“”,观察B 口灯是否对应开关的状态相应亮,拨动开关K设置下一组开关状态,上下拨动单脉冲开关,拨动两次,产生一个“”,继续检查B口灯是否对应开关的状态相应亮。
2区:单脉冲(3)此时发现LED0亮,每上下拨动单脉冲开关,拨动两次,产生一个“”,观察LED是否循环下移一位亮。
六、流程图1、2、七、程序代码1、DATA SEGMENTTAB DB 11111110B,11111101B,11111011B,11110111B DB 11101111B,11011111B,10111111B,01111111B DATA ENDSSTCK SEGMENT STACKSTA DB 50 DUP(?)STCK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STCKSTART: MOV AX,DATAMOV DS,AXCALL Init8255 ;8255初始化子程序SCAN: MOV DX,0F002H;C口IN AL,DXAND AL,00100000BJZ SCAN ;判断IBFA是否为1 MOV DX,0F000H ;A口IN AL,DXAND AL,7 ;保留K1,K2,K3的数字 LEA BX,TABXLATMOV DX,0F001H ;B口OUT DX,ALJMP SCANInit8255 PROCMOV DX,0F003HMOV AL,0B0HOUT DX,ALRETInit8255 ENDPCODE ENDSEND START2、STCK SEGMENT STACKSTA DB 50 DUP(?)STCK ENDSCODE SEGMENTASSUME CS:CODE,SS:STCKSTART: MOV DX,0F003HMOV AL,0A0HOUT DX,ALMOV DX,0F000HMOV AL,0FEH ;使LED0亮OUT DX,ALLOP: MOV BL,AL ;保护AL中内容LOP1: MOV DX,0F002HIN AL,DXAND AL,80HJZ LOP1 ;/OBFA是否为1CALL DELAY ;延时MOV AL,BLROL AL,1MOV DX,0F000HOUT DX,ALJMP LOPDELAY PROCPUSH AXPUSH CXMOV CX,0FFFFHLOOP $MOV CX,0FFFFHLOOP $POP CXPOP AXRETDELAY ENDPCODE ENDSEND START八、遇到问题1、一开始编的程序没有查询IBFA的状态,用的是无条件传送,预置K的状态,不拨单脉冲开关,灯也能对应显示。
8255并口实验
8255并口实验8255A并行口实验(一)目的1. 掌握8255A和微机接口方法。
2. 掌握8255A的工作方式和编程原理。
8255A并行口实验(一)内容1、实验原理如实验原理图5-8所示,PC口8位接8个开关K1~ K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。
拨动K1~ K8,PB口上接的8个发光二极管L1~ L8对应显示K1~ K8的状态。
图5-82、实验线路连接(1)8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2)8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3)8255A的CS插孔接译码输出070H-07FH插孔。
3、实验步骤(1) 按图5-8连好线路。
(2) 运行实验程序。
在系统显示"DVCC-86H"状态下,按任意键,显示器显示"-"。
按GO键,显示"1000 XX"输入F000 :B160再按EXEC键,在DVCC-8086H显示上显示器"8255-1",同时拨动K1~K8,L1~L8会跟着亮灭。
CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073HIOCPT EQU 0072HIOBPT EQU 0071HCONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0500HSTART: JMP IOLEDIOLED: CALL FORMA TCALL LEDDISPMOV AL,89HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPTIN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1LEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DA TA1]MOV DX,DA TAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMA T: MOV BX,0MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6DHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START8255A并行口实验(二)目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。
8255实验-微机原理与接口技术
实验线路连接
(1) 8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2) 8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3) 8255A的CS插孔CS-8255接译码输出Y7插
孔。
要求: ① 读懂系统程序中有关 8255A 的部分。
包括:端口地址、初始化编程、 二极管发光情况与开关状态间的对应关系
并使其根据开关 K1~ K8 的状态发光。 · 以 K8 作为总开关,
若 K8打开(0),则 L1~ L8同时熄灭; 若 K8闭和(1),则 L1~ L7由K1~ K7控 制。
IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H IOAPT EQU 0070H
② 执行程序,并进行观察,记录。 PC 口 8 位接 8 个开关 K1~ K8 , PB 口 8 位接 8 个 LED 发光二极管 L1~ L8 , 并使其根据开关 K1~ K8 的状态发光。
③ 改变电路接法并修改程序,要求实现:
· PA 口 8 位接 8 个开关 K1~ K8 ,
PB 口 8 位接 8 个发光二极管 L1~ L8
IOLED: CALL FORMAT CALL LEDDISP
MOV AL,90H B口输出
;10010000 写方式控制字 方式0 A口输入
MOV DX,IOCONPT
OUT P
IOLED1: MOV DX,IOAPT
IN AL,DX
MOV DX,IOBPT
OUT DX,AL
并行接口 8255 的应用
1、实验目的 掌握8255A和微机接口方法。 掌握8255A的工作方式和编程原理。
2、实验内容
8255A可编程并行口实验_2
4.2 8255A可编程并行口实验1. 实验目的(1)掌握并行接口芯片8255A和微机接日的连接方法。
(2)掌握并行接口芯片8255A的工作方式及其编程方法。
2. 实验内容(l)实验原理。
实验原理如图4-I所示, PC口8位接8个开关K1一K8, PB口8位接8个发光二极管, 从PC口读入8位开关量送PB口显示。
拨动K1~K8,PB口上接的8个发光二极管LO~L7对应显示KI~KS的状态。
(2)实验线路连接。
1)8255A芯片PC0-PC7插孔依次接K1~K8。
2)8255A芯片PB0~PB7插孔依次接L0-L7。
3)8255A的CS插孔CS_8255接译码输出Y7插孔。
3. 实验软件框图参考流程图如图4-2所示。
4. 实验步骤(1)按图4-1连好线路。
(2)运行实验程序。
在数码管上显示“8255-1", 同时拨动K1~K8, L0~L7会跟着亮灭。
5. 实脸软件参考程序请参见本书电子课件, 文件名为H8255-1.ASM。
CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H START: MOV CX,8FFFH DELAY0:LOOP DELAY0MOV AL,89H MOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPT IN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,8FFFH DELAY:LOOP DELAYJMP IOLED1 CODE ENDSEND START6. 思考题(1)修改程序实现一个开关控制2个或3个灯亮灭。
IOLED1: MOV BL,ALMOV CX,4ROL AL,CXADD AL,BLMOV CX,8FFFHDELAY:LOOP DELAYJMP IOLED1(2)添加延时程序, 去掉开关连线, 实现8个灯循环亮灭。
微机原理实验报告(8255并口实验)
深圳大学实验报告课程名称:微型计算机技术实验项目名称:8255并行接口实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一,实验目的1,学习并掌握8255 的工作方式及其应用。
2,掌握8255 典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置一套,导线若干,另外PC与TD-PITE实验装置连接线。
三,实验内容1,基本输入输出实验。
编写程序,使8255 的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1. 基本输入输出实验本实验使8255 端口A 工作在方式0 并作为输入口,端口 B 工作在方式0并作为输出口。
实验接线图如图6 所示,按图连接实验线路图。
用一组开关信号接入端口A,端口 B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
2. 流水灯显示实验:使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如下图所示。
8255并行接口实验
XX学院实验报告实验名称姓名学号班级教师日期一、实验内容与要求1.1 实验内容本次实验分为如下2个子实验:(1)方式0练习实验:A,B口方式0输出,C口输入。
K0上推:16个LED灯从左到右流水。
K1上推:16个LED等从右向左流水。
K2上推:中间向两侧流水。
K3上推:两侧向中间流水。
(2)方式1练习实验:A口方式1输出,B口不用,C口控制口,每按KK1开关一下,LED灯流水一下,8次后程序结束。
1.2 实验要求本次实验中2个子实验的实验要求如下:(1)方式0练习实验:要求A,B口以方式0输出,并且C口输入。
当K0上推的时候,16个LED灯从左到右流水。
当K1上推的时候,16个LED等从右向左流水。
当K2上推的时候,16个LED灯从中间向两侧流水。
当K3上推的时候,16个LED灯从两侧向中间流水;(2)方式1练习实验:要求A口以方式1输出,C口作为控制口。
要求每当按KK1开关一下,LED灯流水一下,按8次后程序结束。
二、实验原理与硬件连线2.1 实验原理I/OPA7-PA0I/OPC7-PC4I/OPC3-PC0I/OPB7-PB0D0-D7图3-1 8255内部结构及外部引脚图并行接口是以数据的字节为单位与I/O设备或被控制的对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0—基本输入/输出方式、方式1—选通输入/输出方式、方式2—双向选通工作方式。
8255的内部结构及引脚如图3-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2所示。
15 1 0 16 1 1 07 1 1 1图3-2 8255控制字格式8255实验单元电路图如图3-3所示:RD CS A1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PB3PB4PB5PB6PB7D7D6D5D4D3D2D1D0RST WR PA7PA6PA5PA4图3-3 8255实验单元电路图2.2 硬件连线(1) 方式0练习实验:8255单元中D0~D7分别与系统总线的XD0~XD7相连,A0~A1分别与系统总线的XA1~XA2相连,WR 、RD 、CS 分别与系统总线的IOW#、IOR#、IOY0(0600H)相连,PA0~PA7分别与开关及LED 显示单元的D0~D7相连,PB0~PB7分别与开关及LED 显示单元的D8~D15相连,PC0~PC3分别开关及LED 显示单元的K0~K3相连。
微机原理实验二 8255A并行接口应用
实验二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口控制寄存器。
8255并行接口实验(精)
六. 编程提示
(1) 通过8255控制发光二极管PB3 PB0 PA5 PA2 对应黄灯,PB1 PA6 PA3 PA0对应红灯,PB2 PA7 PA4 PA1对应绿灯,以模拟交通灯的管理. (2) 程序中设定好8255A的工作方式,三个端口 均工作在方式0处于输出状态。 (3) 各发光二极管共阳极,使其点亮应使对应的 端口输出低电平。
实验一
8255并行接口实验
--------控制交通灯一.验目的掌握通过8255A并行口传输数据的方法, 以控制发光二极管的亮与灭.
二.实验目的
用8255作为输出口,控制十二个发光二极 管熄灭,模拟交通灯管理.
三 .程序框图
四 .实验电路
五 .实验步骤
(1)电路连线如下: 8255A PA0-L12 PA1-L11 PA2-L10 PA3-L9 PA4-L8 PA5-L7 PA6-L6 PA7-L5 PB0-L4 PB1-L3 PB2-L2 PB3-L1 (2)运行实验程序 在系统“P.”状态时,输入32F0,按EXEC键, L1~L12发光二极管模拟交通灯显示。
8255并行接口实验
实验五8255并行接口实验(一)一.实验目的(1)掌握8255的基本工作方式及其应用。
(2)掌握8255的典型应用电路接法。
二.实验内容基本输入输出实验。
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
8255端口地址为0646H-0640H。
三.实验步骤1.实验连线图如图所示,按图连线实验线路图。
2.编写实验程序,经编译、连接无误后加载系统。
3.运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
四.实验思考题修改程序和连线,要求从C口输入数据并从B口输出。
(必做)参考程序MY8255_A EQU 0640HMY8255_B EQU 0642HMY8255_C EQU 0644HMY8255_MODE EQU 0646HSSTACK SEGMENT STACKDW 32 DUP (?) SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: MOV AX,SSTACKMOV SS,AXMOV DX,0646HMOV AL,10010000BOUT DX,ALAA1: MOV DX, 0640HIN AL,DXMOV DX,0642HOUT DX,ALCALL DELAYJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START。
并行接口8255A实验
扫描位数≥5?
N
CL
Y 初始扫描位置
读键盘
有键动? Y
结束
调延时(10mS)
延时子程序流程 (略)
实验6.2.4 源程序
.model small
Cs8255 equ 0E200h ;片选地址CS1
p_ctl equ 80h ;8255控制字--A口输出,B口输出
6.3.2 8255A的片选端CS8255连到译码控制单元的CS1,其译码地址为: PA口:0E200H ,PB 口:0E201H,PC口:0E202H, 控制寄存器: 0E203H
6.3.3 锁存器74HC573(U23)的选片(SMGLT)连高电平 ‘1’ 6.3.4 数码管编码表
“0”-3FH “1”-06H “2”-5BH “3”-4FH “4”-66H “5”-6DH “6”-7DH “7”-07H “8”-7FH “9”-6FH “A”-77H “B”-7CH “C”-39H “D”-5EH “E”-79H “F”-71H
• .data
table db 3fh,06h,5bh,4fh,66h;0,1,2,3,4 ;字型表
•
db 6dh,7dh,07h,7fh,6fh;5,6,7,8,9
•
.code
•
.startup
•
mov dx,cs8255+3
;发控制字
•
mov al,p_ctl
•
out dx,al
•
xor cl,cl ;设扫描位置
• jbe down ;若大于5,返回启始位置0
•
mov cl,0
down: call delay
实验二 输入PB输出8255A
实验一并行接口实验PA输入、PB输出(8255A)一、实验目的⑴掌握8255A和微机接口方法。
⑵掌握8255A的工作方式和编程原理。
二、实验内容用8255 PA作开关量输入口,PB作输出口。
三、编程提示8255A芯片简介:8255A可编程外围接口芯片是Intel公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式方式1:选通输入/输出方式方式2:双向选通工作方式使8255A端口A工作在方式0并作为输入口,读取K1—K8八个开关量,,送PB口显示。
PB口工作在方式0作为输出口。
四、实验步骤⑴按实验电路图连接线路:①8255A芯片A口的AP0~PA7依次和开关量输入插孔K1~K8相连。
②8255A芯片B口的AB0~PB7依次接L1~L8⑵运行实验程序:运行程序,之后拨动K1~K8、L1~L8会跟着亮灭。
五、程序代码DA TA SEGMENTSTRING DB 'PRESS ANY KEY TO CONTINUE',0DH,0AH,'$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TAH2: MOV DX,21BH ;设置8225A的工作方式MOV AL,90HOUT DX,ALP2: MOV DX,218H ;端口A接受信号IN AL,DXINC DXOUT DX,ALLEA DX,STRING ;显示输出提示字符串MOV AH,9INT 21HMOV AH,1 ;从键盘输入字符INT 21HCMP AL,'Q' ;若是Q,退出循环JNZ P2 ;若不是Q,继续返回执行MOV AH,4CHINT 21H ;返回DOSCODE ENDSEND H2六、实验总结本实验总体来说较容易,编写程序和连线都不是很难。
实验中,唯一遇到的问题就是每次运行完试验后总是陷入死循环,导致电脑死机,要重新启动。
微机原理8255并行接口(2)完整实验报告
实验6 8255并行接口实验
实验时间2019年12月5日
实验类型■验证性□设计性□综合性
1. 实验目的
1.学习并掌握8255的工作方式及其应用。
2.掌握8255典型应用电路的接法。
2. 实验内容及过程(主要内容、操作步骤)
1.基本输入输出实验。
编写程序,使8255的B口为输出,A口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
启动中断的动作是脉冲开关,因为PC2接的是脉冲开关。
8255A输出的信号可用于CPU提出中断请求。
B端口的方式一需要借用端口C用做联络信号,端口C 还具有中断请求和屏蔽功能
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结。
8255a实验报告
8255a实验报告8255A实验报告引言:8255A是一种常用的并行接口芯片,广泛应用于各种数字系统中。
本实验旨在通过对8255A的实际应用,深入了解并行接口的原理和操作方法。
一、实验目的本实验旨在通过使用8255A并行接口芯片,实现数字输入输出功能,掌握并行接口的基本原理和操作方法。
二、实验器材1. 8255A并行接口芯片2. 电脑主板3. 逻辑分析仪4. 电压源5. 连接线等三、实验步骤1. 连接实验器材:将8255A芯片与电脑主板通过连接线连接,将逻辑分析仪连接到芯片的相应引脚上。
2. 编写程序:使用汇编语言编写程序,通过控制8255A芯片的寄存器,实现数字输入输出功能。
3. 调试程序:在编写完成后,通过逻辑分析仪对程序进行调试,确保程序的正确性。
4. 运行程序:将程序下载到芯片中,通过逻辑分析仪观察输入输出的结果。
四、实验结果经过调试和运行,实验结果如下:1. 输入功能:通过设置8255A芯片的相应寄存器,实现了数字输入功能。
当外部输入信号变化时,芯片将信号转换为二进制数据,并传输给电脑主板。
2. 输出功能:通过设置8255A芯片的相应寄存器,实现了数字输出功能。
电脑主板将二进制数据传输给芯片,芯片将数据转换为相应的电信号输出到外部设备。
五、实验分析通过本次实验,我们深入了解了8255A并行接口芯片的原理和操作方法。
并行接口芯片是数字系统中重要的组成部分,广泛应用于各种设备和系统中。
掌握并行接口的原理和操作方法对于设计和开发数字系统具有重要意义。
六、实验总结本次实验通过使用8255A并行接口芯片,实现了数字输入输出功能。
通过编写程序、调试和运行,我们深入了解了并行接口的原理和操作方法。
并行接口芯片在数字系统中起着重要的作用,掌握并行接口的原理和操作方法对于设计和开发数字系统具有重要意义。
七、参考文献1. 《8255A并行接口芯片使用手册》2. 《数字系统设计与开发实践》结语:通过本次实验,我们对8255A并行接口芯片有了更深入的了解。
8255并行接口实验
《接口技术》实验报告实验二8255并行口接口实验实验目的利用8255A实现并行接口实验。
实验内容1:掌握8255A的编程原理。
2:熟悉计算机并行接口的使用方法。
实验步骤1连线:8255A芯片A口的PA0-PA7依次和开关量输入Kl-K8相连。
B口的PB0-PB7依次接发光二极管Ll-L8。
从CS0-CS7中任选一个与8255A的片选信号相连,其他线路均已接好。
2:编写程序单步运行并调试程序。
3:调试通过后全速运行并观察实验结果。
实验原理图程序流程图源程序清单ASSUME CS:CODECODE SEGMENT PUBLICORG 100HSTART: MOV DX,04A6HMOV AX,90HOUT DX,AXSTART1: MOV DX,04A0HIN AX ,DXMOV DX,04A2HOUT DX,AXJMP START1CODE ENDSEND START运行结果及分析当读到某个开关处于高电平时,对应的发光二极管就会亮修改1A口和B口的工作方式互换。
B口输入,A口输出。
这样的话程序改成:START: MOV DX,04A6HMOV AX,82HOUT DX,AXSTART1: MOV DX,04A2HIN AX ,DXMOV DX,04A0HOUT DX,AXJMP START1CODE ENDSEND START运行结果:当读到某个开关处于高电平时,对应的发光二极管就会亮。
修改2B口输入,C口输出,这样的话程序改成:START: MOV DX,04A6HMOV AX,82HOUT DX,AXSTART1: MOV DX,04A2HIN AX ,DXMOV DX,04A4HOUT DX,AXJMP START1CODE ENDSEND START运行结果:当读到某个开关处于高电平时,对应的发光二极管就会亮。
8255A 并 行 口 实 验(一)目 的
8255A并行口实验(一)目的1. 掌握8255A和微机接口方法。
2. 掌握8255A的工作方式和编程原理。
一、实验原理如实验原理图5-8所示,PC口8位接8个开关K1~ K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。
拨动K1~ K8,PB口上接的8个发光二极管L1~ L8对应显示K1~ K8的状态。
二、实验线路连接(1)8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2)8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3)8255A的CS插孔CS-8255接译码输出Y7插孔。
三、实验软件清单见随机光盘,文件名为H8255-1.ASM四、实验步骤1、按图5-8连好线路。
2、运行实验程序。
在DVCC-8086JHN显示"8255-1",同时拨动K1~K8,L1~L8会跟着亮灭。
CODE SEGMENT ASSUME CS:CODEIOCONPT EQU 0073HIOCPT EQU 0072HIOBPT EQU 0071H CONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0500H START: JMP IOLEDIOLED: CALL FORMATCALL LEDDISPMOV AL,89HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPTIN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1LEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 8255A并行接口实验(一)
一实验目的
1、掌握通过8255A并行口传输数据控制LED发光二极管的亮灭;进一
步熟悉软件编程环境。
二实验设备
1、微机系统一套;
2、TPC-3型微机接口实验系统一台;
3、导线若干。
三实验内容
1、基础部分:用8255A的A端口控制8个LED发光二极管的亮和灭(端口
输出为1则亮,输出为0则灭)。
其中L0―L2为东西方向,L5―L7为南北
方向、L3-L4不用,PA口与相应的发光二极管驱动信号输入端相连,输入端
为1时发光二极管亮。
接线如图4-5所示。
图4-5
编制程序,通过8255A控制发光二极管,以模拟交通灯的管理。
2.提高部分:利用开关K0,K1的控制,以模拟几种交通灯的管理,具体要求
为:
K0K1灯控制
00正常运行
01南北路口绿灯亮、东西路口红灯亮
10东西路口绿灯亮、南北路口红灯亮
3.如果模拟车流量大小来来决定红绿灯交通时间,请问你有什么解决办法。
如果
能解决请加以解释并编程调试。
四、编程提示:
1.要完成本实验,首先必须了解交通灯的亮灭规律。
设有一个十字路口,南北、东西方向初始态为四个路口的红灯全亮。
之后,南北路口的绿灯亮,东西
路口的红灯亮,南北路口方向通车。
延迟一段时间后,南北路口的绿灯熄灭,
而南北路口的黄灯开始闪烁。
闪烁8次后,南北路口的红灯亮,同时东西路口
的绿灯亮,东西路口方向开始通车。
延迟一段时间后,东西路口的绿灯熄灭,
而黄灯开始闪烁。
闪烁苦干次后,再切换到南北路口方向。
之后,重复上述过
程。
2.程序中应设定好8255A的工作模式,使三个端口均工作于方式0,并处于输出态
3.8255A的A端口地址为:288H
B端口地址为:289H
C端口地址为:28AH
控制口地址为:28BH
五、实验要求:
1.做好实验预习和准备工作,并写出预习报告(要求写出实验的流程图及程序),熟练掌握8255A编程原理及编程方法。
2.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。
3.写出实验报告,内容为:
1)实验目的;
2)实验设备;
3)实验中遇到的问题及解决问题的分析思路与办法,问题定位及问题的性质;
4)对本实验的建议及有何创新。
;这是自动生成的代码模板
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT ;数据段
;请在这里定义您的数据
DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始化
MOV DS,AX
MOV AL,80H
MOV DX,028BH
OUT DX,AL
MOV AL,84H ;初态红灯全亮
MOV DX,288H
OUT DX,AL
MOV CX,30
D1: MOV AL,24H ;南北绿灯亮,东西红灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D1
MOV CX,8
D2: MOV AL,44H ;南北黄灯亮,东西红灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
MOV AL,04H
MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D2
MOV CX,30
D3: MOV AL,81H ;南北红灯亮,东西绿灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D3
MOV CX,8
D4: MOV AL,82H :南北红灯亮,东西黄灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
MOV AL,80H
MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D4
MOV AH,01H
INT 16H
JZ D1
MOV AX,4C00H ;退出程序
INT 21H
DELAY PROC NEAR
PUSH CX
PUSH DI
MOV CX,9000H
Y1: MOV DI ,5000H
X1: DEC DX
JNZ X1
LOOP Y1
POP DI
POP CX
RET
DELAY ENDP
CODES ENDS
END START
MY8255_A EQU 288H
MY8255_B EQU 289H
MY8255_C EQU 28AH
MY8255_MODE EQU 28BH
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节STACKS ENDS
DATAS SEGMENT ;数据段
;请在这里定义您的数据
DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始化
MOV DS,AX
MOV DX,028BH
MOV AL,80H
OUT DX,AL
LOOP1: MOV DX,MY8255_A ;写A口发出的数据,东方向绿灯亮,南方向MOV AL,3CH
OUT DX,AL
MOV DX ,MY8255_B
MOV AL,3CH
OUT DX,AL
CALL DALL Y1
DALL Y PROC NEAR
PUSH CX
PUSH AX
MOV CX,0FFFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALL Y ENDP
DALL Y1 PROC NEAR
PUSH CX
PUSH AX
MOV CX,1EH
D3: CALL DALL Y
LOOP D3
POP AX
POP CX
RET
DALL Y1 ENDP
DALL Y2 PROC NEAR
PUSH CX
PUSH AX
MOV CX,02H
D4: CALL DALL Y
LOOP D3
POP AX
POP CX
RET
DALL Y2 ENDP
MOV AX,4C00H ;退出程序
INT 21H
CODES ENDS
END START。