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

📄 试验.lst

📁 此程序是基于51单片机的时钟显示的c程序,可分多种模式显示。
💻 LST
字号:
C51 COMPILER V8.01   试验                                                                  12/06/2008 02:59:39 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE 试验
OBJECT MODULE PLACED IN 试验.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 试验.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***********DS1302数码管时钟****************/
   2          
   3          
   4          #include <AT89X51.H>
   5          #include"ds1302.h"
   6          
   7          /*********宏定义***************/
   8          #define uint unsigned int
   9          #define uchar unsigned char
  10          
  11          
  12          
  13          /**************全局变量*******************/
  14          uchar led[]={0xc0,0xf9,0xa4,0xb0,0x99,
  15                       0x92,0x82,0xf8,0x80,0x90};//"0~9"代码
  16                  
  17          uchar bitcode[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选
  18          uchar l_1[8]={16,16,16,16,16,18,13,19};//"LOC"显示代码
  19          uchar l_2[8]={16,16,16,21,20,18,13,19};//"UNLOC"显示代码
  20          
  21          
  22          uchar c[8];//中间变量
  23          uchar cnt , cnt1 , mode1 ; //键盘扫描方式mode1
  24          bit mode_lock;//键盘锁定,1为锁定,0为解锁
  25          bit add_OR_dec_flag; //加减标志位,0为加,1为减
  26          
  27          /**************************************************/
  28          
  29          
  30          
  31          
  32          
  33          /***********z*1ms延时**************/
  34          void delay(uint z)
  35          {
  36   1       uint x , y ;
  37   1       for(x=z;x>0;x--)
  38   1       for(y=121;y>0;y--);
  39   1      }
  40          
  41          
  42          
  43          
  44          /*******中断,显示初始化************/
  45          void init()
  46          {
  47   1       TMOD=0x11;
  48   1       TH0=-1000/256;
  49   1       TL0=-1000%256;
  50   1       TR0=1;
  51   1       ET0=1;
  52   1      
  53   1       EA=1;
  54   1      
  55   1       mode1=0;
C51 COMPILER V8.01   试验                                                                  12/06/2008 02:59:39 PAGE 2   

  56   1       mode_lock=0;
  57   1      }
  58          
  59          
  60          
  61          /********定时器0中断子程序****************/
  62          /******功能:用于动态扫描数码管************/
  63          void  t0() interrupt 1
  64          {
  65   1       TH0=-1000/256;
  66   1       TL0=-1000%256;
  67   1       cnt++;
  68   1       if(cnt>7)cnt=0;
  69   1       switch(cnt)
  70   1       {
  71   2       case 0 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  72   2       case 1 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  73   2       case 2 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  74   2       case 3 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  75   2       case 4 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  76   2       case 5 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  77   2       case 6 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  78   2       case 7 : P0=led[c[cnt]];P1=bitcode[cnt];break;
  79   2       default:break;
  80   2       }
  81   1      }
  82          
  83          
  84          
  85          
  86          /********时间显示****************/
  87          void display_time()
  88          {
  89   1       c[0]=hour_h;
  90   1       c[1]=hour_l;
  91   1       c[2]=17;
  92   1       c[3]=min_h;
  93   1       c[4]=min_l;
  94   1       c[5]=17;
  95   1       c[6]=sec_h;
  96   1       c[7]=sec_l;
  97   1      }
  98          
  99          
 100          
 101          
 102          /**********时间调整************************/
 103          /******功能:按键P2_0:秒减******************/
 104          /******     按键P2_1:秒加******************/
 105          /******     按键P2_2:分减******************/
 106          /******     按键P2_3:分加******************/
 107          
 108          void sjtz()
 109          {
 110   1            if(P2_0==0)  //秒减
 111   1              {
 112   2                delay(10);
 113   2                if(P2_0==0)
 114   2                  {
 115   3                    add_OR_dec_flag=1;
 116   3                    Set(7,add_OR_dec_flag);//调用时间调整子程序,此程序在DS1302.H文件中
 117   3                    while(P2_0==0);
C51 COMPILER V8.01   试验                                                                  12/06/2008 02:59:39 PAGE 3   

 118   3                  }
 119   2              }
 120   1           if(P2_1==0)//秒加
 121   1              {
 122   2                delay(10);
 123   2                if(P2_1==0)
 124   2                  {
 125   3                                
 126   3                                add_OR_dec_flag=0;
 127   3                    Set(7,add_OR_dec_flag);//调用时间调整子程序,此程序在DS1302.H文件中
 128   3                    while(P2_1==0);
 129   3                  }
 130   2              }
 131   1            if(P2_2==0)  //分减
 132   1              {
 133   2                delay(10);
 134   2                if(P2_2==0)
 135   2                  {
 136   3                    add_OR_dec_flag=1;
 137   3                    Set(6,add_OR_dec_flag);//调用时间调整子程序,此程序在DS1302.H文件中
 138   3                    while(P2_2==0);
 139   3                              }
 140   2                 
 141   2              }
 142   1           if(P2_3==0)//分加
 143   1              {
 144   2                delay(10);
 145   2                if(P2_3==0)
 146   2                  {
 147   3                                
 148   3                                add_OR_dec_flag=0;
 149   3                    Set(6,add_OR_dec_flag);//调用时间调整子程序,此程序在DS1302.H文件中
 150   3                    while(P2_3==0);
 151   3                  }
 152   2              }
 153   1      
 154   1      }
 155          
 156          
 157          
 158          /*********主函数*************/
 159          void main()
 160          {
 161   1       uchar i ;
 162   1       init();
 163   1      
 164   1       while(1)
 165   1       {
 166   2       RTC_display();
 167   2       display_time();
 168   2       sjtz();//显示时间
 169   2      }
 170   1       display_time();
 171   1      
 172   1      }
*** WARNING C280 IN LINE 161 OF 试验.C: 'i': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    676    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V8.01   试验                                                                  12/06/2008 02:59:39 PAGE 4   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     79       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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