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

📄 rtc.ls1

📁 一个完整的51单片机的操作糸统源程序! 内容十分丰富!很有借鉴价值!
💻 LS1
📖 第 1 页 / 共 3 页
字号:
                             1
                     194     ;                                                                                       11:
                             1/60
                     195     ;                                                                                       */
                     196     ;       0x00                    /*timer back data倒计数值*/
                     197     ; };
                     198     ; 
                     199     ; 
                     200     ; #ifndef SOFT_RTC                      /*r如果定义了外围硬件实时时钟计数*/
                     201     ; /****************************************************************************************
                             **
                     202     ; *函数名:              Int1RTC
                     203     ; *参数:                        无
                     204     ; *返回值:              无
                     205     ; *描述:                        
                     206     ; *编写:                        王绍伟
                     207     ; *版本信息:            V1.0                    2003年8月15日
                     208     ; *****************************************************************************************
                             */
                     209     ; static void Int1RTC(void) interrupt 2
                     210     ; {
                     211     ;       EA = 0;         /*r关闭所有中断*/
                     212     ;       msg_queue_in(MSG_RTC, NONE);
                     213     ;       EA = 1;
                     214     ; }
                     215     ; #endif
                     216     ; 
                     217     ; extern void rtc_pcf8563_init(void)
                     218     
----                 219             RSEG  ?PR?rtc_pcf8563_init?RTC
0000                 220     rtc_pcf8563_init:
                     221             USING   0
                     222                             ; SOURCE LINE # 74
                     223     ; {
                     224                             ; SOURCE LINE # 75
0000                 225     ?C0001:
                     226     ;       while(!iic_send_str(PCF8563, 0x00, Pcf8563Init, 16))
                     227                             ; SOURCE LINE # 76
0000 7BFF            228             MOV     R3,#0FFH
0002 7A00     F      229             MOV     R2,#HIGH (Pcf8563Init)
0004 7900     F      230             MOV     R1,#LOW (Pcf8563Init)
0006 900000   F      231             MOV     DPTR,#?_iic_send_str?BYTE+05H
0009 7410            232             MOV     A,#010H
000B F0              233             MOVX    @DPTR,A
000C E4              234             CLR     A
000D FD              235             MOV     R5,A
000E 7FA2            236             MOV     R7,#0A2H
0010 120000   F      237             LCALL   _iic_send_str
0013 4009            238             JC      ?C0002
                     239     ;       {
                     240                             ; SOURCE LINE # 77
                     241     ;               delay(0x200);
                     242                             ; SOURCE LINE # 78
0015 7F00            243             MOV     R7,#00H
A51 MACRO ASSEMBLER  RTC                                                                  10/31/2003 02:22:24 PAGE     5

0017 7E02            244             MOV     R6,#02H
0019 120000   F      245             LCALL   _delay
                     246     ;       }
                     247                             ; SOURCE LINE # 79
001C 80E2            248             SJMP    ?C0001
001E                 249     ?C0002:
                     250     ;       iic_rcv_str(PCF8563, 0x02, g_RTCPool, 2);
                     251                             ; SOURCE LINE # 80
001E 7B00            252             MOV     R3,#00H
0020 7A00     F      253             MOV     R2,#HIGH (g_RTCPool)
0022 7900     F      254             MOV     R1,#LOW (g_RTCPool)
0024 900000   F      255             MOV     DPTR,#?_iic_rcv_str?BYTE+05H
0027 7402            256             MOV     A,#02H
0029 F0              257             MOVX    @DPTR,A
002A FD              258             MOV     R5,A
002B 7FA2            259             MOV     R7,#0A2H
002D 020000   F      260             LJMP    _iic_rcv_str
                     261     ; END OF rtc_pcf8563_init
                     262     
                     263     ; }
                     264     ; 
                     265     ; /****************************************************************************************
                             **
                     266     ; *函数名:              rtc_init
                     267     ; *参数:                        hour            
                     268     ;                               minute
                     269     ;                               second
                     270     ; *返回值:              无
                     271     ; *描述:                        实时软件时钟计数器初始化
                     272     ; *编写:                        王绍伟
                     273     ; *版本信息:            V1.0                    2003年8月15日
                     274     ; *****************************************************************************************
                             */
                     275     ; extern void rtc_soft_init(byte hour, byte minute, byte second)
                     276     
----                 277             RSEG  ?PR?_rtc_soft_init?RTC
0000                 278     _rtc_soft_init:
                     279             USING   0
                     280                             ; SOURCE LINE # 93
                     281     ;---- Variable 'hour?140' assigned to Register 'R7' ----
                     282     ;---- Variable 'second?142' assigned to Register 'R3' ----
                     283     ;---- Variable 'minute?141' assigned to Register 'R5' ----
                     284     ; {
                     285                             ; SOURCE LINE # 94
                     286     ;       g_RTCMember.hour = hour;
                     287                             ; SOURCE LINE # 95
0000 8F00     F      288             MOV     g_RTCMember+02H,R7
                     289     ;       g_RTCMember.minute = minute;
                     290                             ; SOURCE LINE # 96
0002 AF05            291             MOV     R7,AR5
0004 8F00     F      292             MOV     g_RTCMember+01H,R7
                     293     ;       g_RTCMember.second = second;
                     294                             ; SOURCE LINE # 97
0006 AF03            295             MOV     R7,AR3
0008 8F00     F      296             MOV     g_RTCMember,R7
                     297     ;       g_RTCPool[0] = g_DAA[g_RTCMember.second];
                     298                             ; SOURCE LINE # 98
000A EF              299             MOV     A,R7
000B 900000   F      300             MOV     DPTR,#g_DAA
000E 93              301             MOVC    A,@A+DPTR
000F F500     F      302             MOV     g_RTCPool,A
                     303     ;       g_RTCPool[1] = g_DAA[g_RTCMember.minute];
                     304                             ; SOURCE LINE # 99
0011 E500     F      305             MOV     A,g_RTCMember+01H
0013 93              306             MOVC    A,@A+DPTR
0014 F500     F      307             MOV     g_RTCPool+01H,A
A51 MACRO ASSEMBLER  RTC                                                                  10/31/2003 02:22:24 PAGE     6

                     308     ;       g_RTCPool[2] = g_DAA[g_RTCMember.hour];
                     309                             ; SOURCE LINE # 100
0016 E500     F      310             MOV     A,g_RTCMember+02H
0018 93              311             MOVC    A,@A+DPTR
0019 F500     F      312             MOV     g_RTCPool+02H,A
                     313     ; }
                     314                             ; SOURCE LINE # 101
001B 22              315             RET     
                     316     ; END OF _rtc_soft_init
                     317     
                     318     ; 
                     319     ; 
                     320     ; /****************************************************************************************
                             **
                     321     ; *函数名:              rtc_process
                     322     ; *参数:                        无
                     323     ; *返回值:              无
                     324     ; *描述:                        定义时钟从秒->分钟->小时的进位规则,并抛出已过一秒时
                     325     ;                               钟的消息
                     326     ; *编写:                        王绍伟
                     327     ; *版本信息:            V1.0                    2003年8月15日
                     328     ; *****************************************************************************************
                             */
                     329     ; extern void rtc_soft_routine(void)
                     330     
----                 331             RSEG  ?PR?rtc_soft_routine?RTC
0000                 332     rtc_soft_routine:
                     333             USING   0
                     334                             ; SOURCE LINE # 113
                     335     ; {
                     336                             ; SOURCE LINE # 114
                     337     ; #ifdef SOFT_RTC
                     338     ;       if(++g_RTCMember.second > 59)
                     339                             ; SOURCE LINE # 116
0000 0500     F      340             INC     g_RTCMember
0002 E500     F      341             MOV     A,g_RTCMember
0004 D3              342             SETB    C
0005 943B            343             SUBB    A,#03BH
0007 4005            344             JC      ?C0005
                     345     ;       {
                     346                             ; SOURCE LINE # 117
                     347     ;               g_RTCMember.second = 0;
                     348                             ; SOURCE LINE # 118
0009 E4              349             CLR     A
000A F500     F      350             MOV     g_RTCMember,A
                     351     ;               g_RTCMember.minute++;
                     352                             ; SOURCE LINE # 119
000C 0500     F      353             INC     g_RTCMember+01H
                     354     ;       }
                     355                             ; SOURCE LINE # 120
000E                 356     ?C0005:
                     357     ;       
                     358     ;       if(g_RTCMember.minute > 59)
                     359                             ; SOURCE LINE # 122
000E E500     F      360             MOV     A,g_RTCMember+01H
0010 D3              361             SETB    C
0011 943B            362             SUBB    A,#03BH
0013 4005            363             JC      ?C0006
                     364     ;       {
                     365                             ; SOURCE LINE # 123
                     366     ;               g_RTCMember.minute = 0;
                     367                             ; SOURCE LINE # 124
0015 E4              368             CLR     A
0016 F500     F      369             MOV     g_RTCMember+01H,A
                     370     ;               g_RTCMember.hour++;
                     371                             ; SOURCE LINE # 125
A51 MACRO ASSEMBLER  RTC                                                                  10/31/2003 02:22:24 PAGE     7

0018 0500     F      372             INC     g_RTCMember+02H
                     373     ;       }
                     374                             ; SOURCE LINE # 126
001A                 375     ?C0006:
                     376     ;       msg_queue_in(MSG_RTC, RTC_SECOND);
                     377                             ; SOURCE LINE # 127
001A E4              378             CLR     A
001B FD              379             MOV     R5,A
001C 7F03            380             MOV     R7,#03H
001E 020000   F      381             LJMP    _msg_queue_in
                     382     ; END OF rtc_soft_routine
                     383     
                     384     ; #endif
                     385     ; }
                     386     ; 
                     387     ; 
                     388     ; /****************************************************************************************
                             **
                     389     ; *函数名:              rtc_read
                     390     ; *参数:                        无
                     391     ; *返回值:              g_RTC           时钟结构体
                     392     ; *描述:                        读取当前时钟结构体内容
                     393     ; *编写:                        王绍伟
                     394     ; *版本信息:            V1.0            2003年8月15日
                     395     ; *****************************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -