找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2504|回复: 0
打印 上一主题 下一主题
收起左侧

SC50X0语音芯片汇编程序一线控制程序带BUSY

[复制链接]
跳转到指定楼层
楼主
ID:215710 发表于 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是脉冲数据脚
  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    ;设置P3.1为输出,P3.2为输入
  16.       MOV P3M0,#11111011B    ;其他为默认的
  17.       CLR A
  18.       MOV SP1,A              ;清第1语音数据
  19.       MOV SP2,A              ;清第2语音数据
  20.       MOV SP3,A              ;清第3语音数据



  21. LOOP:

  22.       MOV SP1,#05H              
  23.       MOV SP2,#08H            
  24.       MOV SP3,#02H             ;组合放5,8,2地址段语音
  25.       LCALL SPEECHS          ;调用组合语音放音子程序
  26.      ; LCALL Delay5S          ;延时5秒等声音放完
  27.       SJMP LOOP
  28. ;**************************************
  29. ;组合语音放音
  30. ;入口参数:SP0,SP1,SP2
  31. ;出口参数:无
  32. ;**************************************
  33. SPEECHS:
  34.       MOV R0,SP1              ;发第1语音数据
  35.       LCALL SCDATA            ;调用放音子程序  
  36.       LCALL Delay15MS         ;调节放音间隔
  37.       LCALL BUSYWAIT          ;等待放音BUSY信号变高电平
  38.       MOV R0,SP2              ;发第2语音数据
  39.       LCALL SCDATA            ;调用放音子程序  
  40.       LCALL Delay15MS         ;调节放音段间隔
  41.       LCALL BUSYWAIT          ;等待放音BUSY信号变高电平
  42.       MOV R0,SP3              ;发第3语音数据
  43.       LCALL SCDATA            ;调用放音子程序  
  44.       CLR A
  45.       MOV SP1,A               ;清第1语音数据
  46.       MOV SP2,A               ;清第2语音数据
  47.       MOV SP3,A               ;清第3语音数据
  48.       RET


  49. ;**************************************
  50. ;等待放音BUSY信号变高电平
  51. ;入口参数:无
  52. ;出口参数:无
  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. ;入口参数:R0
  64. ;出口参数:无
  65. ;**************************************
  66. SCDATA:                  
  67.       CLR   SC_RST          ;复位低电平
  68.       LCALL Delay5MS:    ;延时5MS  
  69.       MOV R1,#08H        ;发送8BIT数据低位先发
  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. ;不同的工作环境,需要调整此函数
  94. ;入口参数:无
  95. ;出口参数:无
  96. ;**************************************
  97. Delay100US:           ;延时100uS
  98.       MOV R5,#150
  99.       DJNZ R5,$
  100.       RET
  101. ;**************************************
  102. ;延时400微秒
  103. ;不同的工作环境,需要调整此函数
  104. ;入口参数:无
  105. ;出口参数:无
  106. ;**************************************
  107. Delay400US:
  108.       MOV R4,#4        ;延时400US
  109. L4:   LCALL Delay100US   
  110.       DJNZ R4,L4
  111.       RET
  112. ;**************************************
  113. ;延时1200微秒
  114. ;不同的工作环境,需要调整此函数
  115. ;入口参数:无
  116. ;出口参数:无
  117. ;**************************************
  118. Delay1200US:
  119.       MOV R4,#120        ;延时1200US
  120. L12:   LCALL Delay100US  
  121.       DJNZ R4,L12
  122.       RET
  123. ;**************************************
  124. ;延时15毫秒
  125. ;不同的工作环境,需要调整此函数
  126. ;入口参数:无
  127. ;出口参数:无
  128. ;**************************************
  129. Delay15MS:
  130.       MOV R4,#150        ;延时15MS
  131. L150: LCALL Delay100US
  132.       DJNZ R4,L150
  133.       RET
  134. ;**************************************
  135. ;延时3毫秒
  136. ;不同的工作环境,需要调整此函数
  137. ;入口参数:无
  138. ;出口参数:无
  139. ;**************************************
  140. Delay3MS:
  141.       MOV R4,#30        ;延时3MS
  142. L30:  LCALL Delay100US
  143.       DJNZ R4,L30
  144.       RET
  145. ;延时5秒
  146. ;不同的工作环境,需要调整此函数
  147. ;入口参数:无
  148. ;出口参数:无
  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


复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表