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

📄 spi.lst

📁 利用PIC16F877的SPI口做出来的时钟
💻 LST
📖 第 1 页 / 共 4 页
字号:


HI-TECH Software PICC Macro Assembler V9.60
                                                      Fri Nov 23 20:44:51 2007


     1                           	processor	16F877
     2                           	opt	pw 79
     3                           	psect	strings,global,class=STRING,delta=2
     4                           	psect	const1,local,class=CONST,delta=2
     5                           	psect	text9,local,class=CODE,delta=2
     6                           	psect	text12,local,class=CODE,delta=2
     7                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
     8  0000                     
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18                           
    19                           	psect	const1
    20  000F  0782               	addwf	2
    21  0010                     _table
    22  0010  343F               	retlw	63
    23  0011  3400               	retlw	0
    24  0012  3406               	retlw	6
    25  0013  3400               	retlw	0
    26  0014  345B               	retlw	91
    27  0015  3400               	retlw	0
    28  0016  344F               	retlw	79
    29  0017  3400               	retlw	0
    30  0018  3466               	retlw	102
    31  0019  3400               	retlw	0
    32  001A  346D               	retlw	109
    33  001B  3400               	retlw	0
    34  001C  347D               	retlw	125
    35  001D  3400               	retlw	0
    36  001E  3407               	retlw	7
    37  001F  3400               	retlw	0
    38  0020  347F               	retlw	127
    39  0021  3400               	retlw	0
    40  0022  346F               	retlw	111
    41  0023  3400               	retlw	0
    42  0024  3400               	retlw	0
    43  0025  3400               	retlw	0
    44  0026  3400               	retlw	0
    45  0027  3400               	retlw	0
    46  0028  3400               	retlw	0
    47  0029  3400               	retlw	0
    48  002A  3400               	retlw	0
    49  002B  3400               	retlw	0
    50  002C  3400               	retlw	0
    51  002D  3400               	retlw	0
    52  002E  3400               	retlw	0
    53  002F  3400               	retlw	0
    54  0030  3400               	retlw	0
    55  0031  3400               	retlw	0
    56  0032  3400               	retlw	0
    57  0033  3400               	retlw	0
    58  0034  3400               	retlw	0
    59  0035  3400               	retlw	0
    60  0036  3400               	retlw	0
    61  0037  3400               	retlw	0
    62                           
    63                           	psect	text9
    64  05D3                     _hourbit1full
    65                           ;SPI.C: 227: void hourbit1full()
    66  05D3  0183               	clrf	3	;select bank 0
    67  05D4  0826               	movf	_f,w
    68  05D5  3A02               	xorlw	2
    69  05D6  1D03               	btfss	3,2
    70  05D7  0008               	return
    71                           ;SPI.C: 230: {
    72  05D8  0825               	movf	_e,w
    73  05D9  3A04               	xorlw	4
    74  05DA  1D03               	btfss	3,2
    75  05DB  0008               	return
    76                           ;SPI.C: 232: { flag=1;
    77  05DC  01A7               	clrf	_flag
    78  05DD  0AA7               	incf	_flag
    79                           ;SPI.C: 233: e=0;
    80  05DE  01A5               	clrf	_e
    81                           ;SPI.C: 234: f=0;
    82  05DF  01A6               	clrf	_f
    83                           ;SPI.C: 235: SSPBUF=table[0];
    84  05E0  120A  118A  2010   	fcall	_table
      +       120A  118A         
    85  05E5  0093               	movwf	19	;volatile
    86                           ;SPI.C: 236: RD5=0;
    87  05E6  1288               	bcf	8,5
    88                           ;SPI.C: 237: RD4=0;
    89  05E7  1208               	bcf	8,4
    90                           ;SPI.C: 238: while(flag==1)
    91  05E8                     l80
    92  05E8  0B27               	decfsz	_flag,w
    93  05E9  0008               	return
    94                           ;SPI.C: 239: {
    95  05EA  1D8C               	btfss	12,3
    96  05EB  2DE8               	goto	l80
    97                           ;SPI.C: 241: { flag=0;
    98  05EC  01A7               	clrf	_flag
    99                           ;SPI.C: 242: RD5=1;
   100  05ED  1688               	bsf	8,5
   101                           ;SPI.C: 243: RD4=1;
   102  05EE  1608               	bsf	8,4
   103                           ;SPI.C: 244: SSPIF=0;
   104  05EF  118C               	bcf	12,3
   105  05F0  2DE8               	goto	l80
   106  05F1                     _hourbit0full
   107                           ;SPI.C: 193: void hourbit0full()
   108  05F1  0183               	clrf	3	;select bank 0
   109  05F2  0825               	movf	_e,w
   110  05F3  3A0A               	xorlw	10
   111  05F4  1D03               	btfss	3,2
   112  05F5  0008               	return
   113                           ;SPI.C: 196: {
   114  05F6  01A7               	clrf	_flag
   115                           ;SPI.C: 198: e=0;
   116  05F7  01A5               	clrf	_e
   117                           ;SPI.C: 199: SSPBUF=table[e];
   118  05F8  3000               	movlw	_table shr (0+8)
   119  05F9  008A               	movwf	10
   120  05FA  0825               	movf	_e,w
   121  05FB  0725               	addwf	_e,w
   122  05FC  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   123  05FD  120A  118A         	pagesel	$
   124  05FF  0093               	movwf	19	;volatile
   125                           ;SPI.C: 201: RD4=0;
   126  0600  1208               	bcf	8,4
   127                           ;SPI.C: 202: while(flag==0)
   128  0601                     l69
   129  0601  08A7               	movf	_flag
   130  0602  1D03               	btfss	3,2
   131  0603  2E0B               	goto	l71
   132                           ;SPI.C: 203: {
   133  0604  1D8C               	btfss	12,3
   134  0605  2E01               	goto	l69
   135                           ;SPI.C: 205: { flag=1;
   136  0606  01A7               	clrf	_flag
   137  0607  0AA7               	incf	_flag
   138                           ;SPI.C: 206: RD4=1;
   139  0608  1608               	bsf	8,4
   140                           ;SPI.C: 207: SSPIF=0;
   141  0609  118C               	bcf	12,3
   142  060A  2E01               	goto	l69
   143  060B                     l71
   144                           ;SPI.C: 208: }
   145  060B  0AA6               	incf	_f
   146                           ;SPI.C: 212: SSPBUF=table[f];
   147  060C  3000               	movlw	_table shr (0+8)
   148  060D  008A               	movwf	10
   149  060E  0826               	movf	_f,w
   150  060F  0726               	addwf	_f,w
   151  0610  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   152  0611  120A  118A         	pagesel	$
   153  0613  0093               	movwf	19	;volatile
   154                           ;SPI.C: 213: RD5=0;
   155  0614  1288               	bcf	8,5
   156                           ;SPI.C: 214: while(flag==1)
   157  0615                     l73
   158  0615  0B27               	decfsz	_flag,w
   159  0616  0008               	return
   160                           ;SPI.C: 215: {
   161  0617  1D8C               	btfss	12,3
   162  0618  2E15               	goto	l73
   163                           ;SPI.C: 217: { flag=0;
   164  0619  01A7               	clrf	_flag
   165                           ;SPI.C: 218: RD5=1;
   166  061A  1688               	bsf	8,5
   167                           ;SPI.C: 219: SSPIF=0;
   168  061B  118C               	bcf	12,3
   169  061C  2E15               	goto	l73
   170  061D                     _minbit1full
   171                           ;SPI.C: 161: void minbit1full()
   172  061D  0183               	clrf	3	;select bank 0
   173  061E  0823               	movf	_d,w
   174  061F  3A06               	xorlw	6
   175  0620  1D03               	btfss	3,2
   176  0621  0008               	return
   177                           ;SPI.C: 164: {
   178  0622  01A7               	clrf	_flag
   179  0623  0AA7               	incf	_flag
   180                           ;SPI.C: 166: d=0;
   181  0624  01A3               	clrf	_d
   182                           ;SPI.C: 167: SSPBUF=table[d];
   183  0625  3000               	movlw	_table shr (0+8)
   184  0626  008A               	movwf	10
   185  0627  0823               	movf	_d,w
   186  0628  0723               	addwf	_d,w
   187  0629  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   188  062A  120A  118A         	pagesel	$
   189  062C  0093               	movwf	19	;volatile
   190                           ;SPI.C: 168: RD3=0;
   191  062D  1188               	bcf	8,3
   192                           ;SPI.C: 169: while(flag==1)
   193  062E                     l59
   194  062E  0B27               	decfsz	_flag,w
   195  062F  2E36               	goto	l61
   196                           ;SPI.C: 170: {
   197  0630  1D8C               	btfss	12,3
   198  0631  2E2E               	goto	l59
   199                           ;SPI.C: 172: { flag=0;
   200  0632  01A7               	clrf	_flag
   201                           ;SPI.C: 173: RD3=1;
   202  0633  1588               	bsf	8,3
   203                           ;SPI.C: 174: SSPIF=0;
   204  0634  118C               	bcf	12,3
   205  0635  2E2E               	goto	l59
   206  0636                     l61
   207                           ;SPI.C: 175: }
   208  0636  0AA5               	incf	_e
   209                           ;SPI.C: 179: SSPBUF=table[e];
   210  0637  3000               	movlw	_table shr (0+8)
   211  0638  008A               	movwf	10
   212  0639  0825               	movf	_e,w
   213  063A  0725               	addwf	_e,w
   214  063B  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   215  063C  120A  118A         	pagesel	$
   216  063E  0093               	movwf	19	;volatile
   217                           ;SPI.C: 180: RD4=0;
   218  063F  1208               	bcf	8,4
   219                           ;SPI.C: 181: while(flag==0)
   220  0640                     l63
   221  0640  08A7               	movf	_flag
   222  0641  1D03               	btfss	3,2
   223  0642  0008               	return
   224                           ;SPI.C: 182: {
   225  0643  1D8C               	btfss	12,3
   226  0644  2E40               	goto	l63
   227                           ;SPI.C: 184: { flag=1;
   228  0645  01A7               	clrf	_flag
   229  0646  0AA7               	incf	_flag
   230                           ;SPI.C: 185: RD4=1;
   231  0647  1608               	bsf	8,4
   232                           ;SPI.C: 186: SSPIF=0;
   233  0648  118C               	bcf	12,3
   234  0649  2E40               	goto	l63
   235  064A                     _minbit0full
   236                           ;SPI.C: 130: void minbit0full()
   237  064A  0183               	clrf	3	;select bank 0
   238  064B  0822               	movf	_c,w
   239  064C  3A0A               	xorlw	10
   240  064D  1D03               	btfss	3,2
   241  064E  0008               	return
   242                           ;SPI.C: 133: { flag=1;
   243  064F  01A7               	clrf	_flag
   244  0650  0AA7               	incf	_flag
   245                           ;SPI.C: 134: c=0;
   246  0651  01A2               	clrf	_c
   247                           ;SPI.C: 135: SSPBUF=table[c];
   248  0652  3000               	movlw	_table shr (0+8)
   249  0653  008A               	movwf	10
   250  0654  0822               	movf	_c,w
   251  0655  0722               	addwf	_c,w
   252  0656  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   253  0657  120A  118A         	pagesel	$
   254  0659  0093               	movwf	19	;volatile
   255                           ;SPI.C: 136: RD2=0;
   256  065A  1108               	bcf	8,2
   257                           ;SPI.C: 137: while(flag==1)
   258  065B                     l49
   259  065B  0B27               	decfsz	_flag,w
   260  065C  2E63               	goto	l51
   261                           ;SPI.C: 138: {
   262  065D  1D8C               	btfss	12,3
   263  065E  2E5B               	goto	l49
   264                           ;SPI.C: 140: { flag=0;
   265  065F  01A7               	clrf	_flag
   266                           ;SPI.C: 141: RD2=1;
   267  0660  1508               	bsf	8,2
   268                           ;SPI.C: 142: SSPIF=0;
   269  0661  118C               	bcf	12,3
   270  0662  2E5B               	goto	l49
   271  0663                     l51
   272                           ;SPI.C: 143: }
   273  0663  0AA3               	incf	_d
   274                           ;SPI.C: 147: SSPBUF=table[d];
   275  0664  3000               	movlw	_table shr (0+8)
   276  0665  008A               	movwf	10
   277  0666  0823               	movf	_d,w
   278  0667  0723               	addwf	_d,w
   279  0668  200F               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   280  0669  120A  118A         	pagesel	$
   281  066B  0093               	movwf	19	;volatile
   282                           ;SPI.C: 148: RD3=0;
   283  066C  1188               	bcf	8,3
   284                           ;SPI.C: 149: while(flag==0)
   285  066D                     l53
   286  066D  08A7               	movf	_flag
   287  066E  1D03               	btfss	3,2
   288  066F  0008               	return
   289                           ;SPI.C: 150: {
   290  0670  1D8C               	btfss	12,3
   291  0671  2E6D               	goto	l53
   292                           ;SPI.C: 152: { flag=1;
   293  0672  01A7               	clrf	_flag
   294  0673  0AA7               	incf	_flag
   295                           ;SPI.C: 153: RD3=1;
   296  0674  1588               	bsf	8,3
   297                           ;SPI.C: 154: SSPIF=0;
   298  0675  118C               	bcf	12,3
   299  0676  2E6D               	goto	l53
   300  0677                     _secbit1full
   301                           ;SPI.C: 97: void secbit1full()
   302  0677  0183               	clrf	3	;select bank 0

⌨️ 快捷键说明

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