焦点信息:51单片机语音+温度控制的源码是什么?


【资料图】

最近这段时间总有小伙伴问小编51单片机语音+温度控制的源码是什么,小编为此在网上搜寻了一些有关于51单片机语音+温度控制的源码的知识送给大家,希望能解答各位小伙伴的疑惑。

//*********************************************************************************************************************//*********************************************************************************************************************//*********************************************************************************************************************//*********************************************************************************************************************//*********************************************************************************************************************//***********************************下面是1-10档位的子函数调用了显示画面和语音*****************************************//**********************************************************************************************************************void dangwei(uint k) // 档位1-10的子函数。{switch(k){case 1: //档位1.a=25;//火力的占空比是25.break;case 2: //档位2.a=50;//火力的占空比是50.break;case 3: //档位3a=75;//火力的占空比是75.break;case 4: //档位4 a=100;//火力的占空比是25.break;case 5: //档位5a=125;//火力的占空比是25.break;case 6: //档位6a=25;//火力的占空比是25.break;case 7: //档位7a=25;//火力的占空比是25.break;case 8: //档位8a=25;//火力的占空比是25.break;case 9:a=25;//火力的占空比是25.break;case 10:a=25;//火力的占空比是25.break;}dispdangwei(k);//档位K的画面music(k);//档位K的语音。} //**********************************************************************************************************************//*************************************************************************************************************************//******************************************到这里档位定义信息完毕!!*****************************************************//**********************************************************************************************************************//****************************************************下面是PCA计数器初始化************************************************ void init_pca(void)//pca计数器初始化函数{CMOD=0x00;CCON=0x00;CCAP0=0X2; //8位PWM输出,无中断。PWM0CCAP1=0x2;//8位PWM输出,无中断 。PWM1CL=0x00;//清零pca计数器CH=0x00;CCA1L=pm[0]; //初始化PWM1输出的占空比CCA1H=pw[0];CCA0L=pm[0]; //初始化PWM0输出的占空比CCA0H=pm[0];CR=1;//运行pca计数器}//*************************************************************************************************************************//*****************************************************************************************************************//***********************************************************************************************************************void huanying(){yuyin(30);//语音的欢迎语。init_12864();//初始化液晶。write_12864_com(0x80);//设定显示位置是第一行。for(i=0;i<16;i++) //第一行有多少字,汉字占两个位置。标点符号一个。{write_12864_at(table100[i]); //开始挨个把表中的字一位一位的通过12864的数据发送子程序发送出去。delay_50us(1); //延时一会保证数据有发送完毕。}write_12864_com(0x90); //设定第二行。for(i=0;i<16;i++){write_1284_dat(table24[i]);delay_50us(1;}write_12864_com(0x88); //设定第三行for(i=0;i<10i++){write_12864_dat(table25[i]);delay_50us(1);}write_12864_com(0x98);//设定第四行显示位置。for(i=0;i<16;i++){write_12864dat(table100[i]);delay_50us(1);}//##################################第二幅画面。delay_1s(2000);//延时保持2秒钟的第一幅画面。init_12864();//初始化液晶。write_12864_com(0x80);//设定显示位置是第一行。for(i=0;i<14;i++) //第一行有多少字,汉字占两个位置。标点符号一个。{write_12864_dat(table11[i]); //开始挨个把表中的字一位一位的通过12864的数据发送子程序发送出去。delay_50us(1); //延时一会保证数据有发送完毕。}write_12864_com(0x90); //设定第二行。for(i=0;i<16;i++){write_12864_dat(table13[i]);delay_50us(1);write12864_com(0x88); //设定第三行for(i=0;i<16;i++){write_12864_dat(table12[i]);delay_50us(1);}write_12864_com(0x98);//设定第四行显示位置。for(i=0;i<16;i++){write_12864_dat(table14[i]);delay_50us(1);}}//***********************************************************************************************************************//*********************************************************************************************************************void main(){P4SW=0x7F; //设置P4为双向IO口。c=0;//写入未执行过按键操作的标志位 baohu=1;//先强制打开保护功能,促使PWN彻底关闭,防止上机的那种不可控的频率。让PWM有规律可循。beiguang=1;//打开背光yanshi(30);//延时一小会保证已经彻底关闭。init_pa();//初始化PWM控制器。m=0;temp=0;init_1864();//初始化液晶。huanying();//开机欢迎语和欢迎画面。while(1){if(pd==0) //档位加{yanshi(50);if(pd==0){m++ //检测火力+按键按了几次。是几次就是几档位、if(m==11) //当档位增加到11次以后,就给复位到档位1.防止出现错误。{m=1;}dangwei(m); //档位的各种信息。while(!pd);} }if(px==0) //档位减{yanshi(50);if(px==0){ if(m==0){m=2;}m--; //检测火力-按键按了几次。是几次就是几档位、if(m<=0)//当档位增加到0次以后,就关闭所有档位的输出。{m=1;}dangwei(m); //档位的各种信息。while(!p);}}if(zd==0){yanshi(10);if(zd==0){b--;if(b<=0){b=56;};c=1;while(!zd);}}if(zx==0){yanshi(10);if(zx==0){b++;if(b>=56){b=0;};while(!zx);}}CCAP1L=pwm[a]; //初始化PWM1输出的占空比CCAP1H=pwm[a];CCAP0L=pw[b]; //初始化PWM0输出的占空比CCAP0H=pm[b];if(c>=1)//检测是不是已经稳定好了PWM。{baohu=0;//开启PWM输出。}}}