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

📄 main.lst

📁 实时时钟简单版 推荐下载
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   MAIN                                                                  05/12/2007 12:43:55 PAGE 1   


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

line level    source

   1          /*基于DS1302和LCD1602的万年历*/
   2          /*具有光标显示,按键调时功能*/
   3          /*作者:田开坤*/
   4          /*key0:模式选择*/
   5          /*key1:减操作*/
   6          /*key2:加操作*/
   7          /*key0:返回*/
   8          /*2007.04.09*/
   9          #include "STC89C51RC.H"
  10          #include "LCD1602.h"
  11          #include "DS1302.h"
  12          #include <absacc.h>
  13          
  14          #define UP 0xff
  15          #define DOWN 0x0
  16          #define uchar unsigned char
  17          #define uint unsigned int
  18          
  19          sbit  key3 = P3^5;
  20          sbit  key2 = P3^4;//Up
  21          sbit  key1 = P3^3;//Down
  22          sbit  key0 = P3^2;//Modle
  23          
  24          //1302调时函数
  25          void data_change(uchar data_name,uchar up_down,uchar max,uchar n)
  26          {
  27   1              uchar tmp;
  28   1              uchar tmp1;
  29   1              
  30   1              tmp1 = Read1302(data_name);
  31   1              tmp = ((tmp1>>4)&0x0f)*10 + (tmp1 & 0x0f);
  32   1      
  33   1              if (up_down){
  34   2                      if(tmp < max){
  35   3                              tmp+=n;
  36   3                              tmp1=(((tmp/10)<<4) | (tmp%10));
  37   3                              Write1302(data_name,tmp1);                                              
  38   3                      }
  39   2              }
  40   1              else{
  41   2                      if(tmp >= n){
  42   3                              tmp-=n;
  43   3                              tmp1=(((tmp/10)<<4) | (tmp%10));
  44   3                              Write1302(data_name,tmp1);
  45   3                      }
  46   2              }
  47   1      }
  48          
  49          
  50          
  51          main()
  52          {
  53   1              uint loop_count=0;      
  54   1              uint key0_count=0;
  55   1              uint key1_count=0;
C51 COMPILER V8.02   MAIN                                                                  05/12/2007 12:43:55 PAGE 2   

  56   1              uint key2_count=0;
  57   1              uchar modle_flag=0;
  58   1              uchar cursor_line=2;    
  59   1              uchar cursor_conumn=10; 
  60   1              uchar nset_time=1;
  61   1      
  62   1              SYSTEMTIME CurrentTime;
  63   1              Initial_DS1302();
  64   1              LCD_Init();
  65   1              LCD_SET_CURSOR(1,1);
  66   1              Print("Date:",5);       
  67   1              LCD_SET_CURSOR(2,1);
  68   1              Print("Time:",5);
  69   1      
  70   1              while(1){               
  71   2                      if(loop_count++>10000){
  72   3                              DS1302_GetTime(&CurrentTime);   
  73   3                              DateToStr(&CurrentTime);
  74   3                              TimeToStr(&CurrentTime);
  75   3      
  76   3                              LCD_CURSOR_ONOFF(1);//关闭光标
  77   3                              LCD_SET_CURSOR(1,6);
  78   3                              Print(CurrentTime.DateString,8);
  79   3                                                      
  80   3                              LCD_SET_CURSOR(2,6);
  81   3                              Print(CurrentTime.TimeString,8);
  82   3      
  83   3                              loop_count = 0;
  84   3                              if(nset_time) LCD_CURSOR_ONOFF(1);
  85   3                              else{
  86   4                                      LCD_CURSOR_ONOFF(2);//显示光标
  87   4                                      LCD_SET_CURSOR(cursor_line,cursor_conumn);
  88   4                              } 
  89   3                      }
  90   2      
  91   2                      if(key0==0)     {  
  92   3                              if(key0_count++>25000)  {
  93   4                                      nset_time = 0;
  94   4                                      modle_flag++;
  95   4                                      switch(modle_flag) {
  96   5                                              case 1:
  97   5                                                      cursor_line = 2;
  98   5                                                      cursor_conumn = 10;
  99   5                                                      break;
 100   5                                              
 101   5                                              case 2:
 102   5                                                      cursor_line = 2;
 103   5                                                      cursor_conumn = 9;                                      
 104   5                                                      break;
 105   5                                              case 3:
 106   5                                                      cursor_line = 2;
 107   5                                                      cursor_conumn = 7;
 108   5                                                      break;
 109   5                                              
 110   5                                              case 4:
 111   5                                                      cursor_line = 2;
 112   5                                                      cursor_conumn = 6;                                      
 113   5                                                      break;
 114   5                                              case 5:
 115   5                                                      cursor_line = 1;
 116   5                                                      cursor_conumn = 13;
 117   5                                                      break;
C51 COMPILER V8.02   MAIN                                                                  05/12/2007 12:43:55 PAGE 3   

 118   5                                              
 119   5                                              case 6:
 120   5                                                      cursor_line = 1;
 121   5                                                      cursor_conumn = 12;                                     
 122   5                                                      break;
 123   5                                              case 7:
 124   5                                                      cursor_line = 1;
 125   5                                                      cursor_conumn = 10;
 126   5                                                      break;
 127   5                                              
 128   5                                              case 8:
 129   5                                                      cursor_line = 1;
 130   5                                                      cursor_conumn = 9;                                      
 131   5                                                      break;

⌨️ 快捷键说明

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