智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1473|回复: 4
打印 上一主题 下一主题

别人说这叫程序,我也不知道是什么(三)

[复制链接]

3

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
309
QQ
威望
264
贡献
39
兑换币
18
注册时间
2010-1-14
在线时间
3 小时
跳转到指定楼层
1#
发表于 2010-1-14 15:31:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
while( get_ad( ) < 0X82 &&  get_ad( )>  0X7B );
/*******************************************************
找到后,给出平衡指示
*******************************************************/     
   Findbenlen(  );
   PORTC.2=0;
   flage+=0x80;  
        
   CLI( );
   LCD_write_str( 6 ,  1 , "Balan:"  );
   flage+=0x04;
   SEI( );  
     
    MBgo ;
    MAback ;
    OCR1AH=0x01;
    OCR1AL =0xFF;                                                       //new
    OCR1BH=0x01;
    OCR1BL=0xFF;
    startCPA  ;
    startCPB  ;
    delay_ms( 1000 );   
     find=1;
     
     while(find)  
   {
     if( PIND.2==1 )  
        find=0;  
        
      if(PIND.3==1)  
         find=0;  
   } ;   
    MBgo ;
    MAgo;
}         
unsigned char  output( void )
{
  if( vula_adc>=0X7D &&  vula_adc<=0X80 )
                return 0;
   if(  vula_adc>=0X7C && vula_adc<=0X81 )
                  return 1 ;
    if(  vula_adc>=0X7B &&  vula_adc<=0X82 )
                   return  2 ;
      if(  vula_adc>=0X7A &&  vula_adc<=0X83)
                    return 3 ;   
       if(  vula_adc>=0X79 &&  vula_adc<=0X84)
                     return  4 ;   
          if(  vula_adc>=0X78 &&  vula_adc<=0X85)
                      return  5 ;   
            if(  vula_adc>=0X77 &&  vula_adc<=0X86)
                        return  6 ;     
          if(  vula_adc>=0X76 &&  vula_adc<=0X87)
                          return  7  ;  
       if(  vula_adc>=0X75 && vula_adc<=0X88)
                            return  8 ;  
      if(vula_adc <=0X74 )                     
                           return 9;  
     if( vula_adc >= 0X89 )      
                          return 10;                                                                                                         
}   

/**************************************************************************************************
平衡驱动控制函数
**************************************************************************************************/
void  mortorgo( unsigned char high , unsigned char low, unsigned int  go_time, unsigned int  back_time )
{
      OCR1AH=high;
      OCR1AL = low;                                                      //new
      OCR1BH=high;
      OCR1BL= low;   
      
       if( vula_adc<0x7F)
      {
        MAgo;
        MBgo;
      }
      else
      {
       MAback;
       MBback;
      }
     
      startCPA ;
      startCPB ;
      
      delay_ms( go_time ) ;
     
      stopCPA ;
      stopCPB;
      
       if( vula_adc<0x7F)
      {
       MAback;
       MBback;
      }
      else
      {
        MAgo;
        MBgo;
      }
      
      startCPA ;
      startCPB ;
      
      delay_ms( back_time ) ;   
      
      stopCPA ;
      stopCPB;
}
void main ( void )
{
/*******************************************************
变量定义
*******************************************************/
  unsigned char  key;      
  unsigned char  temp_key;
  
/********************************************************
初始化设备
*********************************************************/
  Init_IO( );
// Init_T0(  );  
  Init_T1(  );
  //Init_T2(  );
  Init_TWI( );
  Init_device( ) ;      
  LCD_init( );
  
  delay_ms( 10 );
  LCD_clear( );   
  delay_ms(1);
    MBgo ;  
    MAgo;
    startCPA  ;
    startCPB  ;
  /********************************************************
  模式选择
  ********************************************************/
  do{
       vula_adc = get_ad ( );
     
     
      temp_key=vula_adc/16;
      LCD_write_char( 1 , 0 ,  temp_key+'0' );   
      temp_key=vula_adc%16;
      LCD_write_char( 2 , 0 ,  temp_key+'0' );  
       temp_key= vula_adc;
         key = output(  ) ;
      switch ( output(  ) ) {
                      case 0 :
                                    
                                  stopCPA ;
                                  stopCPB;
                                 break;
                      case 1 :  
                                 
                                  mortorgo( 0x03,0xFF , 400, 350 ) ;
                                 break;
                      case 2 :   
                                   
                                  mortorgo( 0x02,0xFF , 800, 700 ) ;
                                 break;
                      case 3 :
                                 
                                 mortorgo( 0x02,0xFF , 900, 800 ) ;
                                 break;
                      case 4 :   
                                
                                mortorgo( 0x02,0xFF , 900, 700 ) ;
                                 break;
                      case 5 :
                              
                                mortorgo( 0x02,0xFF , 900, 650 ) ;
                                 break;
                      case 6 :  
                              
                                mortorgo( 0x02,0xFF , 900,600 ) ;
                                 break;  
                       case 7 :
                                 
                                 mortorgo( 0x02,0xFF , 1000, 700 ) ;
                                 break;   
                       case 8 :
                             
                                mortorgo( 0x02,0xFF , 1000,600 ) ;
                                break;   
                       case 9 :
                                   MAgo;
                                   MBgo;
                                   OCR1AH=0x02;
                                   OCR1AL = 0XFF;                                                      //new
                                   OCR1BH=0x02;
                                   OCR1BL= 0XFF;  
                                   startCPA ;
                                   startCPB ;
                                break;  
                       case 10:
                                   MAback;
                                   MBback;
                                   OCR1AH=0x02;
                                   OCR1AL = 0XFF;                                                      //new
                                   OCR1BH=0x02;
                                   OCR1BL= 0XFF;  
                                   startCPA ;
                                   startCPB ;                                                                           
                    default:  LCD_clear();  
                                LCD_write_char( 10 , 1 , 'E' );  
                                 break;
    };
       delay_ms(200);
  }

while( 1 );
   
   // SEI();   
  // TCCR2  = 0x00;
   
   

  /*do
    {
    MBgo ;  
    MAgo;
    startCPA  ;
    startCPB  ;
   
    delay_ms(500);
    MBback ;  
    MAback;   
     delay_ms(500);
    MBgo ;  
    MAgo;  
    }
    while(1);    */
}

1

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
196
威望
244
贡献
22
兑换币
0
注册时间
2010-1-15
在线时间
0 小时
2#
发表于 2010-1-15 15:26:45 | 只看该作者
好东西啊
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
110
威望
174
贡献
26
兑换币
0
注册时间
2010-9-4
在线时间
0 小时
3#
发表于 2010-9-4 18:42:29 | 只看该作者
这就是传说中的跷跷板小车程序了
回复 支持 反对

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
4#
发表于 2010-9-4 20:23:09 | 只看该作者
好东西
回复 支持 反对

使用道具 举报

8

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
806

优秀会员奖章

QQ
威望
565
贡献
191
兑换币
0
注册时间
2010-1-10
在线时间
25 小时
5#
发表于 2010-9-4 20:23:12 | 只看该作者
好东西
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-29 13:19 , Processed in 0.141864 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表