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

📄 in_out.lst

📁 单片机源程序精华包
💻 LST
字号:
C51 COMPILER V7.06   IN_OUT                                                                03/12/2021 17:59:28 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE IN_OUT
OBJECT MODULE PLACED IN in_out.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE in_out.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <AT89X51.H>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          uchar code SEG7[10]={0x03,0x9f,0x25,0x0d,0x99,
   5                          0x49,0x41,0x1f,0x01,0x09};
   6          uchar data cnt[8];
   7          uchar data pre_cnt[8];
   8          sbit drv=P3^4;
   9          bit set_flag;
  10          bit out_flag;
  11          bit keydown_flag;
  12          /****************************/
  13          void delay(uint k)
  14          {
  15   1      uint i,j;
  16   1      for(i=0;i<k;i++){
  17   2      for(j=0;j<60;j++)
  18   2      {;}}
  19   1      }
  20          /**********************************************/
  21          void scan_key(void)
  22          {uchar i,m=0x01;
  23   1      P3_6=0;P3_7=1;
  24   1      for(i=0;i<8;i++)
  25   1      {
  26   2      SBUF=255-m;while(!TI);TI=0;
  27   2      if(!P3_5)pre_cnt[i]++;
  28   2      m<<=1;
  29   2      }
  30   1      //------------------------
  31   1      for(i=0;i<8;i++)
  32   1      {if(pre_cnt[i]>9)pre_cnt[i]=0;}
  33   1      }
  34          /************************************/
  35          void dis_cnter(void)
  36          {uchar i;
  37   1      P3_7=1;P3_6=1;
  38   1      for(i=0;i<8;i++)
  39   1      {SBUF=SEG7[cnt[i]];while(!TI);TI=0;}
  40   1      P3_7=0;
  41   1      }
  42          /**********************************************/
  43          void dis_pre_cnter(void)
  44          {uchar i;
  45   1      P3_7=1;P3_6=1;
  46   1      SBUF=SEG7[pre_cnt[0]]&0xfe;while(!TI);TI=0;
  47   1      //----------------------------------------
  48   1      for(i=1;i<8;i++)
  49   1      {SBUF=SEG7[pre_cnt[i]];while(!TI);TI=0;}
  50   1      P3_7=0;
  51   1      }
  52          /****************************************/
  53          void cnter(void)
  54          {uchar i;
  55   1      for(i=0;i<7;i++)
C51 COMPILER V7.06   IN_OUT                                                                03/12/2021 17:59:28 PAGE 2   

  56   1      {if(cnt[i]>9){cnt[i]=0;cnt[i+1]++;}}
  57   1      //------------------------------------
  58   1      if(cnt[7]>9){for(i=0;i<8;i++)cnt[i]=0;}
  59   1      }
  60          /***************************************************/
  61          void pt_cnt(void)
  62          {
  63   1      if((cnt[0]==pre_cnt[0])&&(cnt[1]==pre_cnt[1])&&\
  64   1      (cnt[2]==pre_cnt[2])&&(cnt[3]==pre_cnt[3])&&\
  65   1      (cnt[4]==pre_cnt[4])&&(cnt[5]==pre_cnt[5])&&\
  66   1      (cnt[6]==pre_cnt[6])&&(cnt[7]==pre_cnt[7]))
  67   1      out_flag=1;
  68   1              else out_flag=0;
  69   1      //==========================
  70   1      if(out_flag)drv=0;
  71   1      else drv=1;
  72   1      }
  73          /********************************************/
  74          void main(void)
  75          {       IE=0x84;
  76   1              IT1=1;
  77   1              while(1)
  78   1              {P3_6=0;P3_7=1;
  79   2              SBUF=0x00;while(!TI);TI=0;
  80   2              if((P3&0x24)!=0x24)keydown_flag=1;
  81   2              else keydown_flag=0;
  82   2              //--------------------------
  83   2              SBUF=0xfe;while(!TI);TI=0;
  84   2              if(!P3_2)set_flag=!set_flag;
  85   2              //=============================================
  86   2              if(!set_flag){cnter();dis_cnter();pt_cnt();delay(100);}
  87   2              else {scan_key();dis_pre_cnter();delay(10);}
  88   2              //=============================================
  89   2              if(keydown_flag)delay(300);
  90   2              }
  91   1      }
  92          /************************************************/
  93          void extern_int1(void) interrupt 2 using 1
  94          {
  95   1      cnt[0]++;
  96   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    344    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   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 + -