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

📄 main.lst

📁 C语言单片机编程的代码及教程文献
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN ..\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\App\main.c BROWSE INCDIR(H:\子程序\子程序\LCD1602\new_clock\Include\) DE
                    -BUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(..\main.obj)

line level    source

   1          
   2          #include"include.h"
   3          
   4           //函数声明
   5           void Up_date();
   6           void Up_disp();
   7           void To_almarray();
   8           extern void Song_delay();
   9           void Play();
  10          
  11           //定义新旧日期/时间变量
  12           struct date new_date,old_date;
  13           struct time new_time,old_time,alm_time;
  14          
  15            //定义软件延时计数变量
  16             uchar secount=0;
  17          
  18            //定义闹钟开关变量
  19            bit on=0;
  20            bit K1=1;
  21          
  22            //定义扬声器引脚
  23            sbit speaker=P1^0; 
  24          code uchar menu3[16]="--Made by Zheng@";
  25          code uchar menu4[16]="Kunlong &Lorise@";
  26           code uchar dispweek[7][4]={"Mon@","Tus@","Wes@","Thu@","Fir@","Sat@","Sun@"};
  27           code uchar menu1[16]="1.Time 2.Alarm @";
  28           code uchar menu2[16]="3.manufacturer@";
  29           code uchar alarm_menu[]="Alarm time@";
  30           code uchar onoff[2][4]={"OFF@","ON @"};
  31          
  32           //定义时间、日期显示数组
  33           struct disptime disp_time,disp_almtime;
  34           struct dispdate disp_date;
  35          
  36          //--------------------------------------------------------------------------
  37          /******************定义音乐表***************************************/
  38          uint code musictab[]={64103,64260,64400,64524,
  39          64580,64684,64777,64820,64898,64968,65030,
  40          65058,65110,65157,65178,65217,65252,65282};
  41          
  42          /***************************音乐谱***************************************/
  43          uchar code songtab[]={0x92,0xa2,0xc6,0xa2,0xc4,0xa2,0x92,0xa2,0xa2,0xa2,
  44          0x92,0xa4,0x92,0xa2,0xc6,0xa2,0xc4,0xa2,0x92,0xa2,
  45          0x92,0x92,0x72,0x64,0x62,0x72,0x56,0x32,0x54,0x22,
  46          0xa2,0xa2,0x92,0x92,0x72,0x74,0x62,0x72,0x56,0x32,
  47          0x72,0x92,0x92,0x72,0x9c,0x92,0xa2,0xc6,0xa2,0xc4,
  48          0xa2,0x92,0xa2,0xa2,0xa2,0x92,0xa4,0x92,0xa2,0xc6,
  49          0xa2,0xc4,0xa2,0x92,0xa2,0x92,0x92,0x72,0x64,0x62,
  50          0x72,0x56,0x32,0x54,0x22,0xa2,0xa2,0x92,0x92,0x72,
  51          0x74,0x62,0x72,0x66,0xa2,0x92,0x72,0x72,0x62,0x52,
  52          0x56,0x02,0x92,0x92,0xa2,0xd2,0xc2,0xc2,0xa2,0xc4,
  53          0xa2,0x92,0x22,0xa2,0xa2,0x92,0xa4,0x92,0xa2,0xd2,
  54          0xc2,0xc2,0xa2,0xc4,0xa2,0x92,0xa2,0x92,0x72,0x72,
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 2   

  55          0x64,0x62,0x72,0x56,0x32,0x62,0xa2,0xa2,0x92,0x92,
  56          0x72,0x74,0x62,0x72,0x66,0x52,0x64,0xa2,0x92,0x94,
  57          0x04,0x72,0x62,0x62,0x74,0x5e,0x04,0x04,0x04,0x04,
  58          0x74,0x74,0x74,0x72,0x32,0x3e,0x74,0x74,0x74,0x72,
  59          0x92,0x3e,0x66,0x72,0x64,0x74,0x96,0x72,0x68,0x64,
  60          0x62,0x72,0x94,0xa4,0x9e,0x00};
  61          /******************定义音乐相关变量***************************************/
  62          uchar time1,time2,tvar,play_point=0;
  63          uchar hcount,lcount;
  64          
  65          
  66          /***************计时中断程序*******************/
  67          void time() interrupt 1
  68           {
  69   1          TH0=0x3c;
  70   1          TL0=0xd3;
  71   1          secount++;
  72   1          if(secount==20)
  73   1            {
  74   2                   secount=0;
  75   2               new_time.second++;
  76   2               if(new_time.second>=60)
  77   2                     {
  78   3                            new_time.second=0;
  79   3                        new_time.minute++;
  80   3                        if(new_time.minute>=60)
  81   3                          {
  82   4                                         new_time.minute=0;
  83   4                                 new_time.hour++;
  84   4                                 if(new_time.hour>=24)
  85   4                                  {
  86   5                                                 new_time.hour=0;
  87   5                                                 Up_date();
  88   5                                              }
  89   4                              }
  90   3                      }
  91   2             }
  92   1              if(on&&Get_keynum()==15)
*** WARNING C206 IN LINE 92 OF ..\APP\MAIN.C: 'Get_keynum': missing function-prototype
  93   1                 K1=0;
  94   1       }
  95          
  96          
  97          
  98          /******************音乐中断程序****************************/
  99          void time_int() interrupt 3
 100           {
 101   1         speaker=~speaker;
 102   1         TH1=hcount;
 103   1         TL1=lcount;
 104   1       }
 105          
 106          
 107          
 108          //初始化函数
 109          void Init()
 110           {
 111   1         //初始化时间变量
 112   1         new_time.second=old_time.second=0;
 113   1         new_time.minute=old_time.minute=0;
 114   1         new_time.hour=old_time.hour=0;
 115   1      
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 3   

 116   1         //初始化闹钟时间变量
 117   1         alm_time.second=30;
 118   1         alm_time.minute=50;
 119   1         alm_time.hour=7;
 120   1      
 121   1         //初始化日期变量
 122   1         new_date.year=old_date.year=2007;
 123   1         new_date.month=old_date.month=5;
 124   1         new_date.day=old_date.day=10;
 125   1         new_date.week=old_date.week=3;
 126   1      
 127   1         //初始化时间显示数组
 128   1         disp_time.hour[2]='@';
 129   1         disp_time.minute[2]='@';
 130   1         disp_time.second[2]='@';
 131   1      
 132   1         //初始化闹钟时间显示数组
 133   1         disp_almtime.hour[2]='@';
 134   1         disp_almtime.minute[2]='@';
 135   1         disp_almtime.second[2]='@';
 136   1      
 137   1         //初始化日期显示数组
 138   1         disp_date.year[4]='@';
 139   1         disp_date.month[2]='@';
 140   1         disp_date.day[2]='@';
 141   1      
 142   1         To_almarray();
 143   1         Init_LCD();
 144   1      
 145   1         TMOD=0x11;
 146   1         TH0=0x3c;
 147   1         TL0=0xd3;
 148   1         IE=0x8a;
 149   1         speaker=1;
 150   1         TR0=1;
 151   1      
 152   1      
 153   1       }
 154          
 155          void Disp_menu1()
 156          {
 157   1         Dis_string(1,1,menu3);
 158   1         Dis_string(2,1,menu4); 
 159   1      }
 160          
 161          
 162          void Disp_menu()
 163          {
 164   1         Dis_string(1,1,menu1);
 165   1         Dis_string(2,1,menu2); 
 166   1      }
 167          void Dis_date(struct dispdate date1)
 168           {
 169   1         Dis_string(1,2,date1.year);
 170   1         Dis_string(1,6,"/@");
 171   1         Dis_string(1,7,date1.month);
 172   1         Dis_string(1,9,"/@");
 173   1         Dis_string(1,10,date1.day);
 174   1       }
 175          
 176          
 177          void Dis_time(struct disptime time1)
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 4   

 178           {
 179   1         Dis_string(2,3,time1.hour);
 180   1         Dis_string(2,5,":@");
 181   1         Dis_string(2,6,time1.minute);
 182   1         Dis_string(2,8,":@");
 183   1         Dis_string(2,9,time1.second);
 184   1       }
 185          
 186          
 187          //显示所有数据
 188          void Disp_all()
 189           {
 190   1         Dis_date(disp_date);
 191   1         Dis_string(1,14,dispweek[new_date.week-1]);
 192   1         Dis_time(disp_time);
 193   1       }
 194          
 195          
 196          void To_almvalue()
 197           {
 198   1         alm_time.hour=(disp_almtime.hour[0]-'0')*10+(disp_almtime.hour[1]-'0');
 199   1         alm_time.minute=(disp_almtime.minute[0]-'0')*10+(disp_almtime.minute[1]-'0');
 200   1         alm_time.second=(disp_almtime.second[0]-'0')*10+(disp_almtime.second[1]-'0');   
 201   1       }
 202          
 203          
 204          
 205          //把显示数组的值转换为十进制数值
 206          void To_value()
 207           {
 208   1         new_date.year=(disp_date.year[0]-'0')*1000+(disp_date.year[1]-'0')*100
 209   1                            +(disp_date.year[2]-'0')*10+(disp_date.year[3]-'0');
 210   1         new_date.month=(disp_date.month[0]-'0')*10+(disp_date.month[1]-'0');
 211   1         new_date.day=(disp_date.day[0]-'0')*10+(disp_date.day[1]-'0');
 212   1      
 213   1         new_time.hour=(disp_time.hour[0]-'0')*10+(disp_time.hour[1]-'0');
 214   1         new_time.minute=(disp_time.minute[0]-'0')*10+(disp_time.minute[1]-'0');
 215   1         new_time.second=(disp_time.second[0]-'0')*10+(disp_time.second[1]-'0');
 216   1       }
 217          
 218          
 219          
 220          void To_almarray()
 221           {
 222   1              disp_almtime.hour[0]=alm_time.hour/10+'0';
 223   1              disp_almtime.hour[1]=alm_time.hour%10+'0';
 224   1              disp_almtime.minute[0]=alm_time.minute/10+'0';
 225   1              disp_almtime.minute[1]=alm_time.minute%10+'0';
 226   1              disp_almtime.second[0]=alm_time.second/10+'0';
 227   1              disp_almtime.second[1]=alm_time.second%10+'0';   
 228   1       }
 229          
 230          //
 231          void To_array()
 232           {
 233   1          disp_date.year[0]=old_date.year/1000+'0';
 234   1              disp_date.year[1]=(old_date.year/100)%10+'0';
 235   1              disp_date.year[2]=(old_date.year/10)%10+'0';
 236   1              disp_date.year[3]=old_date.year%10+'0';
 237   1              disp_date.month[0]=old_date.month/10+'0';
 238   1              disp_date.month[1]=old_date.month%10+'0';
 239   1              disp_date.day[0]=old_date.day/10+'0';
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 5   

 240   1              disp_date.day[1]=old_date.day%10+'0';
 241   1      
 242   1              disp_time.hour[0]=old_time.hour/10+'0';
 243   1              disp_time.hour[1]=old_time.hour%10+'0';
 244   1              disp_time.minute[0]=old_time.minute/10+'0';
 245   1              disp_time.minute[1]=old_time.minute%10+'0';
 246   1              disp_time.second[0]=old_time.second/10+'0';
 247   1              disp_time.second[1]=old_time.second%10+'0';
 248   1       }
 249          
 250          
 251          /***********************日期更新函数************************/
 252          void Up_date()
 253           {
 254   1          new_date.week++;
 255   1          if(new_date.week==8) 
 256   1                 new_date.week=1;
 257   1          new_date.day++;
 258   1          if(new_date.day>=29)
 259   1            {
 260   2                   switch(new_date.month)
 261   2                 {
 262   3                           case 2:
 263   3                         {
 264   4                                    if(new_date.year%4==0&&new_date.year%100!=0||new_date.year%400==0)
 265   4                                          { 
 266   5                               if(new_date.day==30) 
 267   5                                     {
 268   6                                                    new_date.day=0;
 269   6                                        new_date.month++;
 270   6                                     }
 271   5                                 else 
 272   5                                            {
 273   6                                                   new_date.day=0;
 274   6                                                       new_date.month++;
 275   6                                                }
 276   5                                               }
 277   4                               break;
 278   4                         }
 279   3                        case 1:case 3:case 5:case 7:case 8:case 10:case 12:
 280   3                           {
 281   4                                         if(new_date.day==32)
 282   4                                   {
 283   5                                                  new_date.day=0;
 284   5                                                      new_date.month++;
 285   5                                               }
 286   4                                 break;
 287   4                               }
 288   3                       case 4:case 6:case 9:case 11:
 289   3                         {
 290   4                                   if(new_date.day==31)
 291   4                                 {
 292   5                                            new_date.day=0;
 293   5                                                new_date.month++;
 294   5                                         }
 295   4                               break;
 296   4                             }
 297   3                     }
 298   2                  if(new_date.month==13) 
 299   2                    {
 300   3                       new_date.month=0;
 301   3                           new_date.year++;
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 6   

 302   3                    }
 303   2                  if(new_date.year==6000) 
 304   2                     new_date.year=0;
 305   2            }
 306   1        }
 307          
 308          
 309          

⌨️ 快捷键说明

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