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

📄

📁 静音琴的源码,有兴趣的拼音可以下载下来看看,这个是可以生产的程序.
💻
字号:
;##############################################################
       PROC  QPCPJC,SCKJJC,CSBJC
;********************************
;       强迫考贝检测   (调试通过)
;********************************
;    通过检测P3.3(9脚),P3.4(10脚)
;是否短接,来确定是否把块0特定区的
;内容复制到块1 区.
;--------------------------------
QPCPJC:
        SETB  P3.3
        CLR   P3.4
        JB    P3.3,QPCPJCE
        SETB  P3.4
        CLR   P3.3
        JB    P3.4,QPCPJCE
        ;第二次
        SETB  P3.3
        CLR   P3.4
        JB    P3.3,QPCPJCE
        SETB  P3.4
        CLR   P3.3
        JB    P3.4,QPCPJCE
        LCALL CPZB1          ;考贝至块1
QPCPJCE:
        SETB  P3.3
        SETB  P3.4
        RET
        include "软件陷阱.asm"
;********************************
;       首次开机检测   (调试通过)
;********************************
;    通过检测块1 区某特定位置是否
;有数据串510103641226, 来确定是否
;是第一次开机.是首次开机时,把块0
;特定区的内容复制到块1 区.
;--------------------------------
SCKJJC:
        PUSH  PSW
        PUSH  ACC
        PUSH  DPH
        PUSH  DPL
        PUSH  SFCF
        MOV   SFCF,#00000000B;8K(B1)+56K(B0)
        MOV   DPTR,#SCKJBZ   ;首次开机标志
        LCALL BZJC           ;标志检测,OUT->ACC
        JNZ   SCKJJCE
        LCALL CPZB1          ;考贝至块1
SCKJJCE:
        POP   SFCF
        POP   DPL
        POP   DPH
        POP   ACC
        POP   PSW
        RET
        include "软件陷阱.asm"
;********************************
;       参数表检测     (调试通过)
;********************************
CSBJC:
        PUSH  PSW
        PUSH  ACC
        PUSH  B
        PUSH  DPH
        PUSH  DPL
        ;--------
        MOV DPTR,#TAB_BZ1
        LCALL BZJC         ;标志检测
        JNZ   CSBJC2
        MOV DPTR,#TAB_BZ2
        LCALL BZJC         ;标志检测
        JNZ   CSBJC1
        ;标志1无,标志2无:
        LCALL CPZB1        ;考贝至块1
        LJMP  CSBJCE
        include "软件陷阱.asm"
CSBJC1:
        ;标志1无,标志2有:
        LCALL FF280H       ;缓冲区复位
        MOV   DPTR,#TAB_CSB1+128
        LCALL CSCX         ;参数重写
        MOV   DPTR,#TAB_CSB2
        MOV   B,#1
        LCALL CSDQ         ;参数读取
        MOV   DPTR,#TAB_CSB1
        LCALL CSCX         ;参数重写
        MOV   DPTR,#TAB_CSB2+128
        MOV   B,#1
        LCALL CSDQ         ;参数读取
        MOV   DPTR,#TAB_CSB1+128
        LCALL CSCX         ;参数重写
        LJMP  CSBJCE
        include "软件陷阱.asm"
CSBJC2:
        ;标志1有:
        MOV DPTR,#TAB_BZ2
        LCALL BZJC         ;标志检测
        JNZ   CSBJC4
CSBJC3:
        ;标志1有,标志2无:
        LCALL FF280H       ;缓冲区复位
        MOV   DPTR,#TAB_CSB2+128
        LCALL CSCX         ;参数重写
        MOV   DPTR,#TAB_CSB1
        MOV   B,#1
        LCALL CSDQ         ;参数读取
        MOV   DPTR,#TAB_CSB2
        LCALL CSCX         ;参数重写
        MOV   DPTR,#TAB_CSB1+128
        MOV   B,#1
        LCALL CSDQ         ;参数读取
        MOV   DPTR,#TAB_CSB2+128
        LCALL CSCX         ;参数重写
        LJMP  CSBJCE
        include "软件陷阱.asm"
CSBJC4:
        ;标志1有,标志2有:
        MOV   DPTR,#TAB_CSB1
        MOV   B,#1
        LCALL CSDQ         ;参数读取
        MOV   DPTR,#TAB_CSB2
        MOV   B,#1
        LCALL CSBJ         ;参数比较
        JNZ   CSBJCE
        ;参数表1,参数表2不同:
        LJMP  CSBJC3
        include "软件陷阱.asm"
CSBJCE:
        POP   DPL
        POP   DPH
        POP   B
        POP   ACC
        POP   PSW
        RET
        include "软件陷阱.asm"
;********************************
;       标志检测
;********************************
;检测标志地址位置是否有数据串:
;    510103641226.
;--------------------------------
;入口:  DPTR       标志地址
;--------------------------------
;出口:  A=FF/0     有/无
;--------------------------------
;资源   无
;--------------------------------
BZJC:
        PUSH  PSW
        MOV   A,#0
        MOVC  A,@A+DPTR
        CJNE  A,#51H,BZJC2
        MOV   A,#1
        MOVC  A,@A+DPTR
        CJNE  A,#01H,BZJC2
        MOV   A,#2
        MOVC  A,@A+DPTR
        CJNE  A,#03H,BZJC2
        MOV   A,#3
        MOVC  A,@A+DPTR
        CJNE  A,#64H,BZJC2
        MOV   A,#4
        MOVC  A,@A+DPTR
        CJNE  A,#12H,BZJC2
        MOV   A,#5
        MOVC  A,@A+DPTR
        CJNE  A,#26H,BZJC2
        MOV   A,#0FFH        ;有
        LJMP  BZJCE
        include "软件陷阱.asm"
BZJC2:
        MOV   A,#0           ;无
BZJCE:
        POP   PSW
        RET
        include "软件陷阱.asm"
;********************************
;       参数比较
;********************************
;   根据 B 的不同,分别把块1或块0
;的ROM的@DPTR--@DPTR+127,同EXRAM
;的0280H--02FFH比较.
;--------------------------------
;入口:  B=0/(1-FF)
;       DPTR
;--------------------------------
;出口:  A=FF/0      FF同,0不同
;--------------------------------
;资源   无
;--------------------------------
CSBJ:
        PUSH  PSW
        PUSH  B
        PUSH  DP1H
        PUSH  DP1L
        MOV   DP1H,DPH
        MOV   DP1L,DPL
        PUSH  AUXR1
        MOV   AUXR1,#0        ;DPTR0
        PUSH  DPH
        PUSH  DPL
        MOV   DPH,#02H        ;EXRAM
        MOV   DPL,#80H
        MOV   AUXR1,#1        ;DPTR1
        PUSH  DPH
        PUSH  DPL
        MOV   DPH,DP1H        ;ROM
        MOV   DPL,DP1L
        MOV   A,R0
        PUSH  ACC
        PUSH  SFCF
        ;----------
        MOV   R0,#128         ;数据个数
        MOV   A,B
        JZ    CSBJ1
        MOV   SFCF,#0         ;B1: SFCF[1:0]=00
        LJMP  CSBJ2
        include "软件陷阱.asm"
CSBJ1:
        MOV   SFCF,#1         ;B0: SFCF[1:0]=01
CSBJ2:
        MOV   AUXR1,#0        ;DPTR0
        MOVX  A,@DPTR         ;EXRAM
        INC   DPTR
        MOV   B,A
        MOV   AUXR1,#1        ;DPTR1
        MOV   A,#0
        MOVC  A,@A+DPTR       ;ROM
        INC   DPTR
        CJNE  A,B,CSBJ3
        DJNZ  R0,CSBJ2
        MOV   A,#0FFH         ;同
        LJMP  CSBJE
        include "软件陷阱.asm"
CSBJ3:
        MOV   A,#0            ;不同
CSBJE:
        POP   SFCF
        POP   B
        MOV   R0,B
        MOV   AUXR1,#1        ;DPTR1
        POP   DPL
        POP   DPH
        MOV   AUXR1,#0        ;DPTR0
        POP   DPL
        POP   DPH
        POP   AUXR1
        POP   DP1L
        POP   DP1H
        POP   B
        POP   PSW
        RET
        include "软件陷阱.asm"
;********************************
;       缓冲区复位
;********************************
FF280H:
        PUSH PSW
        PUSH ACC
        MOV  A,R0
        PUSH ACC
        PUSH DPH
        PUSH DPL
        ;--------
        MOV  DPTR,#0280H
        MOV  A,#0FFH
        MOV  R0,#128
FF280H1:
        MOVX @DPTR,A
        INC  DPTR
        DJNZ R0,FF280H1
        ;--------
        POP  DPL
        POP  DPH
        POP  ACC
        MOV  R0,A
        POP  ACC
        POP  PSW
        RET
        include "软件陷阱.asm"
;********************************
        END
        include "IAP程序.asm"
;##############################################################

⌨️ 快捷键说明

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