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

📄 shouchiji2.lst

📁 这事我在公司的时候
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   SHOUCHIJI2                                                            09/16/2006 18:17:29 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE SHOUCHIJI2
OBJECT MODULE PLACED IN shouchiji2.OBJ
COMPILER INVOKED BY: D:\keil2\C51\BIN\C51.EXE shouchiji2.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************************/
   2          //题目:手持机启动程序
   3          //功能:启动设备
   4          //创作人:李焕杰
   5          //创作时间:2006/08/08
   6          /*********************************************/
   7          #include <at892051.H>
   8          #include <intrins.h>
   9          
  10          #define unchar unsigned char
  11          #define unint unsigned int
  12          
  13          sbit hunzhan=P3^3;
  14          sbit duizhan=P3^2;
  15          sbit jia=P3^5;
  16          sbit jian=P3^4;
  17          sbit lamp=P3^7;
  18          sbit lamphz=P1^0;
  19          sbit lampdz=P1^1;
  20          sbit qh=P1^2;//切换键,设置生命数还是子弹数
  21          
  22          sbit LED_DATA=P1^5;//4094,显示
  23          sbit LED_CLK=P1^4;
  24          sbit LED_OE=P1^7;
  25          sbit LED_STB=P1^6;
  26          
  27          unchar i;qiehuan;
  28          unint ming;zidan;
  29          
  30          unint fashe1;fashe2;fashe3;
  31          unchar Led[6];
  32          unchar Countl,send,a,dsjs;
  33          unchar code ledbuf[19] = // digit convert table segment=0,on
  34                  {0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff, //共阴极段表
  35             //  0    1    2    3    4    5    6   7   8    9     消隐
  36             0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  37          unchar code fsbuf[10] ={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90};
  38          
  39          //**************
  40          //*延时函数
  41          //延时4个周期
  42          //**************
  43          void delay()
  44          {
  45   1              _nop_();
  46   1              _nop_();
  47   1              _nop_();
  48   1              _nop_();
  49   1      }
  50          
  51          //*******************
  52          //*4094显示函数
  53          //*******************
  54          void SendLED_Byte(unchar by)
  55          {
C51 COMPILER V7.07   SHOUCHIJI2                                                            09/16/2006 18:17:29 PAGE 2   

  56   1          unchar sa;
  57   1              LED_CLK=0;
  58   1          _nop_();
  59   1          LED_DATA=0;
  60   1          _nop_();
  61   1          for(sa=0;sa<8;sa++)
  62   1          {
  63   2                      LED_DATA=by&1;
  64   2                      by=by>>1;
  65   2                      delay();
  66   2                      LED_CLK=1;
  67   2                      delay();
  68   2                      LED_CLK=0;
  69   2              delay();
  70   2              }
  71   1      }
  72          
  73          void displed(unint mm,zz)
  74          {
  75   1              unchar jj,send;
  76   1              LED_STB=1;
  77   1              LED_OE=0;
  78   1              Led[2]=mm/100;
  79   1              Led[1]=(mm-Led[2]*100)/10;
  80   1              Led[0]=(mm-Led[2]*100)%10;
  81   1              Led[5]=zz/100;
  82   1              Led[4]=(zz-Led[5]*100)/10;
  83   1              Led[3]=(zz-Led[5]*100)%10;
  84   1          for(jj=0;jj<6;jj++)
  85   1          {
  86   2             send=ledbuf[Led[jj]];
  87   2             SendLED_Byte(send);
  88   2          }
  89   1              LED_OE=1;
  90   1      }
  91          
  92          //*********
  93          //发射函数
  94          //功能:实现三位十进制数转换成发射需要的十六进制数
  95          //**********
  96          void fshs(unint m,z)
  97          {
  98   1              unint fs1,fs2,fs3,fs4,fs5,fs6,fsm,fsz;
  99   1          fs1=m/100;
 100   1              fs2=(m-fs1*100)/10;
 101   1              fs3=(m-fs1*100)%10;
 102   1              fs4=z/100;
 103   1              fs5=(z-fs4*100)/10;
 104   1              fs6=(z-fs4*100)%10;
 105   1              fsm=fsbuf[fs2];
 106   1              fsz=fsbuf[fs4];
 107   1              fsm=fsm>>4;
 108   1              fsz=fsz>>4;
 109   1              fashe1=fsbuf[fs1]^fsm;
 110   1              fashe2=fsbuf[fs3]^fsz;
 111   1              fsz=fsbuf[fs6];
 112   1              fsz=fsz>>4;
 113   1              fashe3=fsbuf[fs5]^fsz;
 114   1      }
 115          
 116          //*********
 117          //*定时中断0
C51 COMPILER V7.07   SHOUCHIJI2                                                            09/16/2006 18:17:29 PAGE 3   

 118          //**********
 119          void timer0() interrupt 1 using 2
 120          {
 121   1              dsjs++;
 122   1              if(dsjs==20)
 123   1              {
 124   2                      dsjs=0;
 125   2                      a=a+1;
 126   2                      TR0=0;                                                                                  
 127   2                      TH0=0X4c;     //定时50ms
 128   2                      TL0=0X00;
 129   2              }
 130   1              else
 131   1          {
 132   2                      TH0=0X4c;     //定时50ms
 133   2                      TL0=0X00;
 134   2              }
 135   1      }
 136          
 137          /***********************************************
 138          延时函数  //xms
 139          ************************************************/
 140          void delayxms(unint x)
 141          {                         //延时程序,延时x毫秒
 142   1            unint j;
 143   1                do
 144   1                {
 145   2                      j=300;
 146   2                      while(--j);
 147   2                } while(--x);
 148   1      }
 149          
 150          main()
 151          {
 152   1              SP=0x50;
 153   1              PCON=0X00;
 154   1              SCON = 0x51;    // Serial port1 data Mode 1 and enable receiver 
 155   1              TMOD = 0x22;    // 定时器1方式2,定时器0方式2
 156   1              TH1 = 0xe8;         //定时器初值
 157   1              TL1 = 0xe8;
 158   1              TH0=0X4c;     //定时50ms
 159   1              TL0=0X00;
 160   1              ET0=1;//定时器0允许
 161   1              TR1=1;
 162   1              EA=1;
 163   1              lamp=1;
 164   1              lamphz=1;
 165   1              lampdz=1;
 166   1              a=0;
 167   1              ming=0;
 168   1              zidan=100;
 169   1              qiehuan=0;
 170   1              displed(ming,zidan);
 171   1              delayxms(20);
 172   1              while(1)
 173   1              {
 174   2                      _nop_();
 175   2                      _nop_();
 176   2                      if(!qh)
 177   2                      {
 178   3                              if(qiehuan==0)
 179   3                                      qiehuan=1;
C51 COMPILER V7.07   SHOUCHIJI2                                                            09/16/2006 18:17:29 PAGE 4   

 180   3                              else
 181   3                                      qiehuan=0;
 182   3                      delayxms(200);
 183   3                      }
 184   2                      if(!jia||!jian)
 185   2                              TR0=1;
 186   2                      else
 187   2                      {
 188   3                              TR0=0;
 189   3                              a=0;
 190   3                      }

⌨️ 快捷键说明

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