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

📄 kx1.asm

📁 Alera 的8051 IP core的示例文件5个
💻 ASM
📖 第 1 页 / 共 4 页
字号:
          DJNZ   R4,RCT9
          RET
  ;
  FN_A :  DB     46H,52H,45H,51H,3AH   ; FREQ:
  FN_B :  DB     50H,57H,20H,20H,3AH   ; PW  :
  FN_C :  DB     44H,55H,54H,59H,3AH   ; DUTY:

  ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
    ;
WW45:    MOV    A,20H
          SJMP   OOLK
 DISP2:   MOV    20H,A
          CJNE   A,#3AH,NNO3A
          SJMP   OOLK
 NNO3A:   ANL    A,#0F0H
          CJNE   A,#30H,WW45
          MOV    A,20H
          ANL    A,#0FH
 OOLK:    MOV    R0,B
          MOV    @R0,A

          MOV    DAT,B  ; B是地址;A是显示数据
          MOV    A,20H
          LCALL	 ENABLE
	  MOV	 P1,A
          SETB	 RS
	  CLR	 RW
          nop
	  CLR	 E
          nop
	  SETB   E
          LCALL  DDT9
          RET

DISPV:    MOV    DAT,B  ; B是地址;A是显示数据
          LCALL	 ENABLE
	  MOV	 P1,A
          SETB	 RS
	  CLR	 RW
          nop
	  CLR	 E
          nop
	  SETB   E
          LCALL  DDT9
          RET
       ;
;JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
DELAY:   MOV   R1,#0FH  ;    9H
  WWW:   MOV   R0,#0FFH
  NMN:   DJNZ  R0,NMN
         DJNZ  R1,WWW
	 RET

  WWA:   MOV   R0,#0F0H
  NMA:   DJNZ  R0,NMA
         DJNZ  R1,WWA
	 RET


DDT9:   MOV   R3,#1FH
DDT8:   MOV   R2,#0FFH
DDT7:   DJNZ  R2,DDT7
        DJNZ  R3,DDT8
        RET

H4F20:  MOV    4FH,20H
        MOV    4EH,21H
        MOV    4DH,22H
        MOV    4CH,23H
        MOV    4BH,24H
        MOV    4AH,#00H
        MOV    49H,#00H
        RET

H5AT4A: MOV    4AH,5AH
        MOV    4BH,5BH
        MOV    4CH,5CH
        MOV    4DH,5DH
        MOV    4EH,5EH
        MOV    4FH,5FH
        RET

  ; hhhhhhhhhhhhJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
 ; PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP


  H5A27:  MOV    5AH,#00H
          MOV    5BH,#00H
          MOV    5CH,27H
          MOV    5DH,26H
          MOV    5EH,25H
          MOV    5FH,24H
          RET

  H5A23:  MOV    5AH,#00H
          MOV    5BH,#00H
          MOV    5CH,23H
          MOV    5DH,22H
          MOV    5EH,21H
          MOV    5FH,20H
          RET
; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ



  NL0:    MOV    R2,#05H
  NL1:    CLR    A
          MOV    @R1,A
          INC    R1
          DJNZ   R2,NL1
          RET

 ;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
  SEND8:  MOV    R2,#0CH
  SEND7:  MOV    R0,#44H
          MOV    R1,#54H
  RRQ9:   MOV    A,@R1
          INC    R1
          MOV    @R0,A
          INC    R0
          DJNZ   R2,RRQ9
          RET

  RRQ10:  MOV    R2,#07H
   WWE4:  MOV    A,@R1
          DEC    R1
          MOV    @R0,A
          INC    R0
          DJNZ   R2,WWE4
          RET


  DDD:    MOV   30H,#07H
  GNN:    LCALL DDX
          DJNZ  30H,GNN
          RET


  DDX:    MOV   21,#0FFH
  WWWA:   MOV   20,#0FFH
  NMNA:   DJNZ  20,NMNA
          DJNZ  21,WWWA
          RET
   ;---------------------------------------------------------------
   DPTR1: CLR   C
          MOV   A,DPL
          SUBB  A,#01H
          MOV   DPL,A
          MOV   A,DPH
          SUBB  A,#00H
          MOV   DPH,A
          RET

  ; KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 测频率 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
 ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
 ;KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
                                                               ; 测频率
;   F = {(TCLK X 50MHz ) X 1000000} / BCLK
 TESTF:   SETB   P0.7        ; START 口预备
          CLR    P0.1        ; CL
          SETB   P0.7        ; EEND:
          SETB   P0.2        ; SPUL:选择CL为预置门控信号
          CLR    P0.0
          SETB   P0.0
          CLR    P0.0        ; 清零
          SETB   P0.1        ; CL  : 预置门打开
 WWTT:    JNB    P0.7,WWTT   ;  测START口,为1,表明已经开始计数,否则继续等待

          MOV    R1,#9FH
          MOV    A,09H
          JZ     FIRS1
          LCALL  WWA ;          ; DELAY1      ;  已经开始计数,设置计数时间
          SJMP   FIRS2

 FIRS1:   LCALL  WWW
 FIRS2:   CLR    P0.1        ;  设置CL为0,关闭预置门

 WWTT1:   JB     P0.7,WWTT1  ;  测START口,若为1,表明仍在计数,继续等待
          SETB   P0.1        ;  计数结束,可以读出计数结果
          SETB   P0.1

          CLR    P0.6        ; SEL0 : 读标准频率数
          CLR    P0.5        ; SEL1
          CLR    P0.4        ; SEL2
          MOV    P2,#0FFH
          NOP
          NOP
          NOP
          MOV    A,P2
          MOV    20H,A       ; 读标准频率最底8位数

          SETB   P0.4   ; SEL0
          CLR    P0.5   ; SEL1
          MOV    A,P2
          MOV    21H,A

          CLR    P0.4   ; SEL0
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    22H,A

          SETB   P0.4   ; SEL0    23H,22H,21H,20H  标准频率计数
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    23H,A       ; 读标准频率最高8位数
          ; IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
          CLR    P0.4   ; SEL0
          CLR    P0.5   ; SEL1

          SETB   P0.6   ; SEL2  读待测频率数

          MOV    A,P2
          MOV    24H,A

          SETB   P0.4   ; SEL0
          CLR    P0.5   ; SEL1
          MOV    A,P2
          MOV    25H,A

          CLR    P0.4   ; SEL0
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    26H,A

          SETB   P0.4   ; SEL0    27H,26H,25H,24H  待测频率计数
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    27H,A
          CLR    P0.1
    ; KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK计算

          MOV    4AH,#24H ;16H      ;  50MHZ X 1000000  = 2D79883D2000H
          MOV    4BH,#61H ;0BCH     ;  40MHZ X 1000000  = 246139CA8000H
          MOV    4CH,#39H ;0C4H     ;  250MHZ X 1000000 = E3 5F A9 31 A0 00H
          MOV    4DH,#0CAH ;23H
          MOV    4EH,#80H ;90H
          MOV    4FH,#00H   ;#00H

   SEC2:  LCALL  H5A27
          LCALL  MULNM                ;   50MHZ X 1000000 = 2D79883D2000H
          LCALL  SEND8
          LCALL  H5A23
          LCALL  DIVD1

          MOV    R0,#30H
          MOV    R1,#4FH
          LCALL  RRQ10
          MOV    36H,#00H
          LCALL  HEXBCD

          MOV    16H,#0FH
          MOV    A,47H
          ANL    A,#0FH
          JNZ    JB47
          MOV    A,46H
          ANL    A,#0F0H
          JNZ    H46N
          MOV    A,46H
          ANL    A,#0FH
          JNZ    L46N    ;
          MOV    A,45H
          ANL    A,#0F0H
          JNZ    H45N
          MOV    A,45H
          ANL    A,#0FH
          JNZ    L45N
          MOV    A,44H
          ANL    A,#0F0H
          JNZ    H44N
          MOV    A,44H
          ANL    A,#0FH
          JNZ    L44N
          MOV    A,43H
          ANL    A,#0F0H
          JNZ    H43N
          MOV    A,43H
          ANL    A,#0FH
          JNZ    L43N
          SJMP   L43Y
  JB47:   SJMP   JM47

  L43Y:   MOV    R0,#40H     ; 0.5HZ
          LCALL  DIS_A
          MOV    16H,#00H
          MOV    0AH,#40H
          RET

  L43N:   MOV    R0,#40H     ; 1HZ,4HZ
          LCALL  DIS_A
          MOV    0AH,#40H
          RET

   H43N:  MOV    R0,#40H     ; 16H
          LCALL  DIS_B
          MOV    0AH,#20H
          RET

  L44N:   MOV    R0,#41H
          LCALL  DIS_A
          MOV    0AH,#10H
          RET

  H44N:   MOV    R0,#41H
          LCALL  DIS_B
          MOV    0AH,#08H
          RET

  L45N:   MOV    R0,#42H
          LCALL  DIS_A
          MOV    0AH,#04H
          RET

  H45N:   MOV    R0,#42H
          LCALL  DIS_B
          MOV    0AH,#02H
          RET

  L46N:   MOV    R0,#43H
          LCALL  DIS_A
          MOV    0AH,#01H
          RET

  H46N:   MOV    R0,#43H
          LCALL  DIS_B
          MOV    0AH,#60H
          RET

JM47:     MOV    R0,#44H
          LCALL  DIS_A
          MOV    0AH,#70H
          RET


 ; YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY;   测脉宽  LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
; OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  测脉宽  KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
WITH:
          SETB   P0.3        ; EEND 口预备
          CLR    P0.2        ; SPUL:选择测脉宽,CL设为测脉宽控制信号
          SETB   P0.1        ; CL  : 设CL为1,则测高电平脉宽
          NOP
          CLR    P0.0
          SETB   P0.0
          CLR    P0.0        ; 清零,同时启动脉宽计数
          NOP
          NOP
          NOP
 WWTT2:   JNB    P0.3,WWTT2  ;  测EEND口,为1,表明脉宽计数结束
          NOP
          SETB   P0.1
          SETB   P0.1
          CLR    P0.6        ; SEL0 : 读标准频率数
          CLR    P0.5        ; SEL1
          CLR    P0.4        ; SEL2
          MOV    P2,#0FFH
          NOP
          NOP
          NOP
          MOV    A,P2
          MOV    20H,A       ; 读标准频率最底8位数
          SETB   P0.4   ; SEL0
          CLR    P0.5   ; SEL1
          MOV    A,P2
          MOV    21H,A
          CLR    P0.4   ; SEL0
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    22H,A
          SETB   P0.4   ; SEL0    23H,22H,21H,20H  标准频率计数
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    23H,A       ; 读标准频率最高8位数
          ; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
          MOV    R1,#4AH
          LCALL  NL0

          MOV    4FH,#7DH    ;    X 40MHZ周期为25nS,X 5 =125 =7DH
  THD2:   LCALL  H5A23       ;    X 250MHZ=     4ns, X 5 = 20 =14H
          LCALL  MULNM
          LCALL  SEND8

          MOV    R1,#5AH
          LCALL  NL0
          MOV    5FH,#32H
          LCALL  DIVD1

          MOV    R0,#30H
          MOV    R1,#4FH
          LCALL  RRQ10
          MOV    36H,#00H
          LCALL  HEXBCD

          MOV    A,44H
          ANL    A,#0FH
          JNZ    LL44   ;   CJNE   A,#00H,LL44
          MOV    A,43H
          ANL    A,#0F0H
          JNZ    HH43       ;  CJNE   A,#00H,HH43
          SJMP   LL43Y
LL44:     SJMP   LL44N
HH43:     SJMP   HH43N


; PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
LL43Y:    MOV    R0,#40H
          LCALL  DIS_A
          MOV    0AH,#04H
          RET
; PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
HH43N:    MOV    R0,#40H
          LCALL  DIS_B
          MOV    0AH,#02H
          RET
; PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
LL44N:    MOV    R0,#41H
          LCALL  DIS_A
          MOV    0AH,#01H
          RET
; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 测占空比 LLLLLLLLLLLLLLLLLLLLLLLLLLLLL

; 测占空比
RATO:
          SETB   P0.3        ; EEND 口预备
          CLR    P0.2        ; SPUL:选择测脉宽,CL设为测脉宽控制信号
          SETB   P0.1        ; CL  : 设CL为1,则测高电平脉宽
          NOP
          CLR    P0.0
          SETB   P0.0
          CLR    P0.0        ; 清零,同时启动脉宽计数
          NOP
          NOP
          NOP
 WWTT5:   JNB    P0.3,WWTT5  ;  测EEND口,为1,表明脉宽计数结束
          NOP
          SETB   P0.1
          SETB   P0.1
          CLR    P0.6        ; SEL0 : 读标准频率数

          CLR    P0.5        ; SEL1
          CLR    P0.4        ; SEL2
          MOV    P2,#0FFH
          NOP
          NOP
          NOP
          MOV    A,P2
          MOV    20H,A       ; 读标准频率最底8位数
          SETB   P0.4   ; SEL0
          CLR    P0.5   ; SEL1
          MOV    A,P2
          MOV    21H,A
          CLR    P0.4   ; SEL0
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    22H,A
          SETB   P0.4   ; SEL0    23H,22H,21H,20H  标准频率计数
          SETB   P0.5   ; SEL1
          MOV    A,P2
          MOV    23H,A       ; 读标准频率最高8位数
          ; HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
          SETB   P0.3        ; EEND 口预备
          CLR    P0.2        ; SPUL:选择测脉宽,CL设为测脉宽控制信号
          CLR    P0.1        ; CL  : 设CL为1,则测低高电平脉宽
          NOP
          CLR    P0.0
          SETB   P0.0
          CLR    P0.0        ; 清零,同时启动脉宽计数
          NOP
          NOP
          NOP
 WWTT4:   JNB    P0.3,WWTT4  ;  测EEND口,为1,表明脉宽计数结束
          NOP
          SETB   P0.1
          SETB   P0.1

⌨️ 快捷键说明

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