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

📄 万年日历.lst

📁 万年日历设计
💻 LST
字号:
C51 COMPILER V7.06   万年日繽                                                              07/15/2012 20:15:16 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 万年日繽
OBJECT MODULE PLACED IN .\obj\万年日历.obj
COMPILER INVOKED BY: D:\单片机相关软件\51单片机软件大全\Keil uVision2 软件\安装\C51\BIN\C51.EXE 万年日历.c BROWSE DEBUG 
                    -OBJECTEXTEND OBJECT(.\obj\万年日历.obj)

stmt level    source

   1          #include"init.h"
   2          #include"delay.h"
   3          #include"12864.h"
   4          #include"ds1302.h"
   5          #include"ds18b20.h"
   6          
   7          uchar code weektable[14]="一二叁四五六日";
   8          
   9          uchar code table1[]="2012年12月31日";
  10          
  11          uchar code table2[]="23时59分45秒";
  12          
  13          uchar code table3[]="星期:叁 ";
  14          
  15          uchar code table4[]="温度:+25.8 ℃";
  16          
  17          /**********************************************************
  18                          
  19                                   //BCD编码转换成十进制 
  20          
  21          **********************************************************/
  22          uchar transform0(uchar time)  
  23          {
  24   1              return((time/16)*10+(time%16));
  25   1      }
  26          /**********************************************************
  27                          
  28                                   ds1302时钟读取的值分离后写入数组中 
  29          
  30          **********************************************************/
  31          void time_in()
  32          {
  33   1              clock_reda();
  34   1      
  35   1              clock[0]=transform0(year)/10; //年十位
  36   1              clock[1]=transform0(year)%10; //年个位
  37   1      
  38   1              clock[2]=transform0(mouth)/10;//月个位
  39   1              clock[3]=transform0(mouth)%10;//月个位
  40   1      
  41   1              clock[4]=transform0(day)/10;  //日个位
  42   1              clock[5]=transform0(day)%10;  //日个位
  43   1      
  44   1              clock[6]=weektable[(week-1)*2];//星期位
  45   1              clock[7]=weektable[(week)*2-1];
  46   1      
  47   1              clock[8]=transform0(hour)/10;  //时个位
  48   1              clock[9]=transform0(hour)%10;  //时个位
  49   1      
  50   1              clock[10]=transform0(minute)/10;//分个位
  51   1              clock[11]=transform0(minute)%10;//分个位
  52   1      
  53   1              clock[12]=transform0(sec)/10;   //秒个位
  54   1              clock[13]=transform0(sec)%10;   //秒个位
C51 COMPILER V7.06   万年日繽                                                              07/15/2012 20:15:16 PAGE 2   

  55   1      }
  56          /**********************************************************
  57                          
  58                                   ds18b20读取温度值存入数组中 
  59          
  60          **********************************************************/
  61          void temperture()
  62          {
  63   1              int temp;
  64   1              uint TempH,TempL;
  65   1              delay_nms(1);
  66   1              temp =readtemperture();
  67   1              if(temp&0x8000)
  68   1              {
  69   2                   TempData[0]='-';//负号标志
  70   2                   temp=~temp;     // 取反加1
  71   2                       temp +=1;
  72   2          }
  73   1              else
  74   1                   TempData[0]='+';   
  75   1           TempH=temp>>4;
  76   1           TempL=temp&0x0F;
  77   1           TempL=TempL*6;  //小数近似处理             
  78   1           if((TempH/100==0)&&((TempH%100)/10==0))  //消隐
  79   1                  TempData[1]='H';
  80   1           else
  81   1              TempData[1]=(TempH%100)/10+0x30;   //十位温度
  82   1           TempData[2]=(TempH%100)%10+0x30;   //个位温度
  83   1               TempData[3]='.';
  84   1           TempData[4]=TempL/10+0x30;   //小数十位温度
  85   1               TempData[5]=TempL%10+0x30;   //小数个位温度
  86   1      }
  87          /**********************************************************
  88                          
  89                                         ds1302时钟显示
  90          
  91          **********************************************************/
  92          void display()
  93          {
  94   1              time_in();    //ds1302时钟读取的值分离后写入数组中
  95   1              temperture();  //ds18b20读取温度值存入数组中
  96   1      
  97   1              char2_12864(1,2,0); //年
  98   1              char2_12864(1,4,2); //月
  99   1              char2_12864(1,6,4); //日        
 100   1      
 101   1              char2_12864(2,1,8);  //时
 102   1              char2_12864(2,3,10); //分
 103   1              char2_12864(2,5,12); //秒
 104   1      
 105   1              char2_12864(3,5,6); //星期      
 106   1              char2_12864(4,4,0);     //温度
 107   1      }
 108          
 109          void main(void)
 110          {
 111   1              init_ds1302();  //ds1302初始化
 112   1              init_12864();   //12864初始化
 113   1              char_12864(1,0,0x02);  //笑脸
 114   1              string_12864(1,1,table1);
 115   1              string_12864(2,1,table2);
 116   1              string_12864(3,2,table3);
C51 COMPILER V7.06   万年日繽                                                              07/15/2012 20:15:16 PAGE 3   

 117   1              string_12864(4,1,table4);
 118   1              while(1)
 119   1              {
 120   2                      display(); //显示
 121   2              }
 122   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    565    ----
   CONSTANT SIZE    =     67    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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