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

📄 keil.lst

📁 提供包括硬件、软件在内的高效、低成本的完整嵌入式开发平台及解决方案。典型产品为以386EX CPU为核心的嵌入式网络模块系列
💻 LST
字号:
C51 COMPILER V7.10   KEIL                                                                  09/13/2007 22:01:37 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE KEIL
OBJECT MODULE PLACED IN keil.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE keil.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*************测试控制器程序  *************************
   2          **   编号    中断源      入口地址   **
   3          **    0     外部中断0     0003H     **
   4          **    1     定时计数0     000BH     **
   5          **    2     外部中断1     0013H     **
   6          **    3     定时记数1     001BH     **
   7          **    4     串口中断      0023H     **
   8          *******************************************************
   9          ***仓控制板硬件定义
  10           P35--出牌电机    P11--出牌计数     P12--传感器电源开关
  11           P15--传动电机    P10--有无牌检测   P13--传感器电源开关
  12           P27--开始按键    P25--蜂鸣器       P0---LEDdata
  13           P14--DIP拨码     P16--选择传动电机转动方式
  14           P26--个     P2.2--十     P2.4--百      P2.0--千
  15           ******************************************************
  16           计数传感器有牌时为H、无牌时为L
  17           有无牌检测传感器有牌时为L、无牌时为H
  18          NUMLAB:  ;共阳
  19          db 0A0H  ;NUM_0
  20          db 0BBH  ;NUM_1
  21          db 62H   ;NUM_2
  22          db 2AH   ;NUM_3
  23          db 39H   ;NUM_4
  24          db 2CH   ;NUM_5
  25          db 24H   ;NUM_6
  26          db 0BAH  ;NUM_7
  27          db 20H   ;NUM_8
  28          db 28H   ;NUM_9
  29          *********************************************************/
  30          #include <stdio.h>
  31          #include <AT89x52.h>
  32          #include <absacc.h>
  33          #include <intrins.h>
  34          
  35          #define   Front_motor1  P2_3     //电机一控制
  36          #define   Front_motor2  P2_1     //电机二控制
  37          #define   Back_motor    P1_5     //后电机控制
  38          #define   Count_OPTO    P1_1     //计数传感器OPTO
  39          #define   Back_OPTO     P1_0     //有无感器OPTO
  40          #define   Key           P2_7
  41          #define   Speak         P2_5
  42          #define   OPTOV1        P1_2     /*有无牌检测传感器电源开关*/
  43          #define   OPTOV2        P1_3     /*出牌计数传感器电源开关*/
  44          #define   LED_CS1       P2_6     /*LED个位*/
  45          #define   LED_CS2       P2_2     /*LED十位*/
  46          #define   LED_CS3       P2_4     /*LED百位*/
  47          #define   LED_CS4       P2_0     /*LED千位*/
  48          
  49          void    Start(void);      /*初始化*/
  50          void    Delay50ms(void);
  51          void    Delay(void);
  52          void    OutCard(void);    /*发牌*/
  53          void    LEDdisplay(void);
  54          void    TimeINT(void);
  55          
C51 COMPILER V7.10   KEIL                                                                  09/13/2007 22:01:37 PAGE 2   

  56          unsigned  char  TAB[10]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};
  57          unsigned  char  LEDdata1,LEDdata2,LEDdata3,LEDdata4;
  58          unsigned  char  Tdata,Card_data;
  59          unsigned  char  Ydata;
  60          
  61          bit  RXbit,OutCardBit,CLRbit;
  62          
  63          void main(void)
  64          {
  65   1              TMOD=0x01;      /*设定时器0,工作方式1 */
  66   1              TH0=0x3c;        /*定时器0初值*/
  67   1              TL0=0xb0;        /*定时器0初值*/
  68   1              //TR0=0;
  69   1              ET0=1;          /* 中断0边沿触发方式 */
  70   1              EA=1;
  71   1              Front_motor1=0;   /*不转*/
  72   1              Front_motor2=1;   /*不转*/
  73   1              LEDdata1=0;       /*初始化LED所有位清零*/
  74   1              LEDdata2=0;
  75   1              LEDdata3=0;
  76   1              LEDdata4=0;
  77   1              Tdata=0;
  78   1              Ydata=0;
  79   1              Speak=0;         /*响声50ms*/
  80   1              Delay50ms();
  81   1              Speak=1;
  82   1      
  83   1              while(P1_6)
  84   1              {
  85   2                      Delay50ms(); 
  86   2                      Delay50ms();
  87   2                      Delay50ms(); 
  88   2                      Delay50ms();
  89   2                      Delay50ms();
  90   2                      Back_motor=0;     /*传牌电机转*/
  91   2                      Front_motor1=1;   /*正转*/
  92   2                      Front_motor2=1;   /*正转*/
  93   2                      Delay50ms(); 
  94   2                      Delay50ms();  
  95   2                      Delay50ms(); 
  96   2                      Delay50ms();  
  97   2                      Delay50ms(); 
  98   2                      Delay50ms();
  99   2                      Back_motor=1;     /*传牌电机停*/
 100   2                      Front_motor1=0;   /*出牌电机停*/
 101   2                      Front_motor2=1;   /*出牌电机停*/
 102   2              }
 103   1      
 104   1              if(P1_6)      /*读拨码判断传牌电机是否为间歇运转*/
 105   1                      TR0=1;     /*间歇运转*/
 106   1              else
 107   1                      TR0=0;     /*连续运转*/
 108   1      
 109   1              while(1)
 110   1              { 
 111   2                      OPTOV1=0;         /*开传感器电源*/
 112   2                      OPTOV2=0;         /*开传感器电源*/
 113   2                      while(Back_OPTO)        /*检测牌盒是否无牌?*/
 114   2              {       
 115   3                              if(Ydata==20)        /*检测20次*/
 116   3                      {
 117   4                                      while(Back_OPTO)
C51 COMPILER V7.10   KEIL                                                                  09/13/2007 22:01:37 PAGE 3   

 118   4                              {
 119   5                                              Ydata=0;
 120   5                                      TR0=0;
 121   5                                      Back_motor=1;     /*传牌电机停*/
 122   5                                      Delay50ms();
 123   5                                      Front_motor1=0;   /*出牌电机停*/
 124   5                                      Front_motor2=1;   /*出牌电机停*/
 125   5                              }
 126   4                      }
 127   3                      Ydata++;
 128   3                      break;
 129   3              }
 130   2                      if(Card_data==5)
 131   2              {
 132   3                              TR0=0;
 133   3                      Front_motor1=0;   /*出牌电机停*/
 134   3                      Front_motor2=1;   /*出牌电机停*/
 135   3                      Back_motor=1;     /*传牌电机停*/
 136   3                      Card_data=0;     /*发牌计数清零*/
 137   3                      Delay50ms();
 138   3                      Delay50ms();
 139   3                      if((Count_OPTO))      /*检测计数传感器是否有牌*/
 140   3                      {
 141   4                                      while(Count_OPTO)
 142   4                              {
 143   5                                              Front_motor1=0;   /*有牌出牌电机反转*/
 144   5                                      Front_motor2=1; 
 145   5                                      }
 146   4                              Delay50ms();
 147   4                              Delay50ms();
 148   4                              Front_motor1=0;   /*出牌电机停*/
 149   4                              Front_motor2=1;   /*出牌电机停*/
 150   4                      }
 151   3                      Delay50ms();
 152   3                      Delay50ms();
 153   3              }
 154   2      
 155   2                      if(P1_6)      /*读拨码判断传牌电机是否为间歇运转*/
 156   2                      TR0=1;     /*间歇运转*/
 157   2                      else
 158   2              {
 159   3                              TR0=0;    /*连续运转*/
 160   3                      Back_motor=0;
 161   3                      }
 162   2      
 163   2                      Front_motor1=1;   /*正转*/
 164   2                      Front_motor2=1;   /*正转*/
 165   2                      //Front_motor=0;
 166   2                      LEDdisplay();
 167   2                      if(Count_OPTO)
 168   2              {
 169   3                              do{
 170   4                                      Back_motor=1;
 171   4                                      TR0=1;  
 172   4                                      LEDdisplay();
 173   4                              }
 174   3                      while(Count_OPTO);
 175   3                      {
 176   4                                      Card_data++;
 177   4                              LEDdata1++;
 178   4                              if(LEDdata1>9)        /*计数进位*/
 179   4                              {
C51 COMPILER V7.10   KEIL                                                                  09/13/2007 22:01:37 PAGE 4   

 180   5                                              LEDdata1=0;
 181   5                                      LEDdata2++;
 182   5                                      if(LEDdata2>9)
 183   5                              {
 184   6                                                      LEDdata2=0;
 185   6                                      LEDdata3++;
 186   6                                      if(LEDdata3>9)
 187   6                                      {
 188   7                                                              LEDdata3=0;
 189   7                                              LEDdata4++;
 190   7                                              if(LEDdata4>9)
 191   7                                              {
 192   8                                                                      LEDdata1=0;
 193   8                                              LEDdata2=0;
 194   8                                              LEDdata3=0;
 195   8                                              LEDdata4=0;
 196   8                                              Speak=0;
 197   8                                              Delay50ms();
 198   8                                              Speak=1;
 199   8                                      }
 200   7                                      }
 201   6                              }
 202   5                              }
 203   4                      }
 204   3              }
 205   2              }
 206   1      }
 207          
 208          /************************************/
 209          void  LEDdisplay(void)   /*数码显示*/
 210          { 
 211   1              LED_CS4=1;
 212   1              P0=TAB[LEDdata1];
 213   1              LED_CS1=0;
 214   1              Delay();
 215   1              LED_CS1=1;
 216   1              P0=TAB[LEDdata2];
 217   1              LED_CS2=0;
 218   1              Delay();
 219   1              LED_CS2=1;
 220   1              P0=TAB[LEDdata3];
 221   1              LED_CS3=0;
 222   1              Delay();
 223   1              LED_CS3=1;
 224   1              P0=TAB[LEDdata4];
 225   1              LED_CS4=0;
 226   1              Delay();
 227   1      }
 228          /**********************************/
 229          void TimeINT(void) interrupt 1 using 0
 230          {
 231   1              Tdata++;
 232   1              if(P1_4==1)
 233   1              {
 234   2                      if(Tdata==5)
 235   2                      {
 236   3                              Tdata=0;
 237   3                              Back_motor=!Back_motor;
 238   3                      }
 239   2              }
 240   1              else
 241   1              {
C51 COMPILER V7.10   KEIL                                                                  09/13/2007 22:01:37 PAGE 5   

 242   2                      if(Tdata==10)
 243   2                      {
 244   3                              Tdata=0;
 245   3                              Back_motor=!Back_motor;
 246   3                      }
 247   2              }
 248   1              TH0=0x3c;        /*定时器0初值*/
 249   1              TL0=0xb0;        /*定时器0初值*/
 250   1              TR0=1;
 251   1      }
 252          /**********************************/
 253          void  Delay50ms(void)
 254          {
 255   1              unsigned  char i;
 256   1              for(i=0;i<0x20;i++)
 257   1              {
 258   2                      LEDdisplay();
 259   2              }
 260   1      }
 261          /**********************************/
 262          void  Delay(void)
 263          {
 264   1              unsigned  char i,Count0;
 265   1              for(i=0;i<0x2;i++)
 266   1              {
 267   2                      for(Count0=0;Count0<0xff;Count0++)
 268   2                      {
 269   3                              _nop_(); 
 270   3                      }
 271   2              }
 272   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    414    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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