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

📄 ds1302.ls1

📁 DS1302的驱动程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     215     ; SYSTEMTIME  time1;
                     216     ; 
                     217     ; sbit d1=P1^0;
                     218     ; sbit d2=P1^1;
                     219     ; sbit d3=P1^2;
                     220     ; sbit d4=P1^3;
                     221     ; sbit d5=P1^4;
                     222     ; sbit d6=P1^5;
                     223     ; sbit d7=P1^6;
                     224     ; sbit d8=P1^7;
                     225     ; 
                     226     ; //0--9 位码,0X00:清显示。
                     227     ; unsigned char code  dispcode[13]={
                     228     ;                                                       
                     229     ;       0X3F,/*0*/
                     230     ;       0X06,/*1*/
                     231     ;       0X5B,/*2*/
                     232     ;       0X4F,/*3*/
                     233     ;       0X66,/*4*/
                     234     ;       0X6D,/*5*/
                     235     
----                 236             RSEG  ?PR?_DS1302InputByte?DS1302
0000                 237     _DS1302InputByte:
                     238             USING   0
                     239                             ; SOURCE LINE # 38
                     240     ;---- Variable 'd?040' assigned to Register 'R7' ----
                     241     ;       0X7D,/*6*/
                     242                             ; SOURCE LINE # 39
                     243     ;       0X07,/*7*/
                     244     ;       0X7F,/*8*/
                     245                             ; SOURCE LINE # 41
0000 EF              246             MOV     A,R7
                     247     ;       0X6F,/*9*/
                     248                             ; SOURCE LINE # 42
                     249     ;---- Variable 'i?041' assigned to Register 'R7' ----
0001 7F08            250             MOV     R7,#08H
0003                 251     ?C0001:
                     252     ;       0X40,/*-*/
                     253                             ; SOURCE LINE # 43
A51 MACRO ASSEMBLER  DS1302                                                               09/20/2008 10:13:46 PAGE     5

                     254     ;       0XBF,/*0.*/
                     255                             ; SOURCE LINE # 44
0003 A2E0            256             MOV     C,ACC0
0005 92B7            257             MOV     DS1302_IO,C
                     258     ;       0X00,/*NULL*/   };
                     259                             ; SOURCE LINE # 45
0007 D2B6            260             SETB    DS1302_CLK
                     261     ;               
                     262                             ; SOURCE LINE # 46
0009 C2B6            263             CLR     DS1302_CLK
                     264     ; 
                     265                             ; SOURCE LINE # 47
000B C3              266             CLR     C
000C 13              267             RRC     A
                     268     ; void delay1ms()
                     269                             ; SOURCE LINE # 48
000D DFF4            270             DJNZ    R7,?C0001
                     271     ; {
                     272                             ; SOURCE LINE # 49
000F                 273     ?C0004:
000F 22              274             RET     
                     275     ; END OF _DS1302InputByte
                     276     
                     277     ; /*    unsigned int i,j;
                     278     ;       for(i=0;i<c;i++)
                     279     
----                 280             RSEG  ?PR?DS1302OutputByte?DS1302
0000                 281     DS1302OutputByte:
                     282             USING   0
                     283                             ; SOURCE LINE # 51
                     284     ;               for(j=0;j<100;j++);
                     285                             ; SOURCE LINE # 52
                     286     ; unsigned int c        */
                     287     ; 
                     288                             ; SOURCE LINE # 54
                     289     ;---- Variable 'i?142' assigned to Register 'R7' ----
0000 7F08            290             MOV     R7,#08H
0002                 291     ?C0005:
                     292     ;       #pragma asm
                     293                             ; SOURCE LINE # 55
                     294     ;       MOV  R4,#5
                     295                             ; SOURCE LINE # 56
0002 C3              296             CLR     C
0003 13              297             RRC     A
                     298     ;         MOV  R6,#100
                     299                             ; SOURCE LINE # 57
0004 A2B7            300             MOV     C,DS1302_IO
0006 92E7            301             MOV     ACC7,C
                     302     ;         MOV  R7, #250
                     303                             ; SOURCE LINE # 58
0008 D2B6            304             SETB    DS1302_CLK
                     305     ;       DJNZ R7,$
                     306                             ; SOURCE LINE # 59
000A C2B6            307             CLR     DS1302_CLK
                     308     ;         DJNZ R6, $
                     309                             ; SOURCE LINE # 60
000C DFF4            310             DJNZ    R7,?C0005
000E                 311     ?C0006:
                     312     ;         DJNZ R4, $
                     313                             ; SOURCE LINE # 61
000E FF              314             MOV     R7,A
                     315     ;       #pragma endasm  
                     316                             ; SOURCE LINE # 62
000F                 317     ?C0008:
000F 22              318             RET     
                     319     ; END OF DS1302OutputByte
A51 MACRO ASSEMBLER  DS1302                                                               09/20/2008 10:13:46 PAGE     6

                     320     
                     321     ; } 
                     322     ; 
                     323     
----                 324             RSEG  ?PR?_Write1302?DS1302
0000                 325     _Write1302:
                     326             USING   0
                     327                             ; SOURCE LINE # 64
                     328     ;---- Variable 'ucDa?244' assigned to Register 'R6' ----
0000 AE05            329             MOV     R6,AR5
                     330     ;---- Variable 'ucAddr?243' assigned to Register 'R7' ----
                     331     ; void main()
                     332                             ; SOURCE LINE # 65
                     333     ; {
                     334                             ; SOURCE LINE # 66
0002 C2B5            335             CLR     DS1302_RST
                     336     ;     while(1)
                     337                             ; SOURCE LINE # 67
0004 C2B6            338             CLR     DS1302_CLK
                     339     ;     {  DS1302_GetTime(&time1);
                     340                             ; SOURCE LINE # 68
0006 D2B5            341             SETB    DS1302_RST
                     342     ; 
                     343                             ; SOURCE LINE # 69
0008 120000   F      344             LCALL   _DS1302InputByte
                     345     ;          buf[7]=(time1.Second)%10;
                     346                             ; SOURCE LINE # 70
000B AF06            347             MOV     R7,AR6
000D 120000   F      348             LCALL   _DS1302InputByte
                     349     ;        buf[6]=(time1.Second)/10;
                     350                             ; SOURCE LINE # 71
0010 D2B6            351             SETB    DS1302_CLK
                     352     ;        buf[4]=(time1.Minute)%10;
                     353                             ; SOURCE LINE # 72
0012 C2B5            354             CLR     DS1302_RST
                     355     ;        buf[3]=(time1.Minute)/10;
                     356                             ; SOURCE LINE # 73
0014 22              357             RET     
                     358     ; END OF _Write1302
                     359     
                     360     ;        buf[1]=(time1.Hour)%10;
                     361     ;        buf[0]=(time1.Hour)/10;
                     362     
----                 363             RSEG  ?PR?_Read1302?DS1302
0000                 364     _Read1302:
                     365             USING   0
                     366                             ; SOURCE LINE # 75
                     367     ;---- Variable 'ucAddr?345' assigned to Register 'R7' ----
                     368     ; 
                     369                             ; SOURCE LINE # 76
                     370     ;               d1=0;
                     371     ;               P2=     dispcode[buf[0]];        //显示时的十位数
                     372                             ; SOURCE LINE # 78
0000 C2B5            373             CLR     DS1302_RST
                     374     ;               delay1ms();
                     375                             ; SOURCE LINE # 79
0002 C2B6            376             CLR     DS1302_CLK
                     377     ;               d1=1;
                     378                             ; SOURCE LINE # 80
0004 D2B5            379             SETB    DS1302_RST
                     380     ; 
                     381                             ; SOURCE LINE # 81
0006 EF              382             MOV     A,R7
0007 4401            383             ORL     A,#01H
0009 FF              384             MOV     R7,A
000A 120000   F      385             LCALL   _DS1302InputByte
A51 MACRO ASSEMBLER  DS1302                                                               09/20/2008 10:13:46 PAGE     7

                     386     ;               d2=0;
                     387                             ; SOURCE LINE # 82
000D 120000   F      388             LCALL   DS1302OutputByte
                     389     ;---- Variable 'ucData?346' assigned to Register 'R7' ----
                     390     ;               P2=     dispcode[buf[1]];        //显示时的个位数
                     391                             ; SOURCE LINE # 83
0010 D2B6            392             SETB    DS1302_CLK
                     393     ;               delay1ms();
                     394                             ; SOURCE LINE # 84
0012 C2B5            395             CLR     DS1302_RST
                     396     ;               d2=1;
                     397                             ; SOURCE LINE # 85
                     398     ; 
                     399                             ; SOURCE LINE # 86
0014                 400     ?C0010:
0014 22              401             RET     
                     402     ; END OF _Read1302
                     403     
                     404     ;               d3=0;
                     405     ;               P2=     dispcode[10];    //显示“-”
                     406     
----                 407             RSEG  ?PR?DS1302_SetProtect?DS1302
0000                 408     DS1302_SetProtect:
                     409             USING   0
                     410                             ; SOURCE LINE # 88
                     411     ;               delay1ms();
                     412                             ; SOURCE LINE # 89
                     413     ;               d3=1;
                     414                             ; SOURCE LINE # 90
0000 300004   F      415             JNB     flag?447,?C0011
                     416     ; 
                     417                             ; SOURCE LINE # 91
0003 7D10            418             MOV     R5,#010H
0005 8002            419             SJMP    ?C0024
0007                 420     ?C0011:
                     421     ;               d4=0;
                     422     ;               P2=     dispcode[buf[3]];        
                     423                             ; SOURCE LINE # 93
0007 E4              424             CLR     A
0008 FD              425             MOV     R5,A
0009                 426     ?C0024:
0009 7F8E            427             MOV     R7,#08EH
000B 120000   F      428             LCALL   _Write1302
                     429     ;               delay1ms();
                     430                             ; SOURCE LINE # 94
000E                 431     ?C0013:
000E 22              432             RET     
                     433     ; END OF DS1302_SetProtect
                     434     
                     435     ;               d4=1;                                      //分的十位数
                     436     ; 
                     437     
----                 438             RSEG  ?PR?_DS1302_SetTime?DS1302
0000                 439     _DS1302_SetTime:
                     440             USING   0

⌨️ 快捷键说明

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