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

📄 time.lst

📁 51edn开发板程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN Time.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Time.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************
   2             本程序只供学习使用,未经作者许可,不得用于其它任何用途
   3                                  
   4                          欢迎访问我的USB专区:http://group.ednchina.com/93/
   5                          欢迎访问我的blog:   http://www.ednchina.com/blog/computer00
   6                                                                   http://computer00.21ic.org
   7                                                                                                                                                                                                                                                  
   8          time.c  file
   9          
  10          作者:Computer-lov
  11          建立日期: 2008
  12          修改日期: 2008
  13          版本:V1.0
  14          版权所有,盗版必究。
  15          Copyright(C) Computer-lov 2008-2018
  16          All rights reserved
  17          *******************************************************************/
  18          
  19          #include "key.h"
  20          #include "uart.h"
  21          #include "lcd1602.h"
  22          #include "ds1302.h"
  23          #include "main.h"
  24          #include "240x.h"
  25          
  26          uint8 AlarmTime[4]={0,0,0,0};   //闹钟时间
  27          uint8 AlarmTemperature=50;      //报警温度
  28          
  29          /********************************************************************
  30          函数功能:将日期转换为需要显示的字符串。
  31          入口参数:无。
  32          返    回:无。
  33          备    注:无。
  34          ********************************************************************/
  35          void DateToString(void)
  36          {
  37   1              DispBuffer[0]='2';
  38   1              DispBuffer[1]='0';
  39   1              DispBuffer[2]='0'+(Time[6]>>4); //年
  40   1              DispBuffer[3]='0'+(Time[6]&0x0F);
  41   1              DispBuffer[4]='-';
  42   1              DispBuffer[5]='0'+(Time[4]>>4); //月
  43   1              DispBuffer[6]='0'+(Time[4]&0x0F);
  44   1              DispBuffer[7]='-';
  45   1              DispBuffer[8]='0'+(Time[3]>>4); //日期
  46   1              DispBuffer[9]='0'+(Time[3]&0x0F);
  47   1              DispBuffer[10]=' ';
  48   1              DispBuffer[11]=' ';
  49   1              DispBuffer[12]='0'+(Time[5]&0x0F); //星期
  50   1              DispBuffer[13]=0;
  51   1      }
  52          ////////////////////////End of function//////////////////////////////
  53          
  54          /********************************************************************
  55          函数功能:将时间转换为需要显示的字符串。
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 2   

  56          入口参数:无。
  57          返    回:无。
  58          备    注:无。
  59          ********************************************************************/
  60          void TimeToString(void)
  61          {
  62   1              DispBuffer[0]='0'+(Time[2]>>4);
  63   1              DispBuffer[1]='0'+(Time[2]&0x0F);       //小时
  64   1              DispBuffer[2]=':';
  65   1              DispBuffer[3]='0'+(Time[1]>>4); //分
  66   1              DispBuffer[4]='0'+(Time[1]&0x0F);
  67   1              DispBuffer[5]=':';
  68   1              DispBuffer[6]='0'+(Time[0]>>4); //秒
  69   1              DispBuffer[7]='0'+(Time[0]&0x0F);
  70   1              DispBuffer[8]=0;
  71   1      }
  72          ////////////////////////End of function//////////////////////////////
  73          
  74          /********************************************************************
  75          函数功能:显示时间函数。
  76          入口参数:无。
  77          返    回:无。
  78          备    注:无。
  79          ********************************************************************/
  80          void DispTime(void)
  81          {
  82   1              GetTime(Time);
  83   1              Prints("Date: ");
  84   1              DateToString();
  85   1              Prints(DispBuffer);
  86   1      #ifdef LCD //如果有LCD,则同时显示到LCD上
  87   1              if(DispStatus==DISP_TIME)
  88   1              {
  89   2                      LcdCls();
  90   2                      LcdSetPosition(0x02);
  91   2                      LcdPrints(DispBuffer);
  92   2              }
  93   1      #endif
  94   1      
  95   1              Prints("\r\nTime: ");
  96   1              TimeToString();
  97   1              Prints(DispBuffer);
  98   1              Prints("\r\n");
  99   1      #ifdef LCD //如果有LCD,则同时显示到LCD上
 100   1              if(DispStatus==DISP_TIME)
 101   1              {
 102   2                      LcdSetPosition(0x44);
 103   2                      LcdPrints(DispBuffer);
 104   2              }
 105   1      #endif
 106   1      }
 107          ////////////////////////End of function//////////////////////////////
 108          
 109          /********************************************************************
 110          函数功能:设置时间函数。
 111          入口参数:无。
 112          返    回:无。
 113          备    注:无。
 114          ********************************************************************/
 115          void DispSetTime(void)
 116          {
 117   1              uint8 SetDigit=1;
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 3   

 118   1              uint8 on=0;
 119   1              uint8 TimeModified=0;
 120   1              uint8 t;
 121   1              uint8 NeedRefresh;
 122   1              uint16 OldTick;
 123   1              
 124   1              Prints("Waiting for input: ");
 125   1              while(1)
 126   1              {
 127   2               if(KeyDown) //有按键按下
 128   2                      {
 129   3                       if(KeyDown&(KEY1|KEY2|KEY3|KEY8))return; //按下这些键放弃设置时间,返回
 130   3                              if(KeyDown&KEY4)
 131   3                              {
 132   4                               if(TimeModified) //如果对时间做了修改
 133   4                                      {
 134   5                                       BeepOn(); //蜂鸣器响,提示正在保存设置
 135   5                                       SetTime(Time); //保存设置的时间
 136   5                                              BeepOff();
 137   5                                      }
 138   4                                      DispStatus=DISP_TIME; //切换回时间显示状态
 139   4                                      KeyDown&=~KEY4;
 140   4                                      return;
 141   4                              }
 142   3                              if(KeyDown&KEY5) //切换调整位
 143   3                              {
 144   4                                      SetDigit++; //切换到下一位
 145   4                                      if(SetDigit>=14)SetDigit=1; //到最后一位,返回
 146   4                               KeyDown&=~KEY5;
 147   4                                      NeedRefresh=1; //需要刷新显示
 148   4                              }
 149   3                              if(KeyDown&KEY6) //减1调整
 150   3                              {
 151   4                                      TimeModified=1; //修改了时钟
 152   4                                      NeedRefresh=1; //需要刷新显示
 153   4                               switch(SetDigit) //调整不同的位 
 154   4                                      {
 155   5                                       case 1: //年高位
 156   5                                                      t=Time[6]>>4;
 157   5                                                      if(t>0)t--;
 158   5                                                      else t=9;
 159   5                                                      Time[6]&=0x0F;
 160   5                                                      Time[6]|=t<<4;
 161   5                                                      break;
 162   5                                                      
 163   5                                              case 2:  //年低位
 164   5                                                      t=Time[6]&0x0F;
 165   5                                                      if(t>0)t--;
 166   5                                                      else t=9;
 167   5                                                      Time[6]&=0xF0;
 168   5                                                      Time[6]|=t;
 169   5                                              break;
 170   5                                              
 171   5                                              case 3: //月高位
 172   5                                                      t=(Time[4]>>4)&0x01;
 173   5                                                      if(t!=0)t=0;
 174   5                                                      else
 175   5                                                      {
 176   6                                                              t=1;
 177   6                                                              Time[4]&=0xF0;
 178   6                                                      }
 179   5                                                      Time[4]&=0x0F;
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 4   

 180   5                                                      Time[4]|=t<<4;
 181   5                                              break;
 182   5                                              
 183   5                                              case 4: //月低位
 184   5                                                      t=Time[4]&0x0F;
 185   5                                                      if((Time[4]>>4)==0)
 186   5                                                      {
 187   6                                                       if(t>0)t--;
 188   6                                                              else t=9;
 189   6                                                      }
 190   5                                                      else
 191   5                                                      {
 192   6                                                       if(t>0)t--;
 193   6                                                              else t=2;
 194   6                                                      }
 195   5                                                      Time[4]&=0xF0;
 196   5                                                      Time[4]|=t;
 197   5                                              break;
 198   5                                              
 199   5                                              case 5: //天高位
 200   5                                               t=(Time[3]>>4)&0x03;
 201   5                                                      if((Time[4]&0x1F)==2)
 202   5                                                      {
 203   6                                                              if(t>0)t--;
 204   6                                                              else t=2;
 205   6                                                      }
 206   5                                                      else
 207   5                                                      {
 208   6                                                       if(t>0)t--;
 209   6                                                       else 

⌨️ 快捷键说明

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