微机实验五 —— 8255A接口电路应用设计实验(基于Proteus工具)

微机实验五 —— 8255A接口电路应用设计实验(基于Proteus工具)

复习

in 是读端口…(I/O)
mov 只能操作内部寄存器…

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值