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

📄 xing2.lst

📁 单片机89s51做的波形发生器
💻 LST
字号:
C51 COMPILER V7.50   XING2                                                                 09/03/2008 18:38:24 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE XING2
OBJECT MODULE PLACED IN xing2.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE xing2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include<reg51.h> 
   3          
   4          #define uchar unsigned char 
   5          
   6          #define uint unsigned int 
   7          
   8          sbit LCP=P2^2; 
   9          
  10          sbit SCP=P2^1; 
  11          
  12          sbit SI=P2^0; 
  13          
  14          sbit S1=P2^3; 
  15          
  16          sbit S2=P2^4; 
  17          
  18          sbit S3=P2^5; 
  19          
  20          sbit S4=P2^6; 
  21          
  22          sbit S5=P2^7; 
  23          
  24          sbit DA0832=P3^3; 
  25          
  26          sbit DA0832_ON=P3^2; 
  27          
  28          uchar fun=0,b=0,c=0,d=0,tl,th; 
  29          
  30          uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 
  31          
  32          uchar code tosin[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb
             -1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5 
  33          
  34          ,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,
             -0xf2,0xf4,0xf5 
  35          
  36          ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
             -0xff,0xfe,0xfd 
  37          
  38          ,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,
             -0xde,0xdd,0xda 
  39          
  40          ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,
             -0x9f,0x9c,0x99 
  41          
  42          ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,
             -0x57,0x55,0x51 
  43          
  44          ,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,
             -0x1a,0x18,0x16 
  45          
  46          ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,
             -0x00,0x00,0x00 
  47          
C51 COMPILER V7.50   XING2                                                                 09/03/2008 18:38:24 PAGE 2   

  48          ,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10
             -,0x11,0x13,0x15 
  49          
  50          ,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,
             -0x48,0x4c,0x4e 
  51          
  52          ,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 }; 
  53          
  54          void display(unsigned char command) 
  55          
  56          { 
  57   1      
  58   1              unsigned char i; 
  59   1              
  60   1              LCP=0; 
  61   1              
  62   1              for(i=8;i>0;i--) 
  63   1              
  64   1              { 
  65   2              
  66   2                      SCP=0; 
  67   2                      
  68   2                      if((command & 0x80)==0) 
  69   2                      
  70   2                      { 
  71   3                      
  72   3                              SI=0; 
  73   3                      
  74   3                      } 
  75   2                      
  76   2                      else 
  77   2                      
  78   2                      { 
  79   3                      
  80   3                              SI=1; 
  81   3                      
  82   3                      } 
  83   2                      
  84   2                      command<<=1; 
  85   2                      
  86   2                      SCP=1; 
  87   2      
  88   2              } 
  89   1      
  90   1              LCP=1; 
  91   1      
  92   1      } 
  93          
  94          void key1(void) 
  95          
  96          { 
  97   1      
  98   1              fun++; 
  99   1              
 100   1              if(fun==4) 
 101   1              
 102   1              fun=0x00; 
 103   1      
 104   1      } 
 105          
 106          void key2(void) 
 107          
C51 COMPILER V7.50   XING2                                                                 09/03/2008 18:38:24 PAGE 3   

 108          { 
 109   1      
 110   1              tl++; 
 111   1              
 112   1              if(tl==0x1f) 
 113   1              
 114   1              th++; 
 115   1      
 116   1      } 
 117          
 118          void key3(void) 
 119          
 120          { 
 121   1      
 122   1              tl--; 
 123   1              
 124   1              if(tl==0x00) 
 125   1              
 126   1              th--; 
 127   1      
 128   1      } 
 129          
 130          void key4(void) 
 131          
 132          { 
 133   1      
 134   1              double t; 
 135   1              
 136   1              int f; 
 137   1              
 138   1              TR0=0; 
 139   1              
 140   1              t=(65535-th*256-tl);//*0.4; 
 141   1              
 142   1              f=(int)(1000/t); 
 143   1              
 144   1              S3=tab[f%10]; 
 145   1              
 146   1              f=f/10; 
 147   1              
 148   1              S2=tab[f%10]; 
 149   1              
 150   1              f=f/10; 
 151   1              
 152   1              if(f==0) 
 153   1              
 154   1              S1=0; 
 155   1              
 156   1              else 
 157   1              
 158   1              S1=tab[f]; 
 159   1              
 160   1              TR0=1; 
 161   1      
 162   1      } 
 163          
 164          void key5(void) 
 165          
 166          { 
 167   1      
 168   1              tl--; 
 169   1              
C51 COMPILER V7.50   XING2                                                                 09/03/2008 18:38:24 PAGE 4   

 170   1              if(tl==0x00) 
 171   1              
 172   1              th++; 
 173   1      
 174   1      } 
 175          
 176          void judge(void) 
 177          
 178          { 
 179   1      
 180   1              uchar line,row,de1,de2,keym; 
 181   1              
 182   1              P1=0x0f; 
 183   1              
 184   1              keym=P1; 
 185   1              
 186   1              if(keym==0x0f)return; 
 187   1              
 188   1              for(de1=0;de1<200;de1++) 
 189   1              
 190   1              for(de2=0;de2<125;de2++){;} 
 191   1              
 192   1              P1=0x0f; 
 193   1              
 194   1              keym=P1; 
 195   1              
 196   1              if(keym==0x0f)return; 
 197   1              
 198   1              P1=0x0f; 
 199   1              
 200   1              line=P1; 
 201   1              
 202   1              P1=0xf0; 
 203   1              
 204   1              row=P1; 
 205   1              
 206   1              line=line+row; /*存放特征键值*/ 
 207   1              
 208   1              if(line==0xde)key1(); 
 209   1              
 210   1              if(line==0x7e)key2(); 
 211   1              
 212   1              if(line==0xbd)key3(); 
 213   1              
 214   1              if(line==0x7d)key4(); 
 215   1      
 216   1      } 
 217          
 218          void time0_int(void) interrupt 1 //中断服务程序 
 219          
 220          { 
 221   1      
 222   1              TR0=0; 
 223   1              
 224   1              if(fun==1) 
 225   1              
 226   1              { 
 227   2              
 228   2                      DA0832=tosin[b]; //正弦波 
 229   2                      
 230   2                      b++; 
 231   2                      
C51 COMPILER V7.50   XING2                                                                 09/03/2008 18:38:24 PAGE 5   

 232   2              } 
 233   1              
 234   1              else if(fun==2) //锯齿波 
 235   1              
 236   1              { 
 237   2              
 238   2                      if(c<128) 
 239   2                      
 240   2                      DA0832=c; 
 241   2              
 242   2                      else 
 243   2                      
 244   2                      DA0832=255-c; 
 245   2                      
 246   2                      c++; 
 247   2              
 248   2              } 
 249   1              
 250   1              else if(fun==3) // 方波 
 251   1              
 252   1              { 
 253   2              
 254   2                      d++; 
 255   2                      
 256   2                      if(d<=128) 
 257   2                      
 258   2                      DA0832=0x00; 
 259   2                      
 260   2                      else 
 261   2                      
 262   2                      DA0832=0xff; 
 263   2      
 264   2              } 
 265   1      
 266   1              TH0=th; 
 267   1              
 268   1              TL0=tl; 
 269   1              
 270   1              TR0=1; 
 271   1      
 272   1      } 
 273          
 274          void main(void) 
 275          
 276          { 
 277   1      
 278   1              TMOD=0X01; 
 279   1              
 280   1              TR0=1; 
 281   1              
 282   1              th=0xff; 
 283   1              
 284   1              tl=0xd0; 
 285   1              
 286   1              TH0=th; 
 287   1              
 288   1              TL0=tl; 
 289   1              
 290   1              ET0=1; 
 291   1              
 292   1              EA=1; 
 293   1              
C51 COMPILER V7.50   XING2                                                                 09/03/2008 18:38:24 PAGE 6   

 294   1              while(1) 
 295   1              
 296   1              { 
 297   2              
 298   2                      display(0xfe); 
 299   2                      
 300   2                      judge(); 
 301   2              
 302   2              } 
 303   1      
 304   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    434    ----
   CONSTANT SIZE    =    266    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   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 + -