MOV R7,#18 ;控制延时5s RECORD1:
LCALL DELAY1S DJNZ R7,RECORD1
SETB REC ;释放录音按键 RET
;************************************** ;名称:PLAYL ;功能:电平控制放音
;************************************** PLAYL:
MOV A,R7
LCALL ADDR_OUT ;设定开始播放地址 CLR PLL ;控制播放 MOV R7,#18 ;控制延时5s PLAYL1:
LCALL DELAY1S DJNZ R7,PLAYL1
SETB PLL ;释放播放按键 RET
;************************************** ;名称:PLAYE ;功能:脉冲触发放音
;************************************** PLAYE:
MOV A,R7
LCALL ADDR_OUT ;设定开始播放地址 CLR PLE ;控制脉冲触发播放
31
MOV R7,#250 ;延时50ms PLAYE1:
LCALL DELAY1MS DJNZ R7,PLAYE1
SETB PLE ;结束控制信号 RET
;************************************** ;名称:ADDR_OUT ;功能:发送地址 ;入口:A(地址)
;************************************** ADDR_OUT: RLC
A
MOV P1.7,C RLC
A
MOV P1.6,C RLC A MOV P1.5,C RLC
A
MOV P1.4,C RLC
A
MOV P1.3,C RLC
A
MOV P1.2,C RLC
A
MOV P1.1,C RLC
A
MOV P1.0,C
32
RET
;************************************** ; 名称:DELAY1MS ; 功能:延时1MS ; 入口:R6,R5
;************************************** DELAY1MS:
MOV R4, #249 ;12M晶振:1000=2+2+(1+1+2)*249 DELAY1MS1: NOP NOP
DJNZ R4,DELAY1MS1 RET
DELAY1S: push r4 push r6 push r7 MOV R4, #4 Delayloop:
mov r6,#0 DelayLoop1: mov r7,#0 DelayLoop2: NOP
NOP djnz r7,DelayLoop2 djnz r6,DelayLoop1
33
djnz r4,Delayloop pop r7 pop r6 pop r4 ret
;//*******************************************************************
DBUF EQU TEMP EQU D0809 EQU
30H 40H
8000H ;通道0地址
DIN BIT P1.0 CLK BIT P1.1
ORG 0000H
JMP START ORG 0080H START:
MOV DBUF+3,#0AH MOV DBUF+2,#0DH
MOV DPTR,#D0809
MOV A,#0
MOVX @DPTR,A
JNB P3.2,$
MOV B,A SWAP A
MOVX A,@DPTR ; 读入结果
34
ANL A,#0FH
INC R0 MOV A,B MOV DBUF+1,A
ANL A,#0FH
MOV DBUF,A ACALL DISP1
acall delay
DISP1: ; 串行数码显示
MOV R0,#DBUF MOV R1,#TEMP MOV R2,#4 AJMP START
DP10: MOV DPTR,#SEGTAB
MOV A,@R0 MOVC A,@A+DPTR MOV @R1,A INC R0 INC R1 DJNZ R2,DP10 MOV R0,#TEMP MOV R1,#4
DP12: MOV R2,#8
MOV A,@R0
DP13: RLC A
MOV DIN,C
35