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

📄 kx1.asm

📁 Alera 的8051 IP core的示例文件5个
💻 ASM
📖 第 1 页 / 共 4 页
字号:
          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
          MOV    R7,#0AH
 RRD2:    MOV    A,1BH  ; 1BH中装地址
          INC    A
          CJNE   A,1AH,NOE2
          INC    A
 NOE2:    MOV    1BH,A
          MOV    R1,1CH  ; 1CH装数据
          DEC    R1
          MOV    1CH,R1
          MOV    A,@R1
          LCALL  ASC
          MOV    B,1BH
          LCALL  DISP2
          DJNZ   R7,RRD2
          RET
; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
TESTD:    MOV    A,12H
          LCALL  ASC
          MOV    B,#0CAH
          LCALL  DISP2
          MOV    A,11H
          LCALL  ASC
          MOV    B,#0CBH
          LCALL  DISP2
          MOV    A,#2EH
          MOV    B,#0CCH
          LCALL  DISP2
          MOV    A,10H
          LCALL  ASC
          MOV    B,#0CDH
          LCALL  DISP2
          MOV    A,#25H
          MOV    B,#0CFH
          LCALL  DISP2
          RET
; KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

DIS_A:    MOV    A,@R0     ; 40H     ; 显示
          ANL    A,#0FH
          MOV    10H,A
          MOV    A,@R0
          ANL    A,#0F0H
          SWAP   A
          MOV    11H,A
          INC    R0

          MOV    A,@R0
          ANL    A,#0FH
          MOV    12H,A
          MOV    A,@R0
          ANL    A,#0F0H
          SWAP   A
          MOV    13H,A
          INC    R0

          MOV    A,@R0
          ANL    A,#0FH
          MOV    14H,A
          MOV    A,@R0
          ANL    A,#0F0H
          SWAP   A
          MOV    15H,A
          INC    R0

          MOV    A,@R0
          ANL    A,#0FH
          MOV    16H,A
          RET

  DIS_B:  MOV    A,@R0  ;  43H
          ANL    A,#0F0H
          SWAP   A
          MOV    10H,A

          INC    R0
          MOV    A,@R0    ; 44H                             ; 显示
          ANL    A,#0FH
          MOV    11H,A
          MOV    A,@R0
          ANL    A,#0F0H
          SWAP   A
          MOV    12H,A

          INC    R0
          MOV    A,@R0     ;    45H
          ANL    A,#0FH
          MOV    13H,A
          MOV    A,@R0
          ANL    A,#0F0H
          SWAP   A
          MOV    14H,A

          INC    R0
          MOV    A,@R0  ;  46H
          ANL    A,#0FH
          MOV    15H,A
          MOV    A,@R0
          ANL    A,#0F0H
          SWAP   A
          MOV    16H,A
          RET

 ; -----------------------------------功能1:测频率、测占空比、测脉宽-----------------------------(1)
 ;KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK



     ;------------------------------------------------------开始--------------------------------------------------------------------
 CLR88:   SETB   P3.7
          CLR    P3.0

          CLR    P0.4    ;  P2.4    ;  LOCK1->
          CLR    P0.5    ;  P2.5    ;  LOCK2
          CLR    P3.1
          SETB   P3.1
          CLR    P3.1

          MOV    2AH,#00H
          CLR    A
          MOV    2BH,#31H
          MOV    2DH,A    ; 用户自定制系统标志字

             ; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
          MOV	DAT,#01H      ; CLEAR
	  LCALL	ENABLE

          CLR    P3.5
          CLR    P0.0
          MOV    79H,#00H
          RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
XPOS   EQU   40H                       	;定义列地址
YPOS   EQU   41H                        ;定义行地址
FIRST_COL    EQU	30H		;定义字符/汉字显示起始行
FIRST_ROW    EQU	31H		;定义字符/汉字显示起始列
HZK_WID	     EQU	32H		;定义字符/汉字显示长度
HZK_LIN	     EQU	33H		;定义字符/汉字显示行数
FIRST_ADD	EQU	34H 		;定义字符/汉字显示起始位置
START_ADD	EQU	35H       	;起始位置缓存单元
FIRST_LIN	EQU	36H		;起始行位置缓存单元
G_COLUMN	EQU	37H		;定义图形显示起始行
G_ROW		EQU	38H		;定义图形显示起始列
G_WID		EQU	39H		;定义图形显示宽度
;------------------------------------------------------------------------------------------------------
CCC:
	CLR	RW
LCD:
        LCALL   LCDRESET		;调用系统初始化程序
        CALL    HZKLIB                  ;汉字显示
        CALL    DL8X4                   ;延时
;-------------------------
        CALL    HZK_2                 ;KONXIN公司广告
        CALL    HZK_3
        CALL    HZK_4
        SJMP    CCC

        CALL    HZK_5
        CALL    DDD
        CALL    CLEAR                   ;清屏
        RET
DISP_A:
	MOV   FIRST_ADD,#00H  		;设定字符/汉字显示起始位置为第一个显示单元
        MOV   FIRST_LIN,#01H		;设定字符/汉字显示起始位置为第一行
        MOV   HZK_WID,#08H		;每行显示汉字个数
        MOV   HZK_LIN,#04H		;显示行数
        MOV   START_ADD,#00H       	;清首个显示地址缓存单元
        LCALL	HZK_DISP             	;调用汉字显示子程序
        RET



HZKLIB:  ;显示汉字子程序
        MOV   DPTR, #TAB 		;需要显示汉字机内码数据表
HZ8X4:	MOV   FIRST_ADD,#00H  		;设定字符/汉字显示起始位置为第一个显示单元
        MOV   FIRST_LIN,#01H		;设定字符/汉字显示起始位置为第一行
        MOV   HZK_WID,#08H		;每行显示汉字个数
        MOV   HZK_LIN,#04H		;显示行数
        MOV   START_ADD,#00H       	;清首个显示地址缓存单元
        LCALL	HZK_DISP             	;调用汉字显示子程序
        RET
DL8X4:  CALL    DDD                   ;延时
        MOV     A,#01H                  ;指令#01H为:清除屏幕文字,把地址指针指向00H单元
        CALL    LCDWC
        RET

HZK_2:  ;显示汉字子程序
     	MOV   FIRST_ADD,#00H  		;设定字符/汉字显示起始位置为第一个显示单元
        MOV   FIRST_LIN,#02H		;设定字符/汉字显示起始位置为第一行
        MOV   DPTR, #TAB_2 		;需要显示汉字机内码数据表
        MOV   HZK_WID,#08H		;每行显示汉字个数
        MOV   HZK_LIN,#02H		;显示行数
        MOV   START_ADD,#00H       	;清首个显示地址缓存单元
        LCALL	HZK_DISP             	;调用汉字显示子程序
        LCALL   DL8X4
        RET
HZK_3:  MOV   DPTR, #TAB_3
        CALL  HZ8X4
        SJMP  DL8X4
HZK_4:  MOV   DPTR, #TAB_4
        CALL  HZ8X4
        SJMP  DL8X4
HZK_5:  MOV   DPTR, #TAB_5
        CALL  HZ8X4
        SJMP  DL8X4


CLEAR:    ;清除图形显示CGRAM
       MOV   A,#00
       CALL  LCDFILL
       RET

LCDFILL:
       MOV    R4,A
       MOV    XPOS,#0
       MOV    YPOS,#0
LCD_A1:MOV    YPOS,#0
LCD_A2:
       MOV    A,#36H                   ;选择扩充指令集关闭图形显示
       CALL   LCDWC
       ;CALL   LCDPOS
       MOV    A,XPOS
       ADD    A,#80H
       CALL   LCDWC
       MOV    A,YPOS
       ADD    A,#80H
       CALL   LCDWC
       MOV    B,A
       MOV    A,#30H                   ;重新选择基本指令集
       CALL   LCDWC
       MOV    A,R4
       CALL   LCDWD
       CALL   LCDWD
       INC    YPOS
       MOV    A,B
       CJNE   A,#87H,LCD_A2             ;最后一列地址?87H
       INC    XPOS
       MOV    A,XPOS
       CJNE   A,#20H,LCD_A1             ;最后行地址为80H+20H=0A0H
       MOV    XPOS,#0
LCD_A3:MOV    YPOS,#0
LCD_A4:
       MOV    A,#36H
       CALL   LCDWC
       MOV    A,XPOS
       ADD    A,#80H
       CALL   LCDWC
       MOV    A,YPOS
       ADD    A,#88H
       CALL   LCDWC
       MOV    B,A
       MOV    A,#30H                    ;重新选择基本指令集
       CALL   LCDWC
       MOV    A,R4
       CALL   LCDWD
       CALL   LCDWD
       INC    YPOS
       MOV    A,B
       CJNE   A,#8FH,LCD_A4              ;最后一列地址为8FH
       INC    XPOS
       MOV    A,XPOS
       CJNE   A,#20H,LCD_A3              ;最后行地址为80H+20H=0A0H
       RET

CHR_DISP:  ;字符显示子程序
          MOV  R0,#50H
	  MOV R1,HZK_WID
CHR10:	  LCALL	  LCDPOS		 ;调用调整地址单元子程序
          MOV   A,#89H
;	  MOV A, START_ADD		 ;设定DDRAM地址,显示位置地址
          LCALL LCDWC
CHR11:    MOV  A,@R0			 ;读取显示字符
          LCALL LCDWD			 ;显示单个字符
          INC R0
          DJNZ	R1,CHR11
          RET
;=========
;例:在第1行、第2列 显示10个数字
CHR_01:
          ACALL  TTT_1
          MOV    FIRST_LIN,#1
          MOV    FIRST_ADD,#0
          MOV    HZK_WID,#10
          LCALL  CHR_DISP
          RET
TTT_1:
          MOV    A,#30H
          MOV    R1,#50H
          MOV    R2,#10H
TTT_L1:   MOV    @R1,A
          INC    R1
          INC    A
          DJNZ   R2,TTT_L1
          RET

HZK_DISP:   ;汉字显示子程序
	  MOV R1,HZK_WID
HZK10:	  LCALL	  LCDPOS		 ;调用调整地址单元子程序
	  MOV A, START_ADD		 ;设定DDRAM地址,显示位置地址
          LCALL LCDWC
HZK11:   CLR A				 ;因为要连续输入机内码高位(区码)、低位(位码)
          MOVC A, @A+DPTR		 ;所以要输入两次数据,如果是字符就是输入两个字符字符代码可以看说明书
          LCALL LCDWD			 ;DATA	LCDWC
          INC DPTR			 ;显示地址会自动加一,如果连续写就不用再输入地址,空白可用某空白汉字或字符代替
          CLR A
          MOVC A, @A+DPTR
          LCALL LCDWD
          LCALL DELAY03
          INC DPTR
          DJNZ	R1,HZK11
          MOV	R1,HZK_WID		;调整显示长度
          INC	FIRST_LIN          	;跳到下一行
          DJNZ	HZK_LIN,HZK10
          RET
LCDRESET:
        LCALL DDD              	;延时

					;首先选择基本指令集
        MOV A, #30H			;30---基本指令操作
        LCALL  LCDWC
        MOV    A,#30H                   ;使用8位控制界面
	LCALL  LCDWC
        MOV A, #01H			;指令#01H为:清除屏幕文字,把地址指针指向00H单元
        LCALL  LCDWC			;
        LCALL  DDD
        LCALL  DDD
        MOV A, #06H			;指定在资料写入或读取时,设定游标的移动方向及指定显示的移位
        LCALL  LCDWC
        MOV    A,#0CH
        CALL   LCDWC
        LCALL  DDD
        RET
;---------------------------------------------------------

⌨️ 快捷键说明

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