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

📄 testclk_2.lst

📁 STC51单片机做的一个时钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   TESTCLK_2                                                             10/24/2008 09:41:08 PAGE 1   


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

stmt level    source

   1          #include <intrins.h>
   2          #include "STC89LE516AD.h"
   3          #define uchar unsigned char 
   4          #define uint unsigned int
   5          
   6          
   7          
   8          sbit ce = P4^0;
   9          sbit cl = P2^6;
  10          sbit di = P2^7;
  11          sbit P3_3 = P3^3;
  12          sbit P4_3 = P4^3;
  13          
  14          bit flag = 0,flag1 = 1,flag2 =0;
  15          uchar buffer[20];
  16          uchar sw,vol;
  17          uchar aa,count = 0,blinking = 0,mm;
  18          uchar second,minute,hour,second_h,second_l,minute_h,minute_l,hour_h,hour_l;
  19          uchar code table5[][3] = {{0xc0,0x40,0x1c},{0xc0,0,0},{0x40,0x44,0x15},{0xc0,0x44,0x05},//0,1,2,3
  20                                                           {0xc0,0x04,0x09},{0x80,0x44,0x0d},{0x80,0x44,0x1d},//4,5,6
  21                                                           {0xc0,0,0x04},{0xc0,0x44,0x1d},{0xc0,0x44,0x0d},};//7,8,9
  22          
  23          uchar code table6[][3] = {{0x80,0x81,0x38},{0x80,0x01,0},{0x80,0x88,0x2a},{0x80,0x89,0x0a},//0,1,2,3
  24                                                           {0x80,0x09,0x12},{0,0x89,0x1a},{0,0x89,0x3a},//4,5,6
  25                                                           {0x80,0x01,0x08},{0x80,0x89,0x3a},{0x80,0x89,0x1a},};//7,8,9
  26          
  27          uchar code table7[][2] = {{0x03,0x71},{0x03,0},{0x11,0x55},{0x13,0x15},//0,1,2,3
  28                                                      {0x13,0x24},{0x12,0x35},{0x12,0x75},//4,5,6
  29                                                      {0x03,0x10},{0x13,0x75},{0x13,0x35},};//7,8,9
  30          uchar code table8[][2] = {{0x06,0xe2},{0x06,0},{0x22,0xaa},{0x26,0x2a},//0,1,2,3
  31                                                      {0x26,0x48},{0x24,0x6a},{0x24,0xea},//4,5,6
  32                                                      {0x06,0x20},{0x26,0xea},{0x26,0x6a},};//7,8,9
  33          uchar code table9[][3] = {{0x0c,0xc4,0x01},{0x0c,0,0},{0x44,0x54,0x01},{0x4c,0x54,0},//0,1,2,3
  34                                                           {0x4c,0x90,0},{0x48,0xd4,0},{0x48,0xd4,0x01},//4,5,6
  35                                                           {0x0c,0x40,0},{0x4c,0xd4,0x01},{0x4c,0xd4,0},};//7,8,9
  36          
  37          uchar code table10[][3] = {{0x18,0x88,0x03},{0x18,0,0},{0x88,0xa8,0x02},{0x98,0xa8,0},//0,1,2,3
  38                                                           {0x98,0x20,0x01},{0x90,0xa8,0x01},{0x90,0xa8,0x03},//4,5,6
  39                                                           {0x18,0x80,0},{0x98,0xa8,0x03},{0x98,0xa8,0x01},};//7,8,9
  40          
  41          void clk_display();
  42          void up_key();
  43          void down_key();
  44          
  45          void delay(uint z)
  46          {
  47   1          uint x,y;
  48   1          for(x = 0;x < z;x ++)
  49   1              {
  50   2              for(y = 0;y < 110;y ++);
  51   2          }
  52   1      }
  53          
  54          void clear()
  55          {
C51 COMPILER V7.06   TESTCLK_2                                                             10/24/2008 09:41:08 PAGE 2   

  56   1              buffer[0] = 0;buffer[1] = 0;buffer[2] = 0;buffer[3] = 0;buffer[4] = 0;
  57   1          buffer[5] = 0;buffer[6] = 0;buffer[7] = 0;buffer[8] = 0;buffer[9] = 0;
  58   1              buffer[10] = 0;buffer[11] = 0;buffer[12] = 0;buffer[13] = 0;buffer[14] = 0;
  59   1          buffer[15] = 0;buffer[16] = 0;buffer[17] = 0;buffer[18] = 0;buffer[19] = 0x10;
  60   1      }
  61          
  62          void lcd_show()
  63          {
  64   1              uchar i,j,temp = 0x41;
  65   1              ce = 0;
  66   1              cl = 0;
  67   1              for(i = 0;i < 8;i ++)
  68   1              {
  69   2                      if(temp & 0x01)
  70   2                              di = 1;
  71   2                      else
  72   2                              di = 0;
  73   2                      
  74   2                      cl = 1;
  75   2                      _nop_();
  76   2                      _nop_();
  77   2                      _nop_();
  78   2                      temp = temp >> 1;
  79   2                      cl = 0;
  80   2              }
  81   1              ce = 1;
  82   1              for(i = 0;i < 20;i ++)
  83   1              {
  84   2                      temp = buffer[i];
  85   2                      for(j = 0;j < 8;j ++)
  86   2                      {
  87   3      
  88   3                              if(temp & 0x01)
  89   3                                      di = 1;
  90   3                              else
  91   3                                      di = 0;
  92   3                              
  93   3                              cl = 1;
  94   3                              _nop_();
  95   3                              _nop_();
  96   3                              _nop_();
  97   3                              temp = temp >> 1;
  98   3                              cl = 0;
  99   3                      }
 100   2              }       
 101   1      }
 102          
 103          void keyscan_knob()
 104          {
 105   1              uchar temp,temp1;
 106   1              if(P3_3 == 0)
 107   1              {
 108   2                      if(P4_3 == 0)
 109   2                              temp = 0;
 110   2                      else 
 111   2                              temp = 1;
 112   2              }
 113   1              else 
 114   1              {
 115   2                      if(P4_3 == 0)
 116   2                              temp = 2;
 117   2                      else 
C51 COMPILER V7.06   TESTCLK_2                                                             10/24/2008 09:41:08 PAGE 3   

 118   2                              temp = 3;
 119   2              }
 120   1              if(temp != sw)
 121   1              {
 122   2                      delay(1);
 123   2                      if(P3_3 == 0)
 124   2                      {
 125   3                              if(P4_3 == 0)
 126   3                                      temp1 = 0;
 127   3                              else 
 128   3                                      temp1 = 1;
 129   3                      }
 130   2                      else 
 131   2                      {
 132   3                              if(P4_3 == 0)
 133   3                                      temp1 = 2;
 134   3                              else 
 135   3                                      temp1 = 3;
 136   3                      }
 137   2                      if(temp == temp1)
 138   2                      {
 139   3                              if(temp == 0)
 140   3                              {
 141   4                                      if(sw == 2)
 142   4                                      {
 143   5                                              up_key();
 144   5                                      }
 145   4                                      else if(sw == 1)
 146   4                                      {
 147   5                                              down_key();
 148   5                                      }       
 149   4                              }
 150   3                              else if(temp == 3)
 151   3                              {
 152   4                                      if(sw == 1)
 153   4                                      {
 154   5                                              up_key();
 155   5                                      }
 156   4                                      else if(sw == 2)
 157   4                                      {
 158   5                                              down_key();
 159   5                                      }                       
 160   4                              }
 161   3                              sw = temp;
 162   3                      }
 163   2      
 164   2              }
 165   1      
 166   1      }
 167          void up_key()
 168          {
 169   1              if(flag)
 170   1              {
 171   2                      switch(count)
 172   2                      {
 173   3                              case 1:
 174   3                                              hour ++;
 175   3                                              if(hour == 24)
 176   3                                                      hour = 0;
 177   3                                              clk_display();
 178   3                                              break;
 179   3                              case 2:
C51 COMPILER V7.06   TESTCLK_2                                                             10/24/2008 09:41:08 PAGE 4   

 180   3                                              minute ++;
 181   3                                              if(minute == 60)
 182   3                                                      minute = 0;
 183   3                                              clk_display();
 184   3                                              break;
 185   3                              case 3:
 186   3                                              second ++;
 187   3                                              if(second == 60)
 188   3                                                      second = 0;                                     
 189   3                                              clk_display();
 190   3                                              break;                                                          
 191   3                      }
 192   2              }
 193   1      }
 194          void down_key()
 195          {
 196   1              if(flag)
 197   1              {
 198   2                      switch(count)
 199   2                      {
 200   3                              case 1:
 201   3                                              if(hour > 0)
 202   3                                                      hour --;
 203   3                                              else
 204   3                                                      hour = 23;
 205   3                                              clk_display();
 206   3                                              break;
 207   3                              case 2:
 208   3                                              if(minute > 0)
 209   3                                                      minute --;
 210   3                                              else
 211   3                                                      minute = 59;
 212   3                                              clk_display();
 213   3                                              break;
 214   3                              case 3:
 215   3                                              if(second > 0 )
 216   3                                                      second --;
 217   3                                              else
 218   3                                                      second = 59;
 219   3                                              clk_display();
 220   3                                              break;                                                          
 221   3                      }
 222   2              }
 223   1      }
 224          void Get_AD_Result(uchar channel)
 225          { 
 226   1          ADC_DATA = 0;
 227   1          ADC_CONTR = channel;    
 228   1          delay(1);              
 229   1          ADC_CONTR |= 0X08;     
 230   1          while((ADC_CONTR & 0x10) == 0);
 231   1          ADC_CONTR &= 0XF7;                     
 232   1      }
 233          void keyscan()
 234          {
 235   1              uchar t1;
 236   1              uchar t2;
 237   1              Get_AD_Result(2);
 238   1              t1 = ADC_DATA >> 4;
 239   1              delay(10);
 240   1              Get_AD_Result(2);
 241   1              if(ADC_DATA < 0xd0)

⌨️ 快捷键说明

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