毕业论文 - 图文(5)

2019-08-03 11:46

扬州职业大学——电子工程系 智能语音玩具 毕业论文

#define CLK_IN 22.1184 /* user need modify this value according to clock in */ #define LD_PLL_11 (uint8)((CLK_IN/2.0)-1)

#define LD_PLL_1D (uint8)(((180.0*((LD_PLL_11)+1))/(CLK_IN))-1) #define LD_PLL_19 0x1f #define LD_PLL_1B 0x40

#define LD_LEDMTR_FREQ (uint8)((CLK_IN*1000000/8)/12700)

// LD chip fixed values.

#define RESUM_OF_MUSIC 0x01 #define CAUSE_MP3_SONG_END 0x20

#define MASK_INT_SYNC 0x10 #define MASK_INT_FIFO 0x04 #define MASK_AFIFO_INT 0x01 #define MASK_FIFO_STATUS_AFULL 0x08 #define MASK_ADPCM_START 0x01

#define LD_INDEX_PORT (*((volatile uint8 xdata*)(0x8100))) #define LD_DATA_PORT (*((volatile uint8 xdata*)(0x8000)))

void LD_WriteReg( uint8 ulAddr, uint8 ucVal ); uint8 LD_ReadReg( uint8 ulAddr ); void LD_reset();

void LD_Init_Common(); void LD_Init_MP3(); void LD_Init_ASR();

void LD_play();

void LD_AdjustMIX2SPVolume(uint8 value); void LD_ReloadMp3Data();

void LD_ReloadMp3Data_Online();

uint8 LD_ProcessAsr(uint32 RecogAddr); void LD_AsrStart(); uint8 LD_AsrRun();

uint8 LD_AsrAddFixed(); uint8 LD_GetResult();

void LD_ReadMemoryBlock(uint8 dev, uint8 * ptr, uint32 addr, uint8 count); void LD_WriteMemoryBlock(uint8 dev, uint8 * ptr, uint32 addr, uint8 count);

extern uint32 nMp3StartPos; extern uint32 nMp3Size;

第 21 页 共 45 页

扬州职业大学——电子工程系 智能语音玩具 毕业论文

extern uint32 nMp3Pos; extern uint8 bMp3Play;

extern uint8 idata nLD_Mode;

//CODE_TANGSHI, CODE_SUANSHU, CODE_YIJIAYI, CODE_ERJIAER,

#define CODE_DEFAULT 0 #define CODE_TANGSHI 1 #define CODE_SUANSHU 3 #define CODE_YIJIAYI 7 #define CODE_ERJIAER 8 #define CODE_ABORT 9 #define CODE_AGAIN 11

void delay(unsigned long uldata);

#define MIC_VOL 0x43 #endif

sbit LED_ERJIAER =P2^4; sbit LED_DEFAULT =P2^5;

uint8 idata nAsrStatus=0; uint8 idata nInt0Flag=0;

uint8 idata nMP3Flag=0;//MP3播放完毕标志 uint8 idata nSuanshuFlag=0;//\你出题\播放标志 //uint8 idata nFlag=0;//播放标志

//#define MP3_ANOTHER_START 0xE000;//还想玩些什么 //#define MP3_ANOTHER_SIZE 0x1000;

#define MP3_TANGSHI_START 0x4000;//鹅鹅鹅,曲颈向天歌 #define MP3_TANGSHI_SIZE 0x4000;

#define MP3_FOUR_START 0x2000;//等于四 #define MP3_FOUR_SIZE 0x2000;

#define MP3_TWO_START 0x0000;//等于二 #define MP3_TWO_SIZE 0x2000;

#define MP3_AGAIN_START 0x10000;//我听不清 #define MP3_AGAIN_SIZE 0x2000;

#define MP3_ABORT_START 0xD000;//我实在听不清 #define MP3_ABORT_SIZE 0x3000;

#define MP3_WANT_START 0xB000;//你出题我来算 #define MP3_WANT_SIZE 0x2000;

#define MP3_NIHAO_START 0x8000;//你好,我是小艾 #define MP3_NIHAO_SIZE 0x3000;

extern void _nop_ (void);

第 22 页 共 45 页

扬州职业大学——电子工程系 智能语音玩具 毕业论文

void MCU_init();

void FlashLED(uint8 nTimes); void PlaySound(uint8 nCode); uint8 RunASR(); void ProcessInt0();

void main() {

uint8 idata nAsrRes; uint8 idata nTemp = 0; uint8 idata nflag = 0; uint16 idata ncount = 0;

FlashLED(3);

MCU_init();

serial_port_initial();//串口初始化

send_UART(0x34); //串口发送数据表示单片机串口正常工作 LD_reset();

nAsrStatus = LD_ASR_NONE; nSuanshuFlag = 0;

PlaySound(CODE_DEFAULT);//PlaySound(CODE_TANGSHI); while(1) {

if(ncount<10000) {

ncount++; } else {

ncount = 0; if(nflag) { LED_DEFAULT = 1; nflag = 0; } else { LED_DEFAULT = 0; nflag = 1; } }

第 23 页 共 45 页

扬州职业大学——电子工程系 智能语音玩具 毕业论文

if (nInt0Flag) { ProcessInt0();//对识别结果预读,置位识别成功标志位 continue; }

if (bMp3Play!=0) continue;

switch(nAsrStatus)//根据ASR的状态进行操作

{ case LD_ASR_RUNING:break; case LD_ASR_ERROR: break; case LD_ASR_NONE: { FlashLED(4); nAsrStatus=LD_ASR_RUNING; if (RunASR()==0)//此时进行声音识别 { nAsrStatus = LD_ASR_ERROR; LED1=0; LED2=0; } break; } case LD_ASR_FOUNDOK://识别成功,进行相应操作 { FlashLED(2); P2=0; nAsrRes = LD_GetResult(); PlaySound(nAsrRes);//播放声音

send_UART(0xAA); //串口发送数据表示单片机串口正常工作 send_UART(nAsrRes); //串口发送数据表示单片机串口正常工作 nAsrStatus = LD_ASR_NONE; break; } case LD_ASR_FOUNDZERO: { if(nTemp) {

PlaySound(CODE_ABORT); nTemp = 0; } else {

第 24 页 共 45 页

扬州职业大学——电子工程系 智能语音玩具 毕业论文

}

void MCU_init() {

LED1=0; LED2=0; P0 = 0xff;

P1 = 0xfe;//选中LD3320的并行模式 P2 = 0;//0xBf; P3 = 0xf7; P4 = 0x0f;

IP=0; IPH=0;

PX0=1; PT0=1; PS=1;

IPH |= 1;

EX0=0; EX1=0; ET0=0; EA=1; }

void delay(unsigned long uldata) {

unsigned int j = 0; unsigned int g = 0; for (j=0;j<5;j++)

}break; default: { FlashLED(1); nAsrStatus = LD_ASR_NONE; break; } }// switch }// while

PlaySound(CODE_AGAIN);

nTemp = 1; }/**/

nAsrStatus = LD_ASR_NONE;

第 25 页 共 45 页


毕业论文 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:民警思想动态分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: