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

📄 tian.lst

📁 根据示波器的原理最做的代存储和显示的简易装置
💻 LST
📖 第 1 页 / 共 2 页
字号:
 232                   P1=0;
 233          }*/
 234          /************************************************
 235          键盘子程序
 236          ***********************************************/
 237          
 238          
 239          
 240          void dlms(void);          // delay time
 241          uchar kbscan(void);
C51 COMPILER V7.04   TIAN                                                                  09/12/2003 17:56:34 PAGE 5   

 242          
 243          void dlms(void)
 244          {
 245   1        uchar i;
 246   1          for(i=200;i>0;i--){}
 247   1              
 248   1      }
 249          
 250          
 251          uchar ckbscan(void)      //select the key
 252          {
 253   1        uchar sccode,recode,i,a;
 254   1        P1=0xf0;
 255   1        
 256   1        if((P1&0xf0)!=0xf0)
 257   1          { dlms();
 258   2              if((P1&0xf0)!=0xf0)
 259   2              {  sccode=0xfe;
 260   3                      while((sccode&0x10)!=0)
 261   3                      {P1=sccode;
 262   4                              
 263   4                              if((P1&0xf0)!=0xf0)
 264   4                                { a=P1;
 265   5                                      i=a&0xf0;
 266   5                                      recode=i|0x0f;
 267   5                                      return((~sccode)+(~recode));
 268   5                                    }
 269   4                                else
 270   4                                sccode=(sccode<<1)|0x01;
 271   4                       }
 272   3           }          
 273   2         }                    
 274   1        
 275   1        return(0);
 276   1      }
 277          
 278          /**************************************
 279          功能函数
 280          *******************************************/
 281          
 282          
 283           deroutput()  //直接输出                
 284           {uchar i,j;
 285   1                      while(1)
 286   1                           { 
 287   2                                      P1=0x00;
 288   2                              for(i=0;i<10;i++)
 289   2                           
 290   2                               str[i]= ReadAd();
 291   2                              
 292   2                              AT24C64_W(str,0x00,10);
 293   2                              AT24C64_R(str1,0x00,10);
 294   2                               
 295   2                            
 296   2                              for(i=0;i<10;i++)
 297   2                                     P0=str1[i];
 298   2                              j=ckbscan();
 299   2                              if(j==0x18) break;
 300   2                             }
 301   1                  }       
 302          
 303          
C51 COMPILER V7.04   TIAN                                                                  09/12/2003 17:56:34 PAGE 6   

 304           /*storage() //存储子函数
 305          {
 306            uchar i;
 307                     for(j=0x00;;)
 308                                  {
 309                                  for(i=0;i<10;i++)
 310                                     str[i]= ReadAd();
 311                                  
 312                                  AT24C64_W(str,j,10);     
 313                                   j+=0x0a;
 314                                  
 315                                         
 316                             if(ckbscan()==0x18) break;
 317                             
 318                          }
 319            
 320          }    
 321                            
 322                   
 323            show()   //延迟转换
 324            {uchar i;
 325                  
 326                  i=0x00;
 327                  while(1)
 328                  {
 329                   AT24C64_R(str1,i,10);
 330                   
 331                   
 332                   for(i=0;i<10;i++)
 333                                P0=str1[i];
 334                  i+=0xa0;              
 335                    if(i>(j-0x01)) 
 336                        { while(1) 
 337                                   {  
 338                                       if(ckbscan()==0x18)break;   
 339                                    }      
 340                                        
 341                              break;          
 342                             }
 343                          }        
 344          }        
 345             */    
 346          //主程序
 347          
 348            main()
 349            { uchar i;
 350   1              
 351   1              IE=0x00;
 352   1              SP=0x60;
 353   1              P3=0x00;
 354   1              while(1)
 355   1              {i=ckbscan();
 356   2               if(i==0x11) i=1;
 357   2               if(i==0x14) i=2;
 358   2               if(i==0x18) i=3;       
 359   2               if(i==0x12) i=4;
 360   2              switch(i){
 361   3                      case 1:         deroutput(); break; //开始取数
 362   3              //      case 2:     storage();  break;   //存储  
 363   3            case 3:     break;          //结束
 364   3              //case 4:    show() ;break; //过去显示
 365   3              default: break;     
C51 COMPILER V7.04   TIAN                                                                  09/12/2003 17:56:34 PAGE 7   

 366   3                    }
 367   2             if(i==3) break;       
 368   2           }
 369   1         }
 370              
 371                            
 372                            
 373                          
 374                          
 375                          
 376                  
 377                  
 378                  
 379                  
 380                  
 381                  
 382                  
 383          
 384                  
 385          
 386          
C51 COMPILER V7.04   TIAN                                                                  09/12/2003 17:56:34 PAGE 8   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
I2C_SCK. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0095H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
_I2C_Send_Byte . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  d. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  bit_ack. . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
adclk. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
str1 . . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  10
number . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  16
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
addo . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
adcs . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
I2C_Nack . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_Delay_N_mS. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  n_milisecond . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
SP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0081H  1
ReadAd . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  str. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
I2C_Ack. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
I2C_Start. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
dlms . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_AT24C64_R . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  mcu_address. . . . . . . . . . . . .  AUTO     DATA   VOID_PTR 0001H  3
  AT24C64_address. . . . . . . . . . .  AUTO     DATA   U_INT    0003H  2
  count. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0005H  2
_AT24C64_W . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  mcu_address. . . . . . . . . . . . .  AUTO     DATA   VOID_PTR 0000H  3
  AT24C64_address. . . . . . . . . . .  AUTO     DATA   U_INT    0003H  2
  count. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0005H  2
I2C_Stop . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_Delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
ckbscan. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  sccode . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  recode . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  a. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
str. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    000AH  10
Delay_10_uS. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   CHAR     0007H  1
I2C_Receive_Byte . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  d. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
Adclk. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
j. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0014H  1
deroutput. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
C51 COMPILER V7.04   TIAN                                                                  09/12/2003 17:56:34 PAGE 9   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


I2C_SDA. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0096H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    650    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21      16
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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