c语音控制台程序,如何复制输出文字

c语音控制台程序,如何复制输出文字,第1张

第一步:右键标题栏,点击--->标记---->标记

第二步:鼠标拖动,选中你要复制的内容

第三步:右键标题栏--->编辑--->复制

此时,内容复制完毕,可在文本文档中,用Ctrl+V粘贴

一个独立按键程序,没有必要写成子程序,更没有必要写得这么复杂。其实很简单的。如下程序:

#include<reg52h>

typedef unsigned int u16;

sbit k1=P1^0;

sbit led=P1^1;

void delay(u16 i)

{

while(i--);

}

void main()

{

led=0;

while(1)

{

if(k1==0)

{

delay(700);

if(k1==0)

{

led=~led;

}

while(k1==0); //等待按键释放

}

}

}

#include <stdioh>

int main(){

int sum,n;

for(;;){

scanf("%d",&n);

if(n==0) break;

sum=sum+n;

}

printf("sum=%d",sum);

}

/ /项目名称:Car_Demo

/ /说明:参与实施汽车语音控制

/ /库:CMacro1016lib

/ / bsrv222SDLlib

/ / sacmv26e。库

/ /组成文件:mainc中

/ / Flashasm,hardwareasm,ISRasm

/ /的hardwareh,s480h,hardwareinc

> / /硬件连接:IOA0 ----- KEY1

/ / IOA1 ----- KEY2

/ / IOA2 ----- KEY3

/ / IOB8 ---- - 远期

/ / IOB9 -----倒车

/ / IOB10 ----左

/ / IOB11 ----右转

/ /保养纪录:2005年-12-12 V10

/ / ===================================== ===================

#包括“s480h”

#包括“bsrsdh”

BR />#定义P_IOA_Data(挥发性符号整数)0x7000处

#定义P_IOA_Dir(挥发性无符号整数)0x7002

#定义P_IOA_Attrib(挥发性无符号整数)0x7003

#定义P_IOB_Data(挥发性无符号整型)0x7005

#定义P_IOB_Dir(挥发性无符号整数)0x7007

#定义P_IOB_Attrib(挥发性无符号整数)0x7008

#定义P_TimerA_Data(挥发性无符号整数)0x700A

>#定义P_TimerA_Ctrl(挥发性无符号整数)0x700B

#定义P_TimerB_Data(挥发性无符号整数)0x700C

#定义P_TimerB_Ctrl(挥发性无符号整数)0x700D

#定义P_Watchdog_Clear(挥发性无符号整型)0x7012

#定义P_INT_Mask(挥发性无符号整数)0x702D

#定义P_INT_Clear(挥发性无符号整数)0x7011

#定义名_ID量0x100

#定义COMMAND_GO_ID 0x101

#定义COMMAND_BACK_ID 0x102

#定义COMMAND_LEFT_ID #定义COMMAND_RIGHT_ID量0x104

#定义S_NAME 0 / /给我一个名字吧

#定义S_ACT1 1 / /前进

#定义S_ACT2 2 / /倒车,请注意

#定义S_ACT3 3 / /左

#定义S_ACT4 4 / /右转

#定义S_RDY 5 / /是啊

#定义S_AGAIN 6 / /请重复

#定义S_NOVOICE 7 / /没有听到任何声音

#定义S_CMDDIFF 8 / /代码字说啊

#定义S_NOISY 8 / /说什么暗语呀

#定义S_START 9 / /准备开始识别

#定义S_GJG 10 / /诱拐绑架

#定义S_DCZY 11 / /倒车,请注意

的extern unsigned int类型BSR_SDModel [100]; / /外部变量BSR_SDModel [100],读者自带

外部无效F_FlashWrite1Word(unsigned int类型地址,无符号整型值);

外部无效F_FlashErase(无符号整数部门);

无符号整型uiTimeset = 3; / /运行时间定时器,调节参数控制运行时间

无符号整型uiTimecont; / /运行时定时

/ / ================================== ===========================

/ /语法:无效延迟();

/ /功能:延时

/ /参数:无

/ /返回值:无

/ / ================ =============================================

无效延迟()

{

无符号整数I;

就(i = 0; I <0X3FFF,我+ +)

{

P_Watchdog_Clear = 0X0001;

/ / ============================== ===============================

/ /语法:无效PlaySnd(无符号SndIndex,无符号DAC_Channel);

/ /功能:语音播放功能

/ /参数:SndIndex播放语音资源索引号

/ / DAC_Channel播放通道选择

/ /返回值:无

> / / =============================================== ============== 无效PlaySnd(无符号SndIndex,无符号DAC_Channel)

{

BSR_StopRecognizer(); / /停止识别

SACM_S480_Initial(1); / /初始化为自动

SACM_S480_Play玩(SndIndex,DAC_Channel,3); / /开始播放语音

同时(!(SACM_S480_Status()&0X0001)= 0)/ /如果播放完毕?

SACM_S480_ServiceLoop(); / /解码,并填补了队列

P_Watchdog_Clear = 0X0001; / /清除看门狗

}

SACM_S480_Stop(); / /停止播放

BSR_InitRecognizer(BSR_MIC); / /初始化识别器

}

/ / ============================== ===============================

/ /语法:INT TrainWord(INT的wordID,诠释SndID);

/ /功能:训练命令

/ /参数:

/ / SndID命令语气指数

/ /返回值的wordID指令编码:无

/ / ================================================= ============

整数TrainWord(无符号整数的wordID,无符号整型SndID)

{

int结果;

PlaySnd(SndID,3); / /导游培训,打相应的动作

指令,而(1)

{

结果= BSR_Train(的wordID,BSR_TRAIN_TWICE); / /训练两次,得到训练成绩

如果(结果== 0)打破;

开关(结果)

{

案例-1:/ /未检测到声音

PlaySnd(S_NOVOICE,3);

返回-1;

案例-2:/ /要培养第二

PlaySnd(S_AGAIN,3);

突破;

案例-3:/ /环境嘈杂

PlaySnd(S_NOISY,3);

返回-3;

案例-4:/ /数据库全

回报-4;

情况-5:/ /检测声音不同

PlaySnd(S_CMDDIFF,3);

返回-5;

情况-6:/ /错误号

回报-6;

默认:

突破;

返回0;

/ / =================================== ==========================

/ /语法:无效TrainSD();

/ /功能:训练功能

/ /参数:无

/ /返回值:无

/ / =============== ==============================================

无效TrainSD()

{

同时(TrainWord(名_ID,S_NAME)= 0!); / /培训名称

而(TrainWord(COMMAND_GO_ID,S_ACT1)= 0);! / /训练第1节动作

同时(TrainWord(COMMAND_BACK_ID,S_ACT2)= 0);! / /培训前两个动作

同时(TrainWord(COMMAND_LEFT_ID,S_ACT3)= 0!); / /训练第3节动作

同时(TrainWord(COMMAND_RIGHT_ID,S_ACT4)= 0!); / /培训4的动作

}

/ / ============================= ================================

/ /语法:无效StoreSD();

/ /实现功能:存储语音模型功能

/ /参数:无

/ /返回值:无

/ / ============ ================================================= BR />无效StoreSD() {unsigned int类型ulAddr,我,命令号,g_Ret;

F_FlashWrite1Word(0xef00,加上0xAAAA);

F_FlashErase(0xe000);

F_FlashErase(0xe100);

F_FlashErase(0xe200);

ulAddr = 0xe000 ;/ /

为(命令号= 0x100的;命令号<0x105;命令号+ +)

{

g_Ret = BSR_ExportSDWord(命令号);

而(g_Ret! = 0)/ /导出模型成功?

g_Ret = BSR_ExportSDWord(命令号);

就(i = 0; I <100; i + +)/ /保存语音模型SD1(0xe000 --- 0xe063)

{

F_FlashWrite1Word(ulAddr,BSR_SDModel [I]) ;

ulAddr + = 1;

/ / ========================= ====================================

/ /语法:无效StoreSD();

/ /功能:承载语音模型函数

/ /参数:无

/ /返回值:无 / / ============= ================================================ 无效LoadSD()

{unsigned int类型 P,K,JK,惩戒,g_Ret;

P =(INT )0xe000;

为(JK = 0; JK <5; JK + +)

{

为(K = 0,K <100,K +)

{

RET = P;

BSR_SDModel [K] = RET; / /加载语音模型

P + = 1;

g_Ret = BSR_ImportSDWord();

而(g_Ret! = 0)/ /加载成功的模式?

g_Ret = BSR_ImportSDWord();

/ / ============================== ===============================

/ /语法:无效的GoAhead();

/ /功能:正向功能

/ /参数:无

/ /返回值:无

/ / =============== ==============================================

无效的GoAhead()/ /向前

PlaySnd(S_ACT1,3); / /提示

P_IOB_Data = 0X0100; / /前进

P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作

__ asm的(“INT FIQ,IRQ”);

uiTimecont = 0;

/ / ======================================= ======================

/ /语法:无效的备份();

/ /功能:返回函数

/ /参数:无

/ /返回值:无

/ / =============== ==============================================

无效的备份()/ /向后

PlaySnd(S_DCZY,3); / /提示 P_IOB_Data = 0x0200; / /向后

P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作

__ asm的(“INT FIQ,IRQ”);

uiTimecont = 0;

/ / =================================== ==========================

/ /语法:无效TurnLeft();

/ /功能:打开左侧的功能

/ /参数:无

/ /返回值:无

/ / ============== ===============================================

>无效TurnLeft()/ /左转

PlaySnd(S_GJG,3);

P_IOB_Data = 0x0900; / /右转

延迟(); / /延迟

P_IOB_Data =成0x0500; / /左转

P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作

__ asm的(“INT FIQ,IRQ”);

uiTimecont = 0;

/ / ======================================= ======================

/ /语法:无效TurnRight();

/ /功能:右转子程序

/ /参数:无

/ /返回值:无

/ / ============== ===============================================

>无效TurnRight()/ /右转

PlaySnd(S_GJG,3); / /语音提示

P_IOB_Data =成0x0500; / /左转

延迟(); / /延迟

P_IOB_Data = 0x0900; / /右转

P_INT_Mask | = 0X0004; / /以下为中断定时器 *** 作

__ asm的(“INT FIQ,IRQ”);

uiTimecont = 0;

/ / =================================== ==========================

/ /语法:无效停止();

/ /功能:停车功能

/ /参数:无

/ /返回值:无

/ / =============== ==============================================

无效停止()/ /停止

{

P_IOB_Data值= 0x0000; / /停车

PlaySnd(S_RDY,3); / /语音提示

}

/ / =============================== ==============================

/ /语法:BSR无效(无效);

/ /功能:识别功能

/ /参数:无

/ /返回值:无

/ / =============== ==============================================

BSR无效(无效)

{

int结果; / /识别结果存储

结果= BSR_GetResult(); / /得到识别结果

如果(结果> 0)/ /语音触发?

P_IOB_Data值= 0x0000; / /临时停车

开关(结果)

{

案名_ID:/ /识别命令

停止(名称); / /停机位

突破;

情况COMMAND_GO_ID:/ /找出第一个命令

的GoAhead(); / /执行一个动作:直

突破; 案例COMMAND_BACK_ID:/ /找出第二个命令

备份(); / /执行动作二:倒车

突破;

情况COMMAND_LEFT_ID:/ /找出第三个命令

TurnLeft(); / /执行三个动作:向左转

突破;

情况COMMAND_RIGHT_ID:/ /找出第四个命令

TurnRight(); / /执行动作四:右转

突破;

默认:

突破;

/ / ============================= ================================

/ /语法:IRQ5无效(无效);

/ /功能:中断服务子程序

/ /参数:无

/ /返回值:无

/ / ============== ===============================================

> IRQ5无效(无效)的__attribute__((ISR)); / /运动定时控制

IRQ5无效(无效)

{

如果(uiTimecont + + == uiTimeset)

{

P_IOB_Data值= 0x0000;

P_INT_Clear = 0X0004;

/ / =================================== ==========================

/ /语法:INT主要(无效);

/ /功能:主要功能

/ /参数:无

/ /返回值:无

/ / ============== ===============================================

>国际主要(无效)

{unsigned int类型BS_Flag; / /火车标志

P_IOA_Dir =为0xFF00; / /初始化IOA,IOA07下拉输入

P_IOA_Attrib =为0xFF00;

P_IOA_Data值= 0x0000;

P_IOB_Dir = 0x0f00; / /初始化IOB,IOB811与输出

P_IOB_Attrib = 0x0f00;

P_IOB_Data值= 0x0000;

BSR_DeleteSDGroup(0); / /初始化存储器RAM

BS_Flag = (unsigned int类型)0xe000; / /读取内存单元0xe000

如果(BS_Flag == 0xFFFF的)/ /没有受过训练(0xe000内容0xFFFF的)

{

TrainSD(); / /培训

StoreSD(); / /存储的训练结果(语音模式)

其他/ /训练(0xe000内容0x0055)

{

LoadSD(); / /语音识别模型加载

}

PlaySnd(S_START,3); / /开始识别

BSR_InitRecognizer(BSR_MIC)提示; / /初始化识别器

同时(1)

{

BSR();

如果(( P_IOA_Data)&0X0004)/ /如果再培训

{

F_FlashErase(0xe000);

而(1);

/ / ========================= ===================================

/ /文件名:flashasm

> / /实现功能:SPCE061 32K闪存读卡器

/ /保养纪录:2003-6-9 V1 0

/ / ================= ===========================================

>。 INCLUDE hardwareinc

。 DEFINE C_FLASH_SIZE为0x8000

。 DEFINE C_FLASH_BLOCK_SIZE量0x100

。 DEFINE C_FLASH_MATCH加上0xAAAA

。 DEFINE C_FLASH_PAGE_ERASE 0x5511 / /擦除一个

。 DEFINE C_FLASH_MASS_ERASE 0x5522 / /

。 DEFINE C_FLASH_1WORD_PGM 0x5533 / /写一个字

。 DEFINE C_FLASH_SEQUENT_PGM 0x5544 / /写多个字

。 DEFINE C_FLASH_MAIN_BLOCK为0x5555

。 DEFINE C_FLASH_INFORM_BLOCK 0x5566

。代码

/ / =========================================== ================================================= BR /> / /语法:无效F_FlashWrite1Word(INT地址,int值)

/ /描述:写一个字到FLASH

/ /参数:要写入的地址内存中的数据写入值地址数据

/ /返回:无

/ / ================================== ================================================== ===========

。公众_F_FlashWrite1Word

DEFINE P_Flash_Ctrl 0x7555

_F_FlashWrite1Word: PROC

推基点至[SP]

BP = SP +1

R1 = C_FLASH_MATCH / / AAAA

> [P_Flash_Ctrl] = R1

R1 = C_FLASH_1WORD_PGM / / 5533

[P_Flash_Ctrl] = R1

R1 = [BP +4] / / flash地址

R2 = [BP + 4 ] / /数据

[R1 = R2

流行BP从[SP]

。 ENDP

/ / ======================================= ================================================== ====

/ /语法:F_FlashWrite(INT部门,诠释及次数,int的大小)

/ /说明:顺序写更多的字

/ /参数:扇区是起始地址将数据写入写入和NUM-大小的写入数据数

/ /返回的数据:无

/ / ================== ================================================== =========================

公众_F_FlashWrite

_F_FlashWrite: PROC

推基点至[SP]

BP = SP +1

R1 = [BP +4] / / flash基地址

R2 =

/数据/> R3 = [BP +5] / /多字节

R4 = C_FLASH_MATCH / / AAAA

[P_Flash_Ctrl] = R4

L_FlashWriteLoop:

R4 = C_FLASH_SEQUENT_PGM / / 5544

[P_Flash_Ctrl] = R4 R4 = [R2 +]

[R1 + +] = R4

R3 - = 1

JNZ L_FlashWriteLoop

[P_Flash_Ctrl] = R3 / /写从最终

d出基点[SP]

RETF 。 ENDP

/ / ======================================= ================================================== ===

/ /语法:无效F_FlashErase(部门)

/ /说明:擦除256字节

/ /参数:起始地址扇区擦除页

/ /返回:无

/ / ============================================ ================================================ 公共_F_FlashErase

_F_FlashErase: PROC

推基点至[SP]

BP = SP + 1

R1 = C_FLASH_MATCH / / AAAA

[P_Flash_Ctrl] = R1

R1 = C_FLASH_PAGE_ERASE / / 5511

[P_Flash_Ctrl] = R1

R1 = [BP +4] / /擦除一个

[R1] = R1

从[SP]

。 ENDP

。完

/ / ======================================= =====================

/ /文件名:ISRasm

/ /功能:语音播放/识别中断服务

> / /保养纪录:2003-9-9 V10

/ / ============================== ==============================

包括hardwareinc

公共_FIQ;。

外部_BSR_FIQ_Routine

外部F_FIQ_Service_SACM_S480

_FIQ:

推R1,R5为[SP]; / /注册推来保护

R1 = C_FIQ_TMA;

[P_INT_Clear] = R1;

致电_BSR_FIQ_Routine / /语音识别中断服务

致电F_FIQ_Service_SACM_S480; / /语音播放中断服务

流行R1,R5从[SP];

RETI;

你看看我这个能用上不?/ Emits a 7-Hz tone for 10 seconds Your PC may not be able to emit a 7-Hz tone / #include <dosh> int main(void) { sound(7); delay(10000); nosound(); return 0; }

以上就是关于c语音控制台程序,如何复制输出文字全部的内容,包括:c语音控制台程序,如何复制输出文字、51单片机c语音独立按键程序、需要设计一个C语音程序,可以连续输入数字,当输入数字0时结束,并计算前面输入数字的和等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10163312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存