用单片机AT89C51扩展并行可编程I/O接口芯片8255。

用单片机AT89C51扩展并行可编程I/O接口芯片8255。PA口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。... 用单片机AT89C51扩展并行可编程I/O接口芯片8255。PA口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。 展开
 我来答
百度网友7247a56
推荐于2018-03-11 · TA获得超过4616个赞
知道大有可为答主
回答量:1422
采纳率:92%
帮助的人:485万
展开全部

程序和仿真图如下,程序和仿真文件见附件。有问题请追问。

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式