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

📄 mytask.lst

📁 时间触发式单片机最小系统
💻 LST
字号:
C51 COMPILER V7.20   MYTASK                                                                05/25/2005 03:08:55 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MYTASK
OBJECT MODULE PLACED IN mytask.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE mytask.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*----------------------------------------------*-
   2           Mytask.c
   3           create my own task
   4          -*----------------------------------------------*/
   5          #include"main.h"
   6          #include"mytask.h"
   7          
   8          #define state1 0x01
   9          #define state2 0x02
  10          
  11          uchar state;
  12          bit key0_pressed_flag=0;
  13          bit key1_pressed_flag=0; 
  14          bit key2_pressed_flag=0; 
  15          bit key3_pressed_flag=0;
  16          uint data timeout = 0x5000;
  17          uchar  erect_measure_count=0;
  18             
  19          void Mytask_Init(void)   
  20          {   
  21   1       P3=0xff;                      
  22   1       state=state1;   
  23   1      }                                    
  24          void key_scan(void)                          //利用 state machine 进行键盘扫描
  25          {    
  26   1        switch(state)
  27   1           {
  28   2           case state1:
  29   2              if(!key0||!key1||!key2||!key3)                               //低电平时表示被按下   
  30   2                state=state2;  
  31   2      
  32   2           case state2:
  33   2              if(!key0)
  34   2                {
  35   3                 while(key0==0 && --timeout)
  36   3                 key0_pressed_flag=1;
  37   3                }
  38   2              else if(!key1)
  39   2                {
  40   3                 while(key1==0 && --timeout)
  41   3      
  42   3                 key1_pressed_flag=1;
  43   3                }
  44   2              else if(!key2)
  45   2                {
  46   3                 while(key2==0 && --timeout)
  47   3                 key2_pressed_flag=1;
  48   3                }
  49   2              else if(!key3)
  50   2                {
  51   3                 while(key3==0 && --timeout)
  52   3                 key3_pressed_flag=1;
  53   3                }
  54   2                 state=state1;
  55   2               break;
C51 COMPILER V7.20   MYTASK                                                                05/25/2005 03:08:55 PAGE 2   

  56   2           }
  57   1      }
  58          
  59          
  60          void Mytask(void)
  61            {
  62   1          if(key0_pressed_flag)
  63   1           {
  64   2             measure_modify=0;
  65   2             delay4us();
  66   2             measure_modify=1;
  67   2             delay4us();
  68   2             state=state1;
  69   2             key0_pressed_flag=0;
  70   2           }
  71   1          else if(key1_pressed_flag)
  72   1           {
  73   2             erect_measure_count++;        //通过变量的自加来达到模拟开关计数的目的
  74   2                 if(erect_measure_count==4)    
  75   2                    erect_measure_count=0;
  76   2                  switch(erect_measure_count)
  77   2                     {
  78   3                       case 0: 
  79   3                         P12=1;
  80   3                         delay4us();
  81   3                         P12=0;
  82   3                         switch_modify0=0;
  83   3                                         delay1us();
  84   3                         switch_modify1=0;
  85   3                                         delay1us();
  86   3                         break;
  87   3                       case 1:
  88   3                         P12=1;
  89   3                         delay4us();
  90   3                         P12=0;
  91   3                         switch_modify0=0;
  92   3                                         delay1us();
  93   3                         switch_modify1=1;
  94   3                                         delay1us();
  95   3                         break;
  96   3                       case 2:
  97   3                         P12=1;
  98   3                         delay4us();
  99   3                         P12=0;
 100   3                         switch_modify0=1;
 101   3                                         delay1us();
 102   3                         switch_modify1=0;
 103   3                                         delay1us();
 104   3                         break;
 105   3                       case 3:
 106   3                         P12=1;
 107   3                         delay4us();
 108   3                         P12=0;
 109   3                         switch_modify0=1;
 110   3                                         delay1us();
 111   3                         switch_modify1=1;
 112   3                                         delay1us();
 113   3                         break;
 114   3                     }
 115   2              key1_pressed_flag=0;
 116   2            }
 117   1         }
C51 COMPILER V7.20   MYTASK                                                                05/25/2005 03:08:55 PAGE 3   

 118                 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    233    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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