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

📄 无线识别.asm

📁 51单片机控制nrf401程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        MOV R2,#6        ;写入汉字个数
        MOV R4,#99H      ;写入地址
        MOV DPTR,#TABLE2 ;写"电子设计竞赛"
        LCALL DISP
        CLR YJCS
        RET
;********显示收回数据***********************
XDISP:   ACALL OFFDIS
         MOV R2,#5           ;写入数据个数
         MOV R4,#80H         ;写入地址
         MOV R0,#30H
         ACALL DIS
         ACALL YANSHI1
         RET

;*******************************************
DISP:   SETB YJCS
        MOV A,#0F8H    ;DDRAM
        ACALL WRITE64
        MOV A,R4        ;写入地址
        ACALL WRITDAT
        ACALL DELAY1
        MOV R3,#0
        ACALL FANHUI1
      ;  MOV A,#0FAH    ;写空位
      ;  ACALL WRITE64
      ;  MOV A,#20H
      ;  ACALL WRITDAT
        CLR YJCS
        RET
;************************************
DIS:    SETB YJCS
        MOV A,#0F8H    ;DDRAM
        ACALL WRITE64
        MOV A,R4       ;写入地址
        ACALL WRITDAT
LLP:    MOV A,#0FAH    ;写一字节数据
        ACALL WRITE64
        MOV A,@R0
        ACALL WRITDAT
        ACALL DELAY1
        INC R0
        DJNZ R2,LLP
       ; MOV A,#0FAH    ;写空位
       ; ACALL WRITE64
       ; MOV A,#20H
       ; ACALL WRITDAT
        CLR YJCS
        RET
;************************************
DELROW: SETB YJCS
        MOV R2,#16
        MOV A,#0F8H    ;DDRAM
        ACALL WRITE64
        MOV A,R4       ;写入地址
        ACALL WRITDAT
LWP:    MOV A,#0FAH    ;写一字节数据
        ACALL WRITE64
        MOV A,#20H
        ACALL WRITDAT
        ACALL DELAY1
        DJNZ R2,LWP
        CLR YJCS
        RET
;************************************
DISPL:  SETB CS
        MOV A,#0F8H    ;DDRAM
        ACALL WRITE64
        MOV A,R4       ;写入地址
        ACALL WRITDAT
        MOV A,#0FAH    ;写一字节数据
        ACALL WRITE64
        MOV A,R3
        ACALL WRITDAT
        MOV A,#0FAH    ;写空位
        ACALL WRITE64
        MOV A,#20H
        ACALL WRITDAT
        ACALL DELAY1
        CLR CS
        RET
;*************液晶初始化***************
STARYJ: MOV A,#0F8H    ;写清零命令
        ACALL WRITE64
        LCALL YAN30
        MOV A,#01H
        ACALL WRITDAT
        ACALL DELAY10
        MOV A,#0F8H    ;写地址归位命令
        ACALL WRITE64
        LCALL YAN30
        MOV A,#02H
        ACALL WRITDAT
        ACALL DELAY10
        MOV A,#0F8H    ;写显示开
        ACALL WRITE64
        LCALL YAN20
        MOV A,#0CH
        ACALL WRITDAT
        ACALL DELAY1
        RET
;****************************************
OFFDIS: CLR  YJCS
        LCALL DELAY10
        SETB YJCS
        MOV A,#0F8H    ;写清零命令
        ACALL WRITE64
        LCALL YAN30
        MOV A,#01H
        ACALL WRITDAT
        ACALL DELAY10
       ; MOV A,#0F8H    ;DDRAM
       ; ACALL WRITE64
       ; LCALL YAN20
       ; MOV A,#20H
       ; ACALL WRITDAT
       ; ACALL DELAY10
        RET
;-------------------------------------------
DZGW:   MOV A,#0F8H    ;写地址归位命令
        ACALL WRITE64
        LCALL YAN30
        MOV A,#02H
        ACALL WRITDAT
        ACALL DELAY10
        RET
;-------写汉字----------------------
FANHUI1:MOV A,#0FAH    ;写第一字节
        ACALL WRITE64
        LCALL YAN30
        MOV A,R3
        MOVC A,@A+DPTR
        ACALL WRITDAT
        LCALL YAN20
        INC R3
        MOV A,#0FAH    ;写第二字节
        ACALL WRITE64
        LCALL YAN20
        MOV A,R3
        MOVC A,@A+DPTR
        ACALL WRITDAT
        INC R3
        ACALL YAN20
        DJNZ R2,FANHUI1
        RET
;---------------------------------------
WD:     MOV A,#0FCH
        ACALL WRITE64
        LCALL READ8
        JB ACC.7,WD
        RET
;---------------读忙闲标志位-----------------------
READ8:  SETB YCLK            ;读BF 子程序
        MOV R7,#8
NBIT:   CLR YCLK
        NOP
        NOP
        SETB YCLK
        MOV C,SID
        RLC A
        NOP
        DJNZ R7,NBIT
        RET
;--------------------------------------
WRITE64:SETB YCLK            ;写显示命令指令子程序
        MOV R7,#8
NEXTBIT:CLR YCLK
        NOP
        RLC A
        MOV SID,C
        SETB YCLK
        NOP
        DJNZ R7,NEXTBIT
        RET
;-----------------------
WRITDAT: SETB YCLK           ;写显示数据子程序
         NOP
        ACALL BANBYTE
        ACALL SI0
        ACALL BANBYTE
        ACALL SI0
        lcall yan30
        RET
;-----------------------
BANBYTE:MOV R7,#4
 NEXT1: CLR YCLK
        NOP
        RLC A
        MOV SID,C
        NOP
        NOP
        SETB YCLK
        NOP
        NOP
        DJNZ R7,NEXT1
        RET
;---------------------------
SI0:    MOV R7,#4
        CLR C
XXYY:   CLR YCLK
        NOP
        MOV SID,C
        NOP
        SETB YCLK
        NOP
        NOP
        DJNZ R7,XXYY
        RET
;*********显示子程序结束******
DELAY1:   PUSH 04H
          PUSH 05H
          MOV R5,#1          ;1ms延时    ;25
  DE11:   MOV R4,#125                       ;10
  DE12:   DJNZ R4,DE12
          DJNZ R5,DE11
          POP 05H
          POP 04H
          RET
;**********************************
DELAY10: PUSH 04H
         PUSH 05H
         MOV R5,#5          ;10ms延时
  DE8:   MOV R4,#250
  DE9:   DJNZ R4,DE9
         DJNZ R5,DE8
         POP 05H
         POP 04H
         RET
;********* 延时30微秒 **********************************
YAN30:  PUSH 01H
        MOV R1,#10
Yk0:    DJNZ R1,Yk0
        POP 01H
        RET
;********** 延时20毫秒 ************************
YAN20:  PUSH 01H
        MOV R1,#1
Y20:    LCALL YAN01
        DJNZ R1,Y20
        POP 01H
        RET
;***************************************************
;********** 延时20毫秒 ************************
YAN2:   PUSH 01H
        mov r2,#10
Y10:    MOV R1,#20
Y21:    LCALL YAN01
        DJNZ R1,Y21
        djnz r2,Y10
        POP 01H
        RET
;**************************************************
YAN50:     PUSH 06H     ;延时50us
           MOV R6,#25
YY1:       DJNZ R6,YY1
           POP 06H
           RET
;**************************************************
YAN8:      PUSH 06H     ;延时8us
           MOV R6,#2
YY2:       DJNZ R6,YY2
           POP 06H
           RET
;*************************************************
YANSHI1: push 01h
	 push 02h
	 push 03h
         mov r1,#10       ;延时1.0s子程序
l31:	 mov r2,#200
l32:     mov r3,#250
l33:     nop
         nop
         djnz r3,l33
	 djnz r2,l32
	 djnz r1,l31
	 pop 03h
	 pop 02h
	 pop 01h
	 ret
;*******************************************************
YANSH05: push 01h
	 push 02h
	 push 03h
         mov r1,#02h       ;延时0.5s子程序
Jl31:	 mov r2,#250
Jl32:	 mov r3,#250
Jl33:    nop
         nop
         djnz r3,Jl33
	 djnz r2,Jl32
	 djnz r1,Jl31
	 pop 03h
	 pop 02h
	 pop 01h
	 ret
;****************************************************
YANSH200: push 01h
	 push 02h
	 mov r1,#200	  ;延时200ms子程序
l21:	 mov r2,#250
l22:     nop
         nop
         djnz r2,l22
	 djnz r1,l21
	 pop 02h
	 pop 01h
	 ret
;****************************************************
YANSH10: push 01h
	 push 02h
	 mov r1,#20	  ;延时10ms子程序
bl21:	 mov r2,#250
bl22:    djnz r2,bl22
	 djnz r1,bl21
	 pop 02h
	 pop 01h
	 ret
;****************************************************
YAN01:   push 01h
	 mov r1,#2	  ;延时10us子程序
w22:     djnz r1,w22
	 pop 01h
	 ret
;****************************************************
YAN1:    push 01h
	 push 02h
	 mov r1,#1	  ;延时1ms子程序
sl21:	 mov r2,#200
sl22:    djnz r2,sl22
	 djnz r1,sl21
	 pop 02h
	 pop 01h
	 ret
;*********延时程序结束********

⌨️ 快捷键说明

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