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

📄 main.lst

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


HI-TECH Software PICC Macro Assembler V9.60
                                                      Fri Nov 02 10:08:24 2007


     1                           	processor	16F887
     2                           	opt	pw 79
     3                           	psect	config,global,class=CONFIG,delta=2
     4                           	psect	strings,global,class=STRING,delta=2
     5                           	psect	const1,local,class=CONST,delta=2
     6                           	psect	const2,local,class=CONST,delta=2
     7                           	psect	text2,local,class=CODE,delta=2
     8                           	psect	intcode,global,class=CODE,delta=2
     9                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
    10                           	psect	intret,global,class=CODE,delta=2
    11                           	psect	intentry,global,class=CODE,delta=2
    12                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    13                           	psect	text6,local,class=CODE,delta=2
    14                           	psect	text7,local,class=CODE,delta=2
    15                           	psect	text8,local,class=CODE,delta=2
    16                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    17                           	psect	rbss_2,global,class=BANK2,space=1,delta=
      +                          1
    18                           	psect	rbss_3,global,class=BANK3,space=1,delta=
      +                          1
    19                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     
    27  0000                     
    28  0000                     
    29  0000                     	;#
    30                           
    31                           	psect	config
    32  0000' 20C4               	dw	8388	;#
    33                           
    34                           	psect	const1
    35  0000' 0782               	addwf	2
    36  0001'                    _COMP1
    37  0001' 3494               	retlw	-108
    38  0002' 3495               	retlw	-107
    39                           
    40                           	psect	const2
    41  0000' 0782               	addwf	2
    42  0001'                    _COMP2
    43  0001' 34A0               	retlw	-96
    44  0002' 34A1               	retlw	-95
    45                           
    46                           	psect	intcode
    47  0000'                    _isr
    48  0000'                    int_func
    49                           ;main.c: 375: void interrupt isr(void)
    50  0000' 190B               	btfsc	11,2
    51  0001' 1E8B               	btfss	11,5
    52  0002' 2800'              	goto	l109
    53                           ;main.c: 382: TMR1ON = 0;
    54  0003' 1283               	bcf	3,5
    55  0004' 1303               	bcf	3,6	;carry unused
    56  0005' 1010               	bcf	16,0
    57                           ;main.c: 384: if (Flags.SSPBF == 1)
    58  0006' 1C00'              	btfss	_Flags,0
    59  0007' 2800'              	goto	l110
    60                           ;main.c: 385: RestartTimers();
    61  0008' 120A' 118A' 2000'  	fcall	_RestartTimers
      +       120A' 118A'        
    62  000D' 2800'              	goto	l109
    63  000E'                    l110
    64                           ;main.c: 386: else
    65  000E' 120A' 118A' 2000'  	fcall	_CapISR
      +       120A' 118A'        
    66  0013'                    l109
    67                           ;main.c: 388: }
    68  0013' 1283               	bcf	3,5
    69  0014' 1303               	bcf	3,6	;carry unused
    70  0015' 1D8C               	btfss	12,3
    71  0016' 2800'              	goto	l112
    72  0017' 1683               	bsf	3,5
    73  0018' 1D8C               	btfss	12,3
    74  0019' 2800'              	goto	l112
    75                           ;main.c: 393: SSPISR();
    76  001A' 120A' 118A' 2000'  	fcall	_SSPISR
      +       120A' 118A'        
    77  001F'                    l112
    78                           ;main.c: 397: if (T0IF == 1)
    79  001F' 1D0B               	btfss	11,2
    80  0020' 2800'              	goto	l108
    81                           ;main.c: 398: RestartTimers();
    82  0021' 120A' 118A' 2000'  	fcall	_RestartTimers
      +       120A' 118A'        
    83                           ;main.c: 400: }
    84  0026'                    l108
    85  0026' 1303               	bcf	3,6	;carry unused
    86  0027' 1283               	bcf	3,5
    87                           
    88                           	psect	intsave_0
    89  0000'                    saved_w
    90  0000'                    	ds	1
    91                           
    92                           	psect	intret
    93  0000' 0800'              	movf	saved_fsr,w
    94  0001' 0084               	movwf	4	;restore FSR
    95  0002' 0800'              	movf	saved_pclath,w
    96  0003' 008A               	movwf	10
    97  0004'                    int_restore
    98  0004' 0800'              	movf	saved_status,w
    99  0005' 0083               	movwf	3
   100  0006' 0E80'              	swapf	saved_w
   101  0007' 0E00'              	swapf	saved_w,w
   102  0008' 0009               	retfie
   103                           
   104                           	psect	intentry
   105  0000'                    int_entry
   106  0000' 0080'              	movwf	saved_w
   107  0001' 0803               	movf	3,w
   108  0002' 0183               	clrf	3
   109  0003' 0080'              	movwf	saved_status
   110  0004' 0804               	movf	4,w
   111  0005' 0080'              	movwf	saved_fsr
   112  0006' 080A               	movf	10,w
   113  0007' 0080'              	movwf	saved_pclath
   114  0008' 018A               	clrf	10
   115                           
   116                           	psect	intsave
   117  0000'                    saved_status
   118  0000'                    	ds	1
   119  0001'                    saved_fsr
   120  0001'                    	ds	1
   121  0002'                    saved_pclath
   122  0002'                    	ds	1
   123                           
   124                           	psect	text6
   125  0000'                    _SetNextChannel
   126                           ;main.c: 720: void SetNextChannel(void) {
   127  0000' 3010               	movlw	16
   128  0001' 0183               	clrf	3	;select bank 0
   129  0002' 0200'              	subwf	_INDEX,w
   130  0003' 1803               	btfsc	3,0
   131  0004' 2800'              	goto	l191
   132                           ;main.c: 727: INDEX++;
   133  0005' 0A80'              	incf	_INDEX
   134                           ;main.c: 728: RB3 = (INDEX <= 8) ? 1 : 0;
   135  0006' 3009               	movlw	9
   136  0007' 0200'              	subwf	_INDEX,w
   137  0008' 1803               	btfsc	3,0
   138  0009' 2800'              	goto	u1300
   139  000A' 1586               	bsf	6,3
   140  000B' 2800'              	goto	u1314
   141  000C'                    u1300
   142  000C' 1186               	bcf	6,3
   143  000D'                    u1314
   144                           ;main.c: 729: PORTB &= 0xF8;
   145  000D' 30F8               	movlw	-8
   146  000E' 0586               	andwf	6	;volatile
   147                           ;main.c: 730: PORTB |= ( ( (INDEX-1) % 8) & 0x0
      +                          7 );
   148  000F' 0300'              	decf	_INDEX,w
   149  0010' 3907               	andlw	7
   150  0011' 0486               	iorwf	6	;volatile
   151                           ;main.c: 732: } else {
   152  0012' 2800'              	goto	l192
   153  0013'                    l191
   154                           ;main.c: 733: INDEX = 0;
   155  0013' 0180'              	clrf	_INDEX
   156                           ;main.c: 734: RB3 = 1;
   157  0014' 1586               	bsf	6,3
   158                           ;main.c: 735: PORTB = PORTB & 0xF8;
   159  0015' 30F8               	movlw	-8
   160  0016' 0586               	andwf	6	;volatile
   161  0017'                    l192
   162                           ;main.c: 736: }
   163  0017' 0880'              	movf	_INDEX
   164  0018' 1D03               	btfss	3,2
   165  0019' 2800'              	goto	l193
   166                           ;main.c: 740: CM1CON0 = COMP1[0];
   167  001A' 120A' 118A' 2000'  	fcall	_COMP1
   168  001D' 1703               	bsf	3,6
   169  001E' 0087               	movwf	7	;volatile
   170                           ;main.c: 741: CM2CON0 = COMP2[0];
   171  001F' 120A' 118A' 2000'  	fcall	_COMP2
      +       120A' 118A'        
   172  0024' 2800'              	goto	L18
   173                           ;main.c: 742: } else {
   174  0025'                    l193
   175                           ;main.c: 743: CM1CON0 = COMP1[1];
   176  0025' 3000'              	movlw	_COMP1 shr (0+8)
   177  0026' 008A               	movwf	10
   178  0027' 3001               	movlw	1
   179  0028' 2000'              	call	((_COMP1+-1)& (0+2047))| (($)& (0+-2048))
   180  0029' 1703               	bsf	3,6
   181  002A' 0087               	movwf	7	;volatile
   182                           ;main.c: 744: CM2CON0 = COMP2[1];
   183  002B' 3000'              	movlw	_COMP2 shr (0+8)
   184  002C' 008A               	movwf	10
   185  002D' 3001               	movlw	1
   186  002E' 2000'              	call	((_COMP2+-1)& (0+2047))| (($)& (0+-2048))
   187  002F' 120A' 118A'        	pagesel	$
   188  0031'                    L18
   189  0031' 0088               	movwf	8	;volatile
   190                           ;main.c: 745: }
   191  0032' 1303               	bcf	3,6	;carry unused
   192  0033' 0008               	return	;W free
   193  0034'                    _CapISR
   194                           ;main.c: 521: void CapISR(void) {
   195  0034' 0183               	clrf	3	;select bank 0
   196  0035' 080F               	movf	15,w	;volatile
   197  0036' 0081'              	movwf	_VALUE+1
   198  0037' 080E               	movf	14,w	;volatile
   199  0038' 0080'              	movwf	_VALUE
   200                           ;main.c: 528: RAW[INDEX] = VALUE;
   201  0039' 0800'              	movf	_INDEX,w
   202  003A' 0700'              	addwf	_INDEX,w
   203  003B' 3E00'              	addlw	_RAW^(0+256)
   204  003C' 0084               	movwf	4
   205  003D' 1783               	bsf	3,7
   206  003E' 0800'              	movf	_VALUE,w
   207  003F' 0080               	movwf	0
   208  0040' 0A84               	incf	4
   209  0041' 0801'              	movf	_VALUE+1,w
   210  0042' 0080               	movwf	0
   211                           ;main.c: 529: BIGVAL = VALUE * 16;
   212  0043' 0801'              	movf	_VALUE+1,w
   213  0044' 0081'              	movwf	btemp+1
   214  0045' 0800'              	movf	_VALUE,w
   215  0046' 0080'              	movwf	btemp
   216  0047' 0E80'              	swapf	btemp
   217  0048' 0E81'              	swapf	btemp+1
   218  0049' 30F0               	movlw	240
   219  004A' 0581'              	andwf	btemp+1
   220  004B' 0800'              	movf	btemp,w
   221  004C' 390F               	andlw	15
   222  004D' 0481'              	iorwf	btemp+1
   223  004E' 30F0               	movlw	240
   224  004F' 0580'              	andwf	btemp
   225  0050' 0800'              	movf	btemp,w
   226  0051' 0080'              	movwf	_BIGVAL
   227  0052' 0801'              	movf	btemp+1,w
   228  0053' 0081'              	movwf	_BIGVAL+1
   229                           ;main.c: 530: SMALLAVG = AVERAGE[INDEX] / 16;
   230  0054' 0800'              	movf	_INDEX,w
   231  0055' 0700'              	addwf	_INDEX,w
   232  0056' 3E00'              	addlw	_AVERAGE^(0+256)
   233  0057' 0084               	movwf	4
   234  0058' 1783               	bsf	3,7
   235  0059' 0800               	movf	0,w
   236  005A' 0080'              	movwf	btemp
   237  005B' 0A84               	incf	4
   238  005C' 0800               	movf	0,w
   239  005D' 0081'              	movwf	btemp+1
   240  005E' 3004               	movlw	4
   241  005F' 0082'              	movwf	btemp+2
   242  0060'                    u975
   243  0060' 1003               	bcf	3,0
   244  0061' 0C81'              	rrf	btemp+1

⌨️ 快捷键说明

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