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

📄 1302_2.lst

📁 这是一称的项目原文件,包括T9汉字输入,打印机,24C512,已经引用到产品上
💻 LST
📖 第 1 页 / 共 2 页
字号:
 289          {
 290   1         BYTE day_data;
 291   1         day_data = get_data->day;
 292   1         day_buffer.shiwei = 0x30 + ((day_data >> 4) & 0x03);
 293   1         day_buffer.gewei = 0x30 + (day_data & 0x0F);
 294   1      }
 295          //---------------------------------------------------------//
 296          static void get_month_from_1302_data(data_1302 *get_data)       //读取1302月数据
 297          {
 298   1         BYTE month_data;
 299   1         month_data = get_data->month;
 300   1         month_buffer.shiwei = 0x30 + ((month_data >> 4) & 0x01);
 301   1         month_buffer.gewei = 0x30 + (month_data & 0x0F);
 302   1      }
C51 COMPILER V7.08   1302_2                                                                03/05/2007 16:38:05 PAGE 6   

 303          
 304          static void get_week_from_1302_data(data_1302 *get_data)        //读取1302星期数据
 305          {
 306   1         BYTE week_data;
 307   1         week_data = get_data->week;
 308   1         week_buffer.gewei = 0x30 + (week_data & 0x07);
 309   1      }
 310          
 311          static void get_year_from_1302_data(data_1302 *get_data)        //读取1302 年数据
 312          {
 313   1         BYTE year_data;
 314   1         year_data = get_data->year;
 315   1         year_buffer.shiwei = 0x30 + ((year_data >> 4) & 0x0F);
 316   1         year_buffer.gewei = 0x30 + (year_data & 0x0F);
 317   1      }
 318          
 319          void get_date_from_1302_data(data_1302 *get_data)                //读取1302日期数据
 320          {
 321   1         get_day_from_1302_data(get_data);
 322   1         get_month_from_1302_data(get_data);
 323   1         get_week_from_1302_data(get_data);
 324   1         get_year_from_1302_data(get_data);
 325   1      }
 326          //---------------------------------------//
 327          //-------------------------------------------------------------------//
 328          //---------------------------------------++++++++++++++++++++++++++++==============================-------
             ------//
 329          
 330          int set_code_to_display(BYTE key_value,BYTE *p)
 331          {  
 332   1         BYTE num_address;
 333   1         //lcd_clear_line(2);
 334   1                  lcd_Display_Lib_Chinese(0x90, 0xC7EB);//"请"
 335   1                  lcd_Display_Lib_Chinese(0x91, 0xCAE4);//"输"
 336   1                  lcd_Display_Lib_Chinese(0x92, 0xC8EB);//"入"
 337   1                  lcd_Display_Lib_Chinese(0x93, 0xC3DC);//"密"
 338   1                  lcd_Display_Lib_Chinese(0x94, 0xC2EB);//"码"
 339   1        num_address = get_num_address_from_key_value(key_value);
 340   1         if (num_address > 10) return; //invalid key
 341   1         if (num_address == 10){  //back
 342   2            if(set_code_struct.count > 0){
 343   3               set_code_struct.count--;
 344   3            }else{
 345   3               set_code_struct.count = 0;
 346   3            }
 347   2            return;
 348   2            }
 349   1      
 350   1         switch (set_code_struct.count){
 351   2            case 0:
 352   2                       if(num_address>=0&&num_address<=9)
 353   2                       { 
 354   3                      set_code_struct.count++;
 355   3                          lcd_Display_Lib_Chinese(0x98, 0xa1f9);
 356   3                           if(num_address==p[0])
 357   3                            {  
 358   4                             code_flag_struct.count++;
 359   4                            } 
 360   3                       }
 361   2                       else
 362   2                       { 
 363   3                       return;
C51 COMPILER V7.08   1302_2                                                                03/05/2007 16:38:05 PAGE 7   

 364   3                       }
 365   2               break;
 366   2            case 1:
 367   2                       if(num_address>=0&&num_address<=9)
 368   2                       {  set_code_struct.count++;
 369   3                          lcd_Display_Lib_Chinese(0x99, 0xa1f9);
 370   3                           if(num_address==p[1])
 371   3                            {  
 372   4                             code_flag_struct.count++;
 373   4                            } 
 374   3                       }
 375   2               break;
 376   2            case 2:
 377   2                       if(num_address>=0&&num_address<=9)
 378   2                       {  set_code_struct.count++;
 379   3                          lcd_Display_Lib_Chinese(0x9a, 0xa1f9);
 380   3                           if(num_address==p[2])
 381   3                            {  
 382   4                             code_flag_struct.count++;
 383   4                            } 
 384   3                       }
 385   2               break;
 386   2            case 3:
 387   2                       if(num_address>=0&&num_address<=9)
 388   2                       {  set_code_struct.count++;
 389   3                          lcd_Display_Lib_Chinese(0x9b, 0xa1f9);
 390   3                           if(num_address==p[3])
 391   3                            {  
 392   4                             code_flag_struct.count++;
 393   4                            } 
 394   3                       }
 395   2               break;
 396   2            case 4:
 397   2                       if(num_address>=0&&num_address<=9)
 398   2                       {  set_code_struct.count++;
 399   3                          lcd_Display_Lib_Chinese(0x9c, 0xa1f9);
 400   3                           if(num_address==p[4])
 401   3                            {  
 402   4                             code_flag_struct.count++;
 403   4                            } 
 404   3                       }
 405   2               break;
 406   2            case 5:
 407   2                       if(num_address>=0&&num_address<=9)
 408   2                       {  set_code_struct.count=0;
 409   3                          lcd_Display_Lib_Chinese(0x9d, 0xa1f9);
 410   3                           if(num_address==p[5])
 411   3                            {  
 412   4                             code_flag_struct.count++;
 413   4                                 return 1;
 414   4                            } 
 415   3                       }      
 416   2               break;    
 417   2            default:
 418   2               break;
 419   2         }
 420   1         if(code_flag_struct.count==6)
 421   1         {
 422   2       //  return 1;
 423   2         }
 424   1         else 
 425   1         return 0;
C51 COMPILER V7.08   1302_2                                                                03/05/2007 16:38:05 PAGE 8   

 426   1         }
 427          
 428          
 429          
 430          void set_time_to_display(BYTE key_value)                        //设置1302时间
 431          {  
 432   1         BYTE num_address;
 433   1         BYTE tem;
 434   1      
 435   1         num_address = get_num_address_from_key_value(key_value);
 436   1         
 437   1         if (num_address > 10) return; //invalid key
 438   1         if (num_address == 10){  //back
 439   2            if(set_time_struct.count > 0){
 440   3               set_time_struct.count--;
 441   3            }else{
 442   3               set_time_struct.count = 0;
 443   3            }
 444   2            return;
 445   2      }
 446   1      
 447   1      
 448   1      
 449   1      switch (set_time_struct.count)
 450   1      {
 451   2            case 0:
 452   2               if (num_address > 2) return; // >2
 453   2                       tem = data_to_1302.hour;
 454   2                       ((data_1302*)(set_time_struct.p_data))->hour &= (!(0x03 << 4));
 455   2                       tem = data_to_1302.hour;
 456   2               ((data_1302*)(set_time_struct.p_data))->hour |= (num_address << 4);
 457   2                       tem = data_to_1302.hour;
 458   2               hour_buffer.shiwei = 0x30 + num_address;
 459   2               set_time_struct.count++;
 460   2               break;
 461   2            case 1:
 462   2               ((data_1302*)(set_time_struct.p_data))->hour &= 0xF0;
 463   2               ((data_1302*)(set_time_struct.p_data))->hour |= num_address;
 464   2               hour_buffer.gewei = 0x30 + num_address;
 465   2                       set_time_struct.count++;
 466   2               break;
 467   2            case 2:
 468   2               if (num_address > 5) return; // >5
 469   2               ((data_1302*)(set_time_struct.p_data))->minute &= 0x8F;
 470   2               ((data_1302*)(set_time_struct.p_data))->minute |= (num_address << 4);
 471   2               minute_buffer.shiwei = 0x30 + num_address;
 472   2               set_time_struct.count++;
 473   2               break;
 474   2            case 3:
 475   2               ((data_1302*)(set_time_struct.p_data))->minute &= 0xF0;
 476   2               ((data_1302*)(set_time_struct.p_data))->minute |= num_address;
 477   2               minute_buffer.gewei = 0x30 + num_address;
 478   2               set_time_struct.count++;
 479   2               break;
 480   2            case 4:
 481   2               if (num_address > 5) return; // >5
 482   2               ((data_1302*)(set_time_struct.p_data))->second &= 0x8F;
 483   2               ((data_1302*)(set_time_struct.p_data))->second |= (num_address << 4);
 484   2               second_buffer.shiwei = 0x30 + num_address;
 485   2               set_time_struct.count++;
 486   2               break;
 487   2            case 5:
C51 COMPILER V7.08   1302_2                                                                03/05/2007 16:38:05 PAGE 9   

 488   2               ((data_1302*)(set_time_struct.p_data))->second &= 0xF0;
 489   2               ((data_1302*)(set_time_struct.p_data))->second |= num_address;
 490   2               second_buffer.gewei = 0x30 + num_address;
 491   2               set_time_struct.count++;
 492   2               break;
 493   2            default:
 494   2               break;
 495   2         }
 496   1      }
 497          
 498          void set_date_to_display(BYTE key_value)                          //设置1302日期
 499          {  
 500   1         BYTE num_address;
 501   1      
 502   1         num_address = get_num_address_from_key_value(key_value);
 503   1         
 504   1         if (num_address > 10) return; //invalid key
 505   1         if (num_address == 10){  //back
 506   2            if(set_date_struct.count > 0){
 507   3               set_date_struct.count--;
 508   3            }else{
 509   3               set_date_struct.count = 0;
 510   3            }
 511   2            return;
 512   2         }
 513   1      
 514   1         switch (set_date_struct.count){
 515   2            //year
 516   2            case 0:      
 517   2               ((data_1302*)(set_date_struct.p_data))->year &= 0x0F;
 518   2               ((data_1302*)(set_date_struct.p_data))->year |= (num_address << 4);
 519   2               year_buffer.shiwei = 0x30 + num_address;
 520   2               set_date_struct.count++;
 521   2               break;
 522   2            case 1:
 523   2               ((data_1302*)(set_date_struct.p_data))->year &= 0xF0;
 524   2               ((data_1302*)(set_date_struct.p_data))->year |= num_address;
 525   2               year_buffer.gewei = 0x30 + num_address;
 526   2               set_date_struct.count++;
 527   2               break;
 528   2            //month
 529   2            case 2:
 530   2               if (num_address > 1) return; // >1
 531   2               ((data_1302*)(set_date_struct.p_data))->month &= 0xEF;
 532   2               ((data_1302*)(set_date_struct.p_data))->month |= (num_address << 4);
 533   2               month_buffer.shiwei = 0x30 + num_address;
 534   2               set_date_struct.count++;
 535   2               break;
 536   2            case 3:
 537   2               ((data_1302*)(set_date_struct.p_data))->month &= 0xF0;
 538   2               ((data_1302*)(set_date_struct.p_data))->month |= num_address;
 539   2               month_buffer.gewei = 0x30 + num_address;
 540   2               set_date_struct.count++;
 541   2               break;
 542   2            //day
 543   2            case 4:
 544   2               if (num_address > 3) return; // >3
 545   2               ((data_1302*)(set_date_struct.p_data))->day &= 0xCF;
 546   2               ((data_1302*)(set_date_struct.p_data))->day |= (num_address << 4);
 547   2               day_buffer.shiwei = 0x30 + num_address;
 548   2               set_date_struct.count++;
 549   2               break;
C51 COMPILER V7.08   1302_2                                                                03/05/2007 16:38:05 PAGE 10  

 550   2            case 5:
 551   2               ((data_1302*)(set_date_struct.p_data))->day &= 0xF0;
 552   2               ((data_1302*)(set_date_struct.p_data))->day |= num_address;
 553   2               day_buffer.gewei = 0x30 + num_address;
 554   2               set_date_struct.count++;
 555   2               break;
 556   2            //week
 557   2            case 6:
 558   2               if (num_address > 7) return; // >7
 559   2               ((data_1302*)(set_date_struct.p_data))->week &= 0xF8;
 560   2               ((data_1302*)(set_date_struct.p_data))->week |= num_address;
 561   2               week_buffer.gewei = 0x30 + num_address;
 562   2               set_date_struct.count++;
 563   2               break;
 564   2            default:
 565   2               break;
 566   2         }
 567   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1941    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     40      12
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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