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

📄 led1.lst

📁 锅炉水位模拟系统。由两排各125个小LED灯组成
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  LED1                                                                   01/15/2009 11:59:30 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE LED1
OBJECT MODULE PLACED IN C:\DOCUME~1\ADMINI~1\桌面\LED\LED1.OBJ
COMPILER INVOKED BY: D:\WAVE6000\COMP51\C51.EXE C:\DOCUME~1\ADMINI~1\桌面\LED\LED1.C DB SB OE

stmt level    source

   1          #include<NI51REG.H>
   2          #define FLASH_HZ 500
   3          #define DELAY_BASE 100
   4          #define LIGHTS 125
   5          #define MS 4
   6          #define TPS 411
   7          //#define THISADDR 0x25
   8          #define UARTBD 0xfa
   9          
  10          #define ISP_WAIT 0x03
  11          #define ISP_READ 1
  12          #define ISP_WRITE 2
  13          #define ISP_ERASE 3
  14          
  15          sbit clk = P1^5;
  16          sbit dat = P1^4;
  17          sbit gate1 = P1^2;
  18          sbit gate2 = P1^3;
  19          unsigned int cnt;
  20          unsigned char rg;
  21          unsigned int Now_P = 0;
  22          unsigned int Aim_P = 0;
  23          unsigned int Dis_P = 0;
  24          unsigned long Time_D = 0;
  25          unsigned  long Time = 1;
  26          int timecnt = 0;
  27          unsigned int  T = 1;
  28          unsigned int  T_tmp= 0;
  29          unsigned long  Delay_num;
  30          unsigned long num;
  31          int De = 0;
  32          unsigned int F=0;
  33          unsigned int N=0;
  34          
  35          bit TrStar_sign = 0;//transport start
  36          bit NewCmd_sign = 0;
  37          bit run_sign = 1;
  38          
  39          unsigned char TrCounter = 0;
  40          unsigned char TrData[5] = 0;
  41          unsigned char AimData[5] = 0;
  42          unsigned char mode = 0;
  43          unsigned char THISADDR = 0x2A;
  44           Move(int x);
  45          void delay_1ms() interrupt 1
  46          {
  47   1        if(num > 0)
  48   1        {
  49   2          num--;
  50   2          TH0 = 0xFc;
  51   2          TL0 = 0x6e;
  52   2        }
  53   1      }
  54          void delay(unsigned long  x)
  55          {
C51 COMPILER V6.02  LED1                                                                   01/15/2009 11:59:30 PAGE 2   

  56   1         TR0 = 1;
  57   1         num = x;
  58   1         while(num>0)
  59   1         {}
  60   1         TR0 = 0;
  61   1      }
  62          void serial() interrupt 4
  63          {
  64   1      	//unsigned char i;
  65   1              EA = 0;
  66   1      	if(RI)
  67   1      	{
  68   2      		RI = 0;
  69   2                      //run_sign = ~run_sign;
  70   2                      /*test*/
  71   2                      /*if(SBUF == 0x0c)
  72   2                      {
  73   2                          run_sign = 0;
  74   2                      }
  75   2                      else if(SBUF == 0xbb)
  76   2                      {
  77   2                          run_sign = 1;
  78   2                      }
  79   2                      /*test end*/
  80   2      
  81   2      	       if((!TrStar_sign)&&(SBUF == 0x0c))
  82   2      		{
  83   3      			TrStar_sign = 1;
  84   3      			TrCounter = 0;
  85   3                              //run_sign = ~run_sign;
  86   3      		}
  87   2      
  88   2      		else if(TrStar_sign)
  89   2      		{
  90   3                             if(TrCounter < 5)
  91   3      			{
  92   4      
  93   4      				TrData[TrCounter] = SBUF;
  94   4                                      TrCounter++;
  95   4      			}
  96   3                              else if(SBUF == 0xbb)
  97   3                              {
  98   4                                      if(TrData[0] == THISADDR)
  99   4                                      {
 100   5                                          AimData[0] = TrData[0];
 101   5                                          AimData[1] = TrData[1];
 102   5                                          AimData[2] = TrData[2];
 103   5                                          AimData[3] = TrData[3];
 104   5                                          AimData[4] = TrData[4];
 105   5                                          NewCmd_sign = 1;
 106   5      				    TrCounter++;
 107   5                                      }
 108   4                                      TrCounter = 0;
 109   4                                      TrStar_sign = 0;
 110   4                              }
 111   3                      }
 112   2      	}
 113   1              EA = 1;
 114   1      }
 115           /*void serial() interrupt 4
 116          {
 117          	unsigned char i;
C51 COMPILER V6.02  LED1                                                                   01/15/2009 11:59:30 PAGE 3   

 118                  EA = 0;
 119          	if(RI)
 120          	{
 121          		RI = 0;
 122          
 123                          run_sign = ~run_sign;
 124                        }
 125                  EA = 1;
 126          }*/
 127          unsigned char isp_read(unsigned int addr)
 128          {
 129   1          unsigned char nop;
 130   1          ISP_ADDRH = (addr >> 8);
 131   1          ISP_ADDRL = (addr & 0x00ff);
 132   1          EA = 0;
 133   1          ISP_CONTR = ISP_WAIT;
 134   1          ISP_CONTR |= 0x80;
 135   1          ISP_CMD = ISP_READ;
 136   1          ISP_TRIG = 0x46;
 137   1          ISP_TRIG = 0xb9;
 138   1          nop = 1;
 139   1          ISP_CONTR = 0x00;
 140   1          ISP_CMD = 0x0;
 141   1          ISP_TRIG = 0x0;
 142   1          ISP_ADDRH = 0x0;
 143   1          ISP_ADDRL = 0x0;
 144   1          EA = 1;
 145   1          return ISP_DATA;
 146   1      }
 147          
 148          void isp_erase(unsigned int addr)
 149          {
 150   1          unsigned char nop;
 151   1          ISP_ADDRH = (addr >> 8);
 152   1          ISP_ADDRL = (addr & 0x00ff);
 153   1          EA = 0;
 154   1          ISP_CONTR = ISP_WAIT;
 155   1          ISP_CONTR |= 0x80;
 156   1          ISP_CMD = ISP_ERASE;
 157   1          ISP_TRIG = 0x46;
 158   1          ISP_TRIG = 0xb9;
 159   1          nop = 1;
 160   1          ISP_CONTR = 0x00;
 161   1          ISP_CMD = 0x0;
 162   1          ISP_TRIG = 0x0;
 163   1          ISP_ADDRH = 0x0;
 164   1          ISP_ADDRL = 0x0;
 165   1          EA = 1;
 166   1      }
 167          
 168          void isp_write(unsigned int addr,unsigned char dat)
 169          {
 170   1          unsigned char nop;
 171   1          ISP_DATA = dat;
 172   1          ISP_ADDRH = (addr >> 8);
 173   1          ISP_ADDRL = (addr & 0x00ff);
 174   1          EA = 0;
 175   1          ISP_CONTR = ISP_WAIT;
 176   1          ISP_CONTR |= 0x80;
 177   1          ISP_CMD = ISP_WRITE;
 178   1          ISP_TRIG = 0x46;
 179   1          ISP_TRIG = 0xb9;
C51 COMPILER V6.02  LED1                                                                   01/15/2009 11:59:30 PAGE 4   

 180   1          nop = 1;//无意义 延时操作
 181   1          ISP_CONTR = 0x00;
 182   1          ISP_CMD = 0x0;
 183   1          ISP_TRIG = 0x0;
 184   1          ISP_ADDRH = 0x0;
 185   1          ISP_ADDRL = 0x0;
 186   1          EA = 1;
 187   1      }
 188          
 189          /*void delay(unsigned int kk)
 190          {
 191          	unsigned int t1,t2;
 192                  for (t1 = 0;t1<60;t1++)
 193                  {
 194          	for(t2 = 0;t2 < kk;t2++);
 195                  }
 196          }*/
 197          
 198           Move(int x)
 199          {
 200   1         unsigned int i,NUM1,NUM2;
 201   1           x = (x > LIGHTS)?LIGHTS:x;
 202   1           x = (x < 1)?0:x;
 203   1      
 204   1           gate1 = 0;
 205   1           gate2 = 1;
 206   1           NUM1 = (LIGHTS-x) + (LIGHTS-x)/7;
 207   1           NUM2 = (x+x/7);
 208   1           if(!NewCmd_sign)
 209   1           {
 210   2           for(i = 0;i < NUM1;i++)
 211   2           {
 212   3      
 213   3               clk = 0;
 214   3      
 215   3               dat = 1;
 216   3      
 217   3               clk = 1;
 218   3      
 219   3           }
 220   2           for(i = 0;i < NUM2;i++)
 221   2           {
 222   3      
 223   3               clk = 0;
 224   3      
 225   3               dat = 0;
 226   3      
 227   3               clk = 1;
 228   3           }
 229   2      
 230   2      	 gate1 = 1;
 231   2               gate2 = 0;
 232   2               }
 233   1               else
 234   1               return(0);
 235   1      }
 236          
 237           test_mode()
 238          {     Delay_num = AimData[2];
 239   1      	while(1)
 240   1      	{
 241   2      		if(!NewCmd_sign)
C51 COMPILER V6.02  LED1                                                                   01/15/2009 11:59:30 PAGE 5   

 242   2      		{
 243   3      
 244   3      			Aim_P = (Aim_P == 124)?0:Aim_P+1;
 245   3      			Move(Aim_P);
 246   3                              delay(Delay_num);
 247   3                     }
 248   2              else
 249   2      		{
 250   3      			Now_P = Aim_P;
 251   3      			return(0);
 252   3      		}
 253   2      	}
 254   1      }
 255          
 256           shake_mode()
 257          {
 258   1                    N = AimData[3];
 259   1      	      F=AimData[2];
 260   1         while(1)
 261   1       {
 262   2          if(!NewCmd_sign)
 263   2            {   De = ~De;
 264   3                Aim_P = (De)?(Aim_P+F):(Aim_P-F);
 265   3                Now_P = (De)?(Aim_P-F):(Aim_P+F);
 266   3                Aim_P = (Aim_P<0)?(0):(Aim_P);
 267   3                Now_P = (Now_P<0)?(0):(Now_P);

⌨️ 快捷键说明

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