📄 1302+18b20+点阵屏.lst
字号:
211 2
212 2 SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。
213 2 while(!TI);TI=0; //等待发送中断
214 2 }
215 1 }
216 /*******************************************************/
217 void Read_1302(void)
218 {
219 1
220 1 second=R1302(0x81); //对取 秒 分 时 日 月 星期 年
221 1 minute=R1302(0x83);
222 1 hour=R1302(0x85);
223 1 day=R1302(0x87);
224 1 month=R1302(0x89);
225 1 week=R1302(0x8b);
226 1 year=R1302(0x8d);
227 1 Number[0]=(year/16)*10+(year%16);
228 1 Number[1]=(month/16)*10+(month%16);
229 1 Number[2]=(day/16)*10+(day%16);
230 1 Number[3]=(hour/16)*10+(hour%16);
231 1 Number[4]=(minute/16)*10+(minute%16);
232 1 Number[5]=(second/16)*10+(second%16);
233 1 Number[6]=(week/16)*10+(week%16);
234 1 }
235 /*******************************************************/
C51 COMPILER V8.05a 1302_18B20_点阵屏 05/24/2009 12:02:11 PAGE 5
236 void TiaoZheng(void)
237 {
238 1 uchar i,j,number=0;
239 1 for(i=0;i<96;i++) {HuanCun[i]=0x00;}
240 1 for(j=0;j<4;j++)
241 1 {
242 2 for(i=0;i<32;i++)
243 2 {
244 3 HuanCun[96+i+number]=ZaXiang[j][i];
245 3 }
246 2 number+=32; if(number>128) number=0;
247 2 }
248 1 }
249 void TiaoZheng1(void)
250 {
251 1 uchar i,j,number1=0;
252 1 for(j=1;j<7;j++)
253 1 {
254 2 for(i=0;i<32;i++)
255 2 {
256 3 HuanCun[i+number1]=ZaXiang[j][i];
257 3 }
258 2 number1+=32; if(number1>192) number1=0;
259 2 }
260 1
261 1
262 1 for(i=0;i<32;i++) {HuanCun[192+i]=ZaXiang[7][i];}
263 1 }
264 void TiaoZheng2(void)
265 {
266 1 uchar i,j,k,number2=0;
267 1 for(j=5;j<7;j++)
268 1 {
269 2 for(i=0;i<32;i++)
270 2 {
271 3 HuanCun[i+number2]=ZaXiang[j][i];
272 3 }
273 2 number2+=32; if(number2>64) number2=0;
274 2 }
275 1 for(i=0;i<32;i++) {HuanCun[64+i]=ZaXiang[7][i];}
276 1 for(j=0;j<60;j++)
277 1 {
278 2 if(Number[0]==j) {for(k=0;k<32;k++) HuanCun[96+k]=hanzi0[j][k];}
279 2 }
280 1 for(i=0;i<32;i++) {HuanCun[128+i]=ZaXiang[8][i];}
281 1
282 1 for(j=0;j<60;j++)
283 1 {
284 2 if(Number[1]==j) {for(k=0;k<32;k++) HuanCun[160+k]=hanzi0[j][k];}
285 2 }
286 1 for(i=0;i<32;i++) {HuanCun[192+i]=ZaXiang[9][i];}
287 1 }
288
289 void TiaoZheng3(void)
290 {
291 1 uchar i,j,k;
292 1 for(i=0;i<32;i++) {HuanCun[i]=ZaXiang[8][i];}
293 1
294 1 for(j=0;j<60;j++)
295 1 {
296 2 if(Number[1]==j) {for(k=0;k<32;k++) HuanCun[32+k]=hanzi0[j][k];}
297 2 }
C51 COMPILER V8.05a 1302_18B20_点阵屏 05/24/2009 12:02:11 PAGE 6
298 1 for(i=0;i<32;i++) {HuanCun[64+i]=ZaXiang[9][i];}
299 1 for(j=0;j<60;j++)
300 1 {
301 2 if(Number[2]==j) {for(k=0;k<32;k++) HuanCun[96+k]=hanzi0[j][k];}
302 2 }
303 1 for(i=0;i<32;i++) {HuanCun[128+i]=ZaXiang[10][i];}
304 1
305 1 for(j=0;j<60;j++)
306 1 {
307 2 if(Number[3]==j) {for(k=0;k<32;k++) HuanCun[160+k]=hanzi0[j][k];}
308 2 }
309 1 for(i=0;i<32;i++) {HuanCun[192+i]=ZaXiang[11][i];}
310 1 }
311 void TiaoZheng4(void)
312 {
313 1
314 1 uchar i,j,k;
315 1
316 1 for(i=0;i<32;i++) {HuanCun[i]=ZaXiang[10][i];}
317 1
318 1 for(j=0;j<60;j++)
319 1 {
320 2 if(Number[3]==j) {for(k=0;k<32;k++) HuanCun[32+k]=hanzi0[j][k];}
321 2 }
322 1 for(i=0;i<32;i++) {HuanCun[64+i]=ZaXiang[11][i];}
323 1 for(j=0;j<60;j++)
324 1 {
325 2 if(Number[4]==j) {for(k=0;k<32;k++) HuanCun[96+k]=hanzi0[j][k];}
326 2 }
327 1 for(i=0;i<32;i++) {HuanCun[128+i]=ZaXiang[12][i];}
328 1 for(j=0;j<60;j++)
329 1 {
330 2 if(Number[5]==j) {for(k=0;k<32;k++) HuanCun[160+k]=hanzi0[j][k];}
331 2 }
332 1 for(i=0;i<32;i++) {HuanCun[192+i]=ZaXiang[13][i];}
333 1 }
334 void TiaoZheng5(void)
335 {
336 1 uchar i,j,k;
337 1
338 1 for(i=0;i<32;i++) {HuanCun[i]=ZaXiang[12][i];}
339 1 for(j=0;j<60;j++)
340 1 {
341 2 if(Number[5]==j) {for(k=0;k<32;k++) HuanCun[32+k]=hanzi0[j][k];}
342 2 }
343 1 for(i=0;i<32;i++) {HuanCun[64+i]=ZaXiang[13][i];}
344 1 for(i=0;i<32;i++) {HuanCun[96+i]=ZaXiang[14][i];}
345 1 for(i=0;i<32;i++) {HuanCun[128+i]=ZaXiang[15][i];}
346 1 for(j=1;j<8;j++)
347 1 {
348 2 if(Number[6]==j) {for(k=0;k<32;k++) HuanCun[160+k]=hanzi0[60+j-1][k];}
349 2 }
350 1 for(i=0;i<32;i++) {HuanCun[192+i]=ZaXiang[16][i];}
351 1 }
352 void TiaoZheng6(void)
353 {
354 1 uchar i,j,k;
355 1 for(i=0;i<32;i++) {HuanCun[i]=ZaXiang[15][i];}
356 1 for(j=1;j<8;j++)
357 1 {
358 2 if(Number[6]==j) {for(k=0;k<32;k++) HuanCun[32+k]=hanzi0[60+j-1][k];}
359 2 }
C51 COMPILER V8.05a 1302_18B20_点阵屏 05/24/2009 12:02:11 PAGE 7
360 1 for(i=0;i<32;i++) {HuanCun[64+i]=ZaXiang[16][i];}
361 1 for(i=0;i<32;i++) {HuanCun[96+i]=ZaXiang[17][i];}
362 1 for(i=0;i<32;i++) {HuanCun[128+i]=ZaXiang[19][i];}
363 1 for(j=0;j<60;j++)
364 1 {
365 2 if(temp==j) {for(k=0;k<32;k++) HuanCun[160+k]=hanzi0[j][k];}
366 2 }
367 1 for(i=0;i<32;i++) {HuanCun[192+i]=ZaXiang[18][i];}
368 1
369 1 }
370 void TiaoZheng7(void)
371 {
372 1 uchar i,j,k;
373 1 for(i=0;i<32;i++) {HuanCun[i]=ZaXiang[19][i];}
374 1 for(j=0;j<60;j++)
375 1 {
376 2 if(temp==j) {for(k=0;k<32;k++) HuanCun[32+k]=hanzi0[j][k];}
377 2 }
378 1 for(i=0;i<32;i++) {HuanCun[64+i]=ZaXiang[18][i];}
379 1 for(i=96;i<224;i++) {HuanCun[i]=0x00;}
380 1
381 1 }
382 /**************************延时***********************/
383 void DelayMs(void)
384 {
385 1 uchar TempCyc;
386 1 for(TempCyc=100;TempCyc>1;TempCyc--)
387 1 {;}
388 1 }
389 //********DS1302读写程序***************//
390 /********************************************************************
391 函 数 名:RTInputByte()
392 功 能:实时时钟写入一字节
393 说 明:往DS1302写入1Byte数据 (内部函数)
394 入口参数:d 写入的数据
395 返 回 值:无
396 ***********************************************************************/
397 void RTInputByte(uchar d)
398 {
399 1 uchar h;
400 1 ACC = d;
401 1 for(h=8; h>0; h--)
402 1 {
403 2 T_IO = ACC0; /*相当于汇编中的 RRC */
404 2 T_CLK = 1;
405 2 T_CLK = 0;
406 2 ACC = ACC >> 1;
407 2 }
408 1 }
409 /********************************************************************
410 函 数 名:RTOutputByte()
411 功 能:实时时钟读取一字节
412 说 明:从DS1302读取1Byte数据 (内部函数)
413 入口参数:无
414 返 回 值:ACC
415 设 计:zhaojunjie 日 期:2002-03-19
416 修 改: 日 期:
417 ***********************************************************************/
418 uchar RTOutputByte(void)
419 {
420 1 uchar h;
421 1 for(h=8; h>0; h--)
C51 COMPILER V8.05a 1302_18B20_点阵屏 05/24/2009 12:02:11 PAGE 8
422 1 {
423 2 ACC = ACC >>1; /*相当于汇编中的 RRC */
424 2 ACC7 = T_IO;
425 2 T_CLK = 1;
426 2 T_CLK = 0;
427 2 }
428 1 return(ACC);
429 1 }
430 /********************************************************************
431 函 数 名:W1302()
432 功 能:往DS1302写入数据
433 说 明:先写地址,后写命令/数据 (内部函数)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -