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

📄 gwdvp_m1.asm

📁 Alera 的8051 IP core的示例文件5个
💻 ASM
📖 第 1 页 / 共 4 页
字号:
 ; 2005-12-22 'LCD

         RS	EQU	P3.0
         RW	EQU	P3.1
         E	EQU	P3.2
         DAT	EQU	30H
         DAT1	EQU	31H

          ORG    0000H
          MOV    SP,#60H
          MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
	  LCALL	 ENABLE        ; 如果使用LCD液晶显示,在程序开头必须加上这句
          LCALL  DISP3
          MOV	 DAT,#01H      ; CLEAR
	  LCALL	 ENABLE
          MOV   R5,#80H
          MOV   DPTR,#KONX
          LCALL FB6
          MOV    DPTR,#TC1
          MOV    R5,#0C0H
          LCALL  FB1

          MOV	 DAT,#0CH   ; 关闭光标
	  LCALL	 ENABLE
          MOV    7AH,#00H
          MOV    7BH,#00H
          MOV    7CH,#00H
          MOV    7DH,#00H

KKE1:     LCALL KKEYI       ;键盘信号搜索
 KCACOM:  LCALL KCOM1    ;  A > 9 执行键盘命令
          LJMP  KKE1
     ;lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
     ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KCOM1:  CJNE   A,#00H,KN88 ;     键1 (04): ---------------------------(1)
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#46H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#3AH
        MOV    B,#82H
        LCALL  DISP2

        MOV    A,7AH
        INC    A
        ANL    A,#0FH
        MOV    7AH,A
        ADD    A,7BH
        MOV    P0,A

        MOV    A,7AH
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#85H
        LCALL  DISP2

        MOV    A,7BH
        SWAP   A
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#84H
        LCALL  DISP2
        RET


;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU  键2(K05) LLLLLLLLLLLLLLLLLLLLLLLLUUUUUUUUUUUUUUUUUUU UUUUKKKKKKKKKKKKKKKK
KNJ99:    LJMP   MMKL
KN88:     CJNE   A,#01H,KNJ99 ; ----------------(2)
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#46H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#3AH
        MOV    B,#82H
        LCALL  DISP2

        MOV    A,7BH
        SWAP   A
        INC    A
        ANL    A,#0FH
        SWAP   A
        MOV    7BH,A
        MOV    A,7AH
        ADD    A,7BH
        MOV    P0,A

        MOV    A,7AH
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#85H
        LCALL  DISP2

        MOV    A,7BH
        SWAP   A
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#84H
        LCALL  DISP2
        RET



 ; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键3(K06) JJJJJJJJJJJJJJJJJJJLLLLLLLLLLLLLLLLLLL
 KAAN7:   LJMP   KAAN   ;
MMKL  :   CJNE  A,#02H,KAAN7
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE

        MOV    A,#50H
        MOV    B,#0C1H
        LCALL  DISP2
        MOV    A,#3AH
        MOV    B,#0C2H
        LCALL  DISP2

        MOV    A,7CH
        INC    A
        ANL    A,#0FH
        MOV    7CH,A
        ADD    A,7DH
        MOV    P2,A

        MOV    A,7CH
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#0C5H
        LCALL  DISP2

        MOV    A,7DH
        SWAP   A
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#0C4H
        LCALL  DISP2
        RET


          ;--------------------------------------------------------------------------------------------------------------

  ;PPPPPPPPPPPPPPPPPPPPPPPPPPPPPLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键4(K07) SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
 KBBN:    LJMP   KBBN3
 KAAN:    CJNE   A,#03H,KBBN     ;
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#50H
        MOV    B,#0C1H
        LCALL  DISP2
        MOV    A,#3AH
        MOV    B,#0C2H
        LCALL  DISP2

        MOV    A,7DH
        SWAP   A
        INC    A
        ANL    A,#0FH
        SWAP   A
        MOV    7DH,A
        MOV    A,7CH
        ADD    A,7DH
        MOV    P2,A

        MOV    A,7CH
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#0C5H
        LCALL  DISP2

        MOV    A,7DH
        SWAP   A
        ANL    A,#0FH
        LCALL  ASC1
        MOV    B,#0C4H
        LCALL  DISP2
        RET

  ;JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ  键5(K14)  KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJ
 KDDN :   LJMP  KDDN7
 KBBN3:   CJNE  A,#04H,KDDN   ;   键5仅
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#31H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#34H
        MOV    B,#82H
        LCALL  DISP2
          RET



   ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL  键6(K15)  LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KEEN:     LJMP  KEEN8
OTHB:     RET
KDDN7:    CJNE  A,#05H,KEEN    ; 键6
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#31H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#35H
        MOV    B,#82H
        LCALL  DISP2

          RET


   ; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ  键7(K16)  KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJ

 KEEN8:   CJNE  A,#06H,KFFN
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#31H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#36H
        MOV    B,#82H
        LCALL  DISP2
          RET


;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键8(K17) LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

KFFN:     CJNE  A,#07H,KF8                    ; 键8控制
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#31H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#37H
        MOV    B,#82H
        LCALL  DISP2
         RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
   KF8:   CJNE  A,#08H,KF9                 ; 键9(K24)控制
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#32H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#34H
        MOV    B,#82H
        LCALL  DISP2
          RET

  KF9:    CJNE  A,#09H,KF10         ; 键10(K25)控制
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#32H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#35H
        MOV    B,#82H
        LCALL  DISP2
          RET

  KF10:   CJNE  A,#0AH,KF11           ; 键11(K26)控制
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#32H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#36H
        MOV    B,#82H
        LCALL  DISP2
          RET

  KF11:   CJNE  A,#0BH,KF12             ; 键12(K27)控制
        MOV	 DAT,#01H      ; CLEAR 液晶显示初始化
        LCALL	 ENABLE
        MOV    A,#4BH
        MOV    B,#80H
        LCALL  DISP2        ;
        MOV    A,#32H
        MOV    B,#81H
        LCALL  DISP2
        MOV    A,#37H
        MOV    B,#82H
        LCALL  DISP2
          RET

  KF12:   CJNE  A,#0CH,KF13              ; 键13(K34)控制
          LCALL  CLR88
          MOV	 DAT,#01H      ; CLEAR
	  LCALL	 ENABLE
                            ;  -----------------------------------------------测频率-------------------------------------
          MOV    DPTR,#FN_A             ;以上程序显示液晶设置
          MOV    R5,#80H
          LCALL  FCN9

   RRRV:  LCALL  TESTF          ; 测频率子程序
          LCALL  TESTFF         ; 数据显示调整子程序

          SJMP   RRRV

  KF14A:  LJMP   KF14
  KF13:   CJNE  A,#0DH,KF14A             ; 键14(K35)控制
          MOV	DAT,#01H      ; CLEAR
	  LCALL	ENABLE

  RRRC:   MOV    DPTR,#FN_B
          MOV    R5,#81H
          LCALL  FCN9
          MOV    0BH,#00H
          MOV    0AH,#00H
          LCALL  WITH            ; 测脉宽子程序
          LCALL  TESTPW          ; 数据显示调整子程序
          SJMP   RRRC
          RET


  KF14:   CJNE  A,#0EH,KF15             ; 键15(K36)控制
          MOV	DAT,#01H      ; CLEAR
	  LCALL	ENABLE
          MOV    DPTR,#FN_C
          MOV    R5,#81H
          LCALL  FCN9
          MOV    0BH,#00H
          MOV    0AH,#00H
RRRN:     LCALL  RATO             ; 测占空比子程序
          LCALL  TESTD            ; 数据显示调整子程序
          SJMP   RRRN

  KF15:                                ; 键16(K37)控制
          MOV    A,#49H
          MOV    B,#80H
          LCALL  DISP2
          MOV    A,#43H
          MOV    B,#80H
          LCALL  DISP2
          LJMP   CCC
          RET
          RET

;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
;
;KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
  DIVD1:  NOP             ; 2N BYTE / N BYTE = N BYTE ,HERE N=3 IN 31H
	  MOV	30H,#0CH  ; (4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH)
	  MOV	31H,#06H  ; 除法程序,30H放置被除数字节数,31H放置除数字节数
  DIVPP:  MOV	A,AD1
	  MOV	R2,A
	  RL	A
	  RL	A
	  RL	A
	  MOV	R3,A
	  CLR	0F0H
	  CLR	C
	  MOV	A,#ADA
	  SUBB	A,R2
	  MOV	AD3,A
	  MOV	R1,#ADB
 DIVMB2B: MOV	A,@R1
	  JNZ	DIVM2B
	  DEC	R1
	  DJNZ	R2,DIVMB2B
	  SETB	0F0H
	  RET
 DIVM2B:  MOV	R2,AD1
	  MOV	R1,#ADB
	  MOV	R0,AD3
 DIVM2L:  MOV	A,@R0
	  SUBB	A,@R1
	  DEC	R0
	  DEC	R1
	  DJNZ	R2,DIVM2L
	  JNC	DIVM20
 DIVM2D:  LCALL SHIL1
	  JC	DIVM2S
 DIVM2C:  MOV	R0,AD3
	  MOV	R1,#ADB
	  MOV	R2,AD1
 DIVM2CL: MOV	A,@R0
	  SUBB	A,@R1
	  DEC	R0
	  DEC	R1
	  DJNZ	R2,DIVM2CL
	  JC	DIVM2E
 DIVM2S:  INC	ADA
	  MOV	R2,AD1
	  MOV	R0,AD3
	  MOV	R1,#ADB
	  LCALL SUBMBB
 DIVM2E:  DJNZ	R3,DIVM2D
	  RET
 DIVM20:  SETB	0F0H
	  RET
	  DB	  02H,12H

  SHIL1:  MOV	R2,AD0
	  MOV	R0,#ADA
 SHIL1B:  CLR	C
 SHILL:   MOV	A,@R0
	  RLC	A
	  MOV	@R0,A
	  DEC	R0
	  DJNZ	R2,SHILL
	  RET


 SUBMBB:  CLR	C
 SUBMB1:  MOV	A,@R0
	  SUBB	A,@R1
	  MOV	@R0,A
	  DEC	R0
	  DEC	R1
	  DJNZ	R2,SUBMB1
	  RET

   AD0	  EQU	30H
   AD1	  EQU	31H
   AD2	  EQU	32H
   AD3	  EQU	33H
   AD4	  EQU	34H
   AD5	  EQU	35H
   AD6	  EQU	36H
   ADA	  EQU	4FH
   ADB	  EQU	5FH
   ADC	  EQU	4DH
   ADDV	  EQU	5DH


  MULNM:  NOP             ; N BYTES X M BYTES = N+M BYTES HERE N=3;M=3
	  MOV	30H,#06H  ; (4D,4E,4FH)*(5D,5E,5FH)=(5A--5FH)
	  MOV	31H,#06H  ; 乘法程序,30H放置被乘数字节数,31H放置乘数字节数
MULTT:	  MOV	A,AD0
	  MOV	R3,AD1
	  MOV	R2,A
	  ADD	A,R3
	  INC	A
	  MOV	AD2,A
	  MOV	A,#ADB
	  CLR	C
	  SUBB	A,R3
	  MOV	AD6,A
	  MOV	R1,A
	  SUBB	A,R2
	  MOV	AD5,A
	  INC	R2
 MULNMZ:  MOV	@R1,#00H
	  DEC	R1

⌨️ 快捷键说明

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