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

📄 key.lst

📁 nokia5110智能电子钟的设计ds1302+ds18b20+stc12c5a60s2
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V9.00   KEY                                                                   07/01/2013 12:13:30 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN ..\output\key.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ..\c_file\key.c BROWSE INCDIR(..\c_file;..\h_file;..\output;..\project) DEB
                    -UG OBJECTEXTEND PRINT(.\key.lst) OBJECT(..\output\key.obj)

line level    source

   1          /**************************************************************************************
   2          *                                               子程序:底层程序                                                                      *                                                           
   3          *                                                   功能:按键处理,键值显示;                                                            *
   4          *                                                                                                                                                         *
   5          *                                                                                                                                                                         *
   6          ***************************************************************************************/
   7          # include "main.h"
   8          # include "ds1302.h"
   9          # include "nokia5110.h"
  10          # include "delay.h"
  11          # include "printf.h"
  12          # include "eeprom.h"
  13          uchar set=0;    //按键选择标志位;
  14          char key_flag=0;//按键加减标志位;
  15          uchar menue=0;  //菜单选择标志位;
  16          uchar ok=0;             //确认标志位;
  17          char miao,fen,shi,ri,yue,zhou,nian;/*时间日期数值标志位;*/
  18          
  19          uchar clocktable[5];     //分,时,星期;
  20          char hour=7;
  21          char minute=30;
  22          char week2=1;
  23          
  24          
  25          void Delay10ms()                //@11.0592MHz
  26          {
  27   1              unsigned char i, j;
  28   1      
  29   1              i = 108;
  30   1              j = 145;
  31   1              do
  32   1              {
  33   2                      while (--j);
  34   2              } while (--i);
  35   1      }
  36          
  37          
  38          
  39          void key()
  40          {
  41   1                        EA=0;
  42   1                       /*判断选择按键是否按下;如果按下了当松开的时候让背光打开;set++;*/
  43   1                       if(keyswitch==0)
  44   1                       {      
  45   2                        Delay10ms();
  46   2                              if(keyswitch==0)   
  47   2                              {  
  48   3                                      Delay10ms();
  49   3                                      while(keyswitch==0);                            
  50   3                                      LCD_BLA=1;
  51   3                                      if(set>8)set=0;
  52   3                                      set++;  
  53   3                              }
  54   2                      }
C51 COMPILER V9.00   KEY                                                                   07/01/2013 12:13:30 PAGE 2   

  55   1      
  56   1      
  57   1      
  58   1                      /*up和down按键的检测;加减标志位*/
  59   1                      if(keyup==0)
  60   1                      {       Delay10ms();
  61   2                              if(keyup==0)    
  62   2                              {       
  63   3                              LCD_BLA=1;                      
  64   3                              Delay10ms();
  65   3                              while(keyup==0);                        
  66   3                               
  67   3                               key_flag++;
  68   3                              }
  69   2                      }
  70   1      
  71   1                      if(keydown==0)
  72   1                      {       Delay10ms();
  73   2                              if(keydown==0)
  74   2                              {  
  75   3                              LCD_BLA=1;
  76   3                              Delay10ms();
  77   3                              while(keydown==0);              
  78   3              
  79   3                              key_flag--;
  80   3                              }
  81   2                      }
  82   1                       if(keymenue==0)
  83   1                      {
  84   2                      Delay10ms();
  85   2                      if(keymenue==0)   //菜单选择标志位;
  86   2                      {                               
  87   3                         Delay10ms();
  88   3                      while(keymenue==0);                                     
  89   3                        LCD_BLA=1;
  90   3                        menue++;
  91   3                        if(menue>3)menue=0;
  92   3                         
  93   3                      }
  94   2                      } if(keyok==0)
  95   1                       {
  96   2                        Delay10ms();
  97   2                        if(keyok==0)     //确认标志位;
  98   2                        {     Delay10ms();                                    
  99   3                        while(keyok==0);
 100   3                        ok++;
 101   3                        if(ok>1)ok=0;
 102   3                        set=0;LCD_BLA=0;TR0 = 0;
 103   3                        }
 104   2                        }
 105   1                 if(set>=2)TR0 = 0;
 106   1                 EA=1;
 107   1      }
 108          
 109          void set_date_time()
 110          
 111          {
 112   1      if(set==2)
 113   1      {       
 114   2              
 115   2      //      while(keyup==0|keydown==0);
 116   2              {       
C51 COMPILER V9.00   KEY                                                                   07/01/2013 12:13:30 PAGE 3   

 117   3              
 118   3                      miao=l_tmpdisplay[10]*10+l_tmpdisplay[11];
 119   3                      miao=miao+key_flag;
 120   3                      if((key_flag<0)&(miao==0))miao=59;
 121   3                      if(miao>59)miao=0;      
 122   3                      miao=miao%10+(miao/10)*16;
 123   3      
 124   3                      Write_Ds1302(0x8E,0x00);
 125   3                      Write_Ds1302(0x80,miao);
 126   3                      Write_Ds1302(0x8E,0x80);
 127   3      
 128   3              }
 129   2      
 130   2              
 131   2      }
 132   1      
 133   1      if(set==3)
 134   1      {               
 135   2      //   while(keyup==0||keydown==0);
 136   2         {
 137   3      
 138   3              fen=l_tmpdisplay[8]*10+l_tmpdisplay[9];
 139   3              fen=fen+key_flag;
 140   3              if(fen>59)
 141   3              {
 142   4              fen=0;
 143   4              }
 144   3      
 145   3              if((key_flag<0)&&(fen<0))
 146   3              {
 147   4              fen=59;
 148   4              }
 149   3      
 150   3              
 151   3              fen=fen%10+(fen/10)*16;
 152   3              
 153   3              Write_Ds1302(0x8E,0x00);
 154   3              Write_Ds1302(0x82,fen);
 155   3              Write_Ds1302(0x8E,0x80);
 156   3              }
 157   2      
 158   2      }
 159   1      if(set==4)
 160   1      {       
 161   2      // while(keyup==0||keydown==0);
 162   2      
 163   2      {
 164   3              shi=l_tmpdisplay[6]*10+l_tmpdisplay[7];
 165   3              shi=shi+key_flag;
 166   3              if(shi>23)shi=0;
 167   3              if((key_flag<0)&&(shi<0))shi=23;
 168   3          shi=shi%10+(shi/10)*16;
 169   3      
 170   3              Write_Ds1302(0x8E,0x00);
 171   3              Write_Ds1302(0x84,shi);
 172   3              Write_Ds1302(0x8E,0x80);
 173   3              }       
 174   2      }
 175   1      
 176   1      if(set==5)
 177   1      {   
 178   2      //   while(keyup==0||keydown==0);
C51 COMPILER V9.00   KEY                                                                   07/01/2013 12:13:30 PAGE 4   

 179   2         {
 180   3          ri=l_tmpdisplay[4]*10+l_tmpdisplay[5];
 181   3              ri=ri+key_flag;
 182   3              if(ri>31)ri=1;
 183   3              if((key_flag<0)&&(ri<1))ri=31;
 184   3              ri=ri%10+(ri/10)*16;
 185   3      
 186   3              Write_Ds1302(0x8E,0x00);
 187   3              Write_Ds1302(0x86,ri);
 188   3              Write_Ds1302(0x8E,0x80);
 189   3              }       
 190   2      }
 191   1      if(set==6)
 192   1      {       
 193   2      //while(keyup==0||keydown==0);
 194   2      {
 195   3          yue=l_tmpdisplay[2]*10+l_tmpdisplay[3];
 196   3              yue=yue+key_flag;
 197   3              if(yue>12)yue=1;
 198   3              if((key_flag<0)&&(yue<1))yue=12;
 199   3              yue=yue%10+(yue/10)*16;
 200   3      
 201   3              Write_Ds1302(0x8E,0x00);
 202   3              Write_Ds1302(0x88,yue);
 203   3              Write_Ds1302(0x8E,0x80);
 204   3              }       
 205   2      }
 206   1      if(set==7)
 207   1      {       
 208   2      //while(keyup==0||keydown==0);
 209   2      
 210   2      {
 211   3              zhou=l_tmpdisplay[12];
 212   3              zhou=zhou+key_flag;
 213   3              if(zhou>7)zhou=1;
 214   3              if((key_flag<0)&&(zhou<1))zhou=7;
 215   3              zhou=zhou%10+(zhou/10)*16;
 216   3      
 217   3              Write_Ds1302(0x8E,0x00);
 218   3              Write_Ds1302(0x8A,zhou);
 219   3              Write_Ds1302(0x8E,0x80);
 220   3              }       
 221   2      }
 222   1      if(set==8)
 223   1      {       
 224   2      //      while(keyup==0||keydown==0);
 225   2              {
 226   3              nian=l_tmpdisplay[0]*10+l_tmpdisplay[1]+key_flag;;
 227   3              if(nian>79)nian=0;
 228   3              if((key_flag<0)&&(nian<0))nian=79;
 229   3              
 230   3              nian=nian%10+(nian/10)*16;
 231   3      
 232   3              Write_Ds1302(0x8E,0x00);
 233   3              Write_Ds1302(0x8C,nian);
 234   3              Write_Ds1302(0x8E,0x80);
 235   3      
 236   3              }
 237   2                      
 238   2      }
 239   1      key_flag=0;     
 240   1                         
C51 COMPILER V9.00   KEY                                                                   07/01/2013 12:13:30 PAGE 5   

 241   1              
 242   1      }
 243          
 244          void caidan()
 245          {
 246   1                 uchar counter;
 247   1                 uchar function;
 248   1                      /*光标显示位置控制*/
 249   1                      if(menue==0)
 250   1                      {
 251   2                      LCD_write_hanzi(0,4,10);Delay1ms(120);LCD_write_hanzi(0,0,3);Delay1ms(120);LCD_write_hanzi(0,2,10);LCD_w

⌨️ 快捷键说明

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