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

📄 gwdvp_m1.asm

📁 Alera 的8051 IP core的示例文件5个
💻 ASM
📖 第 1 页 / 共 4 页
字号:
          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
          CLR    P0.6        ; SEL0 : 读标准频率数

          CLR    P0.5        ; SEL1
          CLR    P0.4        ; SEL2
          MOV    A,P2
          MOV    24H,A       ; 读标准频率最底8位数
          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       ; 读标准频率最高8位数
          ; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
          ; 高电平脉宽加低电平脉宽   27H/26H/25H/24H + 23H/22H/21H/20H = 27H/26H/25H/24H
          CLR    C
          MOV    A,24H
          ADDC   A,20H
          MOV    24H,A
          MOV    A,25H
          ADDC   A,21H
          MOV    25H,A
          MOV    A,26H
          ADDC   A,22H
          MOV    26H,A
          MOV    A,27H
          ADDC   A,23H
          MOV    27H,A

          MOV    R1,#4AH
          LCALL  NL0
          MOV    4EH,#03H
          MOV    4FH,#0E8H   ;    X 1000  =  3E8H
          LCALL  H5A23
          LCALL  MULNM
          LCALL  SEND8
          LCALL  H5A27
          LCALL  DIVD1

          MOV    R0,#30H
          MOV    R1,#4FH
          LCALL  RRQ10
          MOV    36H,#00H
          LCALL  HEXBCD
          MOV    R0,#40H
          LCALL  DIS_A
          MOV    0AH,#02H
          RET
  ; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
TESTFF:
          MOV   1BH,#0C5H
          MOV   1CH,#17H
          MOV   0DH,#0CH ; z
          MOV   0EH,#0BH ; H
          MOV   0FH,#0AH ;
          MOV   0CH,#0AH
          MOV   A,0AH
          CJNE  A,#01H,POIN1
 BASE:    MOV    B,#0CDH
          SJMP   POI8 ;          LCALL  DISP2
 POIN1:   CJNE  A,#02H,POIN2
          MOV    B,#0CCH
          SJMP   POI8 ;
 POIN2:   CJNE  A,#04H,POIN3
          MOV    B,#0CBH
          SJMP   POI8 ;
 POIN3:   CJNE  A,#08H,POIN4
          MOV    B,#0CAH
          SJMP   POI8 ;
 POIN4:   CJNE  A,#10H,POIN5
          MOV    B,#0C9H
          SJMP   POI8 ;
 POIN5:   CJNE  A,#20H,POIN6
          MOV    B,#0C8H
          SJMP   POI8 ;
 POIN6:   CJNE  A,#40H,POIN7
          MOV    B,#0C7H
          SJMP   POI8 ;
 POIN7:   CJNE  A,#60H,POIN8
          MOV   B,#0C8H
          SJMP   POI8 ;
 POIN8:   CJNE  A,#70H,POIN9
          MOV    B,#0C9H
          SJMP   POI8 ;
POIN9:    RET

POI8:     MOV   A,#2EH
          MOV   1AH,B
          LCALL DISP2
          MOV   R7,#0BH
 RRD1:    MOV   A,1BH  ; 1BH中装地址
          INC   A
          CJNE  A,1AH,NOEQ
          INC   A
 NOEQ:    MOV   1BH,A
          MOV   R1,1CH  ; 1CH装数据
          DEC   R1
          MOV   1CH,R1
          MOV   A,R1
          CJNE  A,#0FH,NOTX6
          MOV   A,0AH
          ANL   A,#60H
          CJNE  A,#60H,NOTX6
          MOV   0FH,#0DH
 NOTX6:   MOV   A,@R1
          LCALL ASC
          MOV   B,1BH
          LCALL DISP2
          DJNZ  R7,RRD1
          RET


         ; KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

TESTPW:   MOV   1BH,#0C5H
          MOV   1CH,#17H
          MOV   0DH,#0FH ; z
          MOV   0EH,#0EH ; H
          MOV   0FH,#0AH ;
          MOV   0CH,#0AH
          MOV   A,0AH
          CJNE  A,#01H,POI1
 BASE1:   MOV   B,#0CDH
          SJMP  POI8 ;          LCALL  DISP2
 POI1:    CJNE  A,#02H,POI2
          MOV   B,#0CCH
          SJMP  POI8 ;
 POI2:    CJNE  A,#04H,POI3
          MOV   B,#0CBH

 POI3:    MOV    A,#2EH  ; 小数点
          MOV    1AH,B
          LCALL  DISP2

⌨️ 快捷键说明

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