基于单片机的语音控制小车毕业设计论文

康虹:基于单片机的语言控制小车设计

F_FlashWrite1Word(ulAddr,BSR_SDModel[i]); ulAddr+=1;

}

} }

// 语法格式: void StoreSD(); // 实现功能: 装载语音模型函数

// 参数:

// 返回值: 无

void LoadSD() { unsigned int *p,k,jk,Ret,g_Ret; p=(int *)0xe000;

for(jk=0;jk<5;jk++) { for(k=0;k<100;k++) { Ret=*p;

BSR_SDModel[k]=Ret;

p+=1;

}

g_Ret=BSR_ImportSDWord(); while(g_Ret!=0)

g_Ret=BSR_ImportSDWord();

} }

// 语法格式: void GoAhead(); // 实现功能: 前进子函数

// 参数:

// 返回值:

void GoAhead()

- 52 -

//装载语音模型

//模型装载成功?

//前进

华科学院本科毕业设计(论文)

{

PlaySnd(S_ACT1,3);

*P_IOB_Data=0x0100;

*P_INT_Mask |= 0x0004;

__asm(\ uiTimecont = 0; }

// 语法格式: void BackUp(); // 实现功能: 后退子函数

// 参数:

// 返回值:

void BackUp() {

PlaySnd(S_DCZY,3);

*P_IOB_Data=0x0200;

*P_INT_Mask |= 0x0004;

__asm(\ uiTimecont = 0; } // 语法格式: void TurnLeft(); // 实现功能: 左转子函数

// 参数:

// 返回值:

void TurnLeft() {

PlaySnd(S_GJG,3);

- 53 -

//提示 //前进

//以下为中断定时操作

//倒退

//提示 //倒退

//以下为中断定时操作

//左转

康虹:基于单片机的语言控制小车设计

*P_IOB_Data=0x0900; Delay();

*P_IOB_Data=0x0500;

*P_INT_Mask |= 0x0004;

__asm(\ uiTimecont = 0; }

// 语法格式: void TurnRight(); // 实现功能: 右转子函数

// 参数:

// 返回值:

void TurnRight() {

PlaySnd(S_GJG,3);

*P_IOB_Data=0x0500; Delay();

*P_IOB_Data=0x0900;

*P_INT_Mask |= 0x0004;

__asm(\ uiTimecont = 0; }

// 语法格式: void Stop(); // 实现功能: 停车子函数

// 参数:

// 返回值:

void Stop() {

*P_IOB_Data=0x0000; PlaySnd(S_RDY,3);

}

- 54 -

//右转

//延时 //左转

//以下为中断定时操作

//右转

//语音提示

//左转

//延时 //右转

//以下为中断定时操作

//停车

//停车

//语音提示

华科学院本科毕业设计(论文)

// 语法格式: void BSR(void); // 实现功能: 辨识子函数

// 参数:

// 返回值: 无

void BSR(void) {

int Result;

Result = BSR_GetResult();

if(Result>0) { *P_IOB_Data=0x0000; switch(Result) {

case NAME_ID: Stop();

break;

case COMMAND_GO_ID: GoAhead();

break;

case COMMAND_BACK_ID: BackUp();

break;

case COMMAND_LEFT_ID: TurnLeft();

break;

case COMMAND_RIGHT_ID: TurnRight();

break;

//辨识结果寄存

//获得识别结果

//有语音触发?

//临时停车

//识别出名称命令

//停车待命

//识别出第一条命令

//执行动作一:直走

//识别出第二条命令

//执行动作二:倒车

//识别出第三条命令

//执行动作三:左转 //识别出第四条命令

//执行动作四:右转

- 55 -

康虹:基于单片机的语言控制小车设计

} }

default: }

break;

// 语法格式: // 实现功能: // 参数:

void IRQ5(void); 中断服务子函数

// 返回值: 无

//运动定时控制

void IRQ5(void)__attribute__((ISR)); void IRQ5(void) {

if(uiTimecont++ == uiTimeset) { }

*P_INT_Clear = 0x0004; }

// 语法格式: // 实现功能: // 参数:

int main(void); 主函数

*P_IOB_Data = 0x0000;

// 返回值: int main(void)

{ unsigned int BS_Flag;

*P_IOA_Dir=0xff00;

//Train标志位

//初始化IOA,IOA0~7下拉输入

*P_IOA_Attrib=0xff00;

- 56 -

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4