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

📄 all-test.lst

📁 Keil写的nRF2401的发射程序,,,可以配合我刚才发的nRF2401的接受程序来看,,所有的关键注释我都写的很清楚,,非常合适新手学习的再次开发使用.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 667   2         Read_N_Bytes(eeprom_buffer,5,addr);
 668   2         TR0=1;
 669   2         check_eeprom(5);
 670   2         if(bfail||un_effect)
 671   2         { 
 672   3           b_ini_fail=1;
C51 COMPILER V8.02   ALL_TEST                                                              06/15/2007 10:53:26 PAGE 12  

 673   3           pr=0;
 674   3               flashzero=1;
 675   3               cut_time=49;
 676   3               TR0=1;
 677   3               while(flashzero);
 678   3               
 679   3         }
 680   2         else
 681   2         {
 682   3          temp=eeprom_buffer[0]*10000+eeprom_buffer[1]*1000+eeprom_buffer[2]*100+eeprom_buffer[3]*10+eeprom_buff
             -er[4];
 683   3          switch(i)
 684   3               {
 685   4                 case 0:
 686   4                  {
 687   5                        r457zeroflag=1;
 688   5                        r457ad0=temp/10;
 689   5                        break;
 690   5                      }
 691   4                 case 1:
 692   4                  {
 693   5                        ryzeroflag=1;
 694   5                        ryad0=temp/10;
 695   5                        break;
 696   5                      }
 697   4                 case 2:
 698   4                  {
 699   5                        ryadflag=1;
 700   5                        ryade=temp/10;
 701   5                        break;
 702   5                      }
 703   4                 case 3:
 704   4                  {
 705   5                        r457adflag=1;
 706   5                        r457ade=temp/10;
 707   5                        break;
 708   5                      }
 709   4                 default: break;
 710   4               }
 711   3         }
 712   2        bfail=0;
 713   2       }
 714   1      
 715   1       for(i=4;i<14;i++)               //对数值进行校验  ,无有效位               //add r457s0 and rys0 to the module
 716   1        {
 717   2         switch(i)
 718   2          {
 719   3               case 4:
 720   3                 addr=0x08;  break;             //0x08        标准值(调准值)
 721   3               case 5:
 722   3                 addr=0x0c;  break;             //
 723   3               case 6:
 724   3                 addr=0x38;  break;             //0x28
 725   3               case 7:
 726   3                 addr=0x40;  break;             //0x30
 727   3               case 8:
 728   3                 addr=0x48;  break;
 729   3               case 9:
 730   3                 addr=0x50;  break;
 731   3               case 10:
 732   3                 addr=0x28;  break;
 733   3               case 11:
C51 COMPILER V8.02   ALL_TEST                                                              06/15/2007 10:53:26 PAGE 13  

 734   3                 addr=0x30;  break;
 735   3           case 12:
 736   3                 addr=0x58;  break;
 737   3               case 13:
 738   3                 addr=0x60;  break;
 739   3               default:  break;       
 740   3              }
 741   2         TR0=0;
 742   2         Read_N_Bytes(eeprom_buffer,4,addr);
 743   2         TR0=1;
 744   2         check_eeprom(4);
 745   2         if(bfail)
 746   2         {
 747   3           b_ini_fail=1;
 748   3           pr=0;
 749   3               
 750   3               switch(i)               //如果出错,清零
 751   3                {
 752   4                  case 4:
 753   4                       r457se=0;  break;
 754   4                      case 5:
 755   4                       ryse=0;  break;
 756   4                      case 6:
 757   4                       ucof=0;  break;
 758   4                      case 7:
 759   4                       gcof=0;  break;
 760   4                      case 8:
 761   4                       r457s0=0; break;
 762   4                      case 9:
 763   4                       rys0=0;  break;
 764   4                      case 10:
 765   4                       standard_L=0; break;
 766   4                      case 11:
 767   4                       standard_H=0; break;
 768   4                      case 12:
 769   4                       u_B=0;  break;
 770   4                      case 13:
 771   4                       u_A=0;  break;
 772   4                      default:  break;
 773   4                }
 774   3                flashzero=1;
 775   3                cut_time=49;
 776   3               TR0=1;
 777   3               while(flashzero);
 778   3               
 779   3         }
 780   2         else
 781   2         {
 782   3           temp=eeprom_buffer[0]*1000+eeprom_buffer[1]*100+eeprom_buffer[2]*10+eeprom_buffer[3];
 783   3               switch(i)
 784   3                {
 785   4                  case 4:
 786   4                       {
 787   5                         r457se=temp/100;
 788   5                         break;
 789   5                       }
 790   4                      case 5:
 791   4                       {
 792   5                         ryse=temp/100;
 793   5                         break;
 794   5                       }
 795   4                      case 6:
C51 COMPILER V8.02   ALL_TEST                                                              06/15/2007 10:53:26 PAGE 14  

 796   4                       {
 797   5                         ucof=temp/100;
 798   5                         break;
 799   5                       }
 800   4                      case 7:
 801   4                       {
 802   5                         gcof=temp/100;
 803   5                         break;
 804   5                       }
 805   4                      case 8:
 806   4                       {
 807   5                         r457s0=temp/100;
 808   5                         break;
 809   5                       }
 810   4                      case 9:
 811   4                       {
 812   5                         rys0=temp/100;
 813   5                         break;
 814   5                       }
 815   4                      case 10:
 816   4                       {
 817   5                         standard_L=temp/100;
 818   5                         break;
 819   5                       }
 820   4                      case 11:
 821   4                       {
 822   5                         standard_H=temp/100;
 823   5                         break;
 824   5                       }
 825   4                      case 12:
 826   4                       {
 827   5                         u_B=temp/1000;
 828   5                         break;
 829   5                       }
 830   4                      case 13:
 831   4                       {
 832   5                        u_A=temp/1000;
 833   5                        break;
 834   5                       }
 835   4                      default: break;
 836   4                }
 837   3         }
 838   2        bfail=0;
 839   2       }
 840   1      
 841   1        if(!b_ini_fail)          //初始化加载成功提示
 842   1         {
 843   2           pr=0;
 844   2               lcddis_series(0,11,init_result,0,0);
 845   2               lcddis_series(21,4,init_result,11,0);
 846   2               wr_lcd (comm,0x0c,1);  /*开显示,关光标*/
 847   2               flashzero=1;
 848   2               cut_time=300;   
 849   2          while(flashzero);             // Good
 850   2              wr_lcd (comm,0x01,1);  /*清屏,地址指针指向00H*/
 851   2      
 852   2         }
 853   1        else                  //初始化加载失败提示
 854   1         {
 855   2           pr=0;
 856   2               flashzero=1;
 857   2               cut_time=29;
C51 COMPILER V8.02   ALL_TEST                                                              06/15/2007 10:53:26 PAGE 15  

 858   2               TR0=1;
 859   2               while(flashzero);      // Fail
 860   2      
 861   2         }
 862   1        //------------------------------//    自检结束================================//
 863   1      }
 864          
 865          void main(void)
 866          {
 867   1        TMOD=0x01;    // 0.01s定时  6M晶振
 868   1        TF0=0;
 869   1        TH0=0xec;
 870   1        TL0=0x78;
 871   1        EA=1;
 872   1        ET0=1;
 873   1        
 874   1        
 875   1        e_key=0;
 876   1        
 877   1        init_lcd ();
 878   1        TR0=1;
 879   1      
 880   1      //  iniatial();
 881   1              
 882   1      //   lcddis_series(0,10,pre,0,0);
 883   1      //  write_DDRAM(24,'s');
 884   1      //    down_time=1;
 885   1      //    count=1;
 886   1       
 887   1      //  do
 888   1      //  {
 889   1      //      write_DDRAM(21,count/10+48);
 890   1      //      write_DDRAM(22,count%10+48);
 891   1      //
 892   1      //    wr_lcd (comm,0x0c,1);  /*开显示,关光标*/
 893   1      //  }
 894   1      //  while(count);
 895   1        
 896   1        
 897   1         
 898   1        e_key=0;
 899   1        down_time=0;
 900   1        
 901   1        cgram_wr(0x00,1,*cgram_char);                 // 自定义下标4
 902   1        cgram_wr(0x01,2,*cgram_char);                 // 自定义下标5
 903   1        cgram_wr(0x02,3,*cgram_char);                 // 自定义下标7
 904   1        cgram_wr(0x03,4,*cgram_char);                 // 自定义下标y
 905   1      
 906   1        wr_lcd (comm,0x01,1);  /*清屏,地址指针指向00H*/
 907   1        wr_lcd (comm,0x08,1);  //关显示
 908   1        lcddis_series(0,13,name,0,0);
 909   1        wr_lcd (comm,0x0c,1);  /*开显示,关光标*/
 910   1      
 911   1        while(1)
 912   1        {
 913   2          key_response();
 914   2        }
 915   1      }
 916          
 917          void time0 (void) interrupt 1 using 1                    
 918          { //uchar i;
 919   1        TH0=0xec;
C51 COMPILER V8.02   ALL_TEST                                                              06/15/2007 10:53:26 PAGE 16  

 920   1        TL0=0x78;
 921   1          if(down_time)          //用于开机预热
 922   1               {
 923   2                 if(time_inc==100)
 924   2                  {
 925   3                        time_inc=0;
 926   3                        count--;
 927   3                      }
 928   2                 time_inc++;
 929   2               }
 930   1              if(flashzero)
 931   1              {
 932   2                zero_inc++;
 933   2                if(zero_inc>cut_time)
 934   2                {
 935   3                  zero_inc=0;
 936   3                      flashzero=0;
 937   3                }
 938   2              }
 939   1      
 940   1         if(bell)                //报警
 941   1         {
 942   2           cs_temp|=0x20;
 943   2           P0=cs_temp;
 944   2               P2_7=0;
 945   2               P2_6=1;
 946   2               P3_6=0;
 947   2               P3_6=1;
 948   2               delayms(8);
 949   2         }
 950   1        else
 951   1         {
 952   2           cs_temp&=0xdf;
 953   2           P0=cs_temp;
 954   2               P2_7=0;
 955   2               P2_6=1;
 956   2               P3_6=0;
 957   2               P3_6=1;
 958   2         }
 959   1      
 960   1        keyscan();
 961   1        if((P1&0x20)==0x20)
 962   1         {    
 963   2              r457=1; 
 964   2         }
 965   1        else
 966   1         {    
 967   2               r457=0;         
 968   2         }
 969   1        //---------------------//
 970   1       
 971   1        if(pr)
 972   1        {
 973   2          if(inc<51)
 974   2           flash=1;
 975   2          else
 976   2           {
 977   3            if(inc<101)
 978   3             flash=0;
 979   3                else
 980   3                {
 981   4                 other_flash_cnt++;
C51 COMPILER V8.02   ALL_TEST                                                              06/15/2007 10:53:26 PAGE 17  

 982   4                 inc=0;
 983   4                }
 984   3           }
 985   2          inc++;
 986   2        }
 987   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4025    ----
   CONSTANT SIZE    =     98    ----
   XDATA SIZE       =    313       4
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7      44
   IDATA SIZE       =   ----    ----
   BIT SIZE         =     16       8
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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