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

📄 ds1302.lst

📁 SPI FLASH,SL811HST驱动
💻 LST
📖 第 1 页 / 共 5 页
字号:
   240                           ;ds1302.c: 77: }
   241  2164  06D9               	decf	fsr2l,f,c
   242  2166  50D9               	movf	fsr2l,w,c
   243  2168  B4D8               	btfsc	status,2,c
   244                           ;ds1302.c: 78: }
   245  216A  0012               	return	
   246  216C  D7EF               	goto	l11
   247  216E  FFFF               	dw	65535
   248  2170  D7E9               	goto	f4622
   249                           ;ds1302.c: 80: unsigned char DS1302I_OputByte(un
      +                          signed char d)
   250                           ;ds1302.c: 81: {
   251  2172                     _DS1302I_OputByte:
   252  2172  FFFF               	dw	65535
   253  2174                     f4632:
   254  0000                     
   255                           ; _d loaded to fsr0l
   256  2174  6EE9               	movwf	fsr0l,c
   257                           ;ds1302.c: 82: unsigned char i,j=0x00,k=0x00;
   258                           ; _j allocated to prodl
   259  2176  6AF3               	clrf	prodl,c
   260  2178  6AE1               	clrf	fsr1l,c
   261                           ;ds1302.c: 83: TRISA4=0;
   262  217A  9892               	bcf	3986,4,c	;volatile
   263                           ;ds1302.c: 84: RC1=0;
   264  217C  9282               	bcf	3970,1,c	;volatile
   265                           ;ds1302.c: 85: RA5=0;
   266  217E  9A80               	bcf	3968,5,c	;volatile
   267                           ;ds1302.c: 86: RC1=1;
   268  2180  8282               	bsf	3970,1,c	;volatile
   269                           ;ds1302.c: 87: for(i=8; i>0; i--)
   270  2182  0E08               	movlw	8
   271  2184  6ED9               	movwf	fsr2l,c
   272  2186                     l15:
   273                           ;ds1302.c: 88: {
   274                           ;ds1302.c: 89: RA5=0;
   275  2186  9A80               	bcf	3968,5,c	;volatile
   276                           ;ds1302.c: 90: RA4=d&1; asm(" nop");asm(" nop");
   277  2188  CFE9 F000          	movff	fsr0l,btemp
   278  218C  3000               	rrcf	btemp,w
   279  218E  A0D8               	btfss	status,0,c
   280  2190  D002               	goto	u70
   281  2192  8880               	bsf	3968,4,c	;volatile
   282  2194  D001               	goto	u80
   283  2196                     u70:
   284  2196  9880               	bcf	3968,4,c	;volatile
   285  2198                     u80:
   286  2198  F000               	nop		;#
   287  219A  F000               	nop		;#
   288                           ;ds1302.c: 91: d= d >> 1;
   289  219C  90D8               	bcf	status,0,c
   290  219E  32E9               	rrcf	fsr0l,f,c
   291                           ;ds1302.c: 92: RA5 = 1;
   292  21A0  8A80               	bsf	3968,5,c	;volatile
   293                           ;ds1302.c: 93: }
   294  21A2  06D9               	decf	fsr2l,f,c
   295  21A4  50D9               	movf	fsr2l,w,c
   296  21A6  A4D8               	btfss	status,2,c
   297  21A8  D7EE               	goto	l15
   298                           ;ds1302.c: 94: RA5=0;
   299  21AA  9A80               	bcf	3968,5,c	;volatile
   300                           ;ds1302.c: 95: TRISA4=1;
   301  21AC  8892               	bsf	3986,4,c	;volatile
   302                           ;ds1302.c: 96: for(i=0; i<8; i++)
   303  21AE  6AD9               	clrf	fsr2l,c
   304  21B0                     l18:
   305                           ;ds1302.c: 97: {
   306                           ;ds1302.c: 98: j= RA4;asm(" nop");asm(" nop");
   307                           ; _j allocated to fsr0l
   308  21B0  0E00               	movlw	0
   309  21B2  B880               	btfsc	3968,4,c	;volatile
   310  21B4  0E01               	movlw	1
   311  21B6  6EE9               	movwf	fsr0l,c
   312  21B8  F000               	nop		;#
   313  21BA  F000               	nop		;#
   314                           ;ds1302.c: 99: RA5 =1;
   315  21BC  8A80               	bsf	3968,5,c	;volatile
   316                           ;ds1302.c: 100: j=j<<i;
   317  21BE  28D9               	incf	fsr2l,w,c
   318  21C0  6E00               	movwf	btemp
   319  21C2  D002               	goto	u100
   320  21C4                     u105:
   321  21C4  90D8               	bcf	status,0,c
   322  21C6  36E9               	rlcf	fsr0l,f,c
   323  21C8                     u100:
   324  21C8  2E00               	decfsz	btemp,f
   325  21CA  D7FC               	goto	u105
   326                           ;ds1302.c: 101: RA5=0;
   327  21CC  9A80               	bcf	3968,5,c	;volatile
   328                           ;ds1302.c: 102: k|=j;
   329  21CE  50E9               	movf	fsr0l,w,c
   330  21D0  12E1               	iorwf	fsr1l,f,c
   331                           ;ds1302.c: 103: }
   332  21D2  2AD9               	incf	fsr2l,f,c
   333  21D4  0E07               	movlw	7
   334  21D6  64D9               	cpfsgt	fsr2l,c
   335  21D8  D7EB               	goto	l18
   336                           ;ds1302.c: 104: RC1=0;RA5=1;
   337  21DA  9282               	bcf	3970,1,c	;volatile
   338  21DC  8A80               	bsf	3968,5,c	;volatile
   339                           ;ds1302.c: 106: return(k); Delay10Us(10);
   340  21DE  50E1               	movf	fsr1l,w,c
   341                           ;ds1302.c: 108: }
   342  21E0  0012               	return	
   343  21E2  FFFF               	dw	65535
   344  21E4  D7C7               	goto	f4632
   345                           ;ds1302.c: 110: void Write1302(unsigned char ucA
      +                          ddr, unsigned char ucDa)
   346                           ;ds1302.c: 111: {
   347                           ;       param _ucDa assigned to ?_Write1302+0
   348  21E6  007D               	dw	?_Write1302
   349  21E8                     _Write1302:
   350  21E8  FFFF               	dw	65535
   351  21EA                     f4652:
   352  0000                     
   353                           ; _ucAddr loaded to fsr0l
   354  21EA  6EE9               	movwf	fsr0l,c
   355                           ;ds1302.c: 112: RC1=0;
   356  21EC  9282               	bcf	3970,1,c	;volatile
   357                           ;ds1302.c: 113: RA5=0;
   358  21EE  9A80               	bcf	3968,5,c	;volatile
   359                           ;ds1302.c: 114: RC1=1;
   360  21F0  8282               	bsf	3970,1,c	;volatile
   361                           ;ds1302.c: 115: DS1302InputByte(ucAddr);
   362  21F2  DFA7               	call	_DS1302InputByte
   363                           ;ds1302.c: 116: RA5=0;
   364  21F4  9A80               	bcf	3968,5,c	;volatile
   365                           ;ds1302.c: 117: DS1302InputByte(ucDa);
   366  21F6  0100               	movlb	__Lparam shr (0+8)
   367  21F8  517D               	movf	?_Write1302^(__Lparam& (0+65280)),w
   368  21FA  DFA3               	call	_DS1302InputByte
   369                           ;ds1302.c: 118: Delay10Us(10);
   370  21FC  0E0A               	movlw	10
   371  21FE  EC38  F01D         	call	_Delay10Us
   372                           ;ds1302.c: 119: RC1 = 0;
   373  2202  9282               	bcf	3970,1,c	;volatile
   374                           ;ds1302.c: 120: RA5=0;
   375  2204  9A80               	bcf	3968,5,c	;volatile
   376                           ;ds1302.c: 121: }
   377  2206  0012               	return	
   378  2208  FFFF               	dw	65535
   379  220A  D7EF               	goto	f4652
   380                           ;ds1302.c: 123: unsigned char Read1302(unsigned 
      +                          char ucAddr)
   381                           ;ds1302.c: 124: {
   382  220C                     _Read1302:
   383  220C  FFFF               	dw	65535
   384  220E                     f4662:
   385  0000                     
   386                           ; _ucAddr loaded to btemp+1
   387  220E  6E01               	movwf	btemp+1
   388                           ;ds1302.c: 125: unsigned char ucData;
   389  2210  0901               	iorlw	1
   390  2212  DFAF               	call	_DS1302I_OputByte
   391  2214  6EF4               	movwf	prodh,c
   392                           ;ds1302.c: 128: return(ucData);
   393                           ;ds1302.c: 129: }
   394  2216  0012               	return	
   395  2218  FFFF               	dw	65535
   396  221A  D7F9               	goto	f4662
   397  221C  007D               	dw	?_DS1302_GetTime
   398  221E                     _DS1302_GetTime:
   399  221E  FFFF               	dw	65535
   400  2220                     f4672:
   401  0000                     
   402                           ;ds1302.c: 140: unsigned char ReadValue;
   403  2220  0E80               	movlw	128
   404  2222  DFF4               	call	_Read1302
   405  2224  6E02               	movwf	btemp+2
   406                           ;ds1302.c: 142: Time->Second = ((ReadValue&0x70)
      +                          >>4)*10 + (ReadValue&0x0F);
   407  2226  C002  F000         	movff	btemp+2,btemp
   408  222A  0E70               	movlw	112
   409  222C  1600               	andwf	btemp,f
   410  222E  3800               	swapf	btemp,w
   411  2230  0B0F               	andlw	15
   412  2232  0D0A               	mullw	10
   413  2234  C002  F000         	movff	btemp+2,btemp
   414  2238  0E0F               	movlw	15
   415  223A  1600               	andwf	btemp,f
   416  223C  50F3               	movf	prodl,w,c
   417  223E  2400               	addwf	btemp,w
   418  2240  C07D  FFE9         	movff	?_DS1302_GetTime,fsr0l
   419  2244  C07E  FFEA         	movff	?_DS1302_GetTime+1,fsr0h
   420  2248  6EEF               	movwf	indf0,c
   421                           ;ds1302.c: 143: ReadValue = Read1302(0x82);
   422  224A  0E82               	movlw	130
   423  224C  DFDF               	call	_Read1302
   424  224E  6E02               	movwf	btemp+2
   425                           ;ds1302.c: 144: Time->Minute = ((ReadValue&0x70)
      +                          >>4)*10 + (ReadValue&0x0F);
   426  2250  0100               	movlb	__Lparam shr (0+8)
   427  2252  EE00 F001          	lfsr	0,1
   428  2256  517D               	movf	?_DS1302_GetTime^(__Lparam& (0+65280)),w
   429  2258  26E9               	addwf	fsr0l,f,c
   430  225A  517E               	movf	(?_DS1302_GetTime+1)^(__Lparam& (0+65280))
      +                          ,w
   431  225C  22EA               	addwfc	fsr0h,f,c
   432  225E  C002  F000         	movff	btemp+2,btemp
   433  2262  0E70               	movlw	112
   434  2264  1600               	andwf	btemp,f
   435  2266  3800               	swapf	btemp,w
   436  2268  0B0F               	andlw	15
   437  226A  0D0A               	mullw	10
   438  226C  C002  F000         	movff	btemp+2,btemp
   439  2270  0E0F               	movlw	15
   440  2272  1600               	andwf	btemp,f
   441  2274  50F3               	movf	prodl,w,c
   442  2276  2400               	addwf	btemp,w
   443  2278  6EEF               	movwf	indf0,c
   444                           ;ds1302.c: 145: ReadValue = Read1302(0x84);
   445  227A  0E84               	movlw	132
   446  227C  DFC7               	call	_Read1302
   447  227E  6E02               	movwf	btemp+2
   448                           ;ds1302.c: 146: Time->Hour = ((ReadValue&0x70)>>
      +                          4)*10 + (ReadValue&0x0F);
   449  2280  0100               	movlb	__Lparam shr (0+8)
   450  2282  EE00 F002          	lfsr	0,2
   451  2286  517D               	movf	?_DS1302_GetTime^(__Lparam& (0+65280)),w
   452  2288  26E9               	addwf	fsr0l,f,c
   453  228A  517E               	movf	(?_DS1302_GetTime+1)^(__Lparam& (0+65280))
      +                          ,w
   454  228C  22EA               	addwfc	fsr0h,f,c
   455  228E  C002  F000         	movff	btemp+2,btemp
   456  2292  0E70               	movlw	112
   457  2294  1600               	andwf	btemp,f
   458  2296  3800               	swapf	btemp,w
   459  2298  0B0F               	andlw	15
   460  229A  0D0A               	mullw	10
   461  229C  C002  F000         	movff	btemp+2,btemp
   462  22A0  0E0F               	movlw	15
   463  22A2  1600               	andwf	btemp,f
   464  22A4  50F3               	movf	prodl,w,c
   465  22A6  2400               	addwf	btemp,w
   466  22A8  6EEF               	movwf	indf0,c
   467                           ;ds1302.c: 147: ReadValue = Read1302(0x86);
   468  22AA  0E86               	movlw	134
   469  22AC  DFAF               	call	_Read1302
   470  22AE  6E02               	movwf	btemp+2
   471                           ;ds1302.c: 148: Time->Day = ((ReadValue&0x70)>>4
      +                          )*10 + (ReadValue&0x0F);
   472  22B0  0100               	movlb	__Lparam shr (0+8)
   473  22B2  EE00 F004          	lfsr	0,4
   474  22B6  517D               	movf	?_DS1302_GetTime^(__Lparam& (0+65280)),w
   475  22B8  26E9               	addwf	fsr0l,f,c
   476  22BA  517E               	movf	(?_DS1302_GetTime+1)^(__Lparam& (0+65280))
      +                          ,w
   477  22BC  22EA               	addwfc	fsr0h,f,c
   478  22BE  C002  F000         	movff	btemp+2,btemp
   479  22C2  0E70               	movlw	112
   480  22C4  1600               	andwf	btemp,f
   481  22C6  3800               	swapf	btemp,w
   482  22C8  0B0F               	andlw	15
   483  22CA  0D0A               	mullw	10
   484  22CC  C002  F000         	movff	btemp+2,btemp

⌨️ 快捷键说明

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