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

📄 yuying8.6.txt

📁 is4004&89c51的编译程序代码,可以进行语音的录放.很实用的.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
X23:        LCALL UP
            MOV B,#00H
            LCALL ISDWR
            MOV B,#0A0H
            LCALL ISDWR
            SETB SS
            MOV B,#00H
            LCALL ISDWR
            MOV B,#0B0H
            LCALL ISDWR
            SETB SS
X24:        JNB P1.0,X24;?????????p1.5-p1.0??????????????????????????
            LCALL DELAY50MS
            JNB P1.0,X24;??????????????????????????????????
            LCALL DSTOP
            ;自制留言后将0FDH单元写0FEH,0FFH单元写进定时器0的内容
X25:        LCALL STOP
            CLR C
            LCALL START
            MOV A,#0A0H
            LCALL WBYTE
            JC X25
            MOV A,#0FDH
            LCALL WBYTE
            JC X25
            MOV A,#1
            LCALL WBYTE
            JC X25
            MOV A,TL0
            LCALL WBYTE   ;未验证过的语句???????????
            JC X25
            MOV A,TH0
            LCALL WBYTE   ;未验证过的语句?????????????
            JC X25
            ;将00H,01H单元写进定时器0的内容
X26:        LCALL STOP   
            CLR C
            LCALL START
            MOV A,#0A0H
            LCALL WBYTE
            JC X26
            MOV A,#00H
            LCALL WBYTE
            JC X26
            MOV A,TL0
            LCALL WBYTE
            JC X26
            MOV A,TH0
            LCALL WBYTE
            JC X26       ;未经验证过的语句??????????
            LCALL STOP
           ; AJMP X0
	    ;附加的测试些数据是否正确的代码段
	    MOV R2,TH0
	    MOV R3,TL0
CH1:        LCALL STOP
            CLR C
	    LCALL START
	    MOV A,#0A0H
	    LCALL WBYTE
	    JC CH1
	    MOV A,#00H
	    LCALL WBYTE
	    JC CH1
	    LCALL START
	    MOV A,#0A1H
	    LCALL WBYTE
	    JC CH1
	    LCALL RBYTE
	    MOV R0,A
	    LCALL RBYTE
	    MOV R1,A
	    AJMP X0
	    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;重播自制留言
            CLR IE0
X27:        LCALL UP
            MOV B,#00H
            LCALL ISDWR
            MOV B,#0E0H
            LCALL ISDWR
            SETB SS
            MOV B,#00H
            LCALL ISDWR
            MOV B,#0F0H
            LCALL ISDWR
            SETB SS
X28:        JNB IE0,X28
            CLR IE0
            LCALL DSTOP
            AJMP X1
            ;播放电话留言
            ;首先要取出0FDH单元中的留言条数
X29:        LCALL STOP
            CLR C
            LCALL START
            MOV A,#0A0H
            LCALL WBYTE
            JC X29
            MOV A,#0FDH
            LCALL WBYTE
            JC X29
            LCALL START
            MOV A,#0A1H
            LCALL WBYTE
            JC X29
            LCALL RBYTE
	    lcall stop
           ; MOV 51H,A
            SUBB A,#1
            JNZ X30
            AJMP X1
X30:        MOV R7,A
X31:        MOV A,R7
            SUBB A,#1
            MOV B,#2
            MUL AB
            MOV 51H,A           
X32:        LCALL STOP
            CLR C
            LCALL START
            MOV A,0A0H
            LCALL WBYTE
            JC X32
            MOV A,51H
            LCALL WBYTE
            JC X32
            LCALL START
            MOV A,#0A1H
            LCALL WBYTE
            JC X32
            LCALL RBYTE
            MOV 52H,A
            LCALL RBYTE
          ;  ORL A,#0E0H
            MOV 53H,A
            LCALL STOP
	    mov a,52h
	    add a,#1
	    mov 52h,a
	    mov a,53h
	    addc a,#0
	    orl a,#0e0h
	    mov 53h,a
            LCALL UP
            MOV B,52H
            LCALL ISDWR
            MOV B,53H
            LCALL ISDWR
            SETB SS
            MOV B,#00H
            LCALL ISDWR
            MOV B,#0F0H
            LCALL ISDWR
            SETB SS
X33:        JNB IE0,X33
            CLR IE0
            LCALL DSTOP
            MOV R0,#50
X34:        MOV R1,#250
X35:        MOV R2,#100
X36:        JNB P1.3,X37
            DJNZ R2,X36
            DJNZ R1,X35
            DJNZ R0,X34
            AJMP X1
X37:        LCALL DELAY50MS   ;50MS子程序中必须修改当前寄存器组!!!!!!!!
            JB P1.3,X36  
            DJNZ R7,h0
	    ajmp h1
h0:         ajmp x31
h1:         AJMP X1
            ;子程序功能模块
            ;1:语音芯片停止当前操作进入掉电模式子程序
DSTOP:      MOV B,#00H
            LCALL ISDWR
            MOV B,#10H
            LCALL ISDWR
            SETB SS
            RET 
            ;按键去抖延时50毫秒模块
DELAY50MS:  SETB RS0
            MOV R0,#100
X38:        MOV R1,#250
X39:        DJNZ R1,X39
            DJNZ R0,X38
            CLR RS0
            RET
            ;停止IIC存储器24C02操作
STOP:       CLR SCK
            NOP
            CLR  SDA
            NOP
            SETB SCK
            NOP
            SETB SDA
            NOP
            CLR SCK
            RET  
            ;启动IIC存储器24C02操作
START:      CLR SCK
            NOP
            SETB SDA
            NOP
            SETB SCK
            NOP
            CLR SDA
            NOP
            CLR SCK
            RET  
            ;IIC的写操作
WBYTE:      MOV R7,#08H
X40:        CLR SCK
            RLC A
            MOV SDA,C
            NOP
            SETB SCK
            NOP
            DJNZ R7,X40
            CLR SCK
            NOP
            SETB SDA
            NOP
            SETB SCK
            NOP
            MOV C,SDA
            NOP
            CLR SCK
            RET
            ;IIC的读操作
RBYTE:      MOV R7,#08H
Y1:         CLR SCK
            NOP
            SETB SCK
            NOP
            MOV C,SDA
            RLC A
            NOP
            DJNZ R7,Y1
            CLR SCK
            CLR SDA
            SETB SCK
            RET                                                                 
            ;振铃检测中的延时等待1秒子程序
DELAY1S:    SETB RS0
            MOV R0,#100
X41:        MOV R1,#100
X42:        MOV R2,#50
X43:        DJNZ R2,X43
            DJNZ R1,X42
            DJNZ R0,X41
            CLR RS0
            RET
            ;振铃检测中的5秒延时子程序
DELAY5S:    SETB RS0
            MOV R0,#100
X44:        MOV R1,#50
X45:        MOV R2,#250
X46:        JB TF1,X47
            DJNZ R2,X46
            DJNZ R1,X45
            DJNZ R0,X44
X47:        CLR RS0
            RET 
            ;语音芯片上电操作
UP:          MOV B,#00H
             LCALL ISDWR
             MOV B,#20H
             LCALL ISDWR
             SETB SS
             ACALL DELAY50MS
             RET 
             ;语音芯片写操作
ISDWR:       MOV R6,#8
             MOV R7,#0
             CLR SCLK
             CLR SS
X48:         MOV A,B
             MOV C,ACC.0
             MOV MOSI,C
             RR A
             SETB SCLK
             MOV B,A
             MOV A,R7
             CLR SCLK
             MOV C,MISO
             MOV ACC.7,C
             RL A
             MOV R7,A
             DJNZ R6,X48
             RET 
             ;挂机检测中用到的判断锁相环输出的有效电平的延时0.7秒子程序?????????0.7s?
DELAY07S:   SETB RS0
             MOV R0,#100
X49:         MOV R1,#100
X50:         MOV R2,#5
X51:         DJNZ R2,X51
             DJNZ R1,X50
             DJNZ R0,X49
             CLR RS0
             RET
             END

⌨️ 快捷键说明

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