ISD4000与51电路.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ISD4000与51电路

;从指定段连续播放初始化 CLR MIC_C ;设置放音标志 MOV ISDBUFSP,#0 ;设置播放的起始段号 MOV TASK3,#05H ;启动标志(未上电标志) HERE1: LCALL ISD_RD_A ;调用逐段播放过程 MOV A,TASK3    CJNE A,#0,HERE1    SJMP $ ;虚拟等待 ;段组合播放初始化 ;把待播放的段编号(一次最多可播放16段)装入播放缓冲区内 ;当待播放的段号不足16时,在播放段后放0FFH,作为结束标志 MOV R0,#XmtDat MOV @R0,#02h ;初始化语音段缓冲区 INC R0 MOV @R0,#01H INC R0 MOV @R0,#22h INC R0 CLR MIC_C ;设置放音标志 MOV ISDBUFSP,#0 ;初始化播放指针 ;段组合播放启动 MOV TASK3,#05H ;启动标志(未上电标志) HERE2: LCALL ISD_RD ;调用段组合播放过程 MOV A,TASK3 CJNE A,#0,HERE2 SJMP $ ;虚拟等待 ;单段录音初始化 MOV R0,#XmtDat MOV @R0,#xxh ;段地址送缓冲区首字节 INC R0 MOV @R0,#xx ;录音时间送缓冲区第二字节 SETB MIC_C ;设置录音标志 ;单段录音过程启动 MOV TASK3,#05H ;启动标志(未上电标志) HERE3: LCALL ISD_WR ;调用单段录音过程 MOV A,TASK3 CJNE A,#0,HERE3 SJMP $ ;虚拟等待 ;把语音缓冲区语音段送IDS4000芯片播放子程序 PROC ISD_RD ;入口参数:TASK3置为05H ;b2~b0记录放音或录音状态 ;000-空闲 ;001-执行上电延迟(25 ms) ;010-段播放延迟 ;011-段间延迟 ;101-未上电标志 ISD_RD: JNB MIC_C,RUN ;录音状态,不执行! JMP EXIT ;退出 RUN: MOV A,TASK3 ANL A,#07H ;保留标志位b2~b0 CJNE A,#000B,NEXT1 ;b2~b0为000,空闲 JMP EXIT ;退出 NEXT1: CJNE A,#101B,NEXT2 ;b2~b0为101,未上电,先执行上电操作 ;执行“POWER UP” (上电)命令 MOV R0,#ISDBUF ;语音命令缓冲首地址送R0 MOV @R0,#20H ;00100XXX,执行上电操作 LCALL SPIBW ;调用SPI总线控制命令写入子程序 MOV ISDTIME,#5 ;延迟时间为5×5 ms(即25 ms) MOV TASK3,#1 ;进入上电延迟状态 JMP EXIT NEXT2: CJNE A,#001B,NEXT3 ;b2~b0为001,处于上电延迟期间,检查延迟时间 NEXT30: MOV A,ISDTIME JZ NEXT31 ;不是0,上电延迟时间未到,等待 SJMP EXIT NEXT31: MOV A,#XmtDat ADD A,ISDBUFSP MOV R0,A MOV A,@R0 ;取出待放音段编号 MOV B,#2 ;假设每一单音占用两个最小段 MUL AB ;计算段首地址 MOV R0,#ISDBUF+1 ;语音命令缓冲首地址送R0 MOV @R0,A ;段地址低8位送命令缓冲 DEC R0 MOV A,B ;段地址高位送A ORL A, ;形成地址控制码11100(SET PLAY) MOV

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档