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

📄 key.lst

📁 带有LCD
💻 LST
📖 第 1 页 / 共 4 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-71097                            Thu Dec 20 19:08:35 2007

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z71097RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	text1,local,class=CODE,delta=2
     6                           	psect	text3,local,class=CODE,delta=2
     7                           	psect	text4,local,class=CODE,delta=2
     8                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
     9                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20                           
    21                           	psect	__Z71097RS_
    22  0190                     
    23  0190                     
    24                           
    25                           	psect	text0
    26  168F                     _Key_Init
    27                           ;key.c: 41: ADCON1 = 0x07;
    28  168F  3007               	movlw	7
    29  1690  1683               	bsf	3,5
    30  1691  1303               	bcf	3,6	;carry unused
    31  1692  009F               	movwf	31	;volatile
    32                           ;key.c: 42: TRISA = 0x00;
    33  1693  0185               	clrf	5	;volatile
    34                           ;key.c: 43: PORTA = 0x00;
    35  1694  1283               	bcf	3,5
    36  1695  0185               	clrf	5	;volatile
    37                           ;key.c: 44: }
    38  1696  0008               	return
    39                           
    40                           	psect	text1
    41  178A                     _Key_ScanMatrix
    42                           ;	_value_key assigned to ?a_Key_ScanMatrix+0
    43  0000                     _Key_ScanMatrix$value_key	set	?a_Key_ScanMatrix
    44                           ;	_value_portc assigned to ?a_Key_ScanMatrix+1
    45  0000                     _Key_ScanMatrix$value_portc	set	?a_Key_ScanMatr
      +                          ix+1
    46                           ;key.c: 56: unsigned char value_portc = 0x00;
    47  178A  0183               	clrf	3	;select bank 0
    48  178B  01D6               	clrf	?a_Key_ScanMatrix+1
    49                           ;key.c: 57: unsigned char value_key = 0x00;
    50  178C  01D5               	clrf	?a_Key_ScanMatrix
    51                           ;key.c: 59: TRISC = 0xF0;
    52  178D  30F0               	movlw	-16
    53  178E  1683               	bsf	3,5
    54  178F  0087               	movwf	7	;volatile
    55                           ;key.c: 60: PORTC = 0x00;
    56  1790  1283               	bcf	3,5
    57  1791  0187               	clrf	7	;volatile
    58                           ;key.c: 61: asm("nop");
    59  1792  0000               	nop	;#
    60                           ;key.c: 62: asm("nop");
    61  1793  0000               	nop	;#
    62                           ;key.c: 63: value_portc = PORTC;
    63  1794  0807               	movf	7,w	;volatile
    64  1795  00D6               	movwf	?a_Key_ScanMatrix+1
    65                           ;key.c: 64: value_portc &= 0xF0;
    66  1796  30F0               	movlw	-16
    67  1797  05D6               	andwf	?a_Key_ScanMatrix+1
    68                           ;key.c: 65: value_key = value_portc;
    69  1798  0856               	movf	?a_Key_ScanMatrix+1,w
    70  1799  00D5               	movwf	?a_Key_ScanMatrix
    71                           ;key.c: 66: if(value_key != 0xF0)
    72  179A  3AF0               	xorlw	-16
    73  179B  1903               	btfsc	3,2
    74  179C  2FAA               	goto	l5
    75                           ;key.c: 67: {
    76  179D  300F               	movlw	15
    77  179E  1683               	bsf	3,5
    78  179F  0087               	movwf	7	;volatile
    79                           ;key.c: 69: PORTC = 0x00;
    80  17A0  1283               	bcf	3,5
    81  17A1  0187               	clrf	7	;volatile
    82                           ;key.c: 70: asm("nop");
    83  17A2  0000               	nop	;#
    84                           ;key.c: 71: asm("nop");
    85  17A3  0000               	nop	;#
    86                           ;key.c: 72: value_portc = PORTC;
    87  17A4  0807               	movf	7,w	;volatile
    88  17A5  00D6               	movwf	?a_Key_ScanMatrix+1
    89                           ;key.c: 73: value_portc &= 0x0F;
    90  17A6  300F               	movlw	15
    91  17A7  05D6               	andwf	?a_Key_ScanMatrix+1
    92                           ;key.c: 74: value_key |= value_portc;
    93  17A8  0856               	movf	?a_Key_ScanMatrix+1,w
    94  17A9  04D5               	iorwf	?a_Key_ScanMatrix
    95  17AA                     l5
    96                           ;key.c: 75: }
    97  17AA  0855               	movf	?a_Key_ScanMatrix,w
    98                           ;key.c: 77: }
    99  17AB  0008               	return
   100                           ;key.c: 87: KEY_PARAM Keypad_Scan(void)
   101                           ;key.c: 88: {
   102  17AC                     _Keypad_Scan
   103                           ;	_key_num assigned to ?a_Keypad_Scan+0
   104  0000                     _Keypad_Scan$key_num	set	?a_Keypad_Scan
   105                           ;	_key_value assigned to ?a_Keypad_Scan+1
   106  0000                     _Keypad_Scan$key_value	set	?a_Keypad_Scan+1
   107                           ;	_key assigned to ?a_Keypad_Scan+2
   108  0000                     _Keypad_Scan$key	set	?a_Keypad_Scan+2
   109                           ;key.c: 89: unsigned char key_num = 0;
   110  17AC  0183               	clrf	3	;select bank 0
   111  17AD  01D0               	clrf	?a_Keypad_Scan
   112                           ;key.c: 90: unsigned char key_value = 0;
   113  17AE  01D1               	clrf	?a_Keypad_Scan+1
   114                           ;key.c: 91: KEY_PARAM key;
   115  17AF  278A               	fcall	_Key_ScanMatrix
   116  17B0  00D1               	movwf	?a_Keypad_Scan+1
   117                           ;key.c: 94: if(key_flag == 0)
   118  17B1  08A3               	movf	_key_flag
   119  17B2  1D03               	btfss	3,2
   120  17B3  2FD5               	goto	l7
   121                           ;key.c: 95: {
   122  17B4  0851               	movf	?a_Keypad_Scan+1,w
   123  17B5  3AF0               	xorlw	-16
   124  17B6  1903               	btfsc	3,2
   125  17B7  2FF0               	goto	l15
   126                           ;key.c: 97: {
   127                           ;key.c: 99: }
   128                           ;key.c: 101: {
   129  17B8  0851               	movf	?a_Keypad_Scan+1,w
   130  17B9  00A5               	movwf	_keypad_old
   131                           ;key.c: 103: Delay_10ms_ISR(2);
   132  17BA  3002               	movlw	2
   133  17BB  00D5               	movwf	?_Delay_10ms_ISR
   134  17BC  01D6               	clrf	?_Delay_10ms_ISR+1
   135  17BD  120A  158A  2012   	fcall	_Delay_10ms_ISR
      +       160A  118A         
   136                           ;key.c: 104: key_value = Key_ScanMatrix();
   137  17C2  278A               	fcall	_Key_ScanMatrix
   138  17C3  00D1               	movwf	?a_Keypad_Scan+1
   139                           ;key.c: 105: if(key_value == 0xF0)
   140  17C4  3AF0               	xorlw	-16
   141  17C5  1903               	btfsc	3,2
   142  17C6  2FF0               	goto	l15
   143                           ;key.c: 106: {
   144                           ;key.c: 108: }
   145                           ;key.c: 110: {
   146  17C7  0851               	movf	?a_Keypad_Scan+1,w
   147  17C8  00A4               	movwf	_keypad_new
   148                           ;key.c: 112: if(keypad_old == keypad_new)
   149  17C9  0625               	xorwf	_keypad_old,w
   150  17CA  1D03               	btfss	3,2
   151  17CB  2FF0               	goto	l15
   152                           ;key.c: 113: {
   153  17CC  0825               	movf	_keypad_old,w
   154  17CD  00D0               	movwf	?a_Keypad_Scan
   155                           ;key.c: 115: key.code = keypad_old;
   156  17CE  0825               	movf	_keypad_old,w
   157  17CF  00D2               	movwf	?a_Keypad_Scan+2
   158  17D0  01D3               	clrf	?a_Keypad_Scan+3
   159                           ;key.c: 116: key.state = KEY_PRESS;
   160  17D1  01D4               	clrf	?a_Keypad_Scan+4
   161                           ;key.c: 117: key_flag = 1;
   162  17D2  01A3               	clrf	_key_flag
   163  17D3  0AA3               	incf	_key_flag
   164                           ;key.c: 118: }
   165  17D4  2FF2               	goto	l14
   166                           ;key.c: 120: {
   167                           ;key.c: 122: }
   168                           ;key.c: 124: }
   169                           ;key.c: 125: }
   170                           ;key.c: 126: }
   171  17D5                     l7
   172                           ;key.c: 128: {
   173  17D5  278A               	fcall	_Key_ScanMatrix
   174  17D6  00D1               	movwf	?a_Keypad_Scan+1
   175                           ;key.c: 130: if(key_value == 0xF0)
   176  17D7  3AF0               	xorlw	-16
   177  17D8  1D03               	btfss	3,2
   178  17D9  2FF0               	goto	l15
   179                           ;key.c: 131: {
   180  17DA  3002               	movlw	2
   181  17DB  00D5               	movwf	?_Delay_10ms_ISR
   182  17DC  01D6               	clrf	?_Delay_10ms_ISR+1
   183  17DD  120A  158A  2012   	fcall	_Delay_10ms_ISR
      +       160A  118A         
   184                           ;key.c: 133: key_value = Key_ScanMatrix();
   185  17E2  278A               	fcall	_Key_ScanMatrix
   186  17E3  00D1               	movwf	?a_Keypad_Scan+1
   187                           ;key.c: 134: if(key_value == 0xF0)
   188  17E4  3AF0               	xorlw	-16
   189  17E5  1D03               	btfss	3,2
   190  17E6  2FF2               	goto	l14
   191                           ;key.c: 135: {
   192  17E7  0825               	movf	_keypad_old,w
   193  17E8  00D0               	movwf	?a_Keypad_Scan
   194                           ;key.c: 137: key.code = keypad_old;
   195  17E9  0825               	movf	_keypad_old,w
   196  17EA  00D2               	movwf	?a_Keypad_Scan+2
   197  17EB  01D3               	clrf	?a_Keypad_Scan+3
   198                           ;key.c: 138: key.state = KEY_RELEASE;
   199  17EC  01D4               	clrf	?a_Keypad_Scan+4
   200  17ED  0AD4               	incf	?a_Keypad_Scan+4
   201                           ;key.c: 139: key_flag = 0;
   202  17EE  01A3               	clrf	_key_flag
   203                           ;key.c: 140: }
   204                           ;key.c: 142: else
   205  17EF  2FF2               	goto	l14
   206  17F0                     l15
   207                           ;key.c: 143: {
   208  17F0  30FF               	movlw	-1
   209  17F1  00D0               	movwf	?a_Keypad_Scan
   210                           ;key.c: 145: }
   211  17F2                     l14
   212                           ;key.c: 146: }
   213                           ;key.c: 147: if(key_num == 0xFF)
   214  17F2  0F50               	incfsz	?a_Keypad_Scan,w
   215  17F3  2FF9               	goto	l18
   216                           ;key.c: 148: {
   217  17F4  30FF               	movlw	255
   218  17F5  00D2               	movwf	?a_Keypad_Scan+2
   219  17F6  01D3               	clrf	?a_Keypad_Scan+3
   220                           ;key.c: 150: key.state = KEY_RELEASE;
   221  17F7  01D4               	clrf	?a_Keypad_Scan+4
   222  17F8  0AD4               	incf	?a_Keypad_Scan+4
   223  17F9                     l18
   224                           ;key.c: 151: }
   225  17F9  0852               	movf	?a_Keypad_Scan+2,w
   226  17FA  00F0               	movwf	btemp
   227  17FB  0853               	movf	?a_Keypad_Scan+3,w
   228  17FC  00F1               	movwf	btemp+1
   229  17FD  0854               	movf	?a_Keypad_Scan+4,w
   230  17FE  00F2               	movwf	btemp+2
   231                           ;key.c: 153: }
   232  17FF  0008               	return
   233                           
   234                           	psect	text3
   235                           ;key.c: 163: KEY_VALUE Keypad_HighISR(void)
   236                           ;key.c: 164: {
   237  0BF4                     _Keypad_HighISR
   238                           ;	_key_org_value assigned to ?a_Keypad_HighISR+
      +                          0
   239  0000                     _Keypad_HighISR$key_org_value	set	?a_Keypad_Hig
      +                          hISR
   240                           ;	_key_map_value assigned to ?a_Keypad_HighISR+
      +                          1
   241  0000                     _Keypad_HighISR$key_map_value	set	?a_Keypad_Hig
      +                          hISR+1
   242                           ;	_key assigned to ?a_Keypad_HighISR+2

⌨️ 快捷键说明

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