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

📄 main887.lst

📁 用PIC16F887做的4个触摸按键的例程
💻 LST
📖 第 1 页 / 共 5 页
字号:


HI-TECH Software PICC Macro Assembler V9.60
                                                      Tue Nov 04 14:20:22 2008


     1                           	processor	16F887
     2                           	opt	pw 79
     3                           	psect	strings,global,class=STRING,delta=2
     4                           	psect	const1,local,class=CONST,delta=2
     5                           	psect	const2,local,class=CONST,delta=2
     6                           	psect	text2,local,class=CODE,delta=2
     7                           	psect	intcode,global,class=CODE,delta=2
     8                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
     9                           	psect	intret,global,class=CODE,delta=2
    10                           	psect	intentry,global,class=CODE,delta=2
    11                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    12                           	psect	text6,local,class=CODE,delta=2
    13                           	psect	text9,local,class=CODE,delta=2
    14                           	psect	text10,local,class=CODE,delta=2
    15                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    16                           	psect	rbss_2,global,class=BANK2,space=1,delta=
      +                          1
    17                           	psect	rbss_3,global,class=BANK3,space=1,delta=
      +                          1
    18                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     
    27  0000                     
    28  0000                     
    29                           
    30                           	psect	const1
    31  07BD  0782               	addwf	2
    32  07BE                     _COMP1
    33  07BE  3494               	retlw	-108
    34  07BF  3495               	retlw	-107
    35                           
    36                           	psect	const2
    37  07C0  0782               	addwf	2
    38  07C1                     _COMP2
    39  07C1  34A0               	retlw	-96
    40  07C2  34A1               	retlw	-95
    41                           
    42                           	psect	intcode
    43  0019                     _isr
    44  0019                     int_func
    45                           ;main887.c: 390: void interrupt isr(void)
    46  0019  190B               	btfsc	11,2
    47  001A  1E8B               	btfss	11,5
    48  001B  282C               	goto	l117
    49                           ;main887.c: 397: TMR1ON = 0;
    50  001C  1283               	bcf	3,5
    51  001D  1303               	bcf	3,6	;carry unused
    52  001E  1010               	bcf	16,0
    53                           ;main887.c: 399: if (Flags.SSPBF == 1)
    54  001F  1C23               	btfss	_Flags,0
    55  0020  2827               	goto	l118
    56                           ;main887.c: 400: RestartTimers();
    57  0021  120A  118A  20E2   	fcall	_RestartTimers
      +       120A  118A         
    58  0026  282C               	goto	l117
    59  0027                     l118
    60                           ;main887.c: 401: else
    61  0027  120A  118A  247A   	fcall	_CapISR
      +       120A  118A         
    62  002C                     l117
    63                           ;main887.c: 403: }
    64  002C  1283               	bcf	3,5
    65  002D  1303               	bcf	3,6	;carry unused
    66  002E  18A3               	btfsc	_Flags,1
    67  002F  1D8C               	btfss	12,3
    68  0030  2832               	goto	l120
    69                           ;main887.c: 408: SSPIF = 0;
    70  0031  118C               	bcf	12,3
    71  0032                     l120
    72                           ;main887.c: 411: if (SSPIF == 1 && SSPIE == 1)
    73  0032  1D8C               	btfss	12,3
    74  0033  283C               	goto	l121
    75  0034  1683               	bsf	3,5
    76  0035  1D8C               	btfss	12,3
    77  0036  283C               	goto	l121
    78                           ;main887.c: 412: SSPISR();
    79  0037  120A  158A  27C2   	fcall	_SSPISR
      +       120A  118A         
    80  003C                     l121
    81                           ;main887.c: 416: if (T0IF == 1)
    82  003C  1D0B               	btfss	11,2
    83  003D  2843               	goto	l116
    84                           ;main887.c: 417: RestartTimers();
    85  003E  120A  118A  20E2   	fcall	_RestartTimers
      +       120A  118A         
    86                           ;main887.c: 419: }
    87  0043                     l116
    88  0043  1303               	bcf	3,6	;carry unused
    89  0044  1283               	bcf	3,5
    90                           
    91                           	psect	intsave_0
    92  0079                     saved_w
                     saved_w
    93  0079                     	ds	1
    94                           
    95                           	psect	intret
    96  0051  0843               	movf	saved_fsr,w
    97  0052  0084               	movwf	4	;restore FSR
    98  0053  0844               	movf	saved_pclath,w
    99  0054  008A               	movwf	10
   100  0055                     int_restore
   101  0055  0842               	movf	saved_status,w
   102  0056  0083               	movwf	3
   103  0057  0EF9               	swapf	saved_w
   104  0058  0E79               	swapf	saved_w,w
   105  0059  0009               	retfie
   106                           
   107                           	psect	intentry
   108  0004                     int_entry
   109  0004  00F9               	movwf	saved_w
   110  0005  0803               	movf	3,w
   111  0006  0183               	clrf	3
   112  0007  00C2               	movwf	saved_status
   113  0008  0804               	movf	4,w
   114  0009  00C3               	movwf	saved_fsr
   115  000A  080A               	movf	10,w
   116  000B  00C4               	movwf	saved_pclath
   117  000C  018A               	clrf	10
   118                           
   119                           	psect	intsave
   120  0042                     saved_status
                     saved_status
   121  0042                     	ds	1
   122  0043                     saved_fsr
                     saved_fsr
   123  0043                     	ds	1
   124  0044                     saved_pclath
                     saved_pclath
   125  0044                     	ds	1
   126                           
   127                           	psect	text6
   128  0446                     _SetNextChannel
   129                           ;main887.c: 739: void SetNextChannel(void) {
   130  0446  3011               	movlw	17
   131  0447  0183               	clrf	3	;select bank 0
   132  0448  0224               	subwf	_INDEX,w
   133  0449  1803               	btfsc	3,0
   134  044A  2C59               	goto	l200
   135                           ;main887.c: 746: INDEX++;
   136  044B  0AA4               	incf	_INDEX
   137                           ;main887.c: 747: RB3 = (INDEX <= 8) ? 1 : 0;
   138  044C  3009               	movlw	9
   139  044D  0224               	subwf	_INDEX,w
   140  044E  1803               	btfsc	3,0
   141  044F  2C52               	goto	u1410
   142  0450  1586               	bsf	6,3
   143  0451  2C53               	goto	u1424
   144  0452                     u1410
   145  0452  1186               	bcf	6,3
   146  0453                     u1424
   147                           ;main887.c: 748: PORTB &= 0xF8;
   148  0453  30F8               	movlw	-8
   149  0454  0586               	andwf	6	;volatile
   150                           ;main887.c: 749: PORTB |= ( ( (INDEX-1) % 8) & 
      +                          0x07 );
   151  0455  0324               	decf	_INDEX,w
   152  0456  3907               	andlw	7
   153  0457  0486               	iorwf	6	;volatile
   154                           ;main887.c: 751: } else {
   155  0458  2C5D               	goto	l201
   156  0459                     l200
   157                           ;main887.c: 752: INDEX = 0;
   158  0459  01A4               	clrf	_INDEX
   159                           ;main887.c: 753: RB3 = 1;
   160  045A  1586               	bsf	6,3
   161                           ;main887.c: 754: PORTB = PORTB & 0xF8;
   162  045B  30F8               	movlw	-8
   163  045C  0586               	andwf	6	;volatile
   164  045D                     l201
   165                           ;main887.c: 755: }
   166  045D  08A4               	movf	_INDEX
   167  045E  1D03               	btfss	3,2
   168  045F  2C6B               	goto	l202
   169                           ;main887.c: 759: CM1CON0 = COMP1[0];
   170  0460  120A  118A  27BE   	fcall	_COMP1
   171  0463  1703               	bsf	3,6
   172  0464  0087               	movwf	7	;volatile
   173                           ;main887.c: 760: CM2CON0 = COMP2[0];
   174  0465  120A  118A  27C1   	fcall	_COMP2
      +       120A  118A         
   175  046A  2C77               	goto	L19
   176                           ;main887.c: 761: } else {
   177  046B                     l202
   178                           ;main887.c: 762: CM1CON0 = COMP1[1];
   179  046B  3007               	movlw	_COMP1 shr (0+8)
   180  046C  008A               	movwf	10
   181  046D  3001               	movlw	1
   182  046E  27BD               	call	((_COMP1+-1)& (0+2047))| (($)& (0+-2048))
   183  046F  1703               	bsf	3,6
   184  0470  0087               	movwf	7	;volatile
   185                           ;main887.c: 763: CM2CON0 = COMP2[1];
   186  0471  3007               	movlw	_COMP2 shr (0+8)
   187  0472  008A               	movwf	10
   188  0473  3001               	movlw	1
   189  0474  27C0               	call	((_COMP2+-1)& (0+2047))| (($)& (0+-2048))
   190  0475  120A  118A         	pagesel	$
   191  0477                     L19
   192  0477  0088               	movwf	8	;volatile
   193                           ;main887.c: 764: }
   194  0478  1303               	bcf	3,6	;carry unused
   195  0479  0008               	return	;W free
   196  047A                     _CapISR
   197                           ;main887.c: 540: void CapISR(void) {
   198  047A  0183               	clrf	3	;select bank 0
   199  047B  080F               	movf	15,w	;volatile
   200  047C  00B2               	movwf	_VALUE+1
   201  047D  080E               	movf	14,w	;volatile
   202  047E  00B1               	movwf	_VALUE
   203                           ;main887.c: 547: BIGVAL = VALUE * 16;
   204  047F  0832               	movf	_VALUE+1,w
   205  0480  00FB               	movwf	btemp+1
   206  0481  0831               	movf	_VALUE,w
   207  0482  00FA               	movwf	btemp
   208  0483  0EFA               	swapf	btemp
   209  0484  0EFB               	swapf	btemp+1
   210  0485  30F0               	movlw	240
   211  0486  05FB               	andwf	btemp+1
   212  0487  087A               	movf	btemp,w
   213  0488  390F               	andlw	15
   214  0489  04FB               	iorwf	btemp+1
   215  048A  30F0               	movlw	240
   216  048B  05FA               	andwf	btemp
   217  048C  087A               	movf	btemp,w
   218  048D  00AB               	movwf	_BIGVAL
   219  048E  087B               	movf	btemp+1,w
   220  048F  00AC               	movwf	_BIGVAL+1
   221                           ;main887.c: 548: SMALLAVG = AVERAGE[INDEX] / 16
      +                          ;
   222  0490  0824               	movf	_INDEX,w
   223  0491  0724               	addwf	_INDEX,w
   224  0492  3E10               	addlw	_AVERAGE^(0+256)
   225  0493  0084               	movwf	4
   226  0494  1783               	bsf	3,7
   227  0495  0800               	movf	0,w
   228  0496  00FA               	movwf	btemp
   229  0497  0A84               	incf	4
   230  0498  0800               	movf	0,w
   231  0499  00FB               	movwf	btemp+1
   232  049A  3004               	movlw	4
   233  049B  00FC               	movwf	btemp+2
   234  049C                     u1085
   235  049C  1003               	bcf	3,0
   236  049D  0CFB               	rrf	btemp+1
   237  049E  0CFA               	rrf	btemp
   238  049F  0BFC               	decfsz	btemp+2
   239  04A0  2C9C               	goto	u1085

⌨️ 快捷键说明

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