导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→能否帮我简单看一下我这个液晶显示程序有没有问题:多谢了。[wodenet]

 *第34510篇: 能否帮我简单看一下我这个液晶显示程序有没有问题:多谢了。

  
楼 主:wodenet 2005年9月19日10:25
 能否帮我简单看一下我这个液晶显示程序有没有问题:多谢了。
能否帮我简单看一下我这个液晶显示程序有没有问题:多谢了。QQ:464188658
;程序用于验证液晶显示

;程序用于单纯的验证液晶是否可用    05.08.12

        ; 主程序
                    ORG       0000H
                     AJMP     MAIN
                     ORG       0030H
                         COM EQU 40H       ;片内指令寄存器
                         DAT EQU 41H       ;片内数据寄存器
                         CWADD EQU  0F000H  ;指令口写地址cwadd
                         CRADD EQU  0F400H  ;指令口读地址cradd
                         DWADD EQU  0F200H  ;数据口写地址dwadd
                         DRADD EQU  0F600H  ;数据口读地址dradd
              MAIN:    MOV      SP,#60H
                     ANL       P3,#0C0H
                     LCALL    INT
                     LCALL    CLEAR


                        MOV     COM,#06H        ; ??????
                        LCALL   PR1
                        MOV COM,#80H
                        LCALL PR1
                        MOV DPTR,#TAB    ; ???????
                        MOV R2,#12
                        MOV R3,#00H
                 WRIN:  MOV A,R3
                        MOVC A,@A+DPTR
                        MOV DAT,A
                        LCALL PR2
                        LCALL DELAY
                        INC R3
                        DJNZ R2,WRIN


                   ;     SJMP    $
                TAB:    DB 43H,75H,72H,73H,6FH,72H,20H      ;Cursor
                        DB 57H,72H,69H,74H,65H              ;write


;初始化子程序
INT:   MOV A,#30H    ;30H:8位数据接口 一行  5*7点阵字符
      MOV DPTR,#CWADD
      MOV R2,#03H
INT1:  MOVX  @DPTR,A
      LCALL DELAY
      DJNZ R2,INT1
      MOV COM,#30H
      LCALL PR1
      MOV COM,#01H  ;清屏
      LCALL PR1
      MOV COM,#06H  ;设置输入方式,什么是AC?
      LCALL PR1
      MOV COM,#0FH  ;显示开关控制
      LCALL PR1
      RET
  DELAY:  MOV     R3,#00H         ; ?????
          MOV     R4,#00H
  DELAY1: NOP
          DJNZ    R4,DELAY1
          DJNZ    R3,DELAY1
          ret

      ;读BF和AC子程序
      PR0:  PUSH  DPH
            PUSH  DPL
            PUSH  ACC
            MOV DPTR,#CRADD
            MOVX A,@DPTR
            MOV COM,A
            POP ACC
            POP DPL
            POP DPH
            RET

       ;写指令代码子程序
       PR1:  PUSH DPH
             PUSH DPL
             PUSH ACC
             MOV DPTR,#CRADD
       PR11: MOVX A,@DPTR
             JB ACC.7,PR11
             MOV A,COM
             MOV DPTR,#CWADD
             MOVX @DPTR,A
             POP ACC
             POP DPL
             POP DPH
             RET

        ;写显示数据子程序
    PR2:    PUSH DPH
            PUSH DPL
            PUSH ACC
            MOV DPTR,#CRADD
      PR21:  MOVX  A,@DPTR
             JB ACC.7,PR21
             MOV A,DAT
             MOV DPTR,#DWADD
             MOVX @DPTR,A
             POP ACC
             POP DPL
             POP DPH
             RET


             ;读显示数据子程序
            PR3: PUSH DPH
                 PUSH DPL
                 PUSH ACC
                 MOV DPTR,#CRADD
            PR31:MOVX A,@DPTR
                 JB ACC.7,PR31
                 MOV DPTR,#DRADD
                 MOVX A,@DPTR
                 MOV DAT,A
                 POP ACC
                 POP DPL
                 POP DPH
                 RET
            ;清屏子程
    CLEAR: MOV     COM,#01H        ; ??
           LCALL   PR1
           RET

   ;//////////////////////////////////////////////////
             end


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:请教旋转编码开关程序

[下一篇主题]:支持全系列ColdFire处理器的3.3V BDM电缆