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

📄 liguolin.lst

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 LST
字号:
C51 COMPILER V7.50   LIGUOLIN                                                              11/09/2006 17:22:55 PAGE 1   


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

line level    source

   1          //************************************
   2          //**** 李国林变色灯,按键停止
   3          //****  pcb:mdx-48 mcu:89c2051 2004-08-23
   4          //************************************
   5          #include <reg51.h>
   6          #include <stdio.h>//一般I/O函数
   7          #include <stdlib.h>//标准函数
   8          #include <absacc.h>//绝对地址
   9          #include <intrins.h>//内部函数  
  10          #include <setjmp.h>
  11          #define uchar unsigned char
  12          #define uint unsigned int
  13          #define Byte unsigned char
  14          #define Word unsigned int
  15          #define ulong unsigned long
  16          #define bool bit
  17          #define true 1
  18          #define false 0
  19          #define V_TH0   0xfb  /* 时间常数高8位 (65536-500)/256                  */
  20          #define V_TL0   0x00  /* 时间常数低8位 (65536-500)%256   11.0592*/
  21          #define ADD 2
  22          #define reg01 XBYTE[0xc000]
  23          #define reg02 XBYTE[0xc001] //控制寄存器
  24          #define WriteDeviceAddress 0xa0
  25          #define ReadDviceAddress        0xa1
  26          
  27          //*****************************************
  28          uchar rbuf,gbuf,bbuf;
  29          uchar bdata flag;
  30          sbit    sw=flag^0;
  31          sbit    keyin=P1^4;
  32          sbit    roe=P0^7;//     roe=P1^7;
  33          sbit    goe=P0^6;//     goe=P1^6;
  34          sbit    boe=P0^5;//     boe=P1^5;
  35          sbit    SCL=P3^0;
  36          sbit    SDA=P3^1;
  37          /***************************************************************************/
  38          void I2cDelay(unsigned int number) {
  39   1              unsigned char temp;
  40   1              for(;number!=0;number--) {
  41   2                      for(temp=112;temp!=0;temp--) {
  42   3                      }
  43   2              }
  44   1      }
  45          
  46          /***************************************************************************/
  47          void Start() {
  48   1              SDA=1;
  49   1              SCL=1;
  50   1              SDA=0;
  51   1              SCL=0;
  52   1      }
  53          
  54          /***************************************************************************/
  55          void Stop() {
C51 COMPILER V7.50   LIGUOLIN                                                              11/09/2006 17:22:55 PAGE 2   

  56   1              SCL=0;
  57   1              SDA=0;
  58   1              SCL=1;
  59   1              SDA=1;
  60   1      }
  61          
  62          /***************************************************************************/
  63          void Ack() {
  64   1              SDA=0;
  65   1              SCL=1;
  66   1              SCL=0;
  67   1              SDA=1;
  68   1      }
  69          
  70          /***************************************************************************/
  71          void NoAck() {
  72   1              SDA=1;
  73   1              SCL=1;
  74   1              SCL=0;
  75   1      }
  76          
  77          /***************************************************************************/
  78          bit TestAck() {
  79   1              bit ErrorBit;
  80   1              SDA=1;
  81   1              SCL=1;
  82   1              ErrorBit=SDA;
  83   1              SCL=0;
  84   1              return(ErrorBit);
  85   1      }
  86          
  87          /***************************************************************************/
  88          Write8Bit(unsigned char input)
  89          {
  90   1      unsigned char temp;
  91   1      for(temp=8;temp!=0;temp--) {
  92   2                      SDA=(bit)(input&0x80);
  93   2                      SCL=1;
  94   2                      SCL=0;
  95   2                      input=input<<1;
  96   2              }
  97   1      }
  98          
  99          /***************************************************************************/
 100          void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number) {
 101   1              Start();
 102   1              Write8Bit(WriteDeviceAddress);
 103   1              TestAck();
 104   1              Write8Bit(RomAddress);
 105   1              TestAck();
 106   1              for(;number!=0;number--) {
 107   2                      Write8Bit(*Wdata);
 108   2                      TestAck();
 109   2                      Wdata++;
 110   2              }
 111   1              Stop();
 112   1              I2cDelay(10);
 113   1      }
 114          
 115          /***************************************************************************/
 116          unsigned char Read8Bit() {
 117   1              unsigned char temp,rbyte=0;
C51 COMPILER V7.50   LIGUOLIN                                                              11/09/2006 17:22:55 PAGE 3   

 118   1              for(temp=8;temp!=0;temp--) {
 119   2                      SCL=1;
 120   2                      rbyte=rbyte<<1;
 121   2                      rbyte=rbyte|((unsigned char)(SDA));
 122   2                      SCL=0;
 123   2              }
 124   1              return(rbyte);
 125   1      }
 126          
 127          /***************************************************************************/
 128          void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) {
 129   1      //      unsigned char temp,rbyte;
 130   1              Start();
 131   1              Write8Bit(WriteDeviceAddress);
 132   1              TestAck();
 133   1              Write8Bit(RomAddress);
 134   1              TestAck();
 135   1              Start();
 136   1              Write8Bit(ReadDviceAddress);
 137   1              TestAck();
 138   1              while(bytes!=1) {
 139   2              *RamAddress=Read8Bit();
 140   2              Ack();
 141   2              RamAddress++;
 142   2              bytes--;
 143   2              }
 144   1              *RamAddress=Read8Bit();
 145   1              NoAck();
 146   1              Stop();
 147   1      }
 148          
 149          //***************************************       
 150          void    pwm_oe(uchar r,g,b)
 151          {
 152   1      uchar i;
 153   1      for(i=1;i<255;i++)
 154   1              {
 155   2              roe=(r<i)?1:0;
 156   2              goe=(g<i)?1:0;
 157   2              boe=(b<i)?1:0;
 158   2              }
 159   1      }
 160          //*********************************
 161          bit key (void)
 162          {
 163   1      uchar *p;
 164   1      uchar temp[5];
 165   1      p=&temp[0];
 166   1      keyin=1;
 167   1      if(!keyin)
 168   1              {
 169   2              pwm_oe(rbuf,gbuf,bbuf);
 170   2              if(keyin)return(sw);
 171   2              while(!keyin)pwm_oe(rbuf,gbuf,bbuf);
 172   2              pwm_oe(rbuf,gbuf,bbuf);
 173   2              sw=!sw;
 174   2              temp[0]=0x55;
 175   2              temp[1]=rbuf;
 176   2              temp[2]=gbuf;
 177   2              temp[3]=bbuf;
 178   2              Write24c02(p,0,5);
 179   2              }
C51 COMPILER V7.50   LIGUOLIN                                                              11/09/2006 17:22:55 PAGE 4   

 180   1      return(sw);
 181   1      }
 182          //**********************
 183          void    delay(void)
 184          {
 185   1      do
 186   1              pwm_oe(rbuf,gbuf,bbuf);
 187   1      while(key());
 188   1      }
 189          //**********************************
 190          
 191          
 192          
 193          //******************************
 194          void color(void)
 195          {
 196   1      uchar i;
 197   1      for(gbuf=255;gbuf>0;gbuf--)
 198   1              {bbuf=gbuf;pwm_oe(rbuf,gbuf,bbuf);delay();}//r
 199   1              rbuf=255;gbuf=0;bbuf=0;
 200   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 201   1      for(gbuf=1;gbuf>0;gbuf++)
 202   1              {pwm_oe(rbuf,gbuf,bbuf);delay();}//y
 203   1              gbuf=255;
 204   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 205   1      for(rbuf=255;rbuf>0;rbuf--)
 206   1              {pwm_oe(rbuf,gbuf,bbuf);delay();}//g
 207   1              rbuf=0;
 208   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 209   1      for(bbuf=1;bbuf>0;bbuf++)
 210   1              {pwm_oe(rbuf,gbuf,bbuf);delay();}//q
 211   1              bbuf=255;
 212   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 213   1      for(gbuf=255;gbuf>0;gbuf--)
 214   1              {pwm_oe(rbuf,gbuf,bbuf);delay();}//b
 215   1              gbuf=0;
 216   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 217   1      for(rbuf=1;rbuf>0;rbuf++)
 218   1              {pwm_oe(rbuf,gbuf,bbuf);delay();}//z
 219   1              rbuf=255;
 220   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 221   1      for(gbuf=1;gbuf>0;gbuf++)
 222   1              {pwm_oe(rbuf,gbuf,bbuf);delay();}//w
 223   1              gbuf=255;
 224   1              for(i=0;i<250;i++){pwm_oe(rbuf,gbuf,bbuf);delay();}
 225   1      
 226   1      
 227   1      
 228   1      }
 229          //************************
 230          main()
 231          {
 232   1      uchar *p;
 233   1      uchar temp[5];
 234   1      p=&temp[0];
 235   1      Read24c02(p,0,5);
 236   1      if(temp[0]==0x55)
 237   1              {sw=1;
 238   2              rbuf=temp[1];
 239   2              gbuf=temp[2];
 240   2              bbuf=temp[3];
 241   2              delay();
C51 COMPILER V7.50   LIGUOLIN                                                              11/09/2006 17:22:55 PAGE 5   

 242   2              }
 243   1      else
 244   1              {sw=0;
 245   2              rbuf=gbuf=bbuf=255;
 246   2              }
 247   1      while(1)
 248   1              color();
 249   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    694    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4      24
   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 + -