📄 main.lst
字号:
149 3 uStopwatch_DisBuffer[4]=temp%10;
150 3
151 3 temp = iCounter_Inter3_temp/100/60;
152 3 uStopwatch_DisBuffer[0]=temp/10;
153 3 uStopwatch_DisBuffer[1]=temp%10;
154 3 }
155 2 }else //计时功能
156 1 {
157 2 if (!(iCounter_Inter3%100)) //100ms的整数倍
158 2 {
159 3 uHoures = uTime_DisBuffer[0]*10+uTime_DisBuffer[1];
160 3 uMinitues = uTime_DisBuffer[3]*10+uTime_DisBuffer[4];
161 3 uSeconds = uTime_DisBuffer[6]*10+uTime_DisBuffer[7];
162 3 uSeconds++;
163 3 if (uSeconds==60)
164 3 {
165 4 uMinitues++;
166 4 uSeconds = 0;
167 4 }
168 3 if ((alarm_flag==0)&&(uSeconds>3)) //整点报时
169 3 {
170 4 SPEAKER = 1;
171 4 }
172 3
173 3 if (uMinitues==60)
174 3 {
175 4 uHoures++;
176 4 uMinitues = 0;
177 4 SPEAKER = 0;
178 4 }
179 3 if (uHoures==24)
C51 COMPILER V8.05a MAIN 01/11/2008 12:42:17 PAGE 4
180 3 {
181 4 uHoures=0;
182 4 uYear_DisBuffer[7]++;
183 4
184 4 iYear = 2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
185 4 uMonth = uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
186 4 uDate = uYear_DisBuffer[6]*10+uYear_DisBuffer[7];
187 4 switch (uMonth) //几月份,大月小月
188 4 { //大月
189 5 case 1:
190 5 case 3:
191 5 case 5:
192 5 case 7:
193 5 case 8:
194 5 case 10:
195 5 case 12:
196 5 if (uDate<31)
197 5 {
198 6 uDate++;
199 6 }else
200 5 {
201 6 uMonth++;
202 6 uDate=1;
203 6 }
204 5 break;
205 5 //平月
206 5 case 2:
207 5 if( (!(iYear%4)) && ( ((!(iYear%100))&&(!(iYear%400))) || (iYear%100) ) )//闰年
208 5 {
209 6 if (uDate<29)
210 6 {
211 7 uDate++;
212 7 }else
213 6 {
214 7 uMonth++;
215 7 uDate=1;
216 7 }
217 6 }else
218 5 {
219 6 if (uDate<28)
220 6 {
221 7 uDate++;
222 7 }else
223 6 {
224 7 uMonth++;
225 7 uDate=1;
226 7 }
227 6 }
228 5 break;
229 5 //小月
230 5 case 4:
231 5 case 6:
232 5 case 9:
233 5 case 11:
234 5 if (uDate<30)
235 5 {
236 6 uDate++;
237 6 }else
238 5 {
239 6 uMonth++;
240 6 uDate=1;
241 6 }
C51 COMPILER V8.05a MAIN 01/11/2008 12:42:17 PAGE 5
242 5 break;
243 5 }
244 4 if(uMonth==13)
245 4 {
246 5 iYear++;
247 5 uMonth = 1;
248 5 }
249 4 uYear_DisBuffer[0] = (iYear-2000)/10;
250 4 uYear_DisBuffer[1] = (iYear-2000)%10;
251 4
252 4 uYear_DisBuffer[3] = uMonth/10;
253 4 uYear_DisBuffer[4] = uMonth%10;
254 4
255 4 uYear_DisBuffer[6] = uDate/10;
256 4 uYear_DisBuffer[7] = uDate%10;
257 4
258 4 uWeek_DisBuffer[7]++;
259 4 if(uWeek_DisBuffer[7]==8)
260 4 {
261 5 uWeek_DisBuffer[7]=1;
262 5 }
263 4 }
264 3 uTime_DisBuffer[0]=uHoures/10;
265 3 uTime_DisBuffer[1]=uHoures%10;
266 3
267 3 uTime_DisBuffer[3]=uMinitues/10;
268 3 uTime_DisBuffer[4]=uMinitues%10;
269 3
270 3 uTime_DisBuffer[6]=uSeconds/10;
271 3 uTime_DisBuffer[7]=uSeconds%10;
272 3
273 3 if ( (uAlarm_DisBuffer[0]==uTime_DisBuffer[0])&&(uAlarm_DisBuffer[1]==uTime_DisBuffer[1])
274 3 &&(uAlarm_DisBuffer[3]==uTime_DisBuffer[3])&&(uAlarm_DisBuffer[4]==uTime_DisBuffer[4])
275 3 &&(uAlarm_DisBuffer[6]==uTime_DisBuffer[6])&&(uAlarm_DisBuffer[7]==uTime_DisBuffer[7]) )
276 3 {
277 4 SPEAKER = 0;
278 4 uSeconds_temp = uSeconds;
279 4 alarm_flag=1;
280 4 }
281 3 if (uSeconds>(uSeconds_temp+10))
282 3 {
283 4 SPEAKER = 1;
284 4 alarm_flag=0;
285 4 }
286 3 }
287 2 }
288 1 }
289 void main()
290 {
291 1 uint i=0;
292 1 uint j=0;
293 1 uchar KeyValue;
294 1 uchar RepeatCnt;
295 1 uchar FnKeyValue;
296 1
297 1 TH1 = 0XD8; TL1 = 0XF0; TR1 = 1; //每1MS进入一次定时器1中断
298 1 SPEAKER = 1;
299 1 SystemInit(); //系统初始化
300 1
301 1 ClearAll();
302 1 EA = 0;
303 1 IT0 = 1; //负边沿触发中断
C51 COMPILER V8.05a MAIN 01/11/2008 12:42:17 PAGE 6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -