⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kongwen120.c

📁 对8051cf020的温度控制和液晶显示急串口上传的代码
💻 C
📖 第 1 页 / 共 5 页
字号:
             {
                clr_datarx();
                return 0;   //error                           //如果没有“,”,则返回,数组清零
             }
             lookresult=lookresult+2;
             lookresult=trim(lookresult);
             strmid(lookresult,0,lookresult1-lookresult);
             robot1.res1b=atoff(array);  
			 robot2.res1b=robot1.res1b;
          }

        lookresult=strstr1(data_rx,"sa");  //开始查找sa参数,
         if(lookresult==0)
         {
             robot1.samples=robot2.samples;            //如果没有则采用上一次设定结果
         }
         else
         {
             lookresult1=strstr1(lookresult,",");
             if (lookresult1==0)
             {
                clr_datarx();
                return 0;   //error                           //如果没有“,”,则返回,数组清零
             }
             lookresult=lookresult+2;
             lookresult=trim(lookresult);
             strmid(lookresult,0,lookresult1-lookresult);
             robot1.samples=atoff(array);  
			 robot2.samples=robot1.samples;
          }

       lookresult=strstr1(data_rx,"t0");  //开始查找t0参数,
         if(lookresult==0)
         {
             robot1.set_tem0=robot2.set_tem0;            //如果没有则采用上一次设定结果
         }
         else
         {
             lookresult1=strstr1(lookresult,",");
             if (lookresult1==0)
             {
                clr_datarx();
                return 0;   //error                           //如果没有“,”,则返回,数组清零
             }
             lookresult=lookresult+2;
             lookresult=trim(lookresult);
             strmid(lookresult,0,lookresult1-lookresult);
             robot1.set_tem0=atoff(array);  
			 robot2.set_tem0=robot1.set_tem0;
          }

       lookresult=strstr1(data_rx,"t1");  //开始查找t1参数,
         if(lookresult==0)
         {
             robot1.set_tem1=robot2.set_tem1;            //如果没有则采用上一次设定结果
         }
         else
         {
             lookresult1=strstr1(lookresult,",");
             if (lookresult1==0)
             {
                clr_datarx();
                return 0;   //error                           //如果没有“,”,则返回,数组清零
             }
             lookresult=lookresult+2;
             lookresult=trim(lookresult);
             strmid(lookresult,0,lookresult1-lookresult);
             robot1.set_tem1=atoff(array);  
			 robot2.set_tem1=robot1.set_tem1;
          }

        lookresult=strstr1(data_rx,"v0");  //开始查找v0参数,
         if(lookresult==0)
         {
             robot1.tem_v0=robot2.tem_v0;            //如果没有则采用上一次设定结果
         }
         else
         {
             lookresult1=strstr1(lookresult,",");
             if (lookresult1==0)
             {
                clr_datarx();
                return 0;   //error                           //如果没有“,”,则返回,数组清零
             }
             lookresult=lookresult+2;
             lookresult=trim(lookresult);
             strmid(lookresult,0,lookresult1-lookresult);
             robot1.tem_v0=atoff(array);  
			 robot2.tem_v0=robot1.tem_v0;
          }
       
	   lookresult=strstr1(data_rx,"v1");  //开始查找v1参数,
         if(lookresult==0)
         {
             robot1.tem_v1=robot2.tem_v1;            //如果没有则采用上一次设定结果
         }
         else
         {
             lookresult1=strstr1(lookresult,",");
             if (lookresult1==0)
             {
                clr_datarx();
                return 0;   //error                           //如果没有“,”,则返回,数组清零
             }
             lookresult=lookresult+2;
             lookresult=trim(lookresult);
             strmid(lookresult,0,lookresult1-lookresult);
             robot1.tem_v1=atoff(array);  
			 robot2.tem_v1=robot1.tem_v1;
          }

     go_stop=2;                         //判断是否有go,stop参数,没有这两个函数中的一个则go_stop=2
     lookresult=strstr1(data_rx,"go");  //开始查找go参数,
         if(lookresult!=0)
         {
             go_stop=1;            //如果有go,则标志为1,运行
         }
     lookresult=strstr1(data_rx,"stop");  //开始查找go参数,
         if(lookresult!=0)
         {
             go_stop=0;           //如果存在,则标志为0,停止
         }

    if(go_stop==1)                    //如果go_stop=1,执行命令,
      {
	     switch(robot1.manner)//运行方式,=1,宏动前进;=2,宏动后退;=3,顺时针旋转;=4,逆时针旋转;=5,微动X轴;
		     {
			    T4CON = 0;                //定时器4停止计数
			    case 1:                 //0 channel test
				  {			        
			  		  set_v_out(robot1.v_out,0);
					  clr_datarx();
					   T4CON |= 0x04;  
			       }
	            break;
				case 2:
				  { 
			          set_v_out(robot1.v_out,1);    //1 channel test
					  clr_datarx();
					   T4CON |= 0x04;  
	              }
	            break;
				case 3:
				  {
                      repeat_value=1;              //test res 
					  clr_datarx();
					  T4CON |= 0x04;                                                 // 启动定时器4 
				  }
	            break;

				case 4:
				  {
				      repeat_value=3;            //control tem
					  clr_datarx();
					  T4CON |= 0x04;                      // 启动定时器4 
				  }
	            break;
				case 5:                         //                      
				  {
                        regulator_v=get_regulator_v(1);
					    data_tx="regulator_v  ";
					    Tdata(data_tx);
						Tdata(mysprint(regulator_v,3));
						Tdatar(13);
						Tdatar(10);

					    clr_datarx();
					    T4CON |= 0x04;                    // 启动定时器4 
				  }
	            break;
				case 6:                                  //=6,微动X轴反向;
				  {
                        regulator_v=get_regulator_v(3);
					    data_tx="regulator_v  ";
					    Tdata(data_tx);
						Tdata(mysprint(regulator_v,3));
						Tdatar(13);
						Tdatar(10);
					    clr_datarx();
					    T4CON |= 0x04;                      // 启动定时器4 
				  }
	            break;
				case 7:							          //=7,微动Y轴正向;		
				  {
				        data_tx="regulator_v  ";
					    Tdata(data_tx);
						Tdata(mysprint(regulator_v,3));
						Tdatar(13);
						Tdatar(10);
					    clr_datarx();
					    T4CON |= 0x04;                       // 启动定时器4 
				  }
	            break;
				case 8:            //write data to eerom
				  {
				        char i=0;
                        unsigned char qw_h=0;
						for(i=2;i<31;i++)
						   {
						      FLASH_PageErase(i,1);
						   }
                        eerom[0]=robot2.speed_left/256;
						eerom[1]=robot2.speed_left%256;

						eerom[2]=robot2.speed_right/256;
						eerom[3]=robot2.speed_right%256;

						eerom[4]=robot2.speed_rotate/256;
						eerom[5]=robot2.speed_rotate%256;

						eerom[6]=robot2.robot_position/256;
						eerom[7]=robot2.robot_position%256;

						eerom[8]=robot2.delay_value/256;
						eerom[9]=robot2.delay_value%256;

						eerom[10]=robot2.res0k/256;
						eerom[11]=robot2.res0k%256;

						eerom[12]=robot2.res0b/256;
						eerom[13]=robot2.res0b%256;

						eerom[14]=robot2.res1k/256;
						eerom[15]=robot2.res1k%256;

						eerom[16]=robot2.res1b/256;
						eerom[17]=robot2.res1b%256;

						eerom[18]=robot2.samples/256;
						eerom[19]=robot2.samples%256;

						eerom[20]=robot2.set_tem0/256;
						eerom[21]=robot2.set_tem0%256;

						eerom[22]=robot2.set_tem1/256;
						eerom[23]=robot2.set_tem1%256;

						eerom[24]=robot2.tem_v0/256;
						eerom[25]=robot2.tem_v0%256;

						eerom[26]=robot2.tem_v1/256;
						eerom[27]=robot2.tem_v1%256;

                        eerom[28]=robot2.base_value;

						for(i=2;i<31;i++)
						   {
						      FLASH_ByteWrite(i,eerom[i-2],1);
						   }
						data_tx="已经存储,请看是否正确";
					    Tdata(data_tx);
						Tdatar(13);
						Tdatar(10);	 
                        clr_datarx();
					    T4CON |= 0x04;                       // 启动定时器4 
				  }
	            break;
				case 9:           //                  read data from eerom          
				  {				      
				        char i=0;
                        unsigned char qw_h=0;
						read_eerom();
						data_tx="参数列表";
					    Tdata(data_tx);					  
					    Tdatar(13);
						Tdatar(10);

						data_tx="sl ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.speed_left,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="sr ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.speed_right,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="so ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.speed_rotate,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="sp ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.robot_position,0));
						data_tx=",";
					    Tdata(data_tx);

						Tdatar(13);
						Tdatar(10);

						data_tx="dt ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.delay_value,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="k0 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.res0k,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="b0 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.res0b,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="k1 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.res1k,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="b1 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.res1b,0));
						data_tx=",";
					    Tdata(data_tx);

						Tdatar(13);
						Tdatar(10);

						data_tx="sa ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.samples,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="t0 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.set_tem0,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="t1 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.set_tem1,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="v0 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.tem_v0,0));
						data_tx=",";
					    Tdata(data_tx);

						data_tx="v1 ";
					    Tdata(data_tx);
						Tdata(mysprint(robot2.tem_v1,0));
						data_tx=",";
					    Tdata(data_tx);
					
						Tdatar(13);
						Tdatar(10);
                        clr_datarx();
					    T4CON |= 0x04;                       // 启动定时器4 
				  }
	            break;
				case 10:                            //
				  {
				     test_value_set=(unsigned long)robot1.speed_rotate*robot1.robot_position;
				  }
	            break;
				case 11:                              //=11,球下俯;
				  {
				      em0=0;
				      clr_datarx();
				      return 0;
				  }
	            break;
				case 12:                                   //=12,球上仰
				  {
				      em0=1;
				      clr_datarx();
				      return 0;
				  }
	            break;
				case 13:                                 //=13,二极管亮;
				  {
				      
					  data_tx="ledon";
					  Tdata(data_tx);					  
					  Tdatar(13);
                      Tdatar(10);
					  Tdata(mysprint(robot1.manner,0));
					  Tdatar(13);
                      Tdatar(10);

					  Tdata(mysprint(robot1.speed_left,0));
					  Tdatar(13);
                      Tdatar(10);

					  Tdata(mysprint(robot1.speed_right,0));
					  Tdatar(13);
                      Tdatar(10);

					  Tdata(mysprint(robot1.speed_rotate,0));
					  Tdatar(13);
                      Tdatar(10);

					  Tdata(mysprint(robot1.robot_position,0));
					  Tdatar(13);
                      Tdatar(10);

					  Tdata(mysprint(robot1.base_value,0));
					  Tdatar(13);
                      Tdatar(10);

					  Tdata(mysprint(robot1.delay_value,0));
					  Tdatar(13);
                      Tdatar(10);

					  clr_datarx();
				  }
	            break;

				case 14:                                   //=12,球上仰
				  {
				      repeat_value=4;
					  tem_v_out0=3700-((int)robot1.set_tem0-126)*100/15;
                      tem_v_out1=3700-((int)robot1.set_tem1-126)*100/15;
				      clr_datarx();
					  T4CON |= 0x04;                       // 启动定时器4 


				      return 0;
				  }
	            break;

				case 15:                                   //=12,球上仰
				  {
				      repeat_value=5;
				      clr_datarx();
				      return 0;
				  }
	            break;

				default:
				  {
				     clr_datarx();
				     return 0;      //如果manner参数不是预先定义字符,直接返回
				  }
			 }
		}
	  else                             //如果go_stop=0或者2,不执行命令,直接返回
	    {
		  T4CON = 0;                //定时器4停止计数
		  repeat_value=0;
	      clr_datarx();
		  return 0;
		}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -