欢迎来到天天文库
浏览记录
ID:11438453
大小:24.00 KB
页数:4页
时间:2018-07-12
《51单片机声控智能小车c语言程序设计代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、51单片机声控智能小车C语言程序设计代码#include#defineuintunsignedint#defineucharunsignedcharunsignedcharcodeLEDShowData[]={0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x19,0x03};sbitLED=P0^7;sbitm1a=P0^0;sbitm1b=P0^1;sbitm2a=P0^2;sbitm2b=P0^3;sbitB1=P0^4;uintm,n,x,y,z;voiddelayB1(){
2、unsignedintdelaytime=500;while(delaytime--);return;}voiddelayLED(uintms){uinta,b;for(a=0;a3、1=0;//关闭T1定时器m1a=1;m2a=1;}voidtimer2(void)interrupt5{TF2=0;//软件对T2标志位清零n++;if(n==250)//n控制查询周期时间{n=0;switch(m){case1://低速挡,占空比77.8%{P2=LEDShowData[0];//七段数码管显示1TH0=210;TL0=210;//对T0定时器赋初值TH1=240;TL1=240;//对T1定时器赋初值x=m;m=0;z=0;ET0=1;ET1=1;TR0=1;//启动T0定时器break;//跳出switch}4、case2://高速挡,占空比99.6%{P2=LEDShowData[1];//七段数码管显示2TH0=1;TL0=1;//对T0定时器赋初值TH1=255;TL1=255;//对T1定时器赋初值x=m+1;m=0;z=0;ET0=1;ET1=1;TR0=1;//启动T0定时器break;//跳出switch}default://对周期时间T之内无效m清零{m=0;z++;if(z==5){ET0=0;ET1=0;LED=1;P1=0x00;x=0;z=0;P2=LEDShowData[2];m1a=0;m2a=0;break;}}5、}}}voidmain(void){P1=0x00;//初始化主板LED,全亮n=m=x=y=z=0;m1a=0;m2a=0;m1b=0;m2b=0;TMOD=0x22;//T0,T1选用8位重装定时器功能T2CON=0x00;//T2作为定时器使用,16位重装TH2=0xD8F0;//65536TL2=0xD8F8;RCAP2H=0xD8F0;//重装数据寄存器RCAP2L=0xD8F0;ET0=1;//开启定时器T0中断请求允许位ET1=1;//开启定时器T1中断请求允许位ET2=1;//开启定时器T2中断请求允许位EA=1;//6、开启总中断TR0=0;//关闭定时器T0TR1=0;//关闭定时器T1TR2=1;//开启定时器T2while(1){y=10*(6-x);//配置不同档位LED灯闪烁调用延时时间个数if(x>0)//完成主板LED灯闪烁{P1=0xff;//全灭delayLED(y);P1=0x00;delayLED(y);//灯全亮}else{P1=0x00;delayLED(1);}}}
3、1=0;//关闭T1定时器m1a=1;m2a=1;}voidtimer2(void)interrupt5{TF2=0;//软件对T2标志位清零n++;if(n==250)//n控制查询周期时间{n=0;switch(m){case1://低速挡,占空比77.8%{P2=LEDShowData[0];//七段数码管显示1TH0=210;TL0=210;//对T0定时器赋初值TH1=240;TL1=240;//对T1定时器赋初值x=m;m=0;z=0;ET0=1;ET1=1;TR0=1;//启动T0定时器break;//跳出switch}
4、case2://高速挡,占空比99.6%{P2=LEDShowData[1];//七段数码管显示2TH0=1;TL0=1;//对T0定时器赋初值TH1=255;TL1=255;//对T1定时器赋初值x=m+1;m=0;z=0;ET0=1;ET1=1;TR0=1;//启动T0定时器break;//跳出switch}default://对周期时间T之内无效m清零{m=0;z++;if(z==5){ET0=0;ET1=0;LED=1;P1=0x00;x=0;z=0;P2=LEDShowData[2];m1a=0;m2a=0;break;}}
5、}}}voidmain(void){P1=0x00;//初始化主板LED,全亮n=m=x=y=z=0;m1a=0;m2a=0;m1b=0;m2b=0;TMOD=0x22;//T0,T1选用8位重装定时器功能T2CON=0x00;//T2作为定时器使用,16位重装TH2=0xD8F0;//65536TL2=0xD8F8;RCAP2H=0xD8F0;//重装数据寄存器RCAP2L=0xD8F0;ET0=1;//开启定时器T0中断请求允许位ET1=1;//开启定时器T1中断请求允许位ET2=1;//开启定时器T2中断请求允许位EA=1;//
6、开启总中断TR0=0;//关闭定时器T0TR1=0;//关闭定时器T1TR2=1;//开启定时器T2while(1){y=10*(6-x);//配置不同档位LED灯闪烁调用延时时间个数if(x>0)//完成主板LED灯闪烁{P1=0xff;//全灭delayLED(y);P1=0x00;delayLED(y);//灯全亮}else{P1=0x00;delayLED(1);}}}
此文档下载收益归作者所有