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

📄 lm4229_ds1302.lst

📁 带T6963C控制器的240128液晶图形显示C程序
💻 LST
字号:
C51 COMPILER V8.05a   LM4229_DS1302                                                        10/22/2008 10:25:56 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE LM4229_DS1302
OBJECT MODULE PLACED IN lm4229_ds1302.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE lm4229_ds1302.c DEBUG OBJECTEXTEND

line level    source

   1          //=====================================
   2          //   proteus仿真论坛:http://proteus.5d6d.com
   3          //     祝福北京,祝福奥运
   4          //          北京欢迎你
   5          //     时钟暂未加设置时间功能
   6          //=====================================
   7          #include<reg52.h>
   8          #include<math.h>
   9          #include<absacc.h>
  10          #include<ds1302.h>
  11          #include<lm4229.h>
  12          
  13          //                0123  67  1011 1516 1819 2122
  14          uchar tab_time[]="2008年08月08日 00:00:00 星期";
  15                            /*年 月 日 时  分 秒 星期 */
  16          
  17          
  18          sbit k1=P3^3;
  19          sbit k2=P3^4;
  20          
  21          //--------------------------
  22          //------- 函数声明  --------
  23          void trans();
  24          void key_scan();
  25          void week();
  26          void delay(uint);
  27          
  28          //============================================
  29          //             主函数
  30          //============================================
  31          void main()
  32          {
  33   1       lcd_init();
  34   1       write_lcd(10,0,"------------------------------");
  35   1       write_lcd(102,0,"------------------------------");
  36   1      // write_lcd(0,0,"2008年08月08日 00:00:00 星期五"); 
  37   1       write_lcd(22,1,"同");
  38   1       write_lcd(38,1,"一");
  39   1       write_lcd(54,1,"个");
  40   1       write_lcd(72,1,"世");
  41   1       write_lcd(90,1,"界");
  42   1       write_lcd(22,27,"同");
  43   1       write_lcd(38,27,"一");
  44   1       write_lcd(54,27,"个");
  45   1       write_lcd(72,27,"梦");
  46   1       write_lcd(90,27,"想");
  47   1       write_lcd(112,0," 四川师大 电子工程学院 聂金波");
  48   1       //write_pic(30,5);   //北京欢迎你  大字
  49   1       //write_lcd(70,8,"2008 北京奥运");    //黑体
  50   1       write_image(30,6,80,72,tab_image_h);   //显示涛哥 80*72
  51   1       write_image(26,17,56,75,tab_image_w);  //显示宝宝 56*75
  52   1       while(1)
  53   1       {
  54   2         ds1302();
  55   2         trans();
C51 COMPILER V8.05a   LM4229_DS1302                                                        10/22/2008 10:25:56 PAGE 2   

  56   2         write_lcd(0,0,tab_time);
  57   2         week();
  58   2       }
  59   1      }
  60          
  61          
  62          //----------------------------------
  63          //         按键函数
  64          //----------------------------------
  65          void key_scan()
  66          {
  67   1       if(k1==0)
  68   1        {
  69   2         delay(5);
  70   2         if(k1==0)
  71   2          {
  72   3           tab_time[2]++;
  73   3          }
  74   2        }
  75   1      }
  76          
  77          void delay(uint k)
  78          {
  79   1        uint i,j;
  80   1        for(i=k;i>0;i--)
  81   1          for(j=110;j>0;j--);
  82   1      }
  83          
  84          //------------------------------------------
  85          //              数据转换
  86          //------------------------------------------
  87          void trans()
  88          {
  89   1       tab_time[2]=tab_1302[6]/10+'0';     //年十位
  90   1       tab_time[3]=tab_1302[6]%10+'0';     //年个位
  91   1       tab_time[6]=tab_1302[4]/10+'0';     //月十位
  92   1       tab_time[7]=tab_1302[4]%10+'0';     //月个位
  93   1       tab_time[10]=tab_1302[3]/10+'0';     //日十位
  94   1       tab_time[11]=tab_1302[3]%10+'0';     //日个位
  95   1       tab_time[15]=tab_1302[2]/10+'0';     //小时十位
  96   1       tab_time[16]=tab_1302[2]%10+'0';     //小时个位
  97   1       tab_time[18]=tab_1302[1]/10+'0';     //分十位
  98   1       tab_time[19]=tab_1302[1]%10+'0';     //分个位
  99   1       tab_time[21]=tab_1302[0]/10+'0';     //秒十位
 100   1       tab_time[22]=tab_1302[0]%10+'0';     //秒个位
 101   1      }
 102          
 103          
 104          //------------------------------------------
 105          //              星期显示
 106          //------------------------------------------
 107          void week()
 108          {
 109   1       uchar i;
 110   1       if(tab_1302[5]==1)
 111   1       {i=7;}
 112   1       else 
 113   1       {i=tab_1302[5]-1;}      /*实时时钟里的值是6,但是2008/08/08是星期五,所以减1,
 114   1                                   Proteus的问题??  */
 115   1       switch(i)
 116   1        {
 117   2         case 1: write_lcd(0,28,"一");  break;
C51 COMPILER V8.05a   LM4229_DS1302                                                        10/22/2008 10:25:56 PAGE 3   

 118   2         case 2: write_lcd(0,28,"二");  break;
 119   2         case 3: write_lcd(0,28,"三");  break;
 120   2         case 4: write_lcd(0,28,"四");  break;
 121   2         case 5: write_lcd(0,28,"五");  break;
 122   2         case 6: write_lcd(0,28,"六");  break;
 123   2         case 7: write_lcd(0,28,"日");  break;
 124   2         default: ;  break;  //其它情况  
 125   2       }
 126   1      }
 127          //==============================================
 128          
 129          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1630    ----
   CONSTANT SIZE    =   4983    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     43      26
   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 + -