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

📄 ssp.lst

📁 用PIC16F887做的4个触摸按键的例程
💻 LST
📖 第 1 页 / 共 4 页
字号:
   264  0F01  0DBF               	rlf	?a_LoadSSPBUF+1
   265  0F02  0821               	movf	_ByteCount,w
   266  0F03  00C0               	movwf	?a_LoadSSPBUF+2
   267  0F04  01C1               	clrf	?a_LoadSSPBUF+3
   268  0F05  083F               	movf	?a_LoadSSPBUF+1,w
   269  0F06  0641               	xorwf	?a_LoadSSPBUF+3,w
   270  0F07  1D03               	btfss	3,2
   271  0F08  2F0B               	goto	u305
   272  0F09  083E               	movf	?a_LoadSSPBUF,w
   273  0F0A  0640               	xorwf	?a_LoadSSPBUF+2,w
   274  0F0B                     u305
   275  0F0B  1D03               	btfss	3,2
   276  0F0C  2F0F               	goto	l37
   277                           ;ssp.c: 215: IndexCount = SSPIndex;
   278  0F0D  0827               	movf	_SSPIndex,w
   279  0F0E  00A5               	movwf	_IndexCount
   280  0F0F                     l37
   281                           ;ssp.c: 218: SSPBUF = (ByteCount % 2) ? TRIP[In
      +                          dexCount] : TRIP[IndexCount] >> 8;
   282  0F0F  1821               	btfsc	_ByteCount,0
   283  0F10  2F1C               	goto	u326
   284  0F11  0825               	movf	_IndexCount,w
   285  0F12  0725               	addwf	_IndexCount,w
   286  0F13  3EB2               	addlw	_TRIP^(0+256)
   287  0F14                     L10
   288  0F14  0084               	movwf	4
   289  0F15  1783               	bsf	3,7
   290  0F16  0800               	movf	0,w
   291  0F17  00FA               	movwf	btemp
   292  0F18  0A84               	incf	4
   293  0F19  0800               	movf	0,w
   294  0F1A  00FB               	movwf	btemp+1
   295  0F1B  2F73               	goto	L3
   296  0F1C                     u326
   297  0F1C  1303               	bcf	3,6	;carry unused
   298  0F1D  0825               	movf	_IndexCount,w
   299  0F1E  0725               	addwf	_IndexCount,w
   300  0F1F  3EB2               	addlw	_TRIP^(0+256)
   301  0F20                     L11
   302  0F20  0084               	movwf	4
   303  0F21  1783               	bsf	3,7
   304  0F22  0800               	movf	0,w
   305  0F23  2F73               	goto	L3
   306                           ;ssp.c: 220: } else if (ByteCount <2*SSPSize*4)
      +                           {
   307  0F24                     L16
   308  0F24  1003               	bcf	3,0
   309  0F25  0DBE               	rlf	?a_LoadSSPBUF
   310  0F26  0DBF               	rlf	?a_LoadSSPBUF+1
   311  0F27  1003               	bcf	3,0
   312  0F28  0DBE               	rlf	?a_LoadSSPBUF
   313  0F29  0DBF               	rlf	?a_LoadSSPBUF+1
   314  0F2A  1003               	bcf	3,0
   315  0F2B  0DBE               	rlf	?a_LoadSSPBUF
   316  0F2C  0DBF               	rlf	?a_LoadSSPBUF+1
   317  0F2D  0821               	movf	_ByteCount,w
   318  0F2E  00C0               	movwf	?a_LoadSSPBUF+2
   319  0F2F  01C1               	clrf	?a_LoadSSPBUF+3
   320  0F30  0841               	movf	?a_LoadSSPBUF+3,w
   321  0F31  3A80               	xorlw	128
   322  0F32  00FA               	movwf	btemp
   323  0F33  083F               	movf	?a_LoadSSPBUF+1,w
   324  0F34  3A80               	xorlw	128
   325  0F35  027A               	subwf	btemp,w
   326  0F36  1D03               	btfss	3,2
   327  0F37  2F3A               	goto	u335
   328  0F38  083E               	movf	?a_LoadSSPBUF,w
   329  0F39  0240               	subwf	?a_LoadSSPBUF+2,w
   330  0F3A                     u335
   331  0F3A  1803               	btfsc	3,0
   332  0F3B  2F74               	goto	l28
   333                           ;ssp.c: 225: if (ByteCount == 2*SSPSize*3)
   334  0F3C  3003               	movlw	3
   335  0F3D  00FC               	movwf	btemp+2
   336  0F3E  01FD               	clrf	btemp+3
   337  0F3F  0828               	movf	_SSPSize,w
   338  0F40  00FA               	movwf	btemp
   339  0F41  01FB               	clrf	btemp+1
   340  0F42  1003               	bcf	3,0
   341  0F43  0DFA               	rlf	btemp
   342  0F44  0DFB               	rlf	btemp+1
   343  0F45  120A  118A  2782   	fcall	awmul
      +       120A  158A         
   344  0F4A  0821               	movf	_ByteCount,w
   345  0F4B  00BE               	movwf	?a_LoadSSPBUF
   346  0F4C  01BF               	clrf	?a_LoadSSPBUF+1
   347  0F4D  087F               	movf	btemp+5,w
   348  0F4E  063F               	xorwf	?a_LoadSSPBUF+1,w
   349  0F4F  1D03               	btfss	3,2
   350  0F50  2F53               	goto	u345
   351  0F51  087E               	movf	btemp+4,w
   352  0F52  063E               	xorwf	?a_LoadSSPBUF,w
   353  0F53                     u345
   354  0F53  1D03               	btfss	3,2
   355  0F54  2F57               	goto	l40
   356                           ;ssp.c: 226: IndexCount = SSPIndex;
   357  0F55  0827               	movf	_SSPIndex,w
   358  0F56  00A5               	movwf	_IndexCount
   359  0F57                     l40
   360                           ;ssp.c: 229: SSPBUF = (ByteCount % 2) ? GUARD[I
      +                          ndexCount] : GUARD[IndexCount] >> 8;
   361  0F57  1821               	btfsc	_ByteCount,0
   362  0F58  2F64               	goto	u366
   363  0F59  0825               	movf	_IndexCount,w
   364  0F5A  0725               	addwf	_IndexCount,w
   365  0F5B  3E90               	addlw	_GUARD^(0+256)
   366  0F5C  0084               	movwf	4
   367  0F5D  1783               	bsf	3,7
   368  0F5E  0800               	movf	0,w
   369  0F5F  00FA               	movwf	btemp
   370  0F60  0A84               	incf	4
   371  0F61  0800               	movf	0,w
   372  0F62  00FB               	movwf	btemp+1
   373  0F63  2F6C               	goto	u367
   374  0F64                     u366
   375  0F64  1283               	bcf	3,5
   376  0F65  1303               	bcf	3,6	;carry unused
   377  0F66  0825               	movf	_IndexCount,w
   378  0F67  0725               	addwf	_IndexCount,w
   379  0F68  3E90               	addlw	_GUARD^(0+256)
   380  0F69  0084               	movwf	4
   381  0F6A  1783               	bsf	3,7
   382  0F6B  0800               	movf	0,w
   383  0F6C                     u367
   384  0F6C  1283               	bcf	3,5
   385  0F6D  1303               	bcf	3,6	;carry unused
   386  0F6E  2F73               	goto	L3
   387                           ;ssp.c: 231: }
   388  0F6F                     l29
   389  0F6F  08A6               	movf	_SSPCommand
   390  0F70  1D03               	btfss	3,2
   391  0F71  2F74               	goto	l28
   392                           ;ssp.c: 236: SSPBUF = 17;
   393  0F72  3011               	movlw	17
   394  0F73                     L3
   395  0F73  0093               	movwf	19	;volatile
   396  0F74                     l28
   397                           ;ssp.c: 238: }
   398  0F74  0AA1               	incf	_ByteCount
   399                           ;ssp.c: 246: if (ByteCount % 2 == 0)
   400  0F75  1C21               	btfss	_ByteCount,0
   401                           ;ssp.c: 247: IndexCount++;
   402  0F76  0AA5               	incf	_IndexCount
   403                           ;ssp.c: 249: }
   404  0F77  0008               	return	;W free
   405  0F78                     _UnloadSSPBUF
   406                           ;ssp.c: 262: void UnloadSSPBUF(void) {
   407  0F78  0183               	clrf	3	;select bank 0
   408  0F79  0813               	movf	19,w	;volatile
   409  0F7A  00AF               	movwf	_TempInt
   410  0F7B  01B0               	clrf	_TempInt+1
   411                           ;ssp.c: 268: if (SSPCommand == 0x30) {
   412  0F7C  0826               	movf	_SSPCommand,w
   413  0F7D  3A30               	xorlw	48
   414  0F7E  1D03               	btfss	3,2
   415  0F7F  2FC0               	goto	l45
   416                           ;ssp.c: 277: if (ByteCount == 3)
   417  0F80  0821               	movf	_ByteCount,w
   418  0F81  3A03               	xorlw	3
   419  0F82  1D03               	btfss	3,2
   420  0F83  2F8B               	goto	l46
   421                           ;ssp.c: 278: TRIP[SSPIndex] = TempInt << 8;
   422  0F84  082F               	movf	_TempInt,w
   423  0F85  00FB               	movwf	btemp+1
   424  0F86  01FA               	clrf	btemp
   425  0F87  0827               	movf	_SSPIndex,w
   426  0F88  0727               	addwf	_SSPIndex,w
   427  0F89  3EB2               	addlw	_TRIP^(0+256)
   428  0F8A  2F95               	goto	L17
   429  0F8B                     l46
   430                           ;ssp.c: 279: else if (ByteCount == 5)
   431  0F8B  0821               	movf	_ByteCount,w
   432  0F8C  3A05               	xorlw	5
   433  0F8D  1D03               	btfss	3,2
   434  0F8E  2F9C               	goto	l47
   435                           ;ssp.c: 280: GUARD[SSPIndex] = TempInt << 8;
   436  0F8F  082F               	movf	_TempInt,w
   437  0F90  00FB               	movwf	btemp+1
   438  0F91  01FA               	clrf	btemp
   439  0F92  0827               	movf	_SSPIndex,w
   440  0F93  0727               	addwf	_SSPIndex,w
   441  0F94  3E90               	addlw	_GUARD^(0+256)
   442  0F95                     L17
   443  0F95  0084               	movwf	4
   444  0F96  1783               	bsf	3,7
   445  0F97  087A               	movf	btemp,w
   446  0F98  0080               	movwf	0
   447  0F99  0A84               	incf	4
   448  0F9A  087B               	movf	btemp+1,w
   449  0F9B  0080               	movwf	0
   450  0F9C                     l47
   451                           ;ssp.c: 283: if (ByteCount == 4) {
   452  0F9C  0821               	movf	_ByteCount,w
   453  0F9D  3A04               	xorlw	4
   454  0F9E  1D03               	btfss	3,2
   455  0F9F  2FAB               	goto	l49
   456                           ;ssp.c: 284: TRIP[SSPIndex] &= 0xFF00;
   457  0FA0  0827               	movf	_SSPIndex,w
   458  0FA1  0727               	addwf	_SSPIndex,w
   459  0FA2  3EB2               	addlw	_TRIP^(0+256)
   460  0FA3  0084               	movwf	4
   461  0FA4  1783               	bsf	3,7
   462  0FA5  0180               	clrf	0
   463  0FA6  0A84               	incf	4
   464                           ;ssp.c: 285: TRIP[SSPIndex] |= TempInt;
   465  0FA7  0827               	movf	_SSPIndex,w
   466  0FA8  0727               	addwf	_SSPIndex,w
   467  0FA9  3EB2               	addlw	_TRIP^(0+256)
   468  0FAA  2FB9               	goto	L18
   469                           ;ssp.c: 286: } else if (ByteCount == 6) {
   470  0FAB                     l49
   471  0FAB  0821               	movf	_ByteCount,w
   472  0FAC  3A06               	xorlw	6
   473  0FAD  1D03               	btfss	3,2
   474  0FAE  2FC0               	goto	l45
   475                           ;ssp.c: 287: GUARD[SSPIndex] &= 0xFF00;
   476  0FAF  0827               	movf	_SSPIndex,w
   477  0FB0  0727               	addwf	_SSPIndex,w
   478  0FB1  3E90               	addlw	_GUARD^(0+256)
   479  0FB2  0084               	movwf	4
   480  0FB3  1783               	bsf	3,7
   481  0FB4  0180               	clrf	0
   482  0FB5  0A84               	incf	4
   483                           ;ssp.c: 288: GUARD[SSPIndex] |= TempInt;
   484  0FB6  0827               	movf	_SSPIndex,w
   485  0FB7  0727               	addwf	_SSPIndex,w
   486  0FB8  3E90               	addlw	_GUARD^(0+256)
   487  0FB9                     L18
   488  0FB9  0084               	movwf	4
   489  0FBA  1783               	bsf	3,7
   490  0FBB  082F               	movf	_TempInt,w
   491  0FBC  0480               	iorwf	0
   492  0FBD  0A84               	incf	4
   493  0FBE  0830               	movf	_TempInt+1,w
   494  0FBF  0480               	iorwf	0
   495  0FC0                     l45
   496                           ;ssp.c: 289: }
   497  0FC0  0AA1               	incf	_ByteCount
   498                           ;ssp.c: 293: }
   499  0FC1  0008               	return	;W free
   500  0FC2                     _SSPISR
   501                           ;ssp.c: 60: void SSPISR(void) {
   502  0FC2  0183               	clrf	3	;select bank 0
   503  0FC3  118C               	bcf	12,3
   504                           ;ssp.c: 69: if (STOP == 1) {
   505  0FC4  1683               	bsf	3,5
   506  0FC5  1E14               	btfss	20,4
   507  0FC6  2FCC               	goto	l5
   508                           ;ssp.c: 71: Flags.SSPBF = 0;
   509  0FC7  1283               	bcf	3,5
   510  0FC8  1023               	bcf	_Flags,0
   511                           ;ssp.c: 74: SSPOV = 0;
   512  0FC9  1314               	bcf	20,6
   513                           ;ssp.c: 75: CKP = 1;
   514  0FCA  1614               	bsf	20,4
   515                           ;ssp.c: 76: return;
   516  0FCB  0008               	return
   517  0FCC                     l5
   518  0FCC  1D14               	btfss	20,2
   519  0FCD  1814               	btfsc	20,0
   520  0FCE  2FD4               	goto	l6
   521                           ;ssp.c: 80: Flags.SSPBF = 1;
   522  0FCF  1283               	bcf	3,5
   523  0FD0  1423               	bsf	_Flags,0
   524                           ;ssp.c: 82: SSPOV = 0;
   525  0FD1  1314               	bcf	20,6
   526                           ;ssp.c: 83: CKP = 1;
   527  0FD2  1614               	bsf	20,4
   528                           ;ssp.c: 84: return;
   529  0FD3  0008               	return
   530  0FD4                     l6
   531                           ;ssp.c: 85: }
   532  0FD4  1A94               	btfsc	20,5
   533  0FD5  2FDC               	goto	l8
   534                           ;ssp.c: 91: if (RW == 0) {
   535  0FD6  1914               	btfsc	20,2
   536  0FD7  2FFA               	goto	l12

⌨️ 快捷键说明

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