lm320240.asm

来自「在51单片机中实现320*240液晶屏的显示」· 汇编 代码 · 共 1,542 行 · 第 1/5 页

ASM
1,542
字号
;****************************************************
;*************译码子程序******************************
;*****************************************************
DATA_CHG:

;***********个位译码*********************************


                     MOV          A,DATA1
                     CJNE         A,#01H,CHANGE2
CHANGE1:             MOV          A,DATA4
                     CJNE         A,#40H,CHANGE13                 ;0 1
                     MOV          FORDATA,#01D
                     LJMP         CHANG101   ;****=1
;***************************************
CHANGE2:             MOV           A,DATA1
                     CJNE          A,#0D4H,CHANGE4
CHANGE3:             MOV           A,DATA4
                     CJNE          A,#0D4H,TOE                 ;2 3
                     MOV           FORDATA,#02D
                     LJMP          CHANG101  ;******=2
TOE:                 RET
;***************************************
CHANGE4:             MOV           A,DATA1
                     CJNE          A,#95H,CHANGE6
CHANGE5:             MOV           A,DATA4
                     CJNE          A,#0D4H,CHANGE9
                     MOV           FORDATA,#03D
                     LJMP          CHANG101    ;*****=3
;***************************************
CHANGE6:             MOV           A,DATA1
                     CJNE          A,#81H,CHANGE8
CHANGE7:             MOV           A,DATA4
                     CJNE          A,#0C1H,TOEND1
                     MOV           FORDATA,#04D
                     LJMP          CHANG101  ;*****=4
TOEND1:              RET
;***************************************
CHANGE8:             MOV           A,DATA1
                     CJNE          A,#95H,CHANGE10
CHANGE9:             MOV           A,DATA4
                     CJNE          A,#95H,CHANGE17
                     MOV           FORDATA,#05D
                     LJMP          CHANG101     ;******5
;***************************************
CHANGE10:            MOV          A,DATA1
                     CJNE         A,#0D5H,CHANGE12
CHANGE11:            MOV          A,DATA4
                     CJNE         A,#95H,CHANGE15
                     MOV          FORDATA,#06D
                     LJMP         CHANG101     ;****=6
;****************************************
CHANGE12:            MOV          A,DATA1
                     CJNE         A,#01H,CHANGE14
CHANGE13:            MOV          A,DATA4
                     CJNE         A,#54H,TOEND2
                     MOV          FORDATA,#07D
                     LJMP         CHANG101      ;*******=7
TOEND2:              RET
;*****************************************
CHANGE14:            MOV          A,DATA1
                     CJNE         A,#0D5H,CHANGE16
CHANGE15:            MOV          A,DATA4
                     CJNE         A,#0D5H,TOEND3
                     MOV          FORDATA,#08D
                     LJMP         CHANG101      ;********=8
TOEND3:              RET
;*****************************************
CHANGE16:            MOV          A,DATA1
                     CJNE         A,#95H,CHANGE18
CHANGE17:            MOV          A,DATA4
                     CJNE         A,#0D5H,TOEND4
                     MOV          FORDATA,#09D
                     LJMP         CHANG101     ;*****=9
TOEND4:              RET
;****************************************
CHANGE18:            MOV          A,DATA1
                     CJNE         A,#55H,CHANGE68
CHANGE19:            MOV          A,DATA4
                     CJNE         A,#55H,TOEND22
                     MOV          FORDATA,#00D
                     LJMP         CHANG101      ;******=0

;*******************************************
CHANGE68:            MOV          A,DATA1
                     CJNE         A,#80H,TOEND22
CHANGE69:            MOV          A,DATA4
                     CJNE         A,#80H,TOEND22
                     MOV          FORDATA,#34D
                     AJMP         CHANG101      ;******= -     8080
TOEND22:             RET

;********************************************************************
;*********************十位译码*************************************
;*******************************************************************

CHANG101:
;;
;;
                     MOV          A,DATA2
                     CJNE         A,#00H,CHANG1
CHANG00:             MOV          A,DATA3
                     CJNE         A,#00H,CHANG1                 ;0 1
                     MOV          THRDATA,#00D
                     LJMP         STOP   ;****=1
;;;***************************************
;;

CHANG1:              MOV          A,DATA2
                     CJNE         A,#01H,CHANG2
                     MOV          A,DATA3
                     CJNE         A,#40H,CHANG13                 ;0 1
                     MOV          THRDATA,#01D
                     LJMP         STOP   ;****=1
;***************************************
CHANG2:              MOV           A,DATA2
                     CJNE          A,#0D4H,CHANG4
CHANG3:              MOV           A,DATA3
                     CJNE          A,#0D4H,TOE0                 ;2 3
                     MOV           THRDATA,#02D
                     LJMP          STOP  ;******=2
TOE0:                RET
;***************************************
CHANG4:              MOV           A,DATA2
                     CJNE          A,#95H,CHANG6
CHANG5:              MOV           A,DATA3
                     CJNE          A,#0D4H,CHANG9
                     MOV           THRDATA,#03D
                     LJMP          STOP    ;*****=3
;***************************************
CHANG6:              MOV           A,DATA2
                     CJNE          A,#81H,CHANG8
CHANG7:              MOV           A,DATA3
                     CJNE          A,#0C1H,TOEND01
                     MOV           THRDATA,#04D
                     LJMP          STOP  ;*****=4
TOEND01:             RET
;***************************************
CHANG8:              MOV           A,DATA2
                     CJNE          A,#95H,CHANG10
CHANG9:              MOV           A,DATA3
                     CJNE          A,#95H,CHANG17
                     MOV           THRDATA,#05D
                     LJMP          STOP     ;******5
;***************************************
CHANG10:             MOV          A,DATA2
                     CJNE         A,#0D5H,CHANG12
CHANG11:             MOV          A,DATA3
                     CJNE         A,#95H,CHANG15
                     MOV          THRDATA,#06D
                     LJMP         STOP     ;****=6
;****************************************
CHANG12:             MOV          A,DATA2
                     CJNE         A,#01H,CHANG14
CHANG13:             MOV          A,DATA3
                     CJNE         A,#54H,TOEND02
                     MOV          THRDATA,#07D
                     LJMP         STOP      ;*******=7
TOEND02:             RET
;*****************************************
CHANG14:             MOV          A,DATA2
                     CJNE         A,#0D5H,CHANG16
CHANG15:             MOV          A,DATA3
                     CJNE         A,#0D5H,TOEND03
                     MOV          THRDATA,#08D
                     LJMP         STOP      ;********=8
TOEND03:             RET
;*****************************************
CHANG16:             MOV          A,DATA2
                     CJNE         A,#95H,CHANG18
CHANG17:             MOV          A,DATA3
                     CJNE         A,#0D5H,TOEND04
                     MOV          THRDATA,#09D
                     LJMP         STOP     ;*****=9
TOEND04:             RET
;****************************************
CHANG18:             MOV          A,DATA2
                     CJNE         A,#55H,CHANG68
CHANG19:             MOV          A,DATA3
                     CJNE         A,#55H,STOP
                     MOV          THRDATA,#00D
                     LJMP         STOP      ;******=0

;*******************************************
CHANG68:             MOV          A,DATA2
                     CJNE         A,#80H,TOEND022
CHANG69:             MOV          A,DATA3
                     CJNE         A,#80H,TOEND022
                     MOV          THRDATA,#34D
                     AJMP         STOP      ;******= -     8080
TOEND022:             RET

STOP:
                    MOV          LCDATA2,THRDATA
                    MOV          LCDATA1,FORDATA
                    RET


;******************************************************
;&&&&&&&&&&&&&&&&&&&&&
;*********************************************
DELAY_300:
                      MOV          R6,#0AH
 AA:                  MOV          R5,#0EH
 BB:                  DJNZ         R5,BB
                      NOP
                      NOP
                      DJNZ         R6,AA
                      RET

DELAY_500:
                    MOV            R6,#0AH
  CC:               MOV            R5,#18H
  DD:               DJNZ           R5,DD
                    NOP
                    NOP
                    DJNZ           R6,CC
                    RET

;*********************************************************************
;***                                                               ***
;***                                                               ***
;***                        LINE                                   ***
;***                                                               ***
;*********************************************************************
LINE:
              MOV                       DPTR,#1B80H
              MOV                       R5,DPL
              MOV                       R4,DPH
              MOV                       R6,#00H
              MOV                       R7,#00H
              MOV                       DPTR,#WC_ADD
              MOV                       A,#4CH
              MOVX                      @DPTR,A
LINEA:
              MOV                       DPTR,#WC_ADD
              MOV                       A,#46H
              MOVX                      @DPTR,A
              MOV                       DPTR,#WD_ADD
              MOV                       A,R5
              MOVX                      @DPTR,A
              MOV                       A,R4
              MOVX                      @DPTR,A
              MOV                       DPTR,#WC_ADD
              MOV                       A,#42H
              MOVX                      @DPTR,A
LINEC:
              MOV                       DPTR,#RB_ADD
              MOVX                      A,@DPTR
              JB                        ACC.6,LINEC
              MOV                       A,#0FFH
              MOV                       DPTR,#WD_ADD
              MOVX                      @DPTR,A
              INC                       R6
              MOV                       A,R6
              CJNE                      A,#40D, LINEC
              MOV                       R6,#00H
              INC                       R7
              MOV                       A,R5
              ADD                       A,#40D
              MOV                       R5,A
              MOV                       A,R4
              ADDC                      A,#00H
              MOV                       R4,A
              MOV                       A,R7
              CJNE                      A,#04D,LINEA
              RET


;*********************************************************************
;***                                                               ***
;***                                                               ***
;***                         Delay                                 ***
;***                                                               ***
;*********************************************************************
DEL_20MS:

              MOV                       R5,#200D
DD2:          MOV                       R6,#200D
DD1:
              NOP
              NOP
              NOP
              DJNZ                       R6,DD1
              DJNZ                       R5,DD2
              RET



;*********************************************************************
;***                                                               ***
;***                                                               ***
;***                         Arrow                                 ***
;***                                                               ***
;*********************************************************************
UP_ARROW:
              MOV                       DPTR,#NUMUP
              MOV                       R1,DPL
              MOV                       R2,DPH
              MOV                       DPTR,#05A1H
              MOV                       R5,DPL
              MOV                       R4,DPH
              LCALL                     WRAR
              RET

DOWN_ARROW:
              MOV                       DPTR,#NUMDOWN
              MOV                       R1,DPL
              MOV                       R2,DPH

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?