




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机控制ISD1420实现选段播放功能的实现(C程序电路图)发布:hnrain| 查看:157次资料编写与整理:AVR 猎手 benladn911 出处:AVR猎手的地盘 http:在2006年时候记得我在做ISD1420的播放控制,当时在选段播放上遇到 了问题,当时网络上也没有详细描述具体的控制方法,也在咱们坛子里问过。折腾了很久,后来还是实现出来了。但资料后来没有实际应用到产品上, 今天翻看资料的时候发现了,拿出来给同样碰到问题的朋友做为参考。以前写的C程序比较菜,注释比较多。(现在写的程序注释也很多:)电 路图简单画了下,大家都看得懂:附上KEIL完整工程:1420_code.ra
2、r程序原文:* 功能:使用STC2052单片机控制ISD1420语音芯片的播放1、顺序连续分段放音2、选段播放(播放任意段)3、所有的播放控制都是通过接收串口的命令来执行编写:benladn911 AVR 猎手日期:2006-6-28 创建2008-2-21添加注释和完善nclude<STC12C2052.H>#i nclude<intrins.h>#i nclude<stdio.h>#i nclude<string.h> 硬件端口的定义#definePOW P3_7此引脚为单片机控制一个三极管给ISD1420供电#definePL P3_5 接
3、 ISD1420 的 PLAYL#definePE P3_4接 ISD1420 的 PLAYE#defineREC P3_3 接 ISD1420 的 REC#defineREC_LED P3_2/ISD1420 的 REC LED操作模式的定义#define model 0xC8 /循环放音操作,按一下PE键可循环放音,按PL 键停止;或按PL键放音,松开即停止#define mode2 OxDO/按顺序连续分段录放音,每段语音长度不限#define mode3 OxCO /地址指针复位,开始录放第一段#define mode4 OxDl /按PE键可快速选段放音/OxCl /也为地址指针复位
4、unsigned char RX_index=O;/bit FLAG_rev = O;/unsigned char PC_COMMAND;unsigned char RX_BUFFER1O;/串行接收缓存void ionit(void);void serial_out(unsigned char d);void delaySms(void);void delay(unsigned int x);void nop(unsigned char i);void palyfunsigned char i);选择播放当前段操作void main(void)ionit();delay(1000);seri
5、al_out(Oxaa); 发送到PC机,看看PC端是否收到正确数据serial_out(0x55);serial_out(0x33);POW = 0;/开启电源/Pl = mode4;/Pl = 0X00;while(1)/端口初始化void io_init(void)PlMO = 0x00; /设置 STC 的 10 为标准 5110 模式PlMl = 0x00;P3M0 = 0x00;P3Ml = 0x00;P1 = OXFF;P3 = OXFF;/串行口初始化/TMOD:serail mode 1, 8-bit UART, enable ucvr TMOD = 0x20;timer 1
6、, mode 2, 8bit reloadTH1 = Oxf3;/12MHz, 2400 bpsTL1 = Oxf3;/IE | = 0x90;/Enable Serial InterruptTRI = 1;/ timer 1 ru nES=1;EA=1;/串行数据发送,查询模式void serial_out(unsigned char d)ES=O;SBUF=d;while (TI=0);TI=0;ES=1;/串行xx接收void receive() interrupt 4if(RI)RI = 0;ES = O;PC_COMMAND = SBUF;/RX_BUFFERRX_index = P
7、C_COMMAND;保存数据到数组里面RX_index+;switch(PC_COMMAND)case OxaO:serial_out(OxaO);Pl = mode2;按顺序连续分段录放音,每段语音长度不限OxDO连续寻址,A4PE = O;nop(10);PE = 1;P1 = OXFF;break;case OxbO:serial_out(OxbO);Pl = mode3; 地址指针复位OxCOnop(10);P1 = OXFF;break;case OxcO:选段播放控制serial_out(OxcO);Pl = OxDl; 第二步:快速选段放音P1 0 = 0;nop(10);Pl
8、0=1;nop(10);PE = O;nop(10);PE = 1;break;case OxdO:serial_out(OxdO); 播放任意段的组合paly;paly;paly;paly;paly;paly;paly;paly;paly;break;case 0x30:serial_out(0x30);此操作循环放音操作,按一下PE键可循环放音,按PL键停止;或按PL键放音,松开即停止此操作没什么用Pl = model;PE = O;nop(10);PE = 1;/ break; default:break;ES = 1;选段播放,i的值就是要播放的当前段void palyfunsigne
9、d char i)i-;Pl = mode3;第一步:地址指针复位 OxCOA7-A0: 1100 00 (A2、A5在应用中可直接接地)nop(10);/Pl = OXFF;delay(30);/必要的延时if(i>0)Pl = OxDl; 第二步:快速选段放音 OxDl A7-A0: 1101 0001 (A2、A5在应用中可直接接地)do Pl_0 = 0;给A0低电平脉冲nop(10);Pl 0=1;nop(10);PE = O;nop(10);PE = 1;delay(50);/这个延时是非常必要的!i-;while(i!=0);delay(30);/必要的延时P1 = mode2;第三步:播放当前11/10段 OxDOA7-A0: 11O1OO (A2、A5在应用中可直接接地)PE = O;nop(10);PE = 1;/Pl = OXFF;while(REC_LED=l);/ 等待播放while(REC_LED=O);/等待播放结束/软件延时函数/50ms延时void delay5ms(void)unsigned char TempCyc = 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗用品及器材零售企业数字化转型与智慧升级战略研究报告
- 微机励磁屏相关行业投资方案
- 舞蹈表演行业相关投资计划提议范本
- 玛丽珍鞋相关行业投资规划报告范本
- 鸽子磁受体MagR的N端序列功能研究
- 渔港题材油画创作实践研究
- 跨境电商平台赋能中小外贸企业国际竞争力提升
- 课题开题报告:乡村小规模学校教师专业成长的特殊性与保障体系创新研究
- 高速高压轴向柱塞泵关键摩擦副润滑及泄漏特性研究
- 课题开题报告:现场工程师的核心能力及培养研究
- 眼科学基础本科
- 小沈阳《四大才子》欢乐喜剧人台词
- 交通安全设施作业指导书
- 优秀员工荣誉证书模板
- 神奇的电家长课堂
- 城南旧事读书汇报教学课件
- 不锈钢容器制造通用标准工艺守则
- 校园环境卫生检查及记录表
- 合同能源管理合同范本模板
- Q∕SY 05006-2016 在役油气管道 第三方施工管理规范
- 数值分析 第二章 代数插值解析
评论
0/150
提交评论