深圳市航顺芯片技术研发有限公司
直播中

徐胤

7年用户 970经验值
私信 关注
[问答]

8255A接口电路有哪几种工作方式呢

锁存器是什么?锁存器有何作用呢?

8255A接口电路有哪几种工作方式呢?

回帖(1)

吴秀英

2021-10-29 18:27:19
  74LS273
  锁存器s是对脉冲电平敏感的存储单元电路,在特定输入脉冲电平作用下改变状态。
  锁存,就是把信号暂存以维持某种电平状态。
  ①锁存器的最主要作用是缓存
  ②其次完成高速的控制器与慢速的外设的不同步问题
  ③再其次是解决驱动的问题。
  ④最后是解决一个 I/O 口既能输出也能输入的问题。
  
  (1)1脚是复位/MR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位。
  (2)当1脚为高电平时,11(CP)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上。
  (3)74ls273其它管脚功能:1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。
  74LS32
  74LS32器件包含4路独立的2输入或门。
  74LS32的逻辑功能表达式为:Y=/(A·B)或Y=A+B,正逻辑。
  
  7411
  三输入三与门
  8255A
  
  8255共有40个引脚,采用双列直插式封装,各引脚功能如下:
  D0–D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。
  CS:片选信号线,低电平有效,表示芯片被选中。
  RD:读出信号线,低电平有效,控制数据的读出。
  WR:写入信号线,低电平有效,控制数据的写入。
  Vcc:+5V电源。
  PA0–PA7:A口输入/输出线。
  PB0–PB7:B口输入/输出线。
  PC0–PC7:C口输入/输出线。
  RESET:复位信号线。
  A1、A0:地址线,用来选择8255内部端口。
  8255a有哪几种工作方式
  8255A有三种工作方式:方式0、方式1和方式2。
  1、方式0
  方式0为基本的输入/输出方式,传送数据时不需要联络信号。A口、B口和C口(或C高4位口及C低4位口)均可独立设置成方式0输入口或方式0输出口。
  2、方式l
  方式1为选通输入/输出方式,即需要进行联络的输入/输出。A组、B组的8位口(A口或B口)可被设置为方式1输入口或方式1输出口,而这时要用相应C口的3根线作联络线。
  3、方式2
  方式2为双向传送。该方式要使用C口的5根线作联络线。由于C口只有8根线,因此只能有一组使用方式2确定为A组。当A组被设置成方式2时,A口被设置成双向端口,即既可以输入数据,也可以输出数据,C口的5根线被指定为联络线。
  4、方式1、2用到的联络信号(略)
  单击鼠标中键可以移动原理图
  一、实验题目
  1.基本输入输出实验。编写程序,使8255A的A口为输出,B口为输入,完成拨动开关
  到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。
  2.流水灯显示实验。编写程序,使8255A的A口和B口均为输出,数据灯D7~D0由左
  向右,每次仅亮-一个灯,循环显示,D15D8与D7D0正相反,由右向左,每次仅点亮一。
  个灯,循环显示。
  二、实验代码
  //实验5.1
  IOY0 EQU 0C400H ;片选IOY0对应的端口始地址,0C400H是16进制的表示。换成2进制
  ;EQU用符号名代表字符串 。在随后的程序中就用该符号名。
  ;*****************************************************************
  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+03H*4 ;8255的控制寄存器地址
  CODE SEGMENT
  ASSUME CS:CODE
  START: MOV DX,MY8255_MODE ;初始化8255工作方式
  MOV AL,82H ;工作方式0,A口输出,B口输入
  OUT DX,AL
  LOOP1: MOV DX,MY8255_B ;读B口
  IN AL,DX
  MOV DX,MY8255_A ;写A口
  OUT DX,AL
  JMP LOOP1
  CODE ENDS
  END START
  //实验5.2
  IOY0 EQU 0C400H ;片选IOY0对应的端口始地址,0C400H是16进制的表示。换成2进制
  ;EQU用符号名代表字符串 。在随后的程序中就用该符号名。
  ;*****************************************************************
  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+03H*4 ;8255的控制寄存器地址
  CODE SEGMENT
  ASSUME CS:CODE
  START: MOV DX,MY8255_MODE ;初始化8255工作方式
  MOV AL,82H ;工作方式0,A口输出,B口输入
  OUT DX,AL
  LOOP1: MOV DX,MY8255_B ;读B口
  IN AL,DX
  ;由B口值判断开关状态
  ;;闪烁
  CMP AL, 00000001B
  JE A
  ;;上到下循环
  CMP AL, 00000010B
  JE B
  ;;下到上循环
  CMP AL, 00000100B
  JE D
  JNE Z;其余任何情况,不相等跳转到Z下次循环
  ;接上面设置三个分支程序
  A:;从上到下,一起间隔闪烁,从下回上间隔闪烁
  MOV DX,MY8255_A
  MOV AL,00000010B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00001000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00100000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,10000000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,01010101B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,10101010B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,01000000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00010000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000100B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000001B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  JMP Z
  B:;上到下循环
  MOV DX,MY8255_A
  MOV AL,00000001B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000010B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000100B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00001000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00010000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00100000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,01000000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,10000000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  JMP Z
  D:;下到上循环
  MOV DX,MY8255_A
  MOV AL,10000000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,01000000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00100000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00010000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00001000B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000100B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000010B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  MOV AL,00000001B
  OUT DX,AL
  CALL DELAY
  CALL DELAY
  JMP Z
  Z:JMP LOOP1
  DELAY PROC NEAR
  PUSH AX
  MOV AL, 0
  PUSH CX
  MOV CX, AX
  LOOP $
  POP CX
  POP AX
  RET
  DELAY ENDP
  CODE ENDS
  END START
举报

更多回帖

发帖
×
20
完善资料,
赚取积分