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

📄 main.lst

📁 全国电子设计大赛:智能电动车的设计.实现功能:以AT89C52单片机为核心
💻 LST
📖 第 1 页 / 共 5 页
字号:
 175          // The location of Screen
 176          unsigned char xdata SCREEN=0;
 177          unsigned char xdata vertical,horizontal;
 178          
C51 COMPILER V7.20   MAIN                                                                  11/15/2005 18:46:56 PAGE 4   

 179          //unsigned char xdata test1,test2;                    // Just for test 
 180          
 181          // The operation of key
 182          bit confirm_down,up,down;
 183          bit modifying;
 184          
 185          // Key 
 186          unsigned char xdata keycode;
 187          unsigned char xdata     k1_count,k2_count,k3_count,k4_count,k5_count,k6_count,k7_count;
 188          
 189          //-------------------------------------------------------------------------------------------------
 190          // Time Setting
 191          unsigned char xdata time_buf[7],setup_time[7];  
 192          unsigned char xdata delay_time,time_now,time_old,time_old1;
 193          
 194          bit time_modify;
 195          
 196          unsigned char xdata second_count,halfsecond_count;
 197          bit flag_s;
 198          
 199          //-------------------------------------------------------------------------------------------------
 200          // Temperature of Chip
 201          unsigned int xdata TEMPER;
 202          
 203          //-------------------------------------------------------------------------------------------------
 204          // ADC
 205          unsigned int xdata Voltage,DriverVoltage;
 206          
 207          //-------------------------------------------------------------------------------------------------
 208          // DAC
 209          int xdata DAC0datum,DAC1datum;
 210          
 211          bit DAC0_modify,DAC1_modify;
 212          bit DAC0Enable,DAC1Enable;
 213          
 214          //-------------------------------------------------------------------------------------------------
 215          // Alarm Setting
 216          char xdata alarm_range;
 217          
 218          bit alarm_modify;
 219          
 220          bit LED_Glitter_Enable, LED_Glitter_Disable; 
 221          
 222          //-------------------------------------------------------------------------------------------------
 223          //-------------------------------------------------------------------------------------------------
 224          // The global temporary variable  
 225          unsigned char temp; 
 226          unsigned int  tempshort;
 227          
 228          bit flag;
 229          
 230          //-------------------------------------------------------------------------------------------------
 231          //-------------------------------------------------------------------------------------------------
 232          // USB 模块 
 233          unsigned char GUAGE;        // 进度指示 
 234          
 235          
 236          //=================================================================================================
 237          // Function PROTOTYPES
 238          //=================================================================================================
 239          // 
 240          //=================================================================================================
C51 COMPILER V7.20   MAIN                                                                  11/15/2005 18:46:56 PAGE 5   

 241          //                                                                    Delay Procedure 
 242          //=================================================================================================
 243          // 1 ms 延时子程序, Fosc =12MHz 
 244          void mDelaymS( unsigned int msecond )
 245          {
 246   1              unsigned char i,j;
 247   1      
 248   1              while( msecond-- )
 249   1              {
 250   2              for( j=0; j<8; j++ )
 251   2                      for( i=0; i<125; i++) {;}
 252   2              }
 253   1      }
 254          
 255          //=================================================================================================
 256          //                                    KeyBoard Procedure
 257          //=================================================================================================
 258          
 259          //                             KEY7
 260          //         KEY6      KEY5      KEY4       KEY3       KEY1
 261          //                             KEY2
 262          
 263          //                              up
 264          //                    left    confirm     right      modify
 265          //                             down
 266          
 267          void KeyProcess( void )
 268          {
 269   1              unsigned char KeyValue;
 270   1      
 271   1              KeyValue = KEY_PORT&0x7F;   // 查询按键
 272   1      
 273   1          switch( KeyValue )
 274   1              {
 275   2                      case KEY1:      if(k1_count==qudou){keycode=1;k1_count=0;}
 276   2                                              k1_count++;
 277   2                                              k2_count=k3_count=k4_count=k5_count=k6_count=k7_count=0;
 278   2                                              break;
 279   2                      case KEY2:      if(k2_count==qudou){keycode=2;k2_count=0;}
 280   2                                              k2_count++;
 281   2                                              k1_count=k3_count=k4_count=k5_count=k6_count=k7_count=0;
 282   2                                              break;
 283   2                      case KEY3:      if(k3_count==qudou){keycode=3;k3_count=0;}
 284   2                                              k3_count++;
 285   2                                              k1_count=k2_count=k4_count=k5_count=k6_count=k7_count=0;
 286   2                                              break;
 287   2                      case KEY4:      if(k4_count==qudou){keycode=4;k4_count=0;}
 288   2                                              k4_count++;
 289   2                                              k1_count=k2_count=k3_count=k5_count=k6_count=k7_count=0;
 290   2                                              break;
 291   2                      case KEY5:      if(k5_count==qudou){keycode=5;k5_count=0;}
 292   2                                              k5_count++;
 293   2                                              k1_count=k2_count=k3_count=k4_count=k6_count=k7_count=0;
 294   2                                              break;
 295   2                      case KEY6:      if(k6_count==qudou){keycode=6;k6_count=0;}
 296   2                                              k6_count++;
 297   2                                              k1_count=k2_count=k3_count=k4_count=k5_count=k7_count=0;
 298   2                                              break;
 299   2                      case KEY7:      if(k7_count==qudou){keycode=7;k7_count=0;}
 300   2                                              k7_count++;
 301   2                                              k1_count=k2_count=k3_count=k4_count=k5_count=k6_count=0;
 302   2                                              break;
C51 COMPILER V7.20   MAIN                                                                  11/15/2005 18:46:56 PAGE 6   

 303   2                      default:        k1_count=k2_count=k3_count=k4_count=k5_count=k6_count=k7_count=0;
 304   2                                              break;
 305   2              }
 306   1          
 307   1          switch( keycode )
 308   1              {
 309   2                  case 4: // 按键:确认
 310   2                                 delay_time=0;
 311   2                                         switch( SCREEN )
 312   2                                         {
 313   3                                             case 0: Forward ( SPEED );  Start = 1; Stop = 1; // Start the car 
 314   3                                                         break;
 315   3                                                 case 1: // 第一屏(选择菜单)时确认键的功能
 316   3                                                         switch(vertical)
 317   3                                                                 {
 318   4                                                                     case 0: SCREEN=0 ; break; //未选择任何菜单
 319   4                                                                         case 1: SCREEN=10; Read12C887( setup_time );  break;//选择菜单1(时间设置)
 320   4                                                                         case 2: SCREEN=20; //选择菜单2(报警设置)
 321   4                                                                                 alarm_range = Read12C887RAM( ALARM_RANGE );
 322   4                                                                                         LED_GLITTER_ACT( ); 
 323   4                                                                                         break; 
 324   4                                                                         case 3: SCREEN=30; DAC0datum =DAC0; DAC1datum =DAC1; break; //选择菜单3(DAC)
 325   4                                                                         case 4: SCREEN=40; //选择菜单4(SPEED)
 326   4                                                                                 SPEED  = Read12C887RAM( SPEED_RANGE );   // 取得行驶速度 
 327   4                                                                                         SPEED1 = Read12C887RAM( SPEED1_RANGE );  // 取得转弯速度 
 328   4      
 329   4                                                                                         FREQUENCY = Read12C887RAM( FREQUENCY_RANGE ); // 取得 PWM 频率 
 330   4      
 331   4                                                                                         temp = Read12C887RAM ( SECTION_B_RANGE_H );   // 取得B 道区的起始位置 
 332   4                                                                                         SECTION_BPoint = ( unsigned int )_irol_( ( unsigned int )temp , 8 );
 333   4                                                                                         temp = Read12C887RAM ( SECTION_B_RANGE_L ); 
 334   4                                                                                         SECTION_BPoint += temp; 
 335   4      
 336   4                                                                                         temp = Read12C887RAM ( SECTION_BC_RANGE_H );   // 取得BC 中道区的起始位置 
 337   4                                                                                         SECTION_BCPoint = ( unsigned int )_irol_( ( unsigned int )temp , 8 );
 338   4                                                                                         temp = Read12C887RAM ( SECTION_BC_RANGE_L ); 
 339   4                                                                                         SECTION_BCPoint += temp; 
 340   4      
 341   4                                                                                         INTENSITY = Read12C887RAM( INTENSITY_RANGE );  // 取得光强度参数 
 342   4      
 343   4                                                                                         break; 
 344   4                                                                         case 5: SCREEN=50; //选择菜单5(USB)
 345   4                                                                                 
 346   4                                                 break;
 347   4                                                                         case 6: SCREEN=60; 
 348   4                                                                                 break; //选择菜单6(温度)
 349   4                                                                         default:break;
 350   4                                                                 }
 351   3                                                                 confirm_down=1;
 352   3                                                         break;
 353   3                                                 //--------------------------------------------------------------------------
 354   3                                                 case 10: // 主菜单第一屏(时间设置)确认键的功能
 355   3                                                         if( time_modify ) Setup12C887(setup_time);
 356   3                                                         SCREEN=0;

⌨️ 快捷键说明

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