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

📄 debug.lst

📁 51单片机收发短信的程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 257   1        put_string(0x9a,"(元  公斤)");
 258   1        put_string(0x9c,a);  ////第4行第5列显示中文字符'/'
 259   1      }
 260          
 261          //显示己存信息
 262          void info_screen()
 263          {
 264   1        char idata i;
 265   1        write_cmd(0x01);    //清除当前显示
 266   1        put_string(0x80,"  ");
 267   1        put_string(0x80,"发送以下信息吗?");
 268   1      //  receive_SMS();     //receive SMS,judge the center_phone change
 269   1        for(i=info_page_index*3; (i<info_page_index*3+3)&&(i<info_count);i++)
 270   1          put_string(0x88+8*(i-info_page_index*3),info_string(i)) ;
 271   1      }
 272          //返回第x条信息对应的字符串
 273          char *info_string(char x)
 274          {
 275   1        char idata i ,j=-1 ,info[8], type[9]; //, price[6];
 276   1        static char idata total[17];
 277   1      
 278   1        //读取第x条蔬菜信息存到info[]数组
 279   1        for(i=0;i<strlen(sms_deliver.PDUData);i++)
 280   1        {
 281   2          if(sms_deliver.PDUData[i]==',')
 282   2            j++;
 283   2          if(j==x)
 284   2            break;
 285   2        }
 286   1        i++;   //i为第x条信息的第一个字符的索引号
 287   1        j=0;
 288   1        while(sms_deliver.PDUData[i]!=','&&sms_deliver.PDUData[i]!='\0')
 289   1        {
 290   2          info[j]=sms_deliver.PDUData[i];
 291   2          j++;  i++;
 292   2        }
 293   1        info[j]='\0';
 294   1        if(info[0]=='0')
 295   1          switch(info[1])
 296   1          {
 297   2            case'1':strcpy(type,"白萝卜:") ; break;
 298   2            case'2':strcpy(type,"菠菜:  ") ; break;
 299   2            case'3':strcpy(type,"菜花:  ") ; break;
 300   2            case'4':strcpy(type,"长茄子:") ; break;
 301   2            case'5':strcpy(type,"大白菜:") ; break;
 302   2            case'6':strcpy(type,"大葱:  ") ; break;
 303   2            case'7':strcpy(type,"大蒜:  ") ; break;
C51 COMPILER V7.02a   DEBUG                                                                04/01/2005 10:28:51 PAGE 6   

 304   2            case'8':strcpy(type,"冬瓜:  ") ; break;
 305   2            case'9':strcpy(type,"豆角:  ") ; break;
 306   2            default: break;
 307   2          }
 308   1        else if(info[0]=='1')
 309   1          switch(info[1])
 310   1          {
 311   2            case'0':strcpy(type,"佛手:  ") ; break;
 312   2            case'1':strcpy(type,"荷兰豆:") ; break;
 313   2            case'2':strcpy(type,"红尖椒:") ; break;
 314   2            case'3':strcpy(type,"胡萝卜:") ; break;
 315   2            case'4':strcpy(type,"黄豆牙:") ; break;
 316   2            case'5':strcpy(type,"黄瓜:  ") ; break;
 317   2            case'6':strcpy(type,"茴香:  ") ; break;
 318   2            case'7':strcpy(type,"鸡腿菇:") ; break;
 319   2            case'8':strcpy(type,"尖椒:  ") ; break;
 320   2            case'9':strcpy(type,"茭白:  ") ; break;
 321   2            default: break;
 322   2          }
 323   1        else if(info[0]=='2')
 324   1          switch(info[1])
 325   1          {
 326   2            case'0':strcpy(type,"芥菜:  ") ; break;
 327   2            case'1':strcpy(type,"金针菇:") ; break;
 328   2            case'2':strcpy(type,"韭菜:  ") ; break;
 329   2            case'3':strcpy(type,"空心菜:") ; break;
 330   2            case'4':strcpy(type,"苦瓜:  ") ; break;
 331   2            case'5':strcpy(type,"莲藕菜:") ; break;
 332   2            case'6':strcpy(type,"绿豆牙:") ; break;
 333   2            case'7':strcpy(type,"绿尖椒:") ; break;
 334   2            case'8':strcpy(type,"毛豆:  ") ; break;
 335   2            case'9':strcpy(type,"木耳:  ") ; break;
 336   2            default: break;
 337   2          }
 338   1        else if(info[0]=='3')
 339   1          switch(info[1])
 340   1          {
 341   2            case'0':strcpy(type,"南瓜:  "); break;
 342   2            case'1':strcpy(type,"平菇:  "); break;
 343   2            case'2':strcpy(type,"茄子:  "); break;
 344   2            case'3':strcpy(type,"芹菜:  "); break;
 345   2            case'4':strcpy(type,"青椒:  "); break;
 346   2            case'5':strcpy(type,"山药:  "); break;
 347   2            case'6':strcpy(type,"生菜:  "); break;
 348   2            case'7':strcpy(type,"生姜:  "); break;
 349   2            case'8':strcpy(type,"丝瓜:  "); break;
 350   2            case'9':strcpy(type,"蒜苗:  "); break;
 351   2            default: break;
 352   2          }
 353   1        else if(info[0]=='4')
 354   1          switch(info[1])
 355   1          {
 356   2            case'0':strcpy(type,"蒜薹:  ") ; break;
 357   2            case'1':strcpy(type,"茼蒿:  ") ; break;
 358   2            case'2':strcpy(type,"土豆:  ") ; break;
 359   2            case'3':strcpy(type,"莴笋:  ") ; break;
 360   2            case'4':strcpy(type,"西红柿:") ; break;
 361   2            case'5':strcpy(type,"西葫芦:") ; break;
 362   2            case'6':strcpy(type,"西兰花:") ; break;
 363   2            case'7':strcpy(type,"西洋芹:") ; break;
 364   2            case'8':strcpy(type,"香菜:  ") ; break;
 365   2            case'9':strcpy(type,"香椿:  ") ; break;
C51 COMPILER V7.02a   DEBUG                                                                04/01/2005 10:28:51 PAGE 7   

 366   2            default: break;
 367   2          }
 368   1        else if(info[0]=='5')
 369   1          switch(info[1])
 370   1          {
 371   2            case'0':strcpy(type,"香菇:  ") ; break;
 372   2            case'1':strcpy(type,"小白菜:") ; break;
 373   2            case'2':strcpy(type,"小葱:  ") ; break;
 374   2            case'3':strcpy(type,"洋白菜:") ; break;
 375   2            case'4':strcpy(type,"洋葱头:") ; break;
 376   2            case'5':strcpy(type,"油菜:  ") ; break;
 377   2            case'6':strcpy(type,"油麦菜:") ; break;
 378   2            case'7':strcpy(type,"圆茄子:") ; break;
 379   2            case'8':strcpy(type,"竹笋:  ") ; break;
 380   2            default: break;
 381   2          }
 382   1        strcpy(total,type);
 383   1        total[8]=' ';
 384   1        //拷贝蔬菜价格到数组total[]中
 385   1        for(j=2;j<strlen(info);j++)
 386   1          total[7+j]=info[j];
 387   1        for(j+=7; j<14; j++ )
 388   1          total[j]=' ';                //空余的数组字节置空格
 389   1        total[14]=0xd4;  total[15]=0xaa;  //'元'的中文字库码为0xd4aa
 390   1        total[16]='\0';
 391   1        return(total);
 392   1      }
 393          
 394          
 395          
 396          
 397          ///////////////////////////////////////////////////////////////////////////////////////
 398          /////////////按键相关函数//////////////////////////////////////////////////////////////
 399          ///////////////////////////////////////////////////////////////////////////////////////
 400          //数字键的响应函数
 401          void key_num(char x)
 402          {
 403   1        char c=0x30+x;        //数字x转换成ASC字符
 404   1        if(display_type==0)        //蔬菜品种界面
 405   1        {
 406   2          if(vege_type[0]=='\0'&&vege_type[1]=='\0')        //尚未设定蔬菜品种
 407   2            vege_type[0]=c;   //把x变换成字符保存到蔬菜品种第0位
 408   2          else if(vege_type[0]!='\0'&&vege_type[1]=='\0')
 409   2            vege_type[1]=c;              //保存到第1位
 410   2          put_string(0x9d,vege_type);         // 在第4行第6列处显示蔬菜种类代号
 411   2      
 412   2          return;
 413   2        }
 414   1        if(display_type==1)
 415   1        {
 416   2          if(vege_price[0]=='\0') vege_price[0]=c;                            //保存蔬菜价格
 417   2          else if(vege_price[1]=='\0')  vege_price[1]=c;
 418   2          else if(vege_price[1]=='.'&&vege_price[2]=='\0') vege_price[2]=c;
 419   2          else if( (vege_price[1]=='.'||vege_price[2]=='.')&&vege_price[3]=='\0' ) vege_price[3]=c;
 420   2          else if(vege_price[2]=='.'&&vege_price[4]=='\0')  vege_price[4]=c;
 421   2          vege_price[5]='\0';
 422   2          put_string(0x8a,vege_price);        //显示输入的价格
 423   2      
 424   2        }
 425   1      }
 426          // . 键的响应函数
 427          void key_dot()
C51 COMPILER V7.02a   DEBUG                                                                04/01/2005 10:28:51 PAGE 8   

 428          {
 429   1        if(display_type==1)
 430   1          if(vege_price[0]!='\0')
 431   1            if(vege_price[1]!='.'&&vege_price[2]!='.')
 432   1            {
 433   2              if(vege_price[1]=='\0')  vege_price[1]='.';
 434   2              else if(vege_price[2]=='\0')  vege_price[2]='.' ;
 435   2              put_string(0x8a,vege_price);   //显示价格
 436   2            }
 437   1        return;
 438   1      }
 439          
 440          //取消键的响应函数
 441          void key_cancel()
 442          {
 443   1        uchar idata i ;
 444   1        char chu[3]={0xb3,0xfd,'\0'};   //'除'字的中文字库为0xB3FD
 445   1        if(display_type==0)
 446   1        {
 447   2          if(vege_type[1]!='\0')
 448   2            vege_type[1]='\0';
 449   2          else if(vege_type[0]!='\0')
 450   2            vege_type[0]='\0';
 451   2          put_string(0x9d,"    ");  //清除当前的代号显示
 452   2          put_string(0x9d,vege_type);    //显示取消后的vege_type
 453   2        }
 454   1        else if(display_type==1)       //价格界面
 455   1        {
 456   2          if(vege_price[4]!='\0')  vege_price[4]='\0';
 457   2          else if(vege_price[3]!='\0')  vege_price[3]='\0';
 458   2          else if(vege_price[2]!='\0')  vege_price[2]='\0';
 459   2          else if(vege_price[1]!='\0')  vege_price[1]='\0';
 460   2          else if(vege_price[0]!='\0')  vege_price[0]='\0';
 461   2          else if(vege_price[0]=='\0')     //如果没有输入价格
 462   2          {
 463   3            display_type=0;
 464   3            write_cmd(0x01);             //清除当前界面
 465   3            delay_160ms();              //如果没这句经常会乱屏
 466   3            type_screen();               //返回到品种界面
 467   3            return;
 468   3          }
 469   2          put_string(0x8a,"     ");     //清除正在显示的价格
 470   2          put_string(0x8a,vege_price);    //在第3行第4列显示当前蔬菜价格
 471   2        }
 472   1        else if(display_type==2)         //信息界面
 473   1        {
 474   2          //清除各全局变量
 475   2          info_count=0;
 476   2          info_page_index=0;
 477   2          vege_type[0]=vege_type[1]=vege_type[2]='\0';
 478   2          vege_price[0]=vege_price[1]=vege_price[2]=vege_price[3]=vege_price[4];
 479   2          vege_price[5]='\0';
 480   2          for(i=0;i<140;i++)
 481   2            sms_deliver.PDUData[i]='\0';
 482   2          display_type=0;
 483   2      
 484   2          write_cmd(0x01);
 485   2          put_string(0x90,"  ");
 486   2          put_string(0x90,"所有信息已删  !");
 487   2          put_string(0x96,chu);
 488   2          delay_1s();
 489   2          type_screen();
C51 COMPILER V7.02a   DEBUG                                                                04/01/2005 10:28:51 PAGE 9   

 490   2        }
 491   1      }
 492          
 493          //确认键
 494          void key_confirm()
 495          {
 496   1        char idata i;
 497   1        if(display_type==0)         //蔬菜品种界面
 498   1        {
 499   2          if(    (vege_type[0]<='5'&&vege_type[0]>='0')
 500   2             &&  (vege_type[1]<='9'&&vege_type[1]>='0')
 501   2             && !(vege_type[0]=='5'&&vege_type[1]=='9')
 502   2             && !(vege_type[0]=='0'&&vege_type[1]=='0') )//合理的类型(没有蔬菜类型59和00)
 503   2          {
 504   3            display_type=1;          //价格界面
 505   3            price_screen();         //显示价格界面
 506   3          }
 507   2          else
 508   2          {
 509   3            put_string(0x9d,"代号错");
 510   3            delay_160ms();
 511   3            put_string(0x9d,"      ");
 512   3            vege_type[0]='\0';      //蔬菜品种清除
 513   3            vege_type[1]='\0';
 514   3          }
 515   2        }
 516   1        if(display_type==1)           //价格界面
 517   1        {
 518   2          if(vege_price[0]!='\0')
 519   2          {
 520   3            if(sms_deliver.PDUData[0]=='\0')
 521   3            {

⌨️ 快捷键说明

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