📄 语音程序(报总价).txt
字号:
$INCLUDE(C8051F020.INC)
ZONGJIA EQU 30H ;缓冲区30H-32H
STOP BIT P1.0
SBT BIT P1.1
DLY4 EQU 33H;
DLY5 EQU 34H;
DLY6 EQU 35H;
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#0B0H
MOV WDTCN,#0DEH
MOV WDTCN,#0ADH
CLR STOP
CLR SBT
MOV OSCXCN,#67H ;外部晶振11.0592MHz
CLR A
DJNZ ACC,$
DJNZ ACC,$
PORT1: MOV A,OSCXCN
JNB ACC.7,PORT1
MOV OSCICN,#88H ;允许检测到时钟丢失触发复位, 切换为外部时钟
MOV XBR2,#40H
MOV P1MDOUT,#00H
MOV P1,#0FFH
MOV P2MDOUT,#000H
MOV P2,#00H
MOV 30H,#05H
MOV 31H,#90H
MOV 32H,#04H
LOOP: LCALL VOICE
SJMP $
VOICE: MOV A,#14H ;您的本次。。。
LCALL VOICE_MD
MOV A,ZONGJIA
ANL A,#0F0H
SWAP A
JZ VOICE_BAI
MOV DPTR,#VOICE_TAB
MOVC A,@A+DPTR
LCALL VOICE_MD
MOV A,#0CH ;千
LCALL VOICE_MD
VOICE_BAI: MOV A,ZONGJIA
ANL A,#0FH
JZ VOICE_SHI
MOV DPTR,#VOICE_TAB
MOVC A,@A+DPTR
LCALL VOICE_MD
MOV A,#0DH ;百
LCALL VOICE_MD
VOICE_SHI: MOV A,ZONGJIA+1
ANL A,#0F0H
SWAP A
JZ VOICE_YUAN0
MOV DPTR,#VOICE_TAB
MOVC A,@A+DPTR
LCALL VOICE_MD
MOV A,#0EH ;十
LCALL VOICE_MD
SJMP VOICE_YUAN;
VOICE_YUAN0:
MOV A,#18H;
LCALL VOICE_MD;
VOICE_YUAN: MOV A,ZONGJIA+1
ANL A,#0FH
JZ VOICE_JIAO0
MOV DPTR,#VOICE_TAB
MOVC A,@A+DPTR
LCALL VOICE_MD
VOICE_JIAO0:
MOV A,#09H ;元
LCALL VOICE_MD
VOICE_JIAO: MOV A,ZONGJIA+2
ANL A,#0F0H
SWAP A
JZ VOICE_FEN
MOV DPTR,#VOICE_TAB
MOVC A,@A+DPTR
LCALL VOICE_MD
MOV A,#0AH ;角
LCALL VOICE_MD
VOICE_FEN: MOV A,ZONGJIA+2
ANL A,#0FH
JZ NEXT
MOV DPTR,#VOICE_TAB
MOVC A,@A+DPTR
LCALL VOICE_MD
MOV A,#0BH ;分
LCALL VOICE_MD
NEXT: MOV A,#15H;请您走好。。。
LCALL VOICE_MD
RET
VOICE_MD: CLR SBT;
MOV P2,A
LCALL K50MS
SETB SBT
LCALL K50MS
CLR SBT
JNB STOP,$
MOV DLY6,#04H
LCALL K50MS1;
RET
K50ms1:
KTIM1: MOV DLY4,#0E0H ;50ms
KTIM2: MOV DLY5,#00H
DJNZ DLY5,$
DJNZ DLY4,KTIM2
DJNZ DLY6,KTIM1;
RET
K50ms:
MOV DLY4,#00H ;50ms
KTIM3: MOV DLY5,#00H
DJNZ DLY5,$
DJNZ DLY4,KTIM3
RET
VOICE_TAB:
DB 18H,00H,01H,02H,03H,04H,05H,06H,17H,08H
;0 1 2 3 4 5 6 7 8 9
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -