⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ts1620-1.asm

📁 16*2液晶显示程序, 16*2液晶显示程序
💻 ASM
字号:
;适用于TS1610,1620 模块
RS  EQU P3.0
RW  EQU P3.1
E   EQU P3.2
;=======================
        ORG 0000H
        LJMP MAIN
        ORG 0030H
MAIN:  CALL LOOP
LOOP2: MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
       MOV DPTR,#TAB0;送数据表3,SXJ1974@163.COM
      LCALL WRITE1
      LCALL DELAY1
      MOV A,#0C0H ;第二行的位置
      LCALL ENABLE
      LCALL DELAY1
      MOV DPTR,#TAB1
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB2 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
      LCALL ENABLE
      LCALL DELAY1
      MOV DPTR,#TAB3
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB4 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB5
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB6 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB7
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB8 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB9
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB10 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB11
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB12 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB13
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB14 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB15
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB16 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB17
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB18 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB19
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB20 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB21
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB22 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB23
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

      MOV A,#80H  ;显示第一行的位置
       LCALL ENABLE
       LCALL DELAY1
     MOV DPTR,#TAB24 ;送数据表1111111111111111
      LCALL WRITE1
      LCALL DELAY1
     MOV A,#0C0H ;第二行的位置
       LCALL ENABLE
       LCALL DELAY1
      MOV DPTR,#TAB25
      LCALL WRITE1
      LCALL DELAY1
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY
      LCALL DELAY

     LCALL CG_WRITE ;调建立自定义字符子程序
     MOV A,#80H
     LCALL ENABLE
     LCALL DELAY1
     MOV DPTR,#TABDY ;设置字表首地址
      LCALL WRITE1
      LCALL DELAY1
      MOV A,#0C0H ;设置DDRAM地址
     LCALL ENABLE
     LCALL DELAY1
     MOV DPTR,#TABDY1
     LCALL WRITE1
     LCALL DELAY1
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     LJMP LOOP2
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;

LCALL CG_WRITE1 ;调建立自定义字符子程序
     MOV A,#80H
     LCALL ENABLE
     LCALL DELAY1
     MOV DPTR,#TABDY2 ;设置字表首地址
      LCALL WRITE1
      LCALL DELAY1
      MOV A,#0C0H ;设置DDRAM地址
     LCALL ENABLE
     LCALL DELAY1
     MOV DPTR,#TABDY2
     LCALL WRITE1
     LCALL DELAY1
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     LCALL DELAY
     RET


  ;========================左滚动输入方式

       MOV A,#01H ;清零
      LCALL ENABLE
       MOV A,#38H ;设置为16位两行字符,8位数据总线
       LCALL ENABLE
       MOV A,#0CH  ;显示开关,关闭光标,没有闪烁
       LCALL ENABLE
        MOV A,#07H
           LCALL ENABLE
           LCALL DELAY1
 AA:    MOV A,#90H
       LCALL ENABLE
       LCALL DELAY1
       LCALL AB1
       MOV A,#0C1H
       LCALL ENABLE
       LCALL DELAY1
       LCALL AB1
       LCALL DELAY
       LCALL DELAY
          SJMP AA
 AB1:      MOV DPTR,#TABL
           MOV R2,#0BH
           MOV R3,#00H
  L_1:     MOV A,R3
           MOVC A,@A+DPTR
           LCALL WRITE3
           LCALL DELAY1
           INC R3
           LCALL DELAY
           LCALL DELAY
           LCALL DELAY
           DJNZ R2,L_1
           RET


          ; LJMP LOOP2
 ;========================
CG_WRITE:MOV A,#40H  ;设置CGRAM地址
      LCALL ENABLE
      LCALL DELAY1
      MOV R2,#64   ;设置循环量
      MOV R3,#00H
      MOV DPTR,#CGTAB  ;设置字模数据首地址
CG1:  MOV A,R3
      MOVC A,@A+DPTR
      LCALL WRITE3
      LCALL DELAY1
      INC R3
      DJNZ R2,CG1
      RET
;=========================
CG_WRITE1:MOV A,#40H  ;设置CGRAM地址
      LCALL ENABLE
      LCALL DELAY1
      MOV R2,#64   ;设置循环量
      MOV R3,#00H
      MOV DPTR,#CGTAB1  ;设置字模数据首地址
CG2:  MOV A,R3
      MOVC A,@A+DPTR
      LCALL WRITE3
      LCALL DELAY1
      INC R3
      DJNZ R2,CG2
      RET


;==================================
LOOP:  LCALL DELAY
       MOV A,#01H ;清零
      LCALL ENABLE
       MOV A,#38H ;设置为16位两行字符,8位数据总线
       LCALL ENABLE
       MOV A,#0CH  ;显示开关,关闭光标,没有闪烁
       LCALL ENABLE
       MOV A,#06H  ;设置增量方式,显示移位方式
       LCALL ENABLE
          RET
;==========================================

WRITE3: SETB RS
        NOP
        NOP
        NOP
        CLR RW
        NOP
        NOP
        NOP
        SETB E
        NOP
        NOP
        MOV P1,A
        LCALL DELAY1
        NOP
        NOP
        CLR E
        RET

 ;=====================

WRITE1: MOV R1,#16
AL:     CLR A
        MOVC A,@A+DPTR
        LCALL WRITE2
        INC DPTR
        DJNZ R1,AL
        RET
WRITE2: SETB RS
        NOP
        NOP
        NOP
        CLR RW
        NOP
        NOP
        NOP
        SETB E
        NOP
        NOP
        MOV P1,A
        LCALL DELAY1
        NOP
        NOP
        CLR E
        RET
ENABLE:  CLR RS
          NOP
          NOP
          NOP
         CLR RW
         NOP
         NOP
         NOP
         SETB  E
         nop
         nop
         MOV P1,A
         LCALL DELAY
         NOP
         NOP
         CLR E
         RET
;========================
 DELAY:  MOV R7,#255
    D1:  MOV R6,#255
    D2:  DJNZ R6,D2
         DJNZ R7,D1
         RET
DELAY1:  MOV R7,#25
    D3:  DJNZ R7,D3
         RET

TAB0:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
TAB1:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
TAB2:DB 0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,
TAB3:DB 0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,0D0H,
TAB4:DB 0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,
TAB5:DB 0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,0D1H,
;TAB2:DB "0000000000000000"
;TAB3:DB "0000000000000000"
;TAB4:DB "1111111111111111"
;TAB5:DB "1111111111111111"
TAB6:DB "2222222222222222"
TAB7:DB "2222222222222222"
TAB8:DB "3333333333333333"
TAB9:DB "3333333333333333"
TAB10:DB "4444444444444444"
TAB11:DB "4444444444444444"
TAB12:DB "5555555555555555"
TAB13:DB "5555555555555555"
TAB14:DB "6666666666666666"
TAB15:DB "6666666666666666"
TAB16:DB "7777777777777777"
TAB17:DB "7777777777777777"
TAB18:DB "8888888888888888"
TAB19:DB "8888888888888888"
TAB20:DB "9999999999999999"
TAB21:DB "9999999999999999"
TAB22:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
TAB23:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
TAB24:DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,
TAB25:DB 0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,
; TAB24: DB 01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,01H,
 ;TAB25:DB 08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h
 CGTAB: DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H   ;"年"代码=00H
        DB 0FH,09H,0FH,09H,0FH,09H,11H,00H   ;"月"代码=01H
        DB 1FH,11H,11H,1FH,11H,11H,1FH,00H   ;"日"代码=02H
        DB 00H,0EH,04H,1FH,0AH,11H,00H,00H   ;"天"代码=03H
        DB 0EH,00H,1FH,0AH,0AH,0AH,13H,00H   ;"元"代码=04H
        DB 00H,1FH,04H,0CH,0FH,0CH,1FH,00H   ;"正"代码=05H
        DB 04H,0AH,15H,04H,04H,04H,04H,00H
        DB 17H,15H,15H,15H,15H,15H,17H,00H   ;"10"代码=07H
        DB 04H,04H,04H,04H,15H,0AH,04H,00H
 CGTAB1: DB 00H,1FH,00H,1FH,00H,1FH,00H,1FH   ;00H
         DB 1FH,00H,1FH,00H,1FH,00H,1FH,00H  ;01H
         DB 15H,0AH,15H,0AH,15H,0AH,15H,0AH   ;02H
         DB 0AH,15H,0AH,15H,0AH,15H,0AH,15H   ;03H
         DB 15H,15H,15H,15H,15H,15H,15H,15H    ;04H
         DB 0AH,0AH,0AH,0AH,0AH,0AH,0AH,0AH   ;05H
         DB 04H,15H,0EH,1FH,0EH,15H,04H,04H   ;06H
         DB 1FH,15H,15H,1FH,15H,15H,15H,1FH   ;07H
 TABDY: DB 00H,01H,02H,03H,04H,05H,06H,07H,07H,00H,01H,02H,03H,04H,05H,06H
 TABDY1:DB 0FEH,0FEH,"2004",00H,0FEH,07H,01H,0FEH,07H,02H,0FEH,0FEH,0FEH
 TABDY2:DB 00H,01H,02H,03H,04H,05H,06H,07H,07H,06H,05H,04H,03H,02H,01H,00H
 TABL:  DB 4CH,65H,66H,74H,20H
        DB 53H,63H,72H,6FH,6CH,6CH


END


⌨️ 快捷键说明

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