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

📄 sukong.asm

📁 行列式键盘控制,实现液晶(UM12864B)驱动显示程序.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
          DEC    A
          MUL    AB
          CLR    C
          MOV    DPTR,#TAB
          ADD    A,DPL
          MOV    DPL,A
          MOV    A,B
          ADDC   A,DPH
          MOV    DPH,A
          RET

 FINDTAB1: MOV    B,#32
           MUL    AB
           CLR    C
           MOV    DPTR,#TAB
           ADD    A,DPL
           MOV    DPL,A
           MOV    A,B
           ADDC   A,DPH
           MOV    DPH,A
           RET



;A键功能区:
;置给定值(存放数据单元为53--50h)
ZHISU0:
          MOV    DPTR,     #ZU0
          MOV    COMXSTART,#0B8H
          MOV    COMXEND,  #0B9H   ;给
          MOV    COMYSTART,#40H
          MOV    COMYEND,  #4FH
          MOV    JCS1CS2,  #00H
          LCALL  DISP
          MOV    DPTR,     #ZU1
          MOV    COMXSTART,#0B8H
          MOV    COMXEND,  #0B9H   ;定
          MOV    COMYSTART,#50H
          MOV    COMYEND,  #5FH
          MOV    JCS1CS2,  #00H
          LCALL  DISP
          MOV    DPTR,     #M
          MOV    COMXSTART,#0B8H
          MOV    COMXEND,  #0B9H   ;:
          MOV    COMYSTART,#60H
          MOV    COMYEND,  #6FH
          MOV    JCS1CS2,  #00H
          LCALL  DISP
          MOV    R6,#00H;用于判是右屏,还是左屏显示
          MOV    R5,#70H;数据显示起始列
          MOV    R4,#00H;计算输入数的个数
          MOV    R0,#53H;存放数据首地此
LOOOPE:   LCALL  KEY
          MOV    KEYZHI,A
          CJNE   A,#00H,LPE
          LJMP   LOOOPE
    LPE : MOV    A,KEYZHI
          CJNE   A,#10H,KUE
          LJMP   PP

   KUE:   MOV     A,KEYZHI
          DEC     A
          MOV     @R0,A
          LCALL   FINDTAB
          MOV     COMXSTART,#0B8H
          MOV     COMXEND,#0B9H
          MOV     COMYSTART,R5
          MOV     A,#0FH
          ADD     A,R5
          MOV     COMYEND,A
          MOV     JCS1CS2,R6
          LCALL   DISP
          MOV     A,R5
          ADD     A,#10H
          MOV     R5,A
          DEC     R0
          INC     R4
          MOV     A,R4
          CJNE    A,#01H,RRRE
          MOV     R6,#01H
          MOV     R5,#40H
   RRRE:  LJMP    LOOOPE
                              ;置数结束


   PP:    MOV    DPTR,     #GG
          MOV    COMXSTART,#0B8H
          MOV    COMXEND,  #0B9H  ;(ma)
          MOV    COMYSTART,#70H
          MOV    COMYEND,#7FH
          MOV    JCS1CS2,#01H
          LCALL  DISP

          MOV    R0,#50H   ;十进制数转换成十六进制数(转换后存入56,57单元)
          MOV    R1,#4FH
          LCALL  BCDHEX
          ;MOV    57H,5FH
          MOV    56H,5FH   ;56存放高位
          LCALL  DAC0832


          MOV   DPTR,     #ZU2
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;实
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          MOV   DPTR,     #ZU3
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;测
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2,  #00H
          LCALL DISP

          MOV   DPTR,     #M
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;:
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #00H
          LCALL DISP



          LCALL  ADC0809    ;读取实测值
          ;MOV     60H,#0C8H
          MOV     30H,60H       ;所加和高位放在31H单元,30h为低位
          MOV     31H,#00H

          LCALL  ADC0809    ;读取实测值
          ;MOV     60H,#0C8H
          MOV     30H,60H       ;所加和高位放在31H单元,30h为低位
          MOV     31H,#00H

          LCALL  HEXBCD        ;调十六进制转换十进制的子程序
          MOV     A,41H         ;转换后的值放入40,41h单元
          ANL     A,#0F0H       ;拆字把压缩的BCD转换成非压缩的BCD
                                ;转换后放入50--53h单元(53为高位)
          SWAP    A
          MOV     63H,A
          MOV     A,41H
          ANL     A,#0FH
          MOV     62H,A

          MOV     A,40H
          ANL     A,#0F0H
          SWAP    A
          MOV     61H,A
          MOV     A,40H
          ANL     A,#0FH
          MOV     60H,A

          MOV     R0,  #STEST
          MOV     A,   @R0
          LCALL   FINDTAB1
          MOV     COMXSTART,#0BAH
          MOV     COMXEND,  #0BBH
          MOV     COMYSTART,#70H
          MOV     COMYEND,  #7FH
          MOV     JCS1CS2, #00H
          LCALL   DISP

          DEC     R0
          MOV     A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2, #01H
          LCALL DISP

          DEC   R0
          MOV   A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2, #01H
          LCALL DISP

          DEC   R0
          MOV   A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #01H
          LCALL DISP

          MOV   DPTR,     #GG
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH  ;(ma)
          MOV   COMYSTART,#70H
          MOV   COMYEND,  #7FH
          MOV   JCS1CS2,  #01H
          LCALL DISP
          LJMP  TSF0






 ;B键功能区
 ;步进值数子程序(所置数存放在48,49h单元)
    KSS:  MOV   DPTR,     #ZU0
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H   ;给
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          MOV   DPTR,     #ZU1
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H   ;定
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          MOV   DPTR,     #M
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H   ;:
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #00H
          LCALL DISP


          MOV   R0, #53H
          MOV   A,  @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H
          MOV   COMYSTART,#70H
          MOV   COMYEND,  #7FH
          MOV   JCS1CS2, #00H
          LCALL DISP


          DEC   R0
          MOV   A,  @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2,  #01H
          LCALL DISP


          DEC   R0
          MOV   A,  @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2, #01H
          LCALL DISP


          DEC   R0
          MOV   A,  @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2, #01H
          LCALL DISP


          MOV   DPTR,     #GG
          MOV   COMXSTART,#0B8H
          MOV   COMXEND,  #0B9H  ;(ma)
          MOV   COMYSTART,#70H
          MOV   COMYEND,  #7FH
          MOV   JCS1CS2,  #01H
          LCALL DISP
      ;实测值显示(显示存放单元60--63h)
      II: MOV   DPTR,     #ZU2
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;实
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          MOV   DPTR,     #ZU3
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;测
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2,  #00H
          LCALL DISP

          MOV   DPTR,     #M
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH   ;:
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #00H
          LCALL DISP

          MOV   R0,  #STEST
          MOV   A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#70H
          MOV   COMYEND,  #7FH
          MOV   JCS1CS2, #00H
          LCALL DISP

          DEC   R0
          MOV   A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2, #01H
          LCALL DISP

          DEC   R0
          MOV   A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2, #01H
          LCALL DISP

          DEC   R0
          MOV   A,   @R0
          LCALL FINDTAB1
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #01H
          LCALL DISP

          MOV   DPTR,     #GG
          MOV   COMXSTART,#0BAH
          MOV   COMXEND,  #0BBH  ;(ma)
          MOV   COMYSTART,#70H
          MOV   COMYEND,  #7FH
          MOV   JCS1CS2,  #01H
          LCALL DISP



          ;MOV    R0,#50H   ;十进制数转换成十六进制数(转换后存入56,57单元)
          ;MOV    R1,#4FH
          ;LCALL  BCDHEX
          MOV    56H,5EH   ;56存放高位
          MOV    57H,5FH



          MOV   DPTR,     #ZU4
          MOV   COMXSTART,#0BCH
          MOV   COMXEND,  #0BDH   ;步
          MOV   COMYSTART,#40H
          MOV   COMYEND,  #4FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          MOV   DPTR,     #ZU5
          MOV   COMXSTART,#0BCH
          MOV   COMXEND,  #0BDH   ;进
          MOV   COMYSTART,#50H
          MOV   COMYEND,  #5FH
          MOV   JCS1CS2,  #00H
          LCALL DISP
          MOV   DPTR,     #M
          MOV   COMXSTART,#0BCH
          MOV   COMXEND,  #0BDH   ;:
          MOV   COMYSTART,#60H
          MOV   COMYEND,  #6FH
          MOV   JCS1CS2,  #00H
          LCALL DISP


          MOV    R6,#00H;用于判是右屏,还是左屏显示
          MOV    R5,#70H;数据显示起始列
          MOV    R4,#00H;计算输入数的个数
          MOV    R0,#48H;存放数据首地此
LOOOPE1:  LCALL  KEY
          MOV    KEYZHI,A
          CJNE   A,#00H,LPE1
          LJMP   LOOOPE1
   LPE1 : MOV    A,KEYZHI
          CJNE   A,#10H,KUE1
          LJMP   KS1

   KUE1:  MOV     A,KEYZHI
          DEC     A
          MOV     @R0,A
          LCALL   FINDTAB
          MOV    COMXSTART,#0BCH
          MOV    COMXEND,#0BDH
          MOV    COMYSTART,R5
          MOV    A,#0FH
          ADD    A,R5
          MOV    COMYEND,A
          MOV    JCS1CS2,R6
          LCALL   DISP
          MOV     A,R5

⌨️ 快捷键说明

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