第一步:右键标题栏,点击--->标记---->标记
第二步:鼠标拖动,选中你要复制的内容
第三步:右键标题栏--->编辑--->复制
此时,内容复制完毕,可在文本文档中,用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时结束,并计算前面输入数字的和等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)