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

📄 ledstatus.lst

📁 制袋机程序.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.09   LEDSTATUS                                                             04/21/2010 21:14:13 PAGE 1   


C51 COMPILER V8.09, COMPILATION OF MODULE LEDSTATUS
OBJECT MODULE PLACED IN E:\项目\制袋机\程序\制袋机~1\LEDSTATUS.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\项目\制袋机\程序\制袋机~1\LEDSTATUS.C DB SB OE

line level    source

   1          /***************************************
   2          * 文件名:LEDSTATUS.c
   3          * 描述:
   4          * 最后修改时间:2010.4.7
   5          ****************************************/
   6          
   7          #include "INCLUDES.H"
   8          
   9          //LED的状态(共13个LED)
  10          //LED1:led_status[0]
  11          //LED2:led_status[1]
  12          //LED3:led_status[2]
  13          //LED4:led_status[3]
  14          //LED5:led_status[4]
  15          //LED6:led_status[5]
  16          //LED7:led_status[6]
  17          //LED8:led_status[7]
  18          //LED9:led_status[8]
  19          //LED10:led_status[9]
  20          //LED11:led_status[10]
  21          //LED12:led_status[11]
  22          //LED13:led_status[12]
  23          static uchar xdata led_status[13] = {0};
  24          static bool xdata led_status_bChanged[13] = {false};
  25          //static uchar xdata led_status_decode[13] = {0};
  26          
  27          //LED13状态,0:灯亮 1:灯暗
  28          //  [7]    [6]    [5]    [4]    [3]    [2]    [1]    [0]
  29          //  L4/L5  L6/L7         L9     L3     L8     L2     L1
  30          //  极选   色选         停止   测试    运行  手动    设定
  31          
  32          //LED状态解码查询表
  33          static uchar code tab_led_status[10] = {0xFA,0x90,0x73,0xD3,0x99,0xCB,0xEB,0xD0,0xFB,0xDB};
  34          
  35          
  36          //====================================================================================
  37          //函数名称:void LEDSTATUS_INIT()
  38          //函数功能:底板电路状态读取初始化
  39          //入口参数:无
  40          //出口参数:无
  41          //====================================================================================
  42          void LEDSTATUS_INIT()
  43          {
  44   1        INT1=1;//INT1输出高电平
  45   1        IE1=0;//中断标志位清零
  46   1        IT1=1;//下降沿触发
  47   1        EX1=1;//INT1打开
  48   1      }
  49          
  50          //====================================================================================
  51          //函数名称:void LEDSTATUS_ISR() interrupt 2
  52          //函数功能:底板电路状态读取中断函数
  53          //入口参数:无
  54          //出口参数:无
  55          //====================================================================================
C51 COMPILER V8.09   LEDSTATUS                                                             04/21/2010 21:14:13 PAGE 2   

  56          void LEDSTATUS_ISR() interrupt 2
  57          {
  58   1          uchar addr = 0;
  59   1          uchar temp;
  60   1          EA = 0;//关中断
  61   1          //编码地址输出  A3    A2    A1    A0
  62   1          //对应引脚      p1.5  p1.4  p1.1  p1.0
  63   1          P1 |= 0x33;
  64   1          temp = P1;
  65   1          addr = ((temp & 0x30) >> 2) + (temp & 0x3);//CSn片选信号编码地址
  66   1          //LED1: addr = F
  67   1          //LED2: addr = E
  68   1          //LED3: addr = D
  69   1          //LED4: addr = C
  70   1          //LED5: addr = B
  71   1          //LED6: addr = 9
  72   1          //LED7: addr = 8
  73   1          //LED8: addr = 7
  74   1          //LED9: addr = 6
  75   1          //LED10: addr = 5
  76   1          //LED11: addr = 4
  77   1          //LED12: addr = 3
  78   1          //LED13: addr = A
  79   1          if(addr <= 9)
  80   1          {
  81   2            led_status[14 - addr] = LEDSTATUS_IN_ADDR;
  82   2            led_status_bChanged[14 - addr] = true;
  83   2          }
  84   1          else if(addr <= 10)
  85   1          {
  86   2            led_status[12] = LEDSTATUS_IN_ADDR;
  87   2            led_status_bChanged[12] = true;
  88   2          }
  89   1          else if(addr <= 15)
  90   1          {
  91   2            led_status[15 - addr] = LEDSTATUS_IN_ADDR;
  92   2            led_status_bChanged[15 - addr] = true;
  93   2          }
  94   1          else
  95   1          {
  96   2            //do nothing
  97   2          }
  98   1          EA = 1;//开中断
  99   1      }
 100          
 101          //====================================================================================
 102          //函数名称:void Update_LEDSTATUS()
 103          //函数功能:底板电路状态解码并更新到全局变量g_Status
 104          //入口参数:无
 105          //出口参数:无
 106          //====================================================================================
 107          void Update_LEDSTATUS()
 108          {
 109   1        uchar i,j;
 110   1        uchar decode;
 111   1      
 112   1        //12个数码管状态的解码
 113   1        for(i = 0; i < 12; i++)
 114   1        {
 115   2          if(led_status_bChanged[i])
 116   2          {
 117   3            led_status_bChanged[i] = false;
C51 COMPILER V8.09   LEDSTATUS                                                             04/21/2010 21:14:13 PAGE 3   

 118   3      
 119   3            decode = 0xff;
 120   3            for(j = 0; j < 10; j++)
 121   3            {
 122   4              if((led_status[i]&0xfb) == tab_led_status[j])
 123   4              {
 124   5                decode = j;
 125   5                break;
 126   5              }
 127   4            }
 128   3            switch(i)
 129   3            {
 130   4              case 0:
 131   4              {
 132   5                //g_Status.LENGTH_4 = decode;
 133   5                //g_Status.bUpdated_LENGTH_4 = true;
 134   5                g_Status.ItemState[5] = decode;
 135   5                g_Status.bUpdated_ItemState[5] = true;
 136   5                break;
 137   5              }
 138   4              case 1:
 139   4              {
 140   5                //g_Status.LENGTH_3 = decode;
 141   5                //g_Status.bUpdated_LENGTH_3 = true;
 142   5                g_Status.ItemState[6] = decode;
 143   5                g_Status.bUpdated_ItemState[6] = true;
 144   5                break;
 145   5              }
 146   4              case 2:
 147   4              {
 148   5                //g_Status.LENGTH_2 = decode;
 149   5                //g_Status.bUpdated_LENGTH_2 = true;
 150   5                g_Status.ItemState[7] = decode;
 151   5                g_Status.bUpdated_ItemState[7] = true;
 152   5                break;
 153   5              }
 154   4              case 3:
 155   4              {
 156   5                //g_Status.LENGTH_1 = decode;
 157   5                //g_Status.bUpdated_LENGTH_1 = true;
 158   5                g_Status.ItemState[8] = decode;
 159   5                g_Status.bUpdated_ItemState[8] = true;
 160   5                break;
 161   5              }
 162   4              case 4:
 163   4              {
 164   5                //g_Status.SPEED = decode;
 165   5                //g_Status.bUpdated_SPEED = true;
 166   5                g_Status.ItemState[10] = decode;
 167   5                g_Status.bUpdated_ItemState[10] = true;
 168   5                break;
 169   5              }
 170   4              case 5:
 171   4              {
 172   5                //g_Status.GEPI_2 = decode;
 173   5                //g_Status.bUpdated_GEPI_2 = true;
 174   5                g_Status.ItemState[15] = decode;
 175   5                g_Status.bUpdated_ItemState[15] = true;
 176   5                break;
 177   5              }
 178   4              case 6:
 179   4              {
C51 COMPILER V8.09   LEDSTATUS                                                             04/21/2010 21:14:13 PAGE 4   

 180   5                //g_Status.GEPI_1 = decode;
 181   5                //g_Status.bUpdated_GEPI_1 = true;
 182   5                g_Status.ItemState[16] = decode;
 183   5                g_Status.bUpdated_ItemState[16] = true;
 184   5                break;
 185   5              }
 186   4              case 7:
 187   4              {
 188   5                //g_Status.COUNT_5 = decode;
 189   5                //g_Status.bUpdated_COUNT_5 = true;
 190   5                g_Status.ItemState[0] = decode;
 191   5                g_Status.bUpdated_ItemState[0] = true;

⌨️ 快捷键说明

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