单片机大神进来看蓝牙怎么从死从for循环跳出来中跳出来

求助达人..各位大神进来看一下_中国矿业大学吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:316,091贴子:
求助达人..各位大神进来看一下收藏
今天煤机行业工作的朋友问了自己一道题,类似高中物理题,却发现自己不会做,特来此请教一下大神:原题:一质量为m的小车从角度为θ的斜坡上受重力影响自由下滑,初始速度为V0,下滑中受到坡面对车轮的滚动摩擦力和空气阻力影响,滚动摩擦力系数为f,空气阻力计算公式为CdAρV^2/2,其中CD为小车的空气阻力系数,A为小车截面积,ρ为空气密度,V为小车的即时速度,求滑行距离S时的速度Vt。 注:1、小车下滑过程受到的拉力为F=mgsinθ-mgfcosθ- CdAρV^2/2(小车的下滑力大于摩擦力和空气阻力的总和);
2、小车离起始点越远速度越快,同时空气阻力越大,加速度越小。
魅族PRO 6s手机直降200元!给你多买一双新鞋、一条新耳机的理由!
不会做啊不会做...帮忙看一下吧
**。。好难
无论采用哪种方法,变量总是多了一个解不出来
求大神现身...
帮算一下呗
动能守恒能破么?
处女星号邮轮由上海出发前往日本,畅享东京/大阪/富士山自然美景和饕餮美食
还需要补足其他条件...不知道是否要用积分之类的..
回复11楼:肯定要用吧?俺的高数早忘完了
回复7楼:我只能马克 不会有下文的
回复11楼:肯定得积分
回复16楼:经研究 不会
嗯, 仍然要谢谢~
回复18楼:不客气 会继续研究
看第一眼我就决定看回复不说话了。。。
谢谢帮顶..
算出来了,谢谢楼上各位......
继续求算,刚刚少考虑了一个条件
回复24楼:不懂
刚刚算错了,进入了一个死循环,还是算不出来
s的二重微分为F比m,初始条件速度为零,得s与t关糸,再微分V与t关糸行不
dv/dt=a+bv*v(a.b为常糸数可解吧)v0己知
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或我的app怎么回事。 进来看一下 求大神_iphone5s吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,401,549贴子:
我的app怎么回事。 进来看一下 求大神收藏
一直这样死循环。这是啥情况
哥哥们来看看呀
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或单片机大神进来看蓝牙怎么从死循环中跳出来_华中科技大学吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:384,061贴子:
单片机大神进来看蓝牙怎么从死循环中跳出来收藏
/****************************************************************************硬件连接蓝牙有4条线定义: VCC
GND TDX RXD把蓝牙插入单片机J7接口中 ****************************************************************************/#include &AT89x51.H&
#include &intrins.h&//PCA 寄存器内存单元分配 sfr
//PCA 控制寄存器sbit
= CCON^0;//PCA 模块0中断标志sbit
= CCON^1;//PCA 模块1中断标志sbit
= CCON^6;//PCA 计数器计数允许位sbit
= CCON^7;//PCA 计数器溢出标志sfr
//PCA 工作模式寄存器sfr
//PCA 计数器低位sfr
//PCA 计数器高位sfr
//PCA 模块0比较/捕获寄存器sfr
//PCA 模块0比较/捕获寄存器低位字节sfr
//PCA 模块0比较/捕获寄存器高位字节sfr
//PCA 模块1比较/捕获寄存器sfr
//PCA 模块1比较/捕获寄存器低位字节sfr
//PCA 模块1比较/捕获寄存器高位字节sfr
PCAPWM0 = 0xf2;
//PCA PWM0寄存器sfr
PCAPWM1 = 0xf3;
//PCA PWM1寄存器sfr
//PCA 辅助寄存器#define shuma P0//定义P0口为数据口sbit LED_4=P1^0;sbit LED_5=P1^1;sbit LED_6=P1^2;sbit LED_7=P1^3;
sbit I1=P0^0;sbit I2=P0^1;sbit I3=P0^2;sbit I4=P0^3;sbit huo=P0^4;sbit JDQ=P0^5;sbit IN1=P3^4;sbit IN2=P3^5;sbit IN3=P3^6;sbit IN4=P3^7;#define Left_moto_pwm
//接驱动模块ENA使能端,输入PWM信号调节速度#define Right_moto_pwm
//接驱动模块ENB#define Left_moto_go
{P3_4=0,P3_5=1;} //P3_4 P3_5 接IN1
当 P3_4=1,P3_5=0; 时左电机前进#define Left_moto_back
{P3_4=1,P3_5=0;} //P3_4 P3_5 接IN1
当 P3_4=0,P3_5=1; 时左电机后退
#define Left_moto_stp
{P3_4=0,P3_5=0;} //P3_4 P3_5 接IN1
当 P3_4=0,P3_5=0; 时左电机停转
#define Right_moto_go
{P3_6=0,P3_7=1;} //P3_6 P3_7 接IN1
IN2 当 P3_6=1,P3_7=0; 时右电机前转#define Right_moto_back
{P3_6=1,P3_7=0;} //P3_6 P3_7 接IN1
IN2 当 P3_6=0,P3_7=1; 时右电机后退
#define Right_moto_stp
{P3_6=0,P3_7=0;} //P3_6 P3_7 接IN1
IN2 当 P3_6=0,P3_7=1; 时右电机停转
unsigned char pwm_val_left
=0;//变量定义unsigned char push_val_left =0;// 左电机占空比N/20unsigned char pwm_val_right =0;unsigned char push_val_right=0;// 右电机占空比N/20bit Right_moto_stop=1;bit Left_moto_stop =1;unsigned
time=0;#define
P1_4unsigned int
timer=0;unsigned char posit=0;unsigned long S=0;bit
flag =0;unsigned char const positon[3]={ 0xdf,0xef,0xf7};unsigned char disbuff[4]
={ 0,0,0,0,}; //void delay3(unsigned int x);//声明延时函数//void display2();//声名数码管显示函数2unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};#define turnleft
'C'
#define turnright
'D'#define up
'A'
#define down
'B'#define staystop
'F'#define fire
'1'
#define xunji
'2' #define bizhang1
'3'
//unsigned int t,r,temp,ge,shi,bai,
char code str[] =
&收到指令,向前!\n&;char code str1[] = &收到指令,向后!\n&;char code str2[] = &收到指令,向左!\n&;char code str3[] = &收到指令,向右!\n&;char code str4[] = &收到指令,停止!\n&;char code str5[] = &收到指令,电机!\n&;
char code str6[] = &收到指令,循迹!\n&;char code str7[] = &收到指令,避障!\n&;bit
flag_REC=0; bit
unsigned char
i=0;unsigned char
unsigned char
buff[8]=0; //接收缓冲字节//sbit DJ=P1^1;
sbit BUZZ=P2^3;void display2();
/************************************************************************///延时函数
void delay0(unsigned int k){
unsigned int x,y;for(x=0;x&k;x++) for(y=0;y&2000;y++);}void delay1(){ int i,j;for(i=2;i&0;i--)for(j=2;j&0;j--);}/************************************************************************///字符串发送函数void send_str( )
// 传送字串
unsigned char i = 0;
while(str[i] != '\0')
{SBUF = str[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
} void send_str1( )
// 传送字串
unsigned char i = 0;
while(str1[i] != '\0')
{SBUF = str1[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
} void send_str2( )
// 传送字串
unsigned char i = 0;
while(str2[i] != '\0')
{SBUF = str2[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
void send_str3()
// 传送字串
unsigned char i = 0;
while(str3[i] != '\0')
{SBUF = str3[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
void send_str4()
// 传送字串
unsigned char i = 0;
while(str4[i] != '\0')
{SBUF = str4[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
}void send_str5( )
// 传送字串
unsigned char i = 0;
while(str5[i] != '\0')
{SBUF = str5[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
}void send_str6( )
// 传送字串
unsigned char i = 0;
while(str5[i] != '\0')
{SBUF = str5[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
}void send_str7( )
// 传送字串
unsigned char i = 0;
while(str5[i] != '\0')
{SBUF = str5[i];while(!TI);// 等特数据传送TI = 0;// 清除数据传送标志i++;// 下一个字符
/************************************************************************///循迹灭火/************************************************************************//************************************************************************/
run(void)//前进函数{
push_val_left
//PWM 调节参数1-20
1为最慢,20是最快
改这个值可以改变其速度push_val_right =10; //PWM 调节参数1-20
1为最慢,20是最快 改这个值可以改变其速度Left_moto_ //左电机前进Right_moto_ //右电机前进}/************************************************************************/
left()//左转函数{
push_val_left
//PWM 调节参数1-10
1为最慢,10是最快
改这个值可以改变其速度push_val_right =8; //PWM 调节参数1-10
1为最慢,10是最快 改这个值可以改变其速度Right_moto_//右电机继续Left_moto_//左电机停走} /************************************************************************/
right()//右转函数{
push_val_left
//PWM 调节参数1-10
1为最慢,10是最快
改这个值可以改变其速度push_val_right =8; //PWM 调节参数1-10
1为最慢,10是最快 改这个值可以改变其速度Right_moto_//右电机停走Left_moto_//左电机继续} void stop() { Left_moto_
Right_moto_ } void backrun() {
Left_moto_
Right_moto_
/************************************************************************//*
PWM调制电机转速
*//************************************************************************//*
左电机调速
*//*调节push_val_left的值改变电机转速,占空比
*/void pwm_out_left_moto(void){
if(Left_moto_stop)
if(pwm_val_left&=push_val_left)
Left_moto_pwm=1; else
Left_moto_pwm=0;if(pwm_val_left&=20)pwm_val_left=0;
Left_moto_pwm=0;}/******************************************************************//*
右电机调速
void pwm_out_right_moto(void){
if(Right_moto_stop)
if(pwm_val_right&=push_val_right)
Right_moto_pwm=1; else
Right_moto_pwm=0;if(pwm_val_right&=20)pwm_val_right=0;
Right_moto_pwm=0;}/*///*TIMER0中断服务子函数产生PWM信号*/ /*void timer0()interrupt 1
//1Ms定时TL0=0X30;time++;pwm_val_left++;pwm_val_right++;pwm_out_left_moto();pwm_out_right_moto(); }*/ /***************************************************/ /***************************************************/void xunjimiehuo(void){TMOD=0X01;TH0= 0XF8;
//1ms定时 TL0= 0X30;TR0= 1;ET0= 1;EA = 1;while(buff[2]==xunji){
if(huo==1){ JDQ=1;run();if(I1==1&&I4==0) {left(); delay0(6);}
if(I2==1&&I3==0) {left(); delay0(6);}
if(I2==0&&I3==1) {right() ;delay0(6);}
if(I4==1&&I2==0) {right(); delay0(6);} }else{ stop();JDQ=0;delay0(10);}}}
/******************************************************************************************/
/*****************************************************************************************/ //避障测距
/****************************************************************************************/ /********************************************************/
void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100;
//算出来是CMif((S&=300)||flag==1) //超出测量范围显示“-”{
flag=0; disbuff[0]=10;
//“-” disbuff[1]=10;
//“-” disbuff[2]=10;
//“-”}else{ disbuff[0]=S%; disbuff[1]=S%; disbuff[2]=S%;}}/********************************************************/
void zd0() interrupt 1
//T0中断用来计数器溢出,超过测距范围
flag=1; //中断溢出标志
}*//********************************************************/
interrupt 3
//T1中断用来扫描数码管和计800MS启动模块
{TH1=0xf8;TL1=0x30;timer++;if(timer&=200){ timer=0; TX=1;
启动一次模块 _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_();
_nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0;}
}/*********************************************************/void
bizhang(){
TMOD=0x11;
//设T0为方式1,GATE=1;TH0=0;TL0=0;
//2MS定时TL1=0x30;ET0=1;
//允许T0中断ET1=1;
//允许T1中断TR1=1;
//开启定时器EA=1;
//开启总中断 while(buff[2]==bizhang1){while(!RX);//当RX为零时等待TR0=1;
//开启计数while(RX);//当RX为1计数并等待TR0=0;//关闭计数
Conut();//计算display2();if(S&20)//如果距离大于20厘米则前进{IN1=IN3=1;IN2=IN4=0;}
if(S&=20 && S&10)//如果距离在10-20厘米之间则停车{IN1=1;IN3=0;IN2=0;IN4=0;}if(S&=40)//如果距离在10厘米内则倒车{IN1=IN3=0;IN2=IN4=1;}}
}void delay3(unsigned int x){//x为延时长度,可以设置
for(i=0;i&x;i++);}
void display2()//unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4){
shuma=a[disbuff[0]];//选中第五位,发送第一位段码
delay3(2000);
shuma=a[disbuff[1]];//选中第六位,发送第二位段码
delay3(2000);
shuma=a[disbuff[2]];//选中第七位,发送第三位段码
delay3(2000);
LED_6=1;}/***************************************************************************************/void sint() interrupt 4
//中断接收3个字节{
//是否接收中断
if(dat=='O'&&(i==0)) //接收数据第一帧
//开始接收数据
if(flag1==1)
{i=0;flag1=0;flag_REC=1 ;}
// 停止接收
}}}/*void timer0() interrupt 1{
TH0=()/256;
TL0=()%256;
if(t==100)
if(ge==10)
if(shi==10)
if(bai==10)
if(qian==10)
ge=shi=bai=qian=0;
if(shi==5)
}} */void main(void){
TMOD=0x20;
//11.0592M晶振,9600波特率
SCON=0x50;
PCON=0x00;
TR1=1; ES=1; PS=1;
while(1)/*无限循环*/{
if(flag_REC==1)
{ flag_REC=0; if(buff[0]=='O'&&buff[1]=='N')//第一个字节为O,第二个字节为N,第三个字节为控制码 switch(buff[2])
send_str( ); run();
case down: send_str1( ); backrun();
case turnleft: send_str3( ); left();
case turnright: send_str2( ); right();
case staystop: send_str4( ); stop(); case fire: send_str5( ); JDQ=0; delay0(300); JDQ=1; case xunji: send_str6(); xunjimiehuo(); case bizhang1: send_str7(); bizhang();}}}} void timer0() interrupt 1{
/* TH0=()/256;
TL0=()%256;
if(t==100)
if(ge==10)
if(shi==10)
if(bai==10)
if(qian==10)
ge=shi=bai=qian=0;
if(shi==5)
if(buff[2]==bizhang1){flag=1;} if(buff[2]==xunji){TH0=0XF8;
//1Ms定时TL0=0X30;time++;pwm_val_left++;pwm_val_right++;pwm_out_left_moto();pwm_out_right_moto();}}
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或Java中的死循环和无限循环的区别和各自的作用,求大神指导_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:604,371贴子:
Java中的死循环和无限循环的区别和各自的作用,求大神指导收藏
Java中的死循环和无限循环的区别和各自的作用
java培训---美国上市公司出品,入学签订就业协议,名企疯抢达内学员.java,O基础小班授课,java专家领衔授课,免费试听,满意后付款!
死循环一般是你直接无法推算出的循环条件,比如返回值永远不为ture,就陷入死循环,此时会吃内存,知道内存吃完,然后死机,没什么实际作用无限循环主要是用来重复做一件事,什么时候控制自己决定,例如while(true){...}这个代码块的就是无限被执行的代码,比如使用网略协议从服务器端获取数据,建立连接后,不停的从服务器读取数据,一般会这么写,什么时候判断读完全部数据了,在跳出或返回,两种循环是有本质区别的
我一直认为这俩是一回事。。。
举个例子:当你不操作时,鼠标不动,windos一直无限循环等你操作这是无限循环
当你想关广告窗口却一直弹窗时,这是死循环。2楼说的很好了
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 从for循环跳出来 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信