基于51单片机控制的isd4004语音模块引脚电平触发发音程序n1bd0p3l.doc

基于51单片机控制的isd4004语音模块引脚电平触发发音程序n1bd0p3l.doc

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

#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int //录音和放音键IO口定义: sbit AN=P2^6;//放音键控制接口 sbit set_key=P2^7;//录音键控制口 // ISD4004控制口定义: sbit SS =P1^0; //4004片选 sbit MOSI=P1^1; //4004数据输入 sbit MISO=P1^2; //4004数据输出 sbit SCLK=P1^3; //ISD4004时钟 sbit INT =P1^4; //4004中断 sbit STOP=P3^4; //4004复位 sbit LED1 =P1^6; //录音指示灯 //===============================LCD1602接口定义===================== /*注意,P2.2到P2.4需要接上拉电阻 --------------------------------------------------- =============================================================*/ #define LCM_Data P0 //LCD1602数据接口 sbit LCM_RW = P2^3; //读写控制输入端,LCD1602的第五脚 sbit LCM_RS = P2^4; //寄存器选择输入端,LCD1602的第四脚 sbit LCM_E = P2^2; //使能信号输入端,LCD1602的第6脚 //***************函数声明************************************************ void WriteDataLCM(uchar WDLCM);//LCD模块写数据 void WriteCommandLCM(uchar WCLCM,BuysC); //LCD模块写指令 uchar ReadStatusLCM(void);//读LCD模块的忙标 void DisplayOneChar(uchar X,uchar Y,uchar ASCII);//在第X+1行的第Y+1位置显示一个字符 void LCMInit(void); void DelayUs(uint us); //微妙延时程序 void DelayMs(uint Ms);//毫秒延时程序 void init_t0();//定时器0初始化函数 void setkey_treat(void);//录音键处理程序 void upkey_treat(void);//播放键处理程序 void display();//显示处理程序 void isd_setrec(uchar adl,uchar adh);//发送setrec指令 void isd_rec();//发送rec指令 void isd_stop();//stop指令(停止当前操作) void isd_powerup();//发送上电指令 void isd_stopwrdn();//发送掉电指令 void isd_send(uchar isdx);//spi串行发送子程序,8位数据 void isd_setplay(uchar adl,uchar adh); void isd_play(); //程序中的一些常量定义 uint time_total,st_add,end_add=0; uint adds[25];//25段语音的起始地址暂存 uint adde[25];//25段语音的结束地址暂时 uchar t0_crycle,count,count_flag,flag2,flag3,flag4; uchar second_count=170,msecond_count=0; //second_count为芯片录音的起始地址,起始地址本来是A0,也就是160, //我们从170开始录音吧。 #define Busy 0x80 //用于检测LCM状态字中的Busy标识 /*=========================================================================== 主程序 ====================================

文档评论(0)

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

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

1亿VIP精品文档

相关文档