📄 ds12887.lis
字号:
023C .dbfunc e GetSeconds _GetSeconds fc
.even
023C _GetSeconds::
023C .dbline -1
023C .dbline 271
023C ;
023C ; /*************************************************************
023C ; 函数功能:该函数用来从时钟芯片读取秒字节
023C ; 应用范围:
023C ; 入口参数:
023C ; 出口参数:
023C ; *************************************************************/
023C ; unsigned char GetSeconds(void)
023C ; {
023C .dbline 272
023C ; return(read_ds(chSecondsChannel));
023C 0027 clr R16
023E .dbline -2
023E L51:
023E .dbline 0 ; func end
023E CFCF xjmp _read_ds
0240 .dbend
0240 .dbfunc e GetMinutes _GetMinutes fc
.even
0240 _GetMinutes::
0240 .dbline -1
0240 .dbline 282
0240 ; }
0240 ;
0240 ; /*************************************************************
0240 ; 函数功能:该函数用来从时钟芯片读取分字节
0240 ; 应用范围:
0240 ; 入口参数:
0240 ; 出口参数:
0240 ; *************************************************************/
0240 ; unsigned char GetMinutes(void)
0240 ; {
0240 .dbline 283
0240 ; return(read_ds(chMinutesChannel));
0240 02E0 ldi R16,2
0242 .dbline -2
0242 L52:
0242 .dbline 0 ; func end
0242 CDCF xjmp _read_ds
0244 .dbend
0244 .dbfunc e GetHours _GetHours fc
.even
0244 _GetHours::
0244 .dbline -1
0244 .dbline 293
0244 ; }
0244 ;
0244 ; /*************************************************************
0244 ; 函数功能:该函数用来从时钟芯片读取小时字节
0244 ; 应用范围:
0244 ; 入口参数:
0244 ; 出口参数:
0244 ; *************************************************************/
0244 ; unsigned char GetHours(void)
0244 ; {
0244 .dbline 294
0244 ; return(read_ds(chHoursChannel));
0244 04E0 ldi R16,4
0246 .dbline -2
0246 L53:
0246 .dbline 0 ; func end
0246 CBCF xjmp _read_ds
0248 .dbend
0248 .dbfunc e GetDate _GetDate fc
.even
0248 _GetDate::
0248 .dbline -1
0248 .dbline 304
0248 ; }
0248 ;
0248 ; /*************************************************************
0248 ; 函数功能:该函数用来从时钟芯片读取日字节
0248 ; 应用范围:
0248 ; 入口参数:
0248 ; 出口参数:
0248 ; *************************************************************/
0248 ; unsigned char GetDate(void)
0248 ; {
0248 .dbline 305
0248 ; return(read_ds(chDateChannel));
0248 07E0 ldi R16,7
024A .dbline -2
024A L54:
024A .dbline 0 ; func end
024A C9CF xjmp _read_ds
024C .dbend
024C .dbfunc e GetMonth _GetMonth fc
.even
024C _GetMonth::
024C .dbline -1
024C .dbline 314
024C ; }
024C ; /*************************************************************
024C ; 函数功能:该函数用来从时钟芯片读取月字节
024C ; 应用范围:
024C ; 入口参数:
024C ; 出口参数:
024C ; *************************************************************/
024C ; unsigned char GetMonth(void)
024C ; {
024C .dbline 315
024C ; return(read_ds(chMonthChannel));
024C 08E0 ldi R16,8
024E .dbline -2
024E L55:
024E .dbline 0 ; func end
024E C7CF xjmp _read_ds
0250 .dbend
0250 .dbfunc e GetYear _GetYear fc
.even
0250 _GetYear::
0250 .dbline -1
0250 .dbline 325
0250 ; }
0250 ;
0250 ; /*************************************************************
0250 ; 函数功能:该函数用来从时钟芯片读取年字节
0250 ; 应用范围:
0250 ; 入口参数:
0250 ; 出口参数:
0250 ; *************************************************************/
0250 ; unsigned char GetYear(void)
0250 ; {
0250 .dbline 326
0250 ; return(read_ds(chYearChannel));
0250 09E0 ldi R16,9
0252 .dbline -2
0252 L56:
0252 .dbline 0 ; func end
0252 C5CF xjmp _read_ds
0254 .dbend
0254 .dbfunc e GetCentury _GetCentury fc
.even
0254 _GetCentury::
0254 .dbline -1
0254 .dbline 336
0254 ; }
0254 ;
0254 ; /*************************************************************
0254 ; 函数功能:该函数用来从时钟芯片读取世纪字节
0254 ; 应用范围:
0254 ; 入口参数:
0254 ; 出口参数:
0254 ; *************************************************************/
0254 ; unsigned char GetCentury(void)
0254 ; {
0254 .dbline 337
0254 ; return(read_ds(chCenturyChannel));
0254 02E3 ldi R16,50
0256 .dbline -2
0256 L57:
0256 .dbline 0 ; func end
0256 C3CF xjmp _read_ds
0258 .dbend
0258 .dbfunc e SetTime _SetTime fV
0258 ; chHours -> y+4
0258 ; chMinutes -> R20
0258 ; chSeconds -> R22
.even
0258 _SetTime::
0258 0E940000 xcall push_gset2
025C 422F mov R20,R18
025E 602F mov R22,R16
0260 .dbline -1
0260 .dbline 348
0260 ; }
0260 ;
0260 ; /*************************************************************
0260 ; 函数功能:该函数用来设置时钟芯片的时间
0260 ; 应用范围:
0260 ; 入口参数:chSeconds、chMinutes、chHours是设定时间的压缩BCD码
0260 ; 出口参数:
0260 ; *************************************************************/
0260 ; void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned char
0260 ; chHours)
0260 ; {
0260 .dbline 349
0260 ; write_ds(chRegB,chRegB | MASK_SETB_SET); /* 禁止刷新 */
0260 2BE8 ldi R18,139
0262 0BE0 ldi R16,11
0264 A4DF xcall _write_ds
0266 .dbline 350
0266 ; write_ds(chSecondsChannel,chSeconds);
0266 262F mov R18,R22
0268 0027 clr R16
026A A1DF xcall _write_ds
026C .dbline 351
026C ; write_ds(chMinutesChannel,chMinutes);
026C 242F mov R18,R20
026E 02E0 ldi R16,2
0270 9EDF xcall _write_ds
0272 .dbline 352
0272 ; write_ds(chHoursChannel,chHours);
0272 2C81 ldd R18,y+4
0274 04E0 ldi R16,4
0276 9BDF xcall _write_ds
0278 .dbline 353
0278 ; write_ds(chRegB,chRegB & MASK_CLR_SET);/* 使能刷新 */
0278 2BE0 ldi R18,11
027A 0BE0 ldi R16,11
027C 98DF xcall _write_ds
027E .dbline -2
027E .dbline 354
027E ; }
027E L58:
027E 0E940000 xcall pop_gset2
0282 .dbline 0 ; func end
0282 0895 ret
0284 .dbsym l chHours 4 c
0284 .dbsym r chMinutes 20 c
0284 .dbsym r chSeconds 22 c
0284 .dbend
0284 .dbfunc e SetDate _SetDate fV
0284 ; chYear -> y+4
0284 ; chMonth -> R20
0284 ; chDate -> R22
.even
0284 _SetDate::
0284 0E940000 xcall push_gset2
0288 422F mov R20,R18
028A 602F mov R22,R16
028C .dbline -1
028C .dbline 363
028C ;
028C ; /*************************************************************
028C ; 函数功能:该函数用来设置时钟芯片的日期
028C ; 应用范围:
028C ; 入口参数:chDate、chMonth、chYear是设定日期的压缩BCD码
028C ; 出口参数:
028C ; *************************************************************/
028C ; void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear)
028C ; {
028C .dbline 364
028C ; write_ds(chRegB,chRegB | MASK_SETB_SET); /* 禁止刷新 */
028C 2BE8 ldi R18,139
028E 0BE0 ldi R16,11
0290 8EDF xcall _write_ds
0292 .dbline 365
0292 ; write_ds(chDateChannel,chDate);
0292 262F mov R18,R22
0294 07E0 ldi R16,7
0296 8BDF xcall _write_ds
0298 .dbline 366
0298 ; write_ds(chMonthChannel,chMonth);
0298 242F mov R18,R20
029A 08E0 ldi R16,8
029C 88DF xcall _write_ds
029E .dbline 367
029E ; write_ds(chYearChannel,chYear);
029E 2C81 ldd R18,y+4
02A0 09E0 ldi R16,9
02A2 85DF xcall _write_ds
02A4 .dbline 368
02A4 ; write_ds(chRegB,chRegB & MASK_CLR_SET); /* 使能刷新 */
02A4 2BE0 ldi R18,11
02A6 0BE0 ldi R16,11
02A8 82DF xcall _write_ds
02AA .dbline -2
02AA .dbline 369
02AA ; }
02AA L59:
02AA 0E940000 xcall pop_gset2
02AE .dbline 0 ; func end
02AE 0895 ret
02B0 .dbsym l chYear 4 c
02B0 .dbsym r chMonth 20 c
02B0 .dbsym r chDate 22 c
02B0 .dbend
02B0 .dbfunc e Natural_Menu _Natural_Menu fV
02B0 ; m -> <dead>
.even
02B0 _Natural_Menu::
02B0 .dbline -1
02B0 .dbline 377
02B0 ;
02B0 ; /*******************************************************************/
02B0 ; /* */
02B0 ; /* 时间 正常显示菜单 */
02B0 ; /* */
02B0 ; /*******************************************************************/
02B0 ; void Natural_Menu ()
02B0 ; {
02B0 .dbline 379
02B0 ; uchar m;
02B0 ; LCD1602_initial(); //初始化LCD
02B0 67DF xcall _LCD1602_initial
02B2 .dbline 380
02B2 ; LCD1602_gotoXY(1,0); //设置显示位置为第一行的第1个字符
02B2 2227 clr R18
02B4 01E0 ldi R16,1
02B6 4EDF xcall _LCD1602_gotoXY
02B8 .dbline 381
02B8 ; LCD1602_sendstr("DATE: 2008-08-08");
02B8 00E0 ldi R16,<L61
02BA 10E0 ldi R17,>L61
02BC 27DF xcall _LCD1602_sendstr
02BE .dbline 385
02BE ; // for(m=0;m<16;m++)
02BE ; // LCD1602_sendbyte(iDat,cdis1[m]);
02BE ;
02BE ; LCD1602_gotoXY(2,0); //设置显示位置为第二行第1个字符
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -