📄 gfrk404f.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; 语音控制程序 ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; 8550
;;
SS EQU P2.7
SCLK EQU P2.5
MOSI EQU P2.6
MISO EQU P2.4
INT EQU P2.3
RECOD EQU P3.2
BEGIN EQU P1.0
NEXT EQU P1.1
TSTOP EQU P1.2
SOE EQU P1.6
SSTR EQU P1.4
CLK EQU P1.5
SDATA EQU P1.3
ORG 0000H
AJMP MAIN
ORG 0003H
LJMP 0000h
ORG 0023H
LJMP COMM
nop
nop
NOP
nop
ljmp 0000h
nop
nop
MAIN: MOV SP,#5AH
MOV P1,#0FFH
CLR P2.1
MOV A,#21H
MOV TMOD,A
MOV R2,#8
MOV TH1,#0F3H
MOV TL1,#0F3H
mov th0,#0
mov tl0,#0
MOV SCON,#070H
MOV PCON,#80H
CLR 00H
CLR 01H
SETB 02H
CLR 03H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR 04H
CLR 05H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR 07H
MOV 3BH,#0
CLR EX0
CLR EX1
setb ET0
CLR ET1
SETB ES
SETB EA
SETB TR1
setb tr0
;mov a,59h
;xrl a,#0aah
;jz loop
MOV A,#10
MOV R0,#50H
CLOOP: MOV @R0,A
;INC A
INC R0
CJNE R0,#55H,CLOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;
LOOP1: MOV DPTR,#LEDDATA
MOV R0,#54H
LOOP: MOV A,@R0
MOVC A,@A+DPTR
LCALL DISP
mov th0,#0
mov tl0,#0
DEC R0
CJNE R0,#50H,LOOP
SETB SOE
mov th0,#0
mov tl0,#0
CPL SSTR
CPL SSTR
CLR SOE
JNB 05H,LOOP1
CLR 05H
mov th0,#0
mov tl0,#0
MOV DPTR,#LEDDATA
MOV R0,#54H
yLOOP: MOV A,@R0
MOVC A,@A+DPTR
LCALL DISP
mov th0,#0
mov tl0,#0
DEC R0
CJNE R0,#50H,yLOOP
SETB SOE
mov th0,#0
mov tl0,#0
CPL SSTR
CPL SSTR
CLR SOE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,50H
CJNE A,#42H,TONGXIN
LCALL DSTOP
clr 04h
mov th0,#0
mov tl0,#0
MOV 3BH,#14;请付
mov th0,#0
mov tl0,#0
CLR P2.1
LCALL READ
mov th0,#0
mov tl0,#0
LCALL DSTOP
;MOV 50H,#41H
;clr 04h
lJMP SRECOD
TONGXIN:CJNE A,#44H,BAOJIA
LCALL DSTOP
mov th0,#0
mov tl0,#0
clr 04h
MOV 3BH,#15;请付
CLR P2.1
mov th0,#0
mov tl0,#0
LCALL READ
mov th0,#0
mov tl0,#0
LCALL DSTOP
;MOV 50H,#41H
;clr 04h
SRECOD1:lJMP SRECOD
BAOJIA: CJNE A,#43H,SRECOD1
LCALL DSTOP
mov th0,#0
mov tl0,#0
clr 04h
MOV 3BH,#10;请付
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR P2.1
mov th0,#0
mov tl0,#0
LCALL READ
MOV A,52H
JZ SHIWEI
CLR C
mov th0,#0
mov tl0,#0
SUBB A,#10
JNC SHIWEI
MOV A,52H
MOV 3BH,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
LCALL READ
MOV 3BH,#11;百
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
LCALL READ
SHIWEI: MOV A,53H
JZ GEWEI
CLR C
SUBB A,#10
JNC GEWEI
MOV A,53H
MOV 3BH,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
LCALL READ
MOV 3BH,#12;十
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
LCALL READ
GEWEI: MOV A,54H
JZ YUAN
MOV 3BH,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
LCALL READ
YUAN: MOV 3BH,#13;元
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JB 04H,SRECOD
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
LCALL READ
mov th0,#0
mov tl0,#0
LCALL DSTOP
;MOV 50H,#41H
;clr 04h
MOV 3BH,#0
SRECOD: SETB P2.1
mov th0,#0
mov tl0,#0
CLR 04H
SSTOP1: LJMP LOOP1
DELAY: MOV 25H,#0DH
TM: mov th0,#0
mov tl0,#0
MOV 26H,#00H
TM6: DJNZ 26H,TM6
DJNZ 25H,TM
RET
DISP: MOV R5,#8
D1: RRC A
mov th0,#0
mov tl0,#0
MOV SDATA,C
CPL CLK
CPL CLK
DJNZ R5,D1
mov th0,#0
mov tl0,#0
RET
READ: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
jb 04h,reade
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov th0,#0
mov tl0,#0
MOV 3AH,#200
DJNZ 3AH,$
mov th0,#0
mov tl0,#0
LCALL UP
MOV A,3BH
MOV B,#60
MUL AB
MOV 30H,A
MOV 31H,B
MOV A,30H
mov th0,#0
mov tl0,#0
lCALL ISDX
MOV A,31H
LCALL ISDX
SETB ACC.7
SETB ACC.6
SETB ACC.5
CLR ACC.4
CLR ACC.3
mov th0,#0
mov tl0,#0
LCALL ISDX
SETB SS
MOV A,#0F0H
mov th0,#0
mov tl0,#0
LCALL ISDX
SETB SS
PLAY2: jb 04h,reade
JB INT,PLAY2
reade: mov th0,#0
mov tl0,#0
RET
RECORD: LCALL DSTOP
mov th0,#0
mov tl0,#0
MOV A,3BH
MOV B,#60
MUL AB
MOV 30H,A
MOV 31H,B
mov th0,#0
mov tl0,#0
LCALL UP
MOV A,30H
mov th0,#0
mov tl0,#0
lCALL ISDX
MOV A,31H
mov th0,#0
mov tl0,#0
LCALL ISDX
SETB ACC.7
CLR ACC.6
SETB ACC.5
CLR ACC.4
CLR ACC.3
ACALL ISDX
SETB SS
mov th0,#0
mov tl0,#0
MOV 36H,#10H
REC2: lCALL YS50
DJNZ 36H,REC2
MOV A,#0B0H
mov th0,#0
mov tl0,#0
lCALL ISDX
SETB SS
RET
UP: MOV A,#20H
mov th0,#0
mov tl0,#0
lCALL ISDX
SETB SS
mov th0,#0
mov tl0,#0
lCALL YS50
mov th0,#0
mov tl0,#0
lCALL YS50
RET
;STOPP: MOV A,#30H
; ACALL ISDX
; SETB SS
; ACALL YS50
; ACALL YS50
; RET
DSTOP: MOV A,#10H
mov th0,#0
mov tl0,#0
lCALL ISDX
SETB SS
mov th0,#0
mov tl0,#0
lCALL YS50
mov th0,#0
mov tl0,#0
lCALL YS50
RET
ISDX: CLR SS
mov th0,#0
mov tl0,#0
MOV R6,#8
CLR SCLK
ISD1: RRC A;MOV C,ACC.0
MOV MOSI,C
SETB SCLK
CLR SCLK
mov th0,#0
mov tl0,#0
DJNZ R6,ISD1
RET
YS50: MOV 25H,#50H
yTM: MOV 26H,#00H
yTM6: mov th0,#0
mov tl0,#0
DJNZ 26H,yTM6
DJNZ 25H,yTM
mov th0,#0
mov tl0,#0
RET
;MOV TH0, #0d8H
;MOV TL0, #0f0H
;SETB TR0
;JNB TF0,$
;CLR TF0
;CLR TR0
;RET
COMM: PUSH ACC
push 00h
;mov 27h,#0
CLR ES
clr et0
CLR RI
MOV A,SBUF
CSHUJU: MOV 50H,A
;LCALL DSTOP
SETB SOE
;inc 27h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETB 04H
SETB 05H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R0,#51H
CWAIT: JB TF0,CEXIT
JNB RI,CWAIT
CNEXT: CLR RI
MOV A,SBUF
MOV @R0,A
CLR TF0
CLR TR0
;inc 27h
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
INC R0
MOV A,R0
CJNE A,#56H,CWAIT
CEXIT: ;mov th0,#0
;mov tl0,#0
;setb et0
;setb TR0
CLR TR0
CLR TF0
SETB ES
clr soe
pop 00h
POP ACC
RETI
LEDDATA:
DB 0FDH,060H,0DAH,0F2H,066H,0B6H,0BEH,0E0H,0FFH,0F7H
DB 000H,080H,082H,092H,06FH,03AH
nop
nop
NOP
nop
ljmp 0000h
nop
nop
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -