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

📄 carport.lst

📁 改程序代码是运用Keil uVision3软件编写的C程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 175   2                      while(1)                                                                                 
 176   2                      {
 177   3                              if(GET_ok) break;                                                        //数据获得成功
 178   3                              GET_ok=GET_position(Send_data,Data_complit);
 179   3                      }
C51 COMPILER V8.05a   CARPORT                                                              12/22/2008 17:43:36 PAGE 4   

 180   2      
 181   2      /**/    KEY_data_2=KEY_scan();                                                  //等待确认键按下
 182   2                      while(1)                                                                                          
 183   2                      {                                                                                               
 184   3                                                                              
 185   3      //                      if(KEY_data_2=10) side=1;                                         
 186   3                              if      (KEY_data_2==10)                                                  //确认键/返回键按下处理
 187   3                              {
 188   4                                      KEY_OK=1;
 189   4                                      KEY_ESC=0;
 190   4                                      Clear_12864(1);
 191   4                                      Clear_12864(2);
 192   4                                      goto RET4;// 进入下一界面显示
 193   4                                      break;
 194   4                              } 
 195   3                              else if (KEY_data_2==11)                                        //返回键按下
 196   3                              {
 197   4                                      KEY_OK=0;
 198   4                                      KEY_ESC=1;
 199   4                                      BlackInput(6,16,2,0);
 200   4                                      delay(1000);
 201   4                                      goto RET3;//返回上一个界面
 202   4                                      break;                  
 203   4                              }
 204   3      
 205   3                              KEY_data_2=KEY_scan();                          
 206   3                      }
 207   2      
 208   2      /**************************************
 209   2      显示执行画面
 210   2      ***************************************/
 211   2      RET4:   
 212   2                      Clear_12864(1);
 213   2                      Clear_12864(2); 
 214   2                      Work_Piture(0,0,1);                                //下位机执行画面
 215   2      //RET5:
 216   2      
 217   2      
 218   2      /**************************************
 219   2      向下位机送数据
 220   2      ***************************************/
 221   2              //判断SENDEDATE 返回错误则延时一段实际后继续传送;
 222   2                      
 223   2                      int_string_com(); 
 224   2                      while(1)
 225   2                      {
 226   3                              if(senddate())
 227   3                                      break;     //传输正确
 228   3                               else
 229   3                                      delay(50);//如果出错则继续传送
 230   3                      }
 231   2                      delay(100);     
 232   2      
 233   2                      int_string_com();
 234   2                      while(!RI);                                //等待下位机返回执行完数据
 235   2                              RI=0;
 236   2                      ch=SBUF;
 237   2                      if(ch=='E')//操作成功 进行下次输入
 238   2                      {
 239   3                                                                                                                         
 240   3                              Over_Piture(0,0,1);             //调用LCD显示执行完成画面函数
 241   3                              for(delay_i=0;delay_i<40;delay_i++)
C51 COMPILER V8.05a   CARPORT                                                              12/22/2008 17:43:36 PAGE 5   

 242   3                              {
 243   4                                      delay(65500);   
 244   4                              }
 245   3                      }
 246   2                      else if(ch=='F') //则严重出错 严重出错处理;
 247   2                      {
 248   3                              Eorr_Piture(0,0,1);
 249   3                              for(delay_i=0;delay_i<40;delay_i++)
 250   3                              {
 251   4                                      delay(65500);   
 252   4                              }                               
 253   3                      }
 254   2                      else    //数据传输错误,请检查数据传输;
 255   2                      {
 256   3                              
 257   3                      }
 258   2              }
 259   1      
 260   1      
 261   1      //      delay(65000);                                                      
 262   1      }
 263          uchar senddate()
 264          {
 265   1              uchar ch;
 266   1              while(1)
 267   1              {
 268   2                      SBUF='A';
 269   2                      while(!TI);
 270   2                      TI=0;
 271   2      
 272   2                      while(!RI);
 273   2                      ch = SBUF;
 274   2                      RI=0;
 275   2                      if(ch=='B')
 276   2                              break;
 277   2                      else
 278   2                              delay(256);     
 279   2              }
 280   1              Data_sent();//发送数据 
 281   1      
 282   1              while(!RI);
 283   1              ch = SBUF;
 284   1              RI=0;
 285   1              if(ch=='C')      //传输出错
 286   1                      return 0;
 287   1              else             //传输正确;
 288   1                      return 1;
 289   1                      
 290   1      }
 291          uchar Data_sent(void)
 292          {
 293   1              uchar i;
 294   1              uchar total=0;
 295   1              for (i=0;i<7;i++)       
 296   1              {
 297   2                      SBUF=car_tab[i];
 298   2                      total=total+car_tab[i];  //求校验和
 299   2                      while(!TI);     
 300   2                      TI=0;
 301   2              }
 302   1              SBUF=total;      //传输校验和
 303   1              while(!TI);     
C51 COMPILER V8.05a   CARPORT                                                              12/22/2008 17:43:36 PAGE 6   

 304   1              TI=0;
 305   1      
 306   1              return 1;
 307   1      }
 308          
 309          void int_string_com(void)
 310          {
 311   1              TMOD=0x20;
 312   1              TL1=0xfd;
 313   1              TH1=0xfd;
 314   1              SCON=0x50;       //设置串行口方式,工作于方式2
 315   1              PCON=0x00; 
 316   1              ES=0; //允许串口中断
 317   1              EA=1;//开总中断   
 318   1              TR1=1;
 319   1      }
 320          
 321          /*//串口中断程序
 322          void String(void) interrupt 4 using 2
 323          {
 324          //      uchar x,y;
 325                  if(RI)
 326                  {
 327                          Reci=SBUF;  //单片机接收数据    
 328          //              for (i=0;i<8;i++)
 329          //              {               }
 330          //              p=p-8;
 331                  }
 332                  RI=0;
 333          }  */
 334          void delay(uint y)
 335          {
 336   1              uchar x;
 337   1              for(;y;y--)
 338   1                      for(x=0;x<100;x++);
 339   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3473    ----
   CONSTANT SIZE    =   7072    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      90
   IDATA SIZE       =      7    ----
   BIT SIZE         =      4       7
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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