用单片机AT89C51扩展并行可编程I/O接口芯片8255。
程序和仿真图如下,程序和仿真文件见附件。有问题请追问。
RD_8255 EQU P2.0 ;8255读引脚 低电平有效
WR_8255 EQU P2.1 ;8255写引脚 低电平有效
A0_8255 EQU P2.2 ;
A1_8255 EQU P2.3 ;
;A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
;当A1=0, A0=0时,PA口被选择;
;当A1=0, A0=1时,PB口被选择;
;当A1=1, A0=0时,PC口被选择;
;当A1=1. A0=1时,控制寄存器被选择。
RESET_8255 EQU P2.4;8255复位引脚 高电平复位
CS_8255 EQU P2.5 ;8255 片选 低电平有效
;;-----------------------------------
;;-----------------------------------
ORG 0000H
JMP MAIN
;;-----------------------------------
MAIN:
MOV SP,#60H
CLR CS_8255 ;低电平有效
CLR RESET_8255 ;高电平复位
MOV P0, #80H ;PA输出 10000000
CLR WR_8255 ;写入控制寄存器
SETB WR_8255
MOV R3,#01H
;;-----------------------------------
LOOP:
MOV P0, R3 ;输出
CLR A1_8255 ;选定PA
CLR A0_8255
CLR WR_8255 ;
NOP ;
NOP ;
SETB WR_8255
CALL DELAY500MS
MOV A,R3
RLC A
MOV R3,A
SJMP LOOP
;;-----------------------------------
DELAY500MS: ;误差 0us
MOV R7,#0CDH
DL1:
MOV R6,#74H
DL0:
MOV R5,#09H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
END