51 单片机控制IS D1420 实现选段播放功能的实现 在2006 年时候记得我在做 IS D1420 的播放控制,当时在 选段播放上遇到了问题,当时网络上也没有详细描述具体的控制方法,也在咱们坛子里问过。 折腾了很久,后来还是实现出来了。但资料后来没有实际应用到产品上,今天翻看资料的时候发现了,拿出来给同样碰到问题的朋友做为参考。 以前写的C 程序比较菜,注释比较多。(现在写的程序注释也很多 :) 电路图简单画了下,大家都看得懂: 附上 KEIL完整工程: 1420_code.rar 程序原文: /********************************************************** 功能: 使用STC2052单片机控制 ISD1420语音芯片的播放 1、顺序连续分段放音 2、选段播放(播放任意段) 3、所有的播放控制都是通过接收串口的命令来执行 编写: benladn911 AVR猎手 日期: 2006-6-28创建 2008-2-21添加注释和完善 **********************************************************/ #i nclude #i nclude #i nclude #i nclude //硬件端口的定义 #define POW P3_7 //此引脚为单片机控制一个三极管给 ISD1420供电 #define PL P3_5 //接 ISD1420 的 PLAYL #define PE P3_4 //接 ISD1420 的 PLAYE #define REC P3_3 //接 ISD1420 的 REC #define REC_LED P3_2 //ISD1420 的 REC LED //操作模式的定义 #define mode1 0xC8 //循环放音操作,按一下 PE 键可循环放音,按 PL 键停止;或按 PL 键放音,松开即停止 #define mode2 0xD0 //按顺序连续分段录放音,每段语音长度不限 #define mode3 0xC0 //地址指针复位,开始录放第一段 #define mode4 0xD1 //按 PE 键可快速选段放音 //0xC1 //也为地址指针复位 unsigned char RX_index=0; // bit FLAG_rev = 0; // unsigned char PC_COMMAND; unsigned char RX_BUFFER[10];//串行接收缓存 void io_init(void); void init_serialcomm(void); void serial_out(unsigned char d); void delay5ms(void); void delay(unsigned int x); void nop(unsigned char i); void paly(unsigned char i);//选择播放当前段操作 void main(void) { io_init(); init_serialcomm(); delay(1000); serial_out(0xaa); //发送到PC机,看看PC端是否收到正确数据 serial_out...