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

📄 main.lst

📁 麦迪工作室51开发板LED数码管的驱动代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.00  MAIN                                                                   09/30/2007 23:44:12 PAGE 1   


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

stmt level    source

   1          #include "ATMEL89X51.H"
   2          #include <intrins.h>
   3          
   4          /*************************ds1302与at89s52引脚连接********************/
   5          sbit T_RST=P3^5; 
   6          sbit T_CLK=P3^6;                 
   7          sbit T_IO=P3^7;                 
   8                         
   9          #define KEY_CODE 0x0f
  10          #define KEY_PORT P2
  11          unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0~~9段码  //0~~9段码
  12          unsigned char play_bit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //确定哪一位显示
  13          unsigned char at24c02_velual[6];
  14          unsigned char key_velual;
  15          unsigned char Playvelual=0;
  16          unsigned char diode_set;
  17          unsigned char PlayMode_low = 1, PlayMode_hi = 0;
  18          unsigned char PlayAdd = 0,PlaySub = 0;
  19          unsigned char a1=0,a2=0,a3=0,a4=0,a5=0,a6=0;
  20          unsigned int flash_cont=0;
  21          //unsigned char clock_set[6];           //设置定时时间
  22          unsigned char led_play=0;                       //点亮led指示灯
  23          unsigned char play_mode = 0;
  24          unsigned char clock_cutt[15] = {0,0,12,1,1,07,0,0,12,0,0,12,0,0,12};  //秒,分,时,日,月,年,定时1秒分时
             -,定时2秒分时,定时3秒分时,
  25          unsigned char yue_fen[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
  26          unsigned char mode_cont = 0;
  27          
  28          void Read_key_code(void);
  29          void delay(unsigned char a);
  30          led_disp(unsigned char num,unsigned char vdata,unsigned char on_switch);
  31          Key_set(unsigned char sw);
  32          
  33          void time_interrupt_init(void)
  34          {
  35   1              TMOD = 0x01;
  36   1              TH0 = -(50000/256);
  37   1              TL0 = -(50000%256);
  38   1              ET0     =       1;
  39   1              TR0     =       1;
  40   1              EA = 1;
  41   1      }
  42          
  43          void time0(void)        interrupt 1
  44          {
  45   1              TH0 = -(50000/256);
  46   1              TL0 = -(50000%256);
  47   1              Read_key_code();
  48   1              Key_set(key_velual);
  49   1      }  
  50          
  51          unsigned key_flag=0;
  52          
  53          
  54          void Read_key_code(void)
C51 COMPILER V7.00  MAIN                                                                   09/30/2007 23:44:12 PAGE 2   

  55          {
  56   1              P2 = 0x0f;
  57   1              if(key_flag==0)
  58   1              {
  59   2              
  60   2                      if((P2 & 0x0f) != 0x0f)
  61   2                      {
  62   3                              P2 = 0x0f;
  63   3                              delay(10);
  64   3                              if((P2&0x0f) != 0x0f)
  65   3                              {
  66   4                                      key_velual = P2 & 0x0f;
  67   4                              //      while((P2&0x0f)!=0x0f);
  68   4                                      key_flag=1;
  69   4                      //      P2 = 0x0f;
  70   4                              }
  71   3                      }
  72   2               }
  73   1                      else if(key_flag!=0)
  74   1                      {       
  75   2                              key_velual=0;
  76   2                              if((P2 & 0x0f) == 0x0f)
  77   2                                      key_flag=0;
  78   2                      }
  79   1              
  80   1      }
  81          
  82          
  83          Key_set(unsigned char sw)
  84          {
  85   1              switch(sw)
  86   1         {
  87   2                      
  88   2                      case 0x0b: {
  89   3                                                      PlayMode_low++; 
  90   3                                                      if(PlayMode_low>3)      
  91   3                                                      {
  92   4                                                              PlayMode_low = 1;
  93   4                                                      }                               
  94   3                                              }       break;
  95   2                      case 0x07:      {       
  96   3                                                              PlayMode_hi++;
  97   3                                                                      PlayMode_low = 1;
  98   3                                                              if(PlayMode_hi>5)       
  99   3                                                              {
 100   4                                                                      PlayMode_hi = 0;
 101   4                                                              
 102   4                                                              }                               
 103   3                                                                      
 104   3                                                      }break;
 105   2      
 106   2                      case 0x0d: {
 107   3                                                                      PlayAdd++;
 108   3                                                                      
 109   3                                                      }break;
 110   2                      case 0x0e: {
 111   3                                                                      PlaySub++;
 112   3                                                                      
 113   3                                                      }break;
 114   2                      default:        //led_disp(5,seg[0],0);
 115   2                      break;
 116   2      /**/    }
C51 COMPILER V7.00  MAIN                                                                   09/30/2007 23:44:12 PAGE 3   

 117   1      }
 118          
 119          
 120          
 121          clock_play(unsigned char on_switch)
 122          {
 123   1                      int i,temp;
 124   1                      unsigned char flash1,flash2,flash3;
 125   1      
 126   1                      if(clock_cutt[0]>59)            //秒
 127   1                      {
 128   2                              clock_cutt[0] = 0;
 129   2                              clock_cutt[1]++;
 130   2                      }
 131   1                      if(clock_cutt[1]>59)            //分
 132   1                      {
 133   2                              clock_cutt[1] =0;
 134   2                              clock_cutt[2]++;
 135   2                      }
 136   1                      if(clock_cutt[2]>23)                            //时
 137   1                      {
 138   2                              clock_cutt[2]=0;        
 139   2                              clock_cutt[3]++; 
 140   2                              clock_cutt[1]=0;
 141   2                      }
 142   1                      
 143   1                      if(clock_cutt[5]%4 == 0)
 144   1                              yue_fen[1] = 29;
 145   1      
 146   1                      else if(clock_cutt[5]%4 != 0)
 147   1                              yue_fen[1] = 28;
 148   1      
 149   1                      temp =clock_cutt[4];  //读取当前月份
 150   1                      
 151   1                      if(clock_cutt[3]>yue_fen[temp-1])
 152   1                      {
 153   2                              clock_cutt[3] = 1;
 154   2                              clock_cutt[4]++;
 155   2                      }       
 156   1      
 157   1                      
 158   1                      if(clock_cutt[4]>12)
 159   1                      {
 160   2                              clock_cutt[4] = 1;
 161   2                              clock_cutt[5]++;
 162   2                      }
 163   1      
 164   1                      flash_cont++;
 165   1                      if(flash_cont>50)
 166   1                              flash_cont = 0;
 167   1                      if(flash_cont>25)
 168   1                      {
 169   2                              if(on_switch == 1)
 170   2                              {
 171   3                                      flash1=1;
 172   3                                      flash2=0;
 173   3                                      flash3=0;
 174   3                              }
 175   2                      else    if(on_switch == 2)
 176   2                              {
 177   3                                      flash1=0;
 178   3                                      flash2=1;
C51 COMPILER V7.00  MAIN                                                                   09/30/2007 23:44:12 PAGE 4   

 179   3                                      flash3=0;
 180   3                              }
 181   2                      else    if(on_switch == 3)
 182   2                              {
 183   3                                      flash1=0;
 184   3                                      flash2=0;
 185   3                                      flash3=1;
 186   3                              }
 187   2      
 188   2                      else    
 189   2                              {
 190   3                                      flash1=0;
 191   3                                      flash2=0;
 192   3                                      flash3=0;
 193   3                              }       
 194   2                      }
 195   1              else    
 196   1                      {
 197   2                                      flash1=0;
 198   2                                      flash2=0;
 199   2                                      flash3=0;
 200   2                      }       
 201   1      
 202   1                      for(i=0;i<8;i++)
 203   1                      {       
 204   2                              P2 = play_bit[i];
 205   2                              switch(i)
 206   2                              {
 207   3                                      case 0: 
 208   3                                              led_disp(1,seg[clock_cutt[play_mode]%10],flash3);
 209   3                                              break;
 210   3                                      case 1:
 211   3                                              led_disp(2,seg[clock_cutt[play_mode]/10],flash3);
 212   3                                              break;
 213   3                                      case 2:
 214   3                                              led_disp(3,seg[clock_cutt[play_mode+1]%10],flash2);
 215   3                                              break;
 216   3                                      case 3:
 217   3                                              led_disp(4,seg[clock_cutt[play_mode+1]/10],flash2);
 218   3                                              break;
 219   3                                      case 4:
 220   3                                              led_disp(5,seg[clock_cutt[play_mode+2]%10],flash1);
 221   3                                              break;
 222   3                                      case 5:
 223   3                                              led_disp(6,seg[clock_cutt[play_mode+2]/10],flash1);
 224   3                                              break;
 225   3                                      case 6:
 226   3                                              led_disp(7,led_play,0);
 227   3                                              break;
 228   3                                      case 7:
 229   3                                              led_disp(8,0x00,0);
 230   3                                              break;
 231   3                                      default:
 232   3                              //              P3_4 = 1;
 233   3                                              break;
 234   3                              }
 235   2                      }
 236   1      }
 237          
 238          void cutt_mode(void)
 239          {
 240   1                              if(PlayAdd != 0x00)     
C51 COMPILER V7.00  MAIN                                                                   09/30/2007 23:44:12 PAGE 5   

 241   1                              {
 242   2                                      play_mode = 3;
 243   2                                      mode_cont++;
 244   2                                      if(mode_cont >100)
 245   2                                      {
 246   3                                              PlayAdd = 0;
 247   3                                              mode_cont = 0;
 248   3                                      }

⌨️ 快捷键说明

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