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

📄 keypad.lst

📁 51单片机驱动的LED点阵万年历显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.16   KEYPAD                                                                12/25/2008 19:46:19 PAGE 1   


C51 COMPILER V8.16, COMPILATION OF MODULE KEYPAD
OBJECT MODULE PLACED IN .\bin\keypad.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE src\keypad.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND PRINT(.\b
                    -in\keypad.lst) OBJECT(.\bin\keypad.obj)

line level    source

   1          #include<reg52.h>
   2          #include<rtx51tny.h>
   3          #include"inc/define.h"
   4          #include"inc/keypad.h"
   5          #include"inc/ds1302.h"
   6          #include"inc/8_8led.h"
   7          #include"inc/font.h"
   8          
   9          
  10          sbit key_up=P1^0;
  11          sbit key_down=P1^1;
  12          sbit key_enter=P1^2;
  13          sbit key_esc=P1^3;
  14          
  15          extern vu8 code * idata time_tab;
  16          extern vu8 code * idata week_tab;
  17          extern vu8 code * idata tempert;
  18          
  19          
  20          extern vu8 idata for_showh[6];
  21          extern vu8 idata for_showl[6];
  22          extern struct Pad ph[6],pl[6];
  23          
  24          extern u8 timerTime[7][2];
  25          
  26          extern bit show_menu;
  27          extern u8 * pmenu;
  28          
  29          u8 idata m_level=0;
  30          u8 idata levl1_p=0;
  31          u8 idata levl2_p=0;
  32          
  33          u8 valid=0;             //防止不恰当进入才的操作,即仅有从Enter键进入才是合法的
  34          u8 chge_time=0;
  35          u8 idata chgeh[6];
  36          u8 idata chgel[6];
  37          
  38          
  39          void keyDown(void )     _task_ 2
  40          {
  41   1              u8 i;
  42   1              u8 chge_num=0;
  43   1              u8 idata newTime[7][2]; 
  44   1              while(1)
  45   1              {
  46   2                      os_wait(K_SIG,0,0);
  47   2                      
  48   2                      if(!key_enter)
  49   2                      {
  50   3                              if(m_level==0)
  51   3                              {
  52   4                                      m_level++;
  53   4      
  54   4                                      valid=1;
C51 COMPILER V8.16   KEYPAD                                                                12/25/2008 19:46:19 PAGE 2   

  55   4                                      show_menu=1;
  56   4                              }
  57   3                              else if(m_level==1)
  58   3                              {                               
  59   4                                      m_level++;
  60   4      
  61   4                                      if(levl1_p==0)
  62   4                                      {
  63   5                                              pmenu=m_font[0] + levl2_p*4*32;
  64   5                                      }
  65   4                                      else if(levl1_p==1)             //设置时间
  66   4                                      {
  67   5                                              for(i=0;i<6;i++)
  68   5                                              {
  69   6                                                      chgeh[i]=for_showh[i];
  70   6                                                      chgel[i]=for_showl[i];
  71   6                                              }
  72   5                                              if(ph[0].pn==1)
  73   5                                              {
  74   6                                                      ph[0].pad[0] |=0x99;
  75   6                                                      ph[0].pad[1] |=0x99;            //选中第一个字符
  76   6                                              }
  77   5                                              else if(ph[0].pn==2)
  78   5                                              {
  79   6                                                      ph[0].pad[1] |=0x99;
  80   6                                                      ph[0].pad[2] |=0x99;
  81   6                                              }
  82   5      
  83   5                                              chge_time=1;    
  84   5                                      }
  85   4                                      else if(levl1_p==2)             //定时
  86   4                                      {
  87   5                                              for(i=0;i<6;i++)
  88   5                                              {
  89   6                                                      chgeh[i]=for_showh[i];
  90   6                                                      chgel[i]=for_showl[i];
  91   6                                              }
  92   5                                              if(ph[0].pn==1)
  93   5                                              {
  94   6                                                      ph[0].pad[0] |=0x99;
  95   6                                                      ph[0].pad[1] |=0x99;            //选中第一个字符
  96   6                                              }
  97   5                                              else if(ph[0].pn==2)
  98   5                                              {
  99   6                                                      ph[0].pad[1] |=0x99;
 100   6                                                      ph[0].pad[2] |=0x99;
 101   6                                              }
 102   5      
 103   5                                              chge_time=1;
 104   5                                      }
 105   4                              }
 106   3                              else if(m_level==2)
 107   3                              {
 108   4                              //      m_level++;              //至今菜单最深为二
 109   4      
 110   4                                      if(levl1_p==0)
 111   4                                      {
 112   5                                              if(levl2_p==0)
 113   5                                              {
 114   6                                                      time_tab=time_tab_cgst[0];
 115   6                                                      week_tab=week_tab_cgst[0];
 116   6                                                      tempert=tempert_cgst[0];
C51 COMPILER V8.16   KEYPAD                                                                12/25/2008 19:46:19 PAGE 3   

 117   6                                              }
 118   5                                              else if(levl2_p==1)
 119   5                                              {
 120   6                                                      time_tab=time_tab_jcst[0];
 121   6                                                      week_tab=week_tab_jcst[0];
 122   6                                                      tempert=tempert_jcst[0];
 123   6                                              }
 124   5                                              //退出菜单,显示时间
 125   5                                              show_menu=0;
 126   5                                              pmenu=menu[0] + levl1_p*(4*32);
 127   5                                              m_level=0;      //清除本次菜单操作的痕迹
 128   5                                              os_clear_signal(4);
 129   5                                              valid=0;        
 130   5                                      }
 131   4                                      else if(levl1_p==1)
 132   4                                      {       
 133   5                                              if(chge_num==11)
 134   5                                              {
 135   6                                                      newTime[6][1]=chgeh[0];         //设置年
 136   6                                                      newTime[6][0]=chgeh[1];
 137   6                                                      newTime[4][1]=chgeh[2];         //设置月
 138   6                                                      newTime[4][0]=chgeh[3];
 139   6                                                      newTime[3][1]=chgeh[4];         //设置日
 140   6                                                      newTime[3][0]=chgeh[5];
 141   6                                                      newTime[2][1]=chgel[0];         //设置年
 142   6                                                      newTime[2][0]=chgel[1];
 143   6                                                      newTime[1][1]=chgel[2];         //设置分
 144   6                                                      newTime[1][0]=chgel[3];
 145   6                                                      newTime[0][1]=chgel[4];         //设置秒
 146   6                                                      newTime[0][0]=chgel[5];
 147   6                                                      
 148   6                                                      pl[5].pad[0] &=0x66;
 149   6                                                      pl[5].pad[1] &=0x66;
 150   6                                                      setTime(newTime);
 151   6                                                      m_level--;
 152   6                                                      chge_num=0;
 153   6                                                      chge_time=0;
 154   6                                              }
 155   5                                              else
 156   5                                              {
 157   6                                                      chge_num++;
 158   6                                                      if(chge_num<6)
 159   6                                                      {
 160   7                                                              if(ph[chge_num].pn==1)
 161   7                                                              {
 162   8                                                                      ph[chge_num - 1].pad[1] &=0x66;
 163   8                                                                      ph[chge_num - 1].pad[2] &=0x66;
 164   8                                                                      ph[chge_num].pad[0] |=0x99;
 165   8                                                                      ph[chge_num].pad[1] |=0x99;             
 166   8                                                              }
 167   7                                                              else if(ph[chge_num].pn==2)
 168   7                                                              {
 169   8                                                                      ph[chge_num - 1].pad[0] &=0x66;
 170   8                                                                      ph[chge_num - 1].pad[1] &=0x66;
 171   8                                                                      ph[chge_num].pad[1] |=0x99;
 172   8                                                                      ph[chge_num].pad[2] |=0x99;
 173   8                                                              }
 174   7                                                      }
 175   6                                                      else
 176   6                                                      {
 177   7                                                              if(pl[chge_num -6].pn==1)
 178   7                                                              {
C51 COMPILER V8.16   KEYPAD                                                                12/25/2008 19:46:19 PAGE 4   

 179   8                                                                      pl[chge_num -6-1].pad[1] &=0x66;
 180   8                                                                      pl[chge_num -6-1].pad[2] &=0x66;
 181   8                                                                      pl[chge_num-6].pad[0] |=0x99;
 182   8                                                                      pl[chge_num-6].pad[1] |=0x99;           
 183   8                                                              }
 184   7                                                              else if(pl[chge_num -6].pn==2)
 185   7                                                              {
 186   8                                                                      pl[chge_num -6-1].pad[0] &=0x66;
 187   8                                                                      pl[chge_num -6-1].pad[1] &=0x66;
 188   8                                                                      pl[chge_num -6].pad[1] |=0x99;
 189   8                                                                      pl[chge_num -6].pad[2] |=0x99;
 190   8                                                              }
 191   7                                                      }
 192   6                                              }       
 193   5                                      }
 194   4                                      else if(levl1_p == 2)
 195   4                                      {
 196   5                                              if(chge_num==11)
 197   5                                              {
 198   6                                                      timerTime[6][1]=chgeh[0];               //设置年
 199   6                                                      timerTime[6][0]=chgeh[1];
 200   6                                                      timerTime[4][1]=chgeh[2];               //设置月
 201   6                                                      timerTime[4][0]=chgeh[3];

⌨️ 快捷键说明

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