📄 main.lst
字号:
166 2 break;
167 2 default:
168 2 break;
169 2 }
170 1
171 1 //显示闹钟的控制变量处理
172 1 if(AdjustMode != ADJUST_DISABLE)
173 1 DisplayAlarm=0;
174 1
175 1 }
176 /*********************************************************
177 函数名称:DeelKey()
178 函数功能:处理调整按键的加一或减一
179 入口参数:无
C51 COMPILER V8.08 MAIN 02/05/2009 15:57:55 PAGE 4
180 出口参数:无
181 备 注:
182 *********************************************************/
183 void DeelKey(uchar *temp)
184 {
185 1 switch(KeyValue)
186 1 {
187 2 case KEY_INC: //如果为"增加"按键
188 2 DdaInc(temp);
189 2 break;
190 2 case KEY_DEC: //如果为"减少"按键
191 2 DdaDec(temp);
192 2 break;
193 2 /*case KEY_DISPLAY_ALARM: //如果为"显示闹钟"按键
194 2 DisplayAlarm = 1;
195 2 break; */
196 2 default:
197 2 break;
198 2 }
199 1 }
200 /*********************************************************
201 函数名称:DeelDisplay()
202 函数功能:根据调整的模式处理显示数据
203 入口参数:无
204 出口参数:无
205 备 注:
206 *********************************************************/
207 void DeelDisplay(void)
208 {
209 1 //显示闹钟的数值
210 1 if(DisplayAlarm==1)
211 1 {
212 2 DynamicDisplay(AlmHour,AlmMinute);
213 2 AlarmLedShine();
214 2 SecondLedOff();
215 2 }
216 1 //根据调整模式显示
217 1 else
218 1 {
219 2 switch(AdjustMode)
220 2 {
221 3 case ADJUST_HOUR: //显示时钟的时,分灭零处理,一下过程类似
222 3 DynamicDisplay(Hour,0xff);
223 3 SecondLedShine();
224 3 break;
225 3 case ADJUST_MINUTE :
226 3 DynamicDisplay(0xff,Minute);
227 3 SecondLedShine();
228 3 break;
229 3 case ADJUST_MONTH:
230 3 DynamicDisplay(Month,0xff);
231 3 break;
232 3 case ADJUST_DATE:
233 3 DynamicDisplay(0xff,Date);
234 3 break;
235 3 case ADJUST_YEAR:
236 3 DynamicDisplay(Year,0xff);
237 3 break;
238 3 case ADJUST_DAY:
239 3 DynamicDisplay(0xff,Day|0xf0);
240 3 break;
241 3 case ADJUST_ALARM_HOUR : //显示闹钟的时
C51 COMPILER V8.08 MAIN 02/05/2009 15:57:55 PAGE 5
242 3 DynamicDisplay(AlmHour,0xff);
243 3 AlarmLedShine();
244 3 break;
245 3 case ADJUST_ALARM_MINUTE:
246 3 DynamicDisplay(0xff,AlmMinute);
247 3 AlarmLedShine();
248 3 break;
249 3 case ADJUST_DISABLE:
250 3 if( (Second<0x10) && (Second>=0) ) //显示时钟的时分
251 3 {
252 4 DynamicDisplay(Hour,Minute);
253 4 SecondLedShine();
254 4 }
255 3 if( (Second<0x20) && (Second>=0x10) ) //显示时钟的月日
256 3 {
257 4 DynamicDisplay(Month,Date);//月日
258 4 }
259 3 if( (Second<0x40) && (Second>=0x20) ) //显示时分
260 3 {
261 4 DynamicDisplay(Hour,Minute);
262 4 SecondLedShine();
263 4 }
264 3 if( (Second<0x50) && (Second>=0x40) ) //显示时钟的年星期
265 3 {
266 4 DynamicDisplay(Year,Day|0xf0); //星期的十位灭零
267 4 }
268 3 if( (Second<=0x59) && (Second>=0x50) ) //显示时分
269 3 {
270 4 DynamicDisplay(Hour,Minute);
271 4 SecondLedShine();
272 4 }
273 3 break;
274 3 default:
275 3 break;
276 3 }
277 2 }
278 1
279 1 }
280 /*********************************************************
281 函数名称:DdaInc()
282 函数功能:十六进制数据加1调整成BCD码
283 入口参数:需要调整的十六进制数值
284 出口参数:无
285 备 注:在DS12887中各时间参数采用BCD码,所以需要调整
286 *********************************************************/
287 void DdaInc(uchar* temp)
288 {
289 1 uchar temp2;
290 1 temp2 = *temp;
291 1 (*temp) ++;
292 1 if( (*temp%16) >= 10)
293 1 {
294 2 *temp = temp2 + 0x10 - (temp2 %0x10);
295 2 }
296 1 }
297 /*********************************************************
298 函数名称:DdaDec()
299 函数功能:十六进制数据减1调整成BCD码
300 入口参数:需要调整的十六进制数值
301 出口参数:无
302 备 注:在DS12887中各时间参数采用BCD码,所以需要调整
303 *********************************************************/
C51 COMPILER V8.08 MAIN 02/05/2009 15:57:55 PAGE 6
304 void DdaDec(uchar* temp)
305 {
306 1 uchar temp2;
307 1 temp2 = *temp;
308 1 (*temp) --;
309 1 if( (*temp%16) >= 10)
310 1 {
311 2 *temp = temp2 - 0x10 +9 ;
312 2 }
313 1 }
314 /*********************************************************
315 函数名称:()
316 函数功能:
317 入口参数:
318 出口参数:无
319 备 注:
320 *********************************************************/
321
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 683 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 3
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 + -