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

📄 jcsb78-01.lst

📁 PCF8576 DRIVER
💻 LST
字号:
C51 COMPILER V7.09   JCSB78_01                                                             01/29/2008 15:21:04 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE JCSB78_01
OBJECT MODULE PLACED IN JCSb78-01.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE JCSb78-01.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include  <reg52.h>
   2          #include  <INTRINS.H>
   3          sbit SDA=P1^0;
   4          sbit SCL=P1^2;
   5          sbit EN=P3^0;
   6          sbit GO1=P1^4;
   7          sbit GO2=P1^5;
   8          sbit LED1=P3^4;
   9          sbit LED2=P3^5;
  10          sbit LED3=P3^6;
  11          
  12          
  13          void DelayXms(unsigned int i);
  14          void I2CStart();
  15          void I2CStop();
  16          void I2CSent(unsigned char Data);
  17          void Display(unsigned char d);
  18          bit Wait();
  19          bit key; 
  20          char l;
  21          
  22          unsigned char co;
  23          
  24          void DelayXms(unsigned int i)
  25          {
  26   1          unsigned char a;
  27   1          unsigned int b;
  28   1          for(b=0;b<i;b++)
  29   1          for(a=0;a<255;a++);
  30   1      }
  31          
  32          void I2CStart( void )
  33          {
  34   1          SDA=1;
  35   1          _nop_();
  36   1          _nop_();    
  37   1          _nop_();                            
  38   1          SCL=1;      
  39   1          _nop_();
  40   1          _nop_();    
  41   1          _nop_();               
  42   1          SDA=0;      
  43   1          _nop_();
  44   1          _nop_();    
  45   1          _nop_();                    
  46   1          SCL=0;                      
  47   1      }
  48          
  49          void I2CStop( void )
  50          {
  51   1          SDA=0;
  52   1          _nop_();
  53   1          _nop_();    
  54   1          _nop_();    
  55   1          SCL=1;
C51 COMPILER V7.09   JCSB78_01                                                             01/29/2008 15:21:04 PAGE 2   

  56   1          _nop_();
  57   1          _nop_();    
  58   1          _nop_();    
  59   1          SDA=1;
  60   1          _nop_();
  61   1          _nop_();    
  62   1          _nop_();
  63   1          SCL=0;                          
  64   1      } 
  65          
  66          void I2CSent(unsigned char Data)        
  67          {
  68   1          unsigned char i,d;
  69   1          bit ack;
  70   1          SDA=1;
  71   1      Resent:
  72   1          d=Data;
  73   1          for(i=0;i<8;i++)
  74   1          {
  75   2              if(d&0x80)
  76   2              SDA=1;
  77   2              else
  78   2              SDA=0;
  79   2              d<<=1;
  80   2              _nop_();
  81   2              _nop_();        
  82   2              _nop_();        
  83   2              SCL=1;
  84   2              _nop_();
  85   2              _nop_();        
  86   2              _nop_();        
  87   2              SCL=0;
  88   2              _nop_();
  89   2              _nop_();        
  90   2              _nop_();        
  91   2          }
  92   1          _nop_();
  93   1          _nop_();    
  94   1          _nop_();    
  95   1          SDA=1;
  96   1          _nop_();
  97   1          _nop_();    
  98   1          _nop_();    
  99   1          SCL=1;
 100   1          _nop_();
 101   1          _nop_();    
 102   1          _nop_();    
 103   1          ack=SDA;
 104   1          SCL=0;
 105   1          _nop_();
 106   1          _nop_();    
 107   1          _nop_();    
 108   1         if(ack==1)goto Resent;
 109   1      }
 110          
 111          
 112          
 113          bit Wait()
 114          {  
 115   1          bit L;
 116   1          while(1)
 117   1          {
C51 COMPILER V7.09   JCSB78_01                                                             01/29/2008 15:21:04 PAGE 3   

 118   2              if(GO1==0||GO2==0)
 119   2              {
 120   3                  if(GO1==0)L=1;
 121   3                  if(GO2==0)L=0;
 122   3                  DelayXms(100);
 123   3                  while(GO1==0||GO2==0);
 124   3                  return L;
 125   3              }
 126   2          }
 127   1          return L;
 128   1      }
 129                 
 130          void Display(unsigned char d)
 131          {
 132   1          unsigned char i;
 133   1          EA=0;
 134   1          I2CStart();
 135   1          I2CSent(0x70);     
 136   1          I2CSent(0xe0);    //Device select A0=A1=A2=0
 137   1          I2CSent(0xce);    //Mode set    
 138   1          I2CSent(0xf0);             
 139   1          I2CSent(0x00); 
 140   1          for(i=0;i<10;i++)
 141   1          {
 142   2              I2CSent(d);
 143   2          }   
 144   1          I2CStop();
 145   1          I2CStart();
 146   1          I2CSent(0x70);     
 147   1          I2CSent(0xe1);    //Device select A0=A1=A2=0 
 148   1          I2CSent(0xce);    //Mode set 
 149   1          I2CSent(0xf0);               
 150   1          I2CSent(0x00); 
 151   1          for(i=0;i<10;i++)
 152   1          {
 153   2              I2CSent(d);
 154   2          }   
 155   1          I2CStop(); 
 156   1          EA=1;
 157   1      } 
 158          void Display1()
 159          {
 160   1          EA=0;
 161   1          for(;co<80;)
 162   1          {
 163   2           re:
 164   2              Display(0x00);
 165   2              I2CStart();
 166   2              I2CSent(0x70);     
 167   2              I2CSent(0xe0+co/40);    //Device select A0=A1=A2=0
 168   2              I2CSent(0xce);    //Mode set 客人
 169   2              I2CSent(0xf0);             
 170   2              I2CSent(co%40);
 171   2              I2CSent(0xc0);
 172   2              I2CStop(); 
 173   2              key=Wait();
 174   2              if(key==1)
 175   2              {
 176   3                  if(co==0)return;
 177   3                  else
 178   3                  co--;
 179   3              }
C51 COMPILER V7.09   JCSB78_01                                                             01/29/2008 15:21:04 PAGE 4   

 180   2              if(key==1)goto re;
 181   2              else
 182   2              co++;  
 183   2         }
 184   1        EA=1;
 185   1      }
 186          void E1() interrupt 2
 187          {
 188   1          EA=0;
 189   1          DelayXms(300); 
 190   1              l++; 
 191   1              if(l==4)l=1;
 192   1          LED1=(bit)(l&0x01);
 193   1          LED2=(bit)(l&0x02);
 194   1          EA=1;
 195   1      }
 196          
 197          void E0() interrupt 0
 198          {
 199   1          EA=0;
 200   1          DelayXms(300);
 201   1          LED3=~LED3;
 202   1          EA=1;
 203   1      }
 204          
 205          void main(void) 
 206          {  
 207   1          EN=1;
 208   1          IE=0X85;
 209   1          IE0=1;
 210   1          IE1=0;
 211   1          LED1=0;
 212   1          LED2=1;
 213   1          LED3=0;
 214   1          while(1)
 215   1          {
 216   2          d1: Display(0xff);
 217   2              if(Wait()==1)goto d5;
 218   2          d2: Display(0x00);
 219   2              if(Wait()==1)goto d1;
 220   2              co=0;
 221   2          d3: Display1();
 222   2              if(key==1)goto d2;
 223   2          d4: Display(0xaa);
 224   2              key=Wait();
 225   2              if(key==1)co=79;
 226   2              if(key==1)goto d3;
 227   2          d5: Display(0x55);
 228   2              if(Wait()==1)goto d4;
 229   2          }
 230   1      }
 231             
 232          
 233          
 234          
 235          
 236          
 237          
 238          
 239          
 240          
 241          
C51 COMPILER V7.09   JCSB78_01                                                             01/29/2008 15:21:04 PAGE 5   

 242          
 243          
 244          
 245          
 246          
 247          
 248          
 249          
 250          
 251          
 252          
 253          
 254          
 255          
 256          
 257          
 258          
 259          
 260          
 261          
 262          
 263          
 264          
 265          
 266          
 267          
 268          
 269          
 270          
 271          
 272          
 273          
 274          
 275          
 276          
 277          
 278          
 279          
 280          
 281          
 282          
 283          
 284          
 285          
 286          
 287          
 288          
 289          
 290          
 291          
 292          
 293          
 294          
 295          
 296          
 297          
 298          
 299          
 300          
 301          
 302          
 303          
C51 COMPILER V7.09   JCSB78_01                                                             01/29/2008 15:21:04 PAGE 6   

 304          
 305          
 306          
 307          
 308          
 309          
 310          
 311          
 312          
 313          
 314          
 315          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    501    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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