注册 登录
编程论坛 单片机编程

急,哪位大仙帮忙看看这个小程序?我实在看不出来哪儿有毛病(初学者)

xurishengmen 发布于 2010-03-18 21:49, 1011 次点击
关于8255扩展的。。。。。A口C口分别控制8个LED灯循环亮
ORG   00H
CLR    P2.2
SETB    P2.2         ;8255复位
CLR    P2.2
SETB   P2.0             ;A1A0=11,处于写控制字状态
SETB   P2.1
;MOV    R0  ,#0FH      ;控制寄存器口地址设为FFH
MOV    A  ,#80H          ;方式控制字送A
MOVX   @R0  ,A          ;将方式控制字写入控制寄存器
START: CLR  P2.0    ;  A1A0=00将从A口写入数据
       CLR  P2.1
       MOV   A  ,#0FEH
       MOV   R2, #08H
LOOP: MOVX  @R0  ,A        ;二极管循环亮,从最低位到最高位
      RL    A            ;左移
      CALL   DELAY      ;延时
      DJNZ   R2 , LOOP     
      SETB   P2.1          ;A1A0=10,选中C口工作
      CLR    P2.0
      MOV  R2  ,#08H
      
;LOOP1:
 ;     MOVX  @R0 ,A          ;将数据写入C口
  ;    RL  A
   ;   CALL   DELAY          ;调用延时子程序
    ;  DJNZ  R2 , LOOP1
     ; JMP   START
DELAY:                                ;延时
      
D1:         MOV     R1    ,  #0FFH
LOOP2:   MOV     R2    ,  #0FFH
        
LOOP3:     MOV     R3    ,  #0FFH
         DJNZ     R3    ,  LOOP3
         DJNZ    R2    ,  LOOP2

         DJNZ    R1       ,  D1
         RET
         END
2 回复
#2
xurishengmen2010-03-18 21:50
失误,有一些语句被我注释掉了,把前边的分号去掉就行了,多谢了
#3
轻舞飞扬中2010-08-04 17:15
这么多人会汇编啊,不简单啊,我也得学一下
1