找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2520|回復(fù): 0
收起左側(cè)

SC50X0語音芯片匯編程序一線控制程序帶BUSY

[復(fù)制鏈接]
ID:215710 發(fā)表于 2017-6-29 10:42 | 顯示全部樓層 |閱讀模式

  1. ;****************************************************
  2. ;OTP語音芯片串行三線模式測試程序
  3. ;主芯片:MPC82L52(1T)
  4. ;工作頻率:6MHz
  5. ;適用型號:SC3010,SC3020,SC3040,SC3060,SC3080,SC5020,SC5040,SC5060,SC5080,SC5B01
  6. ;億矽特科技 400-160-3880
  7. ;****************************************************
  8. include "REG_MPC82L52.H"
  9. sbit SC_DATA=P3^1;           ;P3.1是脈沖數(shù)據(jù)腳
  10. sbit SC_BUSY=P3^2;           ;P3.2是放音BUSY腳

  11. SP0 DATA 20H                 ;組合第1語音
  12. SP1 DATA 21H                 ;組合第2語音
  13. SP2 DATA 22H                 ;組合第3語音


  14.       ORG 0000H

  15.       MOV P3M1,#00000100B    ;設(shè)置P3.1為輸出,P3.2為輸入
  16.       MOV P3M0,#11111011B    ;其他為默認(rèn)的
  17.       CLR A
  18.       MOV SP1,A              ;清第1語音數(shù)據(jù)
  19.       MOV SP2,A              ;清第2語音數(shù)據(jù)
  20.       MOV SP3,A              ;清第3語音數(shù)據(jù)



  21. LOOP:

  22.       MOV SP1,#05H              
  23.       MOV SP2,#08H            
  24.       MOV SP3,#02H             ;組合放5,8,2地址段語音
  25.       LCALL SPEECHS          ;調(diào)用組合語音放音子程序
  26.      ; LCALL Delay5S          ;延時5秒等聲音放完
  27.       SJMP LOOP
  28. ;**************************************
  29. ;組合語音放音
  30. ;入口參數(shù):SP0,SP1,SP2
  31. ;出口參數(shù):無
  32. ;**************************************
  33. SPEECHS:
  34.       MOV R0,SP1              ;發(fā)第1語音數(shù)據(jù)
  35.       LCALL SCDATA            ;調(diào)用放音子程序  
  36.       LCALL Delay15MS         ;調(diào)節(jié)放音間隔
  37.       LCALL BUSYWAIT          ;等待放音BUSY信號變高電平
  38.       MOV R0,SP2              ;發(fā)第2語音數(shù)據(jù)
  39.       LCALL SCDATA            ;調(diào)用放音子程序  
  40.       LCALL Delay15MS         ;調(diào)節(jié)放音段間隔
  41.       LCALL BUSYWAIT          ;等待放音BUSY信號變高電平
  42.       MOV R0,SP3              ;發(fā)第3語音數(shù)據(jù)
  43.       LCALL SCDATA            ;調(diào)用放音子程序  
  44.       CLR A
  45.       MOV SP1,A               ;清第1語音數(shù)據(jù)
  46.       MOV SP2,A               ;清第2語音數(shù)據(jù)
  47.       MOV SP3,A               ;清第3語音數(shù)據(jù)
  48.       RET


  49. ;**************************************
  50. ;等待放音BUSY信號變高電平
  51. ;入口參數(shù):無
  52. ;出口參數(shù):無
  53. ;**************************************
  54. BUSYWAIT:

  55.       MOV R3,#200            
  56.       LCALL Delay15MS
  57.       LCALL Delay15MS
  58.       DJNZ R3,BOUT           ;等待時間超過6秒BUSY腳信號沒變高自動退出
  59.       JBC SC_BUSY,BUSYWAIT    ;等待BUSY腳信號變高
  60. BOUT: RET
  61. ;**************************************
  62. ;控制放音子程序
  63. ;入口參數(shù):R0
  64. ;出口參數(shù):無
  65. ;**************************************
  66. SCDATA:                  
  67.       CLR   SC_RST          ;復(fù)位低電平
  68.       LCALL Delay5MS:    ;延時5MS  
  69.       MOV R1,#08H        ;發(fā)送8BIT數(shù)據(jù)低位先發(fā)
  70.       MOV A,R0
  71.       CLR C

  72. LOOP0:
  73.       RRC A
  74.       JC  DATA1
  75. DATA0:                     
  76.       SETB SC_DATA          ;高電平
  77.       LCALL Delay500US      ;延時500uS,
  78.       CLR SC_DATA           ;低電平
  79.       LCALL Delay1500US     ;延時1500uS
  80.       JMP LOOPDATA:
  81. DATA1:                     
  82.       SETB SC_DATA          ;高電平
  83.       LCALL Delay1500US     ;延時15000uS
  84.       CLR SC_DATA           ;低電平
  85.       LCALL Delay500US      ;延時500uS
  86. LOOPDATA:
  87.       DJNZ R1,LOOP0  

  88.       SETB SC_DATA          ;高電平
  89.       LCALL Delay100US:    ;延時100US  
  90.       RET


  91. ;**************************************
  92. ;延時100微秒
  93. ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
  94. ;入口參數(shù):無
  95. ;出口參數(shù):無
  96. ;**************************************
  97. Delay100US:           ;延時100uS
  98.       MOV R5,#150
  99.       DJNZ R5,$
  100.       RET
  101. ;**************************************
  102. ;延時400微秒
  103. ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
  104. ;入口參數(shù):無
  105. ;出口參數(shù):無
  106. ;**************************************
  107. Delay400US:
  108.       MOV R4,#4        ;延時400US
  109. L4:   LCALL Delay100US   
  110.       DJNZ R4,L4
  111.       RET
  112. ;**************************************
  113. ;延時1200微秒
  114. ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
  115. ;入口參數(shù):無
  116. ;出口參數(shù):無
  117. ;**************************************
  118. Delay1200US:
  119.       MOV R4,#120        ;延時1200US
  120. L12:   LCALL Delay100US  
  121.       DJNZ R4,L12
  122.       RET
  123. ;**************************************
  124. ;延時15毫秒
  125. ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
  126. ;入口參數(shù):無
  127. ;出口參數(shù):無
  128. ;**************************************
  129. Delay15MS:
  130.       MOV R4,#150        ;延時15MS
  131. L150: LCALL Delay100US
  132.       DJNZ R4,L150
  133.       RET
  134. ;**************************************
  135. ;延時3毫秒
  136. ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
  137. ;入口參數(shù):無
  138. ;出口參數(shù):無
  139. ;**************************************
  140. Delay3MS:
  141.       MOV R4,#30        ;延時3MS
  142. L30:  LCALL Delay100US
  143.       DJNZ R4,L30
  144.       RET
  145. ;延時5秒
  146. ;不同的工作環(huán)境,需要調(diào)整此函數(shù)
  147. ;入口參數(shù):無
  148. ;出口參數(shù):無
  149. ;**************************************
  150. Delay5S:              ;延時5秒鐘
  151.       MOV R3,#200     
  152. D3:   MOV R4,#250     ;25MS
  153. D5:   MOV R5,#150
  154.       DJNZ R5,$
  155.       DJNZ R4,D5
  156.       DJNZ R3,D3
  157.       RET
  158. ;--------------------------------
  159.       END


復(fù)制代碼
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表