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

📄 keyscan.lst

📁 PIC单片机上的键盘扫描
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V9.60PL1
                                                      Sat Aug 02 20:43:06 2008


     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	text0,local,class=CODE,delta=2
     6                           	psect	text1,local,class=CODE,delta=2
     7                           	psect	text2,local,class=CODE,delta=2
     8                           	psect	text3,local,class=CODE,delta=2
     9                           	psect	text4,local,class=CODE,delta=2
    10                           	psect	text5,local,class=CODE,delta=2
    11                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22                           
    23                           	psect	const1
    24  0001  0782               	addwf	2
    25  0002                     _Led
    26  0002  34C0               	retlw	-64
    27  0003  34F9               	retlw	-7
    28  0004  34A4               	retlw	-92
    29  0005  34B0               	retlw	-80
    30  0006  3499               	retlw	-103
    31  0007  3492               	retlw	-110
    32  0008  3482               	retlw	-126
    33  0009  34F8               	retlw	-8
    34  000A  3480               	retlw	-128
    35  000B  3490               	retlw	-112
    36  000C  3488               	retlw	-120
    37  000D  3483               	retlw	-125
    38  000E  34C6               	retlw	-58
    39  000F  34A1               	retlw	-95
    40  0010  3486               	retlw	-122
    41  0011  348E               	retlw	-114
    42                           
    43                           	psect	text0
    44  0765                     _delay
    45                           ;	_a assigned to ?a_delay+0
    46  0000                     _delay$a	set	?a_delay
    47                           ;	_b assigned to ?a_delay+1
    48  0000                     _delay$b	set	?a_delay+1
    49                           ;_a stored from w
    50  0765  0183               	clrf	3	;select bank 0
    51  0766  00A1               	movwf	?a_delay
    52                           ;keyscan.c: 13: void delay(unsigned char a)
    53  0767  00A2               	movwf	?a_delay+1
    54                           ;keyscan.c: 17: while(b--);
    55  0768                     l2
    56  0768  03A2               	decf	?a_delay+1
    57  0769  0F22               	incfsz	?a_delay+1,w
    58  076A  2F68               	goto	l2
    59  076B  0008               	return
    60                           
    61                           	psect	text1
    62  075E                     _rb_initial
    63                           ;keyscan.c: 20: void rb_initial(void)
    64  075E  30F0               	movlw	-16
    65  075F  1683               	bsf	3,5
    66  0760  1303               	bcf	3,6	;carry unused
    67  0761  0086               	movwf	6	;volatile
    68                           ;keyscan.c: 23: OPTION = 0X00;
    69  0762  0181               	clrf	1
    70                           ;keyscan.c: 24: }
    71  0763  1283               	bcf	3,5
    72  0764  0008               	return	;W free
    73                           
    74                           	psect	text2
    75  0759                     _rd_initial
    76                           ;keyscan.c: 26: void rd_initial(void)
    77  0759  1683               	bsf	3,5
    78  075A  1303               	bcf	3,6	;carry unused
    79  075B  0188               	clrf	8	;volatile
    80                           ;keyscan.c: 29: }
    81  075C  1283               	bcf	3,5
    82  075D  0008               	return	;W free
    83                           
    84                           	psect	text3
    85  0775                     _keyscan
    86                           ;keyscan.c: 38: unsigned char keyscan(void)
    87  0775  30FE               	movlw	-2
    88  0776  0183               	clrf	3	;select bank 0
    89  0777  0086               	movwf	6	;volatile
    90                           ;keyscan.c: 41: if(RB4 == 0)delay(30);if(RB4 ==
      +                           0) temp = 1;
    91  0778  1A06               	btfsc	6,4
    92  0779  2F7C               	goto	l8
    93  077A  301E               	movlw	30
    94  077B  2765               	call	_delay
    95  077C                     l8
    96  077C  1A06               	btfsc	6,4
    97  077D  2F80               	goto	l9
    98  077E  01A0               	clrf	_temp
    99  077F  0AA0               	incf	_temp
   100  0780                     l9
   101                           ;keyscan.c: 42: if(RB5 == 0)delay(30);if(RB5 ==
      +                           0) temp = 2;
   102  0780  1A86               	btfsc	6,5
   103  0781  2F84               	goto	l10
   104  0782  301E               	movlw	30
   105  0783  2765               	call	_delay
   106  0784                     l10
   107  0784  1A86               	btfsc	6,5
   108  0785  2F88               	goto	l11
   109  0786  3002               	movlw	2
   110  0787  00A0               	movwf	_temp
   111  0788                     l11
   112                           ;keyscan.c: 43: if(RB6 == 0)delay(30);if(RB6 ==
      +                           0) temp = 3;
   113  0788  1B06               	btfsc	6,6
   114  0789  2F8C               	goto	l12
   115  078A  301E               	movlw	30
   116  078B  2765               	call	_delay
   117  078C                     l12
   118  078C  1B06               	btfsc	6,6
   119  078D  2F90               	goto	l13
   120  078E  3003               	movlw	3
   121  078F  00A0               	movwf	_temp
   122  0790                     l13
   123                           ;keyscan.c: 44: if(RB7 == 0)delay(30);if(RB7 ==
      +                           0) temp = 4;
   124  0790  1B86               	btfsc	6,7
   125  0791  2F94               	goto	l14
   126  0792  301E               	movlw	30
   127  0793  2765               	call	_delay
   128  0794                     l14
   129  0794  1B86               	btfsc	6,7
   130  0795  2F98               	goto	l15
   131  0796  3004               	movlw	4
   132  0797  00A0               	movwf	_temp
   133  0798                     l15
   134                           ;keyscan.c: 45: PORTB = 0XFD;
   135  0798  30FD               	movlw	-3
   136  0799  0086               	movwf	6	;volatile
   137                           ;keyscan.c: 46: if(RB4 == 0)delay(30);if(RB4 ==
      +                           0) temp = 5;
   138  079A  1A06               	btfsc	6,4
   139  079B  2F9E               	goto	l16
   140  079C  301E               	movlw	30
   141  079D  2765               	call	_delay
   142  079E                     l16
   143  079E  1A06               	btfsc	6,4
   144  079F  2FA2               	goto	l17
   145  07A0  3005               	movlw	5
   146  07A1  00A0               	movwf	_temp
   147  07A2                     l17
   148                           ;keyscan.c: 47: if(RB5 == 0)delay(30);if(RB5 ==
      +                           0) temp = 6;
   149  07A2  1A86               	btfsc	6,5
   150  07A3  2FA6               	goto	l18
   151  07A4  301E               	movlw	30
   152  07A5  2765               	call	_delay
   153  07A6                     l18
   154  07A6  1A86               	btfsc	6,5
   155  07A7  2FAA               	goto	l19
   156  07A8  3006               	movlw	6
   157  07A9  00A0               	movwf	_temp
   158  07AA                     l19
   159                           ;keyscan.c: 48: if(RB6 == 0)delay(30);if(RB6 ==
      +                           0) temp = 7;
   160  07AA  1B06               	btfsc	6,6
   161  07AB  2FAE               	goto	l20
   162  07AC  301E               	movlw	30
   163  07AD  2765               	call	_delay
   164  07AE                     l20
   165  07AE  1B06               	btfsc	6,6
   166  07AF  2FB2               	goto	l21
   167  07B0  3007               	movlw	7
   168  07B1  00A0               	movwf	_temp
   169  07B2                     l21
   170                           ;keyscan.c: 49: if(RB7 == 0)delay(30);if(RB7 ==
      +                           0) temp = 8;
   171  07B2  1B86               	btfsc	6,7
   172  07B3  2FB6               	goto	l22
   173  07B4  301E               	movlw	30
   174  07B5  2765               	call	_delay
   175  07B6                     l22
   176  07B6  1B86               	btfsc	6,7
   177  07B7  2FBA               	goto	l23
   178  07B8  3008               	movlw	8
   179  07B9  00A0               	movwf	_temp
   180  07BA                     l23
   181                           ;keyscan.c: 50: PORTB = 0XFB;
   182  07BA  30FB               	movlw	-5
   183  07BB  0086               	movwf	6	;volatile
   184                           ;keyscan.c: 51: if(RB4 == 0)delay(30);if(RB4 ==
      +                           0) temp = 9;
   185  07BC  1A06               	btfsc	6,4
   186  07BD  2FC0               	goto	l24
   187  07BE  301E               	movlw	30
   188  07BF  2765               	call	_delay
   189  07C0                     l24
   190  07C0  1A06               	btfsc	6,4
   191  07C1  2FC4               	goto	l25
   192  07C2  3009               	movlw	9
   193  07C3  00A0               	movwf	_temp
   194  07C4                     l25
   195                           ;keyscan.c: 52: if(RB5 == 0)delay(30);if(RB5 ==
      +                           0) temp = 10;
   196  07C4  1A86               	btfsc	6,5
   197  07C5  2FC8               	goto	l26
   198  07C6  301E               	movlw	30
   199  07C7  2765               	call	_delay
   200  07C8                     l26
   201  07C8  1A86               	btfsc	6,5
   202  07C9  2FCC               	goto	l27
   203  07CA  300A               	movlw	10
   204  07CB  00A0               	movwf	_temp
   205  07CC                     l27
   206                           ;keyscan.c: 53: if(RB6 == 0)delay(30);if(RB6 ==
      +                           0) temp = 11;
   207  07CC  1B06               	btfsc	6,6
   208  07CD  2FD0               	goto	l28
   209  07CE  301E               	movlw	30
   210  07CF  2765               	call	_delay
   211  07D0                     l28
   212  07D0  1B06               	btfsc	6,6
   213  07D1  2FD4               	goto	l29
   214  07D2  300B               	movlw	11
   215  07D3  00A0               	movwf	_temp
   216  07D4                     l29
   217                           ;keyscan.c: 54: if(RB7 == 0)delay(30);if(RB7 ==
      +                           0) temp = 12;
   218  07D4  1B86               	btfsc	6,7
   219  07D5  2FD8               	goto	l30
   220  07D6  301E               	movlw	30
   221  07D7  2765               	call	_delay
   222  07D8                     l30
   223  07D8  1B86               	btfsc	6,7
   224  07D9  2FDC               	goto	l31
   225  07DA  300C               	movlw	12
   226  07DB  00A0               	movwf	_temp
   227  07DC                     l31
   228                           ;keyscan.c: 55: PORTB = 0XF7;
   229  07DC  30F7               	movlw	-9
   230  07DD  0086               	movwf	6	;volatile
   231                           ;keyscan.c: 56: if(RB4 == 0)delay(30);if(RB4 ==
      +                           0) temp = 13;
   232  07DE  1A06               	btfsc	6,4
   233  07DF  2FE2               	goto	l32
   234  07E0  301E               	movlw	30
   235  07E1  2765               	call	_delay
   236  07E2                     l32
   237  07E2  1A06               	btfsc	6,4
   238  07E3  2FE6               	goto	l33
   239  07E4  300D               	movlw	13
   240  07E5  00A0               	movwf	_temp
   241  07E6                     l33
   242                           ;keyscan.c: 57: if(RB5 == 0)delay(30);if(RB5 ==
      +                           0) temp = 14;
   243  07E6  1A86               	btfsc	6,5
   244  07E7  2FEA               	goto	l34
   245  07E8  301E               	movlw	30
   246  07E9  2765               	call	_delay
   247  07EA                     l34
   248  07EA  1A86               	btfsc	6,5
   249  07EB  2FEE               	goto	l35
   250  07EC  300E               	movlw	14
   251  07ED  00A0               	movwf	_temp
   252  07EE                     l35
   253                           ;keyscan.c: 58: if(RB6 == 0)delay(30);if(RB6 ==
      +                           0) temp = 15;
   254  07EE  1B06               	btfsc	6,6
   255  07EF  2FF2               	goto	l36
   256  07F0  301E               	movlw	30
   257  07F1  2765               	call	_delay
   258  07F2                     l36
   259  07F2  1B06               	btfsc	6,6
   260  07F3  2FF6               	goto	l37
   261  07F4  300F               	movlw	15
   262  07F5  00A0               	movwf	_temp
   263  07F6                     l37
   264                           ;keyscan.c: 59: if(RB7 == 0)delay(30);if(RB7 ==
      +                           0) temp = 16;
   265  07F6  1B86               	btfsc	6,7
   266  07F7  2FFA               	goto	l38
   267  07F8  301E               	movlw	30
   268  07F9  2765               	call	_delay
   269  07FA                     l38
   270  07FA  1B86               	btfsc	6,7
   271  07FB  2FFE               	goto	l39
   272  07FC  3010               	movlw	16
   273  07FD  00A0               	movwf	_temp
   274  07FE                     l39
   275                           ;keyscan.c: 60: return(temp);
   276  07FE  0820               	movf	_temp,w
   277                           ;keyscan.c: 62: }
   278  07FF  0008               	return	;uses W

⌨️ 快捷键说明

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