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

📄 clock.lst

📁 KEIL编写用PROTEUS仿真的电子闹铃
💻 LST
字号:
C51 COMPILER V6.23a  CLOCK                                                                 08/11/2008 02:09:22 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE clock.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char 
   3          int j,k,i,a,h,m,A1,A2,A3,A4,A5,A6,second,min,hour;
   4          sbit key0=P1^0;
   5          sbit key1=P1^1;
   6          sbit key2=P1^2;
   7          sbit key3=P1^3;
   8          sbit key4=P1^4;
   9          sbit P2_7=P2^7;
  10          bit L=0;//长溢出标志位
  11          uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  12                                  0x80,0x90,0X88,0XC6,0XC7,0XFF};//编码0~9,A,C,L,全黑
  13          int code select[]={0x01,0x02,0x04,0x08,0x10,0x20};//位选通
  14          int time[3];
  15          int alarm1,alarm2;
  16          int con=0;con1=0;
  17          
  18          
  19          
  20          void delay(int i)//延时
  21          { for(j=i;j>0;j--)
  22   1         for(k=125;k>0;k--);
  23   1      }
  24          
  25          
  26           void t0(void) interrupt 1//1S延时
  27          { static int t;
  28   1        TF0=0;
  29   1        t++;
  30   1        if(t==15)
  31   1         {t=0;L=1;
  32   2         }
  33   1      }
  34          
  35          
  36          void display(uchar sh_c,uchar g_c,uchar sh_b,uchar g_b,uchar sh_a,uchar g_a)//显示部分
  37          {  P0=table[sh_c];
  38   1         P3=select[0];
  39   1         delay(5);
  40   1         P3=0;
  41   1        
  42   1         P0=table[g_c];
  43   1         P3=select[1]; 
  44   1         delay(5);
  45   1         P3=0;
  46   1           
  47   1         P0=table[sh_b];
  48   1         P3=select[2];
  49   1         delay(5);
  50   1         P3=0;
  51   1      
  52   1         P0=table[g_b];
  53   1         P3=select[3];
  54   1         delay(5);
  55   1         P3=0;
C51 COMPILER V6.23a  CLOCK                                                                 08/11/2008 02:09:22 PAGE 2   

  56   1         
  57   1         P0=table[sh_a];
  58   1         P3=select[4];
  59   1         delay(5);
  60   1         P3=0;
  61   1      
  62   1         P0=table[g_a];
  63   1         P3=select[5];
  64   1         delay(5);
  65   1         P3=0;
  66   1      }
  67          
  68          
  69          void timing (void)//数字调整
  70          { EA=0;
  71   1         if(!key1)
  72   1          {delay(10);
  73   2           while(!key1);
  74   2           con1++;TR0=0;ET0=0;     
  75   2          }
  76   1          if(con1>=2)
  77   1           con1=0;TR0=1;ET0=1;
  78   1          if(con1==0)  //分钟调整
  79   1                 { if(!key2)
  80   2                         {delay(10);
  81   3                     while(!key2);
  82   3                         { m++;
  83   4                                          if(m>=60) m=0;
  84   4                                        } 
  85   3                               }
  86   2                              if(!key3)
  87   2                         {delay(10);
  88   3                     while(!key3);
  89   3                         { m--;
  90   4                                          if(m<0) m=59;
  91   4                                        } 
  92   3                               }      
  93   2                         A3=m/10;A4=m%10; //闪动
  94   2                         delay(10);
  95   2                         A3=13;A4=13;
  96   2                         display(A1,A2,A3,A4,A5,A6);
  97   2                         delay(10);
  98   2                         A3=m/10;A4=m%10;
  99   2                      }
 100   1                if(con1==1)  //小时调整
 101   1                 { if(!key2)
 102   2                         {delay(10);
 103   3                     while(!key2);
 104   3                         { h++;
 105   4                                          if(h>=24) h=0;
 106   4                                        } 
 107   3                               }
 108   2                              if(!key3)
 109   2                         {delay(10);
 110   3                     while(!key3);
 111   3                         { h--;
 112   4                                          if(h<0) h=23;
 113   4                                        } 
 114   3                               }
 115   2                         A5=h/10;A6=h%10; //闪动
 116   2                         delay(10);
 117   2                         A5=13;A6=13;
C51 COMPILER V6.23a  CLOCK                                                                 08/11/2008 02:09:22 PAGE 3   

 118   2                         display(A1,A2,A3,A4,A5,A6);
 119   2                         delay(10);
 120   2                         A5=h/10;A6=h%10;
 121   2                      }
 122   1        EA=1;
 123   1      }      
 124          
 125          
 126          void function(void)//功能设置
 127          { if(!key0)
 128   1         { delay(10);
 129   2           while(!key0);
 130   2           con++;
 131   2                if(con>=3) con=0;
 132   2               }
 133   1         if(con==0)  
 134   1               { A1=time[0]/10;
 135   2            A2=time[0]%10;
 136   2            A3=time[1]/10;
 137   2            A4=time[1]%10;
 138   2                 A5=time[2]/10;
 139   2                 A6=time[2]%10;
 140   2                }                                  
 141   1               if(con==1)//设置时间
 142   1                { m=time[1];h=time[2];
 143   2                  timing ();
 144   2                  time[1]=m;time[2]=h;
 145   2                  A1=11;
 146   2             A2=12;
 147   2                       A3=time[1]/10;
 148   2             A4=time[1]%10;
 149   2                  A5=time[2]/10;
 150   2                  A6=time[2]%10;
 151   2                }
 152   1               if(con==2)//设置闹钟
 153   1                { m=alarm1;h=alarm2;
 154   2                  timing ();
 155   2                  alarm1=m;alarm2=h;
 156   2                  A1=10;
 157   2                  A2=12;
 158   2                       A3=alarm1/10;
 159   2             A4=alarm1%10;
 160   2                  A5=alarm2/10;
 161   2                  A6=alarm2%10;
 162   2                } 
 163   1      }
 164          
 165          void alarm(void)//闹钟开关
 166          {  if(key4==0)
 167   1               {if(time[1]==alarm1 && time[2]==alarm2)
 168   2                      { P2_7=0;
 169   3                        delay(10);
 170   3                        display(A1,A2,A3,A4,A5,A6);
 171   3                        P2_7=1;
 172   3                        delay(10);
 173   3                        display(A1,A2,A3,A4,A5,A6);
 174   3             } 
 175   2            else P2_7=1;
 176   2           }
 177   1               else P2_7=1;
 178   1      }
 179          
C51 COMPILER V6.23a  CLOCK                                                                 08/11/2008 02:09:22 PAGE 4   

 180          void main()
 181            { TMOD=0x01;TH0=0x01;TL0=0x6b;
 182   1          TR0=1;ET0=1;EA=1;
 183   1          while(1)
 184   1             { if(L)
 185   2                { L=0;time[0]++;
 186   3                  if(time[0]==60)
 187   3                   { time[0]=0;time[1]++;}
 188   3                  if(time[1]==60)
 189   3                   { time[1]=0;time[2]++;}
 190   3                                 if(time[2]==24) time[2]=0;
 191   3                }
 192   2                function();
 193   2                               alarm();
 194   2                display(A1,A2,A3,A4,A5,A6);
 195   2                      }
 196   1         }  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1097    ----
   CONSTANT SIZE    =     26    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     46       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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