关于8251A的 89S52的编程问题

2019-07-16 03:29发布

     P2.3接8251A的C/D端
     P2.4接         CS端
     P3.6接       WR 端
     P3.7接       RD端
     P0口接    D0~D7
   麻烦分析一下程序哪里有问题?就是输出不了
ORG  0000H
    AJMP MAIN
    ORG 0030H
MAIN:  CLR P2.4
       SETB P2.3
    CLR P3.6  
    SETB P3.7     ;命令口
    MOV A,#00H
       MOV R2,#3  
D1:   MOV P0,A      ;送0h
   ; ACALL DELAY  
    DJNZ R2,D1     ;循环3次
    MOV P0,#40H        ;内部复位
    ACALL DELAY
    MOV P0,#4FH        ;模式字(异步,1位停止位,字符长度为8位,无校验,波特率因子为64个/位)
       ACALL DELAY
    MOV P0,#11H        ;清除错误标志位,允许接收
       ACALL DELAY
D2:   SETB P2.3
    SETB P3.6
    CLR P3.7      ;状态口         
    MOV A,P0
    ANL A,#01H     ;检验数据位位是否准备好
    JZ  D2          ;若A为0 则循环
    CLR P2.3
    CLR P3.6
    SETB P3.7     ;数据口
    MOV  P0,#01     ;向P0口发送数据
    MOV P0,#66   
    MOV P0,#40H
    MOV P0,#15H
    ACALL DELAY
    AJMP  MAIN
DELAY: MOV  R4,#1     ;延时程序
   D5: MOV  R5,#2
   D6: DJNZ R5,D6
    DJNZ R4,D5
    RET   
    END
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。