⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds12887.lis

📁 高精度时钟芯片。avr驱动
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -