📄 time.lst
字号:
C51 COMPILER V7.06 TIME 11/09/2004 16:39:45 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //***********************************************************************
2 //FILE: time.c
3 //功能: 定义与时间相关的所有变量和相关处理函数
4 //***********************************************************************
5 #include"main.h"
6 #include"spi.h"
7 #include"key.h"
8 //***********************************************************************
9 uchar HalfSec; //秒信号量
10 uchar Year; //年低位
11 uchar Month; //月
12 uchar Day; //日
13 uchar Hour; //小时
14 uchar Minute; //分钟
15 uchar Second; //秒
16 uchar AlarmHour; //闹钟小时
17 uchar AlarmMinute; //闹钟分钟
18 uchar Alarm; //闹钟LED闪烁变量
19 bit Ampm; //AM/PM
20 bit AlarmAmpm; //闹钟AM/PM
21 bit BeepAlarm; //闹钟标志
22 bit RTCflag;
23 //***********************************************************************
24 uchar code DayTab[]= //月份天数表
25 { //2月除外
26 31,28,31,30,31,30,
27 31,31,30,31,30,31
28 };
29 //***********************************************************************
30 bit AddSecond() //秒加1函数
31 {
32 1 if(Second<59) //秒<59
33 1 {
34 2 Second++; //秒加1
35 2 return(0); //返回进位标志为0
36 2 }
37 1 else //秒>=59
38 1 {
39 2 Second=0; //秒清零
40 2 return(1); //返回进位标志为1
41 2 }
42 1 }
43 //***********************************************************************
44 bit ModifyMinute(bit b) //分调整函数
45 { //(b=1加1,否则减1)下同
46 1 if(b==1) //加1操作
47 1 {
48 2 if(Minute<59) //分<59
49 2 {
50 3 Minute++; //分加1
51 3 return(0); //返回进位标志为0
52 3 }
53 2 else //分>=59
54 2 {
55 3 Minute=0; //分清零
C51 COMPILER V7.06 TIME 11/09/2004 16:39:45 PAGE 2
56 3 return(1); //返回进位标志为1
57 3 }
58 2 }
59 1 else //减1操作
60 1 {
61 2 if(Minute>0) //分>0
62 2 Minute--; //分减1
63 2 else //分等于0
64 2 Minute=59; //分=59
65 2 return(0); //返回无进位标志
66 2 }
67 1 }
68 //***********************************************************************
69 bit ModifyHour(bit b) //小时调整函数
70 {
71 1 if(b==1) //加1操作
72 1 {
73 2 if(Hour<12) //小时<12
74 2 {
75 3 Hour++; //小时加1
76 3 return(0); //返回进位标志0
77 3 }
78 2 else //小时>=12
79 2 {
80 3 Hour=1; //小时=1
81 3 Ampm=!Ampm; //取反AM/PM
82 3 return(!Ampm); //如果AM为0则返回进位标志1
83 3 }
84 2 }
85 1 else //减1操作
86 1 {
87 2 if(Hour>1) //如果小时>1
88 2 Hour--; //则小时减1
89 2 else //否则
90 2 {
91 3 Hour=12; //小时=12
92 3 Ampm=!Ampm; //取反AMPM标志
93 3 }
94 2 return(0); //返回无进位标志
95 2 }
96 1
97 1 }
98 //***********************************************************************
99 void ModifyAlarmMinute(bit b) //闹钟分调整函数
100 {
101 1 if(b==1) //加1操作
102 1 {
103 2 if(AlarmMinute<59) //小于59则加1
104 2 AlarmMinute++;
105 2 else //否则清零
106 2 AlarmMinute=0;
107 2 }
108 1 else //减1操作
109 1 {
110 2 if(AlarmMinute>0) //大于0则减1
111 2 AlarmMinute--;
112 2 else //否则设置为59
113 2 AlarmMinute=59;
114 2 }
115 1 }
116
117 //***********************************************************************
C51 COMPILER V7.06 TIME 11/09/2004 16:39:45 PAGE 3
118 void ModifyAlarmHour(bit b) //闹钟小时调整函数
119 {
120 1 if(b==1) //加法操作
121 1 {
122 2 if(AlarmHour<12) //<12则加1
123 2 AlarmHour++;
124 2 else //否则闹钟小时置为1
125 2 {
126 3 AlarmHour=1;
127 3 AlarmAmpm=!AlarmAmpm; //取反闹钟AM/PM
128 3 }
129 2 }
130 1 else //减1操作
131 1 {
132 2 if(AlarmHour>1) //如果闹钟小时>1
133 2 AlarmHour--; //则减1
134 2 else
135 2 {
136 3 AlarmHour=12; //否则则置为12
137 3 AlarmAmpm=!AlarmAmpm; //取反闹钟AMPM标志
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -