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

📄 spi.lst

📁 利用PIC16F877的SPI口做出来的时钟
💻 LST
📖 第 1 页 / 共 4 页
字号:
   303  0678  0821               	movf	_b,w
   304  0679  3A06               	xorlw	6
   305  067A  1D03               	btfss	3,2
   306  067B  0008               	return
   307                           ;SPI.C: 100: {
   308  067C  01A7               	clrf	_flag
   309  067D  0AA7               	incf	_flag
   310                           ;SPI.C: 102: b=0 ;
   311  067E  01A1               	clrf	_b
   312                           ;SPI.C: 103: SSPBUF=table[b];
   313  067F  3000               	movlw	_table shr (0+8)
   314  0680  008A               	movwf	10
   315  0681  0821               	movf	_b,w
   316  0682  0721               	addwf	_b,w
   317  0683  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   318  0684  120A  118A         	pagesel	$
   319  0686  0093               	movwf	19	;volatile
   320                           ;SPI.C: 104: RD1=0;
   321  0687  1088               	bcf	8,1
   322                           ;SPI.C: 105: while(flag==1)
   323  0688                     l39
   324  0688  0B27               	decfsz	_flag,w
   325  0689  2E90               	goto	l41
   326                           ;SPI.C: 106: {
   327  068A  1D8C               	btfss	12,3
   328  068B  2E88               	goto	l39
   329                           ;SPI.C: 108: { flag=0;
   330  068C  01A7               	clrf	_flag
   331                           ;SPI.C: 109: RD1=1;
   332  068D  1488               	bsf	8,1
   333                           ;SPI.C: 110: SSPIF=0;
   334  068E  118C               	bcf	12,3
   335  068F  2E88               	goto	l39
   336  0690                     l41
   337                           ;SPI.C: 111: }
   338  0690  0AA2               	incf	_c
   339                           ;SPI.C: 116: SSPBUF=table[c];
   340  0691  3000               	movlw	_table shr (0+8)
   341  0692  008A               	movwf	10
   342  0693  0822               	movf	_c,w
   343  0694  0722               	addwf	_c,w
   344  0695  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   345  0696  120A  118A         	pagesel	$
   346  0698  0093               	movwf	19	;volatile
   347                           ;SPI.C: 117: RD2=0;
   348  0699  1108               	bcf	8,2
   349                           ;SPI.C: 118: while(flag==0)
   350  069A                     l43
   351  069A  08A7               	movf	_flag
   352  069B  1D03               	btfss	3,2
   353  069C  0008               	return
   354                           ;SPI.C: 119: {
   355  069D  1D8C               	btfss	12,3
   356  069E  2E9A               	goto	l43
   357                           ;SPI.C: 121: { flag=1;
   358  069F  01A7               	clrf	_flag
   359  06A0  0AA7               	incf	_flag
   360                           ;SPI.C: 122: RD2=1;
   361  06A1  1508               	bsf	8,2
   362                           ;SPI.C: 123: SSPIF=0;
   363  06A2  118C               	bcf	12,3
   364  06A3  2E9A               	goto	l43
   365  06A4                     _secbit0full
   366                           ;SPI.C: 82: void secbit0full()
   367  06A4  0183               	clrf	3	;select bank 0
   368  06A5  0AA1               	incf	_b
   369                           ;SPI.C: 85: SSPBUF=table[b];
   370  06A6  3000               	movlw	_table shr (0+8)
   371  06A7  008A               	movwf	10
   372  06A8  0821               	movf	_b,w
   373  06A9  0721               	addwf	_b,w
   374  06AA  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   375  06AB  120A  118A         	pagesel	$
   376  06AD  0093               	movwf	19	;volatile
   377                           ;SPI.C: 86: RD1=0;
   378  06AE  1088               	bcf	8,1
   379                           ;SPI.C: 87: while(flag==1)
   380  06AF  2EB5               	goto	l33
   381  06B0                     l34
   382                           ;SPI.C: 88: {
   383  06B0  1D8C               	btfss	12,3
   384  06B1  2EB5               	goto	l33
   385                           ;SPI.C: 90: { flag=0;
   386  06B2  01A7               	clrf	_flag
   387                           ;SPI.C: 91: RD1=1;
   388  06B3  1488               	bsf	8,1
   389                           ;SPI.C: 92: SSPIF=0;
   390  06B4  118C               	bcf	12,3
   391  06B5                     l33
   392  06B5  0B27               	decfsz	_flag,w
   393  06B6  0008               	return
   394  06B7  2EB0               	goto	l34
   395  06B8                     _delay500ms
   396                           ;	_i assigned to ?a_delay500ms+0
   397  0000                     _delay500ms$i	set	?a_delay500ms
   398                           ;	_m assigned to ?a_delay500ms+1
   399  0000                     _delay500ms$m	set	?a_delay500ms+1
   400                           ;	_n assigned to ?a_delay500ms+2
   401  0000                     _delay500ms$n	set	?a_delay500ms+2
   402                           ;SPI.C: 8: void delay500ms(void)
   403  06B8  300F               	movlw	15
   404  06B9  0183               	clrf	3	;select bank 0
   405  06BA  00AA               	movwf	?a_delay500ms
   406  06BB                     l2
   407                           ;SPI.C: 12: for(m=202;m>0;m--)
   408  06BB  30CA               	movlw	-54
   409  06BC  00AB               	movwf	?a_delay500ms+1
   410  06BD                     l5
   411                           ;SPI.C: 13: for(n=81;n>0;n--);
   412  06BD  3051               	movlw	81
   413  06BE  00AC               	movwf	?a_delay500ms+2
   414  06BF                     l8
   415  06BF  0BAC               	decfsz	?a_delay500ms+2
   416  06C0  2EBF               	goto	l8
   417  06C1  0BAB               	decfsz	?a_delay500ms+1
   418  06C2  2EBD               	goto	l5
   419  06C3  0BAA               	decfsz	?a_delay500ms
   420  06C4  2EBB               	goto	l2
   421  06C5  0008               	return
   422  06C6                     _settimedelay
   423                           ;	_h assigned to ?a_settimedelay+0
   424  0000                     _settimedelay$h	set	?a_settimedelay
   425                           ;	_l assigned to ?a_settimedelay+1
   426  0000                     _settimedelay$l	set	?a_settimedelay+1
   427                           ;SPI.C: 16: void settimedelay()
   428  06C6  0183               	clrf	3	;select bank 0
   429  06C7  01AA               	clrf	?a_settimedelay
   430  06C8                     l12
   431                           ;SPI.C: 20: for(l=0;l<100;l++);
   432  06C8  01AB               	clrf	?a_settimedelay+1
   433  06C9                     l15
   434  06C9  0AAB               	incf	?a_settimedelay+1
   435  06CA  3064               	movlw	100
   436  06CB  022B               	subwf	?a_settimedelay+1,w
   437  06CC  1C03               	btfss	3,0
   438  06CD  2EC9               	goto	l15
   439  06CE  0AAA               	incf	?a_settimedelay
   440  06CF  3028               	movlw	40
   441  06D0  022A               	subwf	?a_settimedelay,w
   442  06D1  1803               	btfsc	3,0
   443  06D2  0008               	return
   444  06D3  2EC8               	goto	l12
   445  06D4                     _settime
   446                           ;SPI.C: 253: void settime()
   447  06D4  0183               	clrf	3	;select bank 0
   448  06D5  01A9               	clrf	_setflag
   449  06D6  0AA9               	incf	_setflag
   450                           ;SPI.C: 256: flag=0;
   451  06D7  01A7               	clrf	_flag
   452                           ;SPI.C: 257: a=b=0;
   453  06D8  01A1               	clrf	_b
   454  06D9  01A0               	clrf	_a
   455                           ;SPI.C: 258: SSPBUF=0X3F;
   456  06DA  303F               	movlw	63
   457  06DB  0093               	movwf	19	;volatile
   458                           ;SPI.C: 259: RD0=RD1=0;
   459  06DC  1088               	bcf	8,1
   460  06DD  1008               	bcf	8,0
   461                           ;SPI.C: 260: while(flag==0)
   462  06DE  2EE6               	goto	l85
   463  06DF                     l86
   464                           ;SPI.C: 261: {
   465  06DF  1D8C               	btfss	12,3
   466  06E0  2EE6               	goto	l85
   467                           ;SPI.C: 263: { flag=1;
   468  06E1  01A7               	clrf	_flag
   469  06E2  0AA7               	incf	_flag
   470                           ;SPI.C: 264: RD0=RD1=1;
   471  06E3  1488               	bsf	8,1
   472  06E4  1408               	bsf	8,0
   473                           ;SPI.C: 265: SSPIF=0;
   474  06E5  118C               	bcf	12,3
   475  06E6                     l85
   476  06E6  08A7               	movf	_flag
   477  06E7  1D03               	btfss	3,2
   478  06E8  2F71               	goto	l89
   479  06E9  2EDF               	goto	l86
   480                           ;SPI.C: 266: }
   481  06EA                     l90
   482                           ;SPI.C: 270: {
   483  06EA  1809               	btfsc	9,0
   484  06EB  2F25               	goto	l92
   485                           ;SPI.C: 273: {
   486  06EC  26C6               	fcall	_settimedelay
   487                           ;SPI.C: 275: settimedelay();
   488  06ED  26C6               	fcall	_settimedelay
   489                           ;SPI.C: 276: settimedelay();
   490  06EE  26C6               	fcall	_settimedelay
   491                           ;SPI.C: 277: if(RE0==0)
   492  06EF  1809               	btfsc	9,0
   493  06F0  2F25               	goto	l92
   494                           ;SPI.C: 278: {
   495  06F1  01A7               	clrf	_flag
   496                           ;SPI.C: 280: c=c+1;
   497  06F2  0AA2               	incf	_c
   498                           ;SPI.C: 282: if(c==0x0a)
   499  06F3  0822               	movf	_c,w
   500  06F4  3A0A               	xorlw	10
   501  06F5  1D03               	btfss	3,2
   502  06F6  2F11               	goto	l94
   503                           ;SPI.C: 283: {
   504  06F7  01A7               	clrf	_flag
   505                           ;SPI.C: 285: c=0;
   506  06F8  01A2               	clrf	_c
   507                           ;SPI.C: 286: d=d+1;
   508  06F9  0AA3               	incf	_d
   509                           ;SPI.C: 287: if(d==6)
   510  06FA  0823               	movf	_d,w
   511  06FB  3A06               	xorlw	6
   512  06FC  1903               	btfsc	3,2
   513                           ;SPI.C: 288: {d=0;}
   514  06FD  01A3               	clrf	_d
   515                           ;SPI.C: 289: SSPBUF=table[d];
   516  06FE  3000               	movlw	_table shr (0+8)
   517  06FF  008A               	movwf	10
   518  0700  0823               	movf	_d,w
   519  0701  0723               	addwf	_d,w
   520  0702  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   521  0703  120A  118A         	pagesel	$
   522  0705  0093               	movwf	19	;volatile
   523                           ;SPI.C: 290: RD3=0;
   524  0706  1188               	bcf	8,3
   525                           ;SPI.C: 291: while(flag==0)
   526  0707                     l96
   527  0707  08A7               	movf	_flag
   528  0708  1D03               	btfss	3,2
   529  0709  2F11               	goto	l94
   530                           ;SPI.C: 292: {
   531  070A  1D8C               	btfss	12,3
   532  070B  2F07               	goto	l96
   533                           ;SPI.C: 294: { flag=1;
   534  070C  01A7               	clrf	_flag
   535  070D  0AA7               	incf	_flag
   536                           ;SPI.C: 295: RD3=1;
   537  070E  1588               	bsf	8,3
   538                           ;SPI.C: 296: SSPIF=0;
   539  070F  118C               	bcf	12,3
   540  0710  2F07               	goto	l96
   541  0711                     l94
   542                           ;SPI.C: 297: }
   543  0711  01A7               	clrf	_flag
   544                           ;SPI.C: 302: SSPBUF=table[c];
   545  0712  3000               	movlw	_table shr (0+8)
   546  0713  008A               	movwf	10
   547  0714  0822               	movf	_c,w
   548  0715  0722               	addwf	_c,w
   549  0716  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   550  0717  120A  118A         	pagesel	$
   551  0719  0093               	movwf	19	;volatile
   552                           ;SPI.C: 303: RD2=0;
   553  071A  1108               	bcf	8,2
   554                           ;SPI.C: 304: while(flag==0)
   555  071B                     l100
   556  071B  08A7               	movf	_flag
   557  071C  1D03               	btfss	3,2
   558  071D  2F25               	goto	l92
   559                           ;SPI.C: 305: {
   560  071E  1D8C               	btfss	12,3
   561  071F  2F1B               	goto	l100
   562                           ;SPI.C: 307: { flag=1;
   563  0720  01A7               	clrf	_flag
   564  0721  0AA7               	incf	_flag
   565                           ;SPI.C: 308: RD2=1;
   566  0722  1508               	bsf	8,2
   567                           ;SPI.C: 309: SSPIF=0;
   568  0723  118C               	bcf	12,3
   569  0724  2F1B               	goto	l100
   570  0725                     l92
   571                           ;SPI.C: 310: }
   572  0725  26C6               	fcall	_settimedelay
   573                           ;SPI.C: 315: settimedelay();
   574  0726  26C6               	fcall	_settimedelay
   575                           ;SPI.C: 318: if(RE1==0)
   576  0727  1889               	btfsc	9,1
   577  0728  2F68               	goto	l104
   578                           ;SPI.C: 319: {
   579  0729  26C6               	fcall	_settimedelay
   580                           ;SPI.C: 321: settimedelay();
   581  072A  26C6               	fcall	_settimedelay
   582                           ;SPI.C: 322: settimedelay();
   583  072B  26C6               	fcall	_settimedelay
   584                           ;SPI.C: 323: if(RE1==0)
   585  072C  1889               	btfsc	9,1
   586  072D  2F68               	goto	l104
   587                           ;SPI.C: 324: {
   588  072E  01A7               	clrf	_flag
   589                           ;SPI.C: 326: e=e+1;
   590  072F  0AA5               	incf	_e
   591                           ;SPI.C: 327: if(e==0x0a)
   592  0730  0825               	movf	_e,w
   593  0731  3A0A               	xorlw	10
   594  0732  1D03               	btfss	3,2
   595  0733  2F36               	goto	l106
   596                           ;SPI.C: 328: {
   597  0734  01A5               	clrf	_e
   598                           ;SPI.C: 330: f=f+1;
   599  0735  0AA6               	incf	_f
   600  0736                     l106
   601                           ;SPI.C: 331: }
   602  0736  0826               	movf	_f,w
   603  0737  3A02               	xorlw	2
   604  0738  1D03               	btfss	3,2
   605  0739  2F40               	goto	l107
   606  073A  0825               	movf	_e,w
   607  073B  3A04               	xorlw	4
   608  073C  1D03               	btfss	3,2
   609  073D  2F40               	goto	l107
   610                           ;SPI.C: 334: {f=0;e=0;}
   611  073E  01A6               	clrf	_f
   612  073F  01A5               	clrf	_e

⌨️ 快捷键说明

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