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

📄 语音程序(报总价).txt

📁 C8051F020控制语音芯片的汇编语言程序。已测试通过。
💻 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 + -