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

📄 16key_int.lst

📁 我用PROTEUS做了一个基于PIC16F877A的4*4键盘
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-51037                            Tue Jun  3 16:57:31 2008

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z51037RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	text1,local,class=CODE,delta=2
     6                           	psect	intcode,global,class=CODE,delta=2
     7                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
     8                           	psect	intret,global,class=CODE,delta=2
     9                           	psect	intentry,global,class=CODE,delta=2
    10                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    11                           	psect	text3,local,class=CODE,delta=2
    12                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23                           
    24                           	psect	__Z51037RS_
    25  0190                     
    26  0190                     
    27                           
    28                           	psect	text0
    29  07ED                     _int_init
    30                           ;16key_INT.c: 8: GIE=1;
    31  07ED  178B               	bsf	11,7
    32                           ;16key_INT.c: 9: INTE=1;
    33  07EE  160B               	bsf	11,4
    34                           ;16key_INT.c: 10: INTF=0;
    35  07EF  108B               	bcf	11,1
    36                           ;16key_INT.c: 11: TRISB0=1;
    37  07F0  1683               	bsf	3,5
    38  07F1  1303               	bcf	3,6	;carry unused
    39  07F2  1406               	bsf	6,0
    40                           ;16key_INT.c: 12: TRISD=0x00;
    41  07F3  0188               	clrf	8	;volatile
    42                           ;16key_INT.c: 13: PORTD=0x0f;
    43  07F4  300F               	movlw	15
    44  07F5  1283               	bcf	3,5
    45  07F6  0088               	movwf	8	;volatile
    46                           ;16key_INT.c: 14: TRISD=0xf0;
    47  07F7  30F0               	movlw	-16
    48  07F8  1683               	bsf	3,5
    49  07F9  0088               	movwf	8	;volatile
    50                           ;16key_INT.c: 15: TRISC=0x00;
    51  07FA  0187               	clrf	7	;volatile
    52                           ;16key_INT.c: 16: INTEDG=1;
    53  07FB  1701               	bsf	1,6
    54                           ;16key_INT.c: 18: }
    55  07FC  1283               	bcf	3,5
    56  07FD  0008               	return
    57                           ;16key_INT.c: 53: void main()
    58                           ;16key_INT.c: 54: {
    59  07FE                     _main
    60                           ;16key_INT.c: 55: int_init();
    61  07FE  27ED               	fcall	_int_init
    62                           ;16key_INT.c: 56: while(1)
    63  07FF                     l20
    64                           ;16key_INT.c: 57: {
    65  07FF  2FFF               	goto	l20
    66                           
    67                           	psect	intcode
    68  000B                     _intkey
    69  000B                     int_func
    70                           ;16key_INT.c: 22: INTF=0;
    71  000B  108B               	bcf	11,1
    72                           ;16key_INT.c: 23: PORTD=0x00;
    73  000C  1283               	bcf	3,5
    74  000D  1303               	bcf	3,6	;carry unused
    75  000E  0188               	clrf	8	;volatile
    76                           ;16key_INT.c: 25: RD0=1;
    77  000F  1408               	bsf	8,0
    78                           ;16key_INT.c: 26: if(1==RD4) key=1;
    79  0010  1E08               	btfss	8,4
    80  0011  2814               	goto	l3
    81  0012  01A0               	clrf	_key
    82  0013  0AA0               	incf	_key
    83  0014                     l3
    84                           ;16key_INT.c: 27: if(1==RD5) key=2;
    85  0014  1E88               	btfss	8,5
    86  0015  2818               	goto	l4
    87  0016  3002               	movlw	2
    88  0017  00A0               	movwf	_key
    89  0018                     l4
    90                           ;16key_INT.c: 28: if(1==RD6) key=3;
    91  0018  1F08               	btfss	8,6
    92  0019  281C               	goto	l5
    93  001A  3003               	movlw	3
    94  001B  00A0               	movwf	_key
    95  001C                     l5
    96                           ;16key_INT.c: 29: if(1==RD7) key=4;
    97  001C  1F88               	btfss	8,7
    98  001D  2820               	goto	l6
    99  001E  3004               	movlw	4
   100  001F  00A0               	movwf	_key
   101  0020                     l6
   102                           ;16key_INT.c: 30: RD0=0;
   103  0020  1008               	bcf	8,0
   104                           ;16key_INT.c: 31: RD1=1;
   105  0021  1488               	bsf	8,1
   106                           ;16key_INT.c: 32: if(1==RD4) key=5;
   107  0022  1E08               	btfss	8,4
   108  0023  2826               	goto	l7
   109  0024  3005               	movlw	5
   110  0025  00A0               	movwf	_key
   111  0026                     l7
   112                           ;16key_INT.c: 33: if(1==RD5) key=6;
   113  0026  1E88               	btfss	8,5
   114  0027  282A               	goto	l8
   115  0028  3006               	movlw	6
   116  0029  00A0               	movwf	_key
   117  002A                     l8
   118                           ;16key_INT.c: 34: if(1==RD6) key=7;
   119  002A  1F08               	btfss	8,6
   120  002B  282E               	goto	l9
   121  002C  3007               	movlw	7
   122  002D  00A0               	movwf	_key
   123  002E                     l9
   124                           ;16key_INT.c: 35: if(1==RD7) key=8;
   125  002E  1F88               	btfss	8,7
   126  002F  2832               	goto	l10
   127  0030  3008               	movlw	8
   128  0031  00A0               	movwf	_key
   129  0032                     l10
   130                           ;16key_INT.c: 36: RD1=0;
   131  0032  1088               	bcf	8,1
   132                           ;16key_INT.c: 37: RD2=1;
   133  0033  1508               	bsf	8,2
   134                           ;16key_INT.c: 38: if(1==RD4) key=9;
   135  0034  1E08               	btfss	8,4
   136  0035  2838               	goto	l11
   137  0036  3009               	movlw	9
   138  0037  00A0               	movwf	_key
   139  0038                     l11
   140                           ;16key_INT.c: 39: if(1==RD5) key=10;
   141  0038  1E88               	btfss	8,5
   142  0039  283C               	goto	l12
   143  003A  300A               	movlw	10
   144  003B  00A0               	movwf	_key
   145  003C                     l12
   146                           ;16key_INT.c: 40: if(1==RD6) key=11;
   147  003C  1F08               	btfss	8,6
   148  003D  2840               	goto	l13
   149  003E  300B               	movlw	11
   150  003F  00A0               	movwf	_key
   151  0040                     l13
   152                           ;16key_INT.c: 41: if(1==RD7) key=12;
   153  0040  1F88               	btfss	8,7
   154  0041  2844               	goto	l14
   155  0042  300C               	movlw	12
   156  0043  00A0               	movwf	_key
   157  0044                     l14
   158                           ;16key_INT.c: 42: RD2=0;
   159  0044  1108               	bcf	8,2
   160                           ;16key_INT.c: 43: RD3=1;
   161  0045  1588               	bsf	8,3
   162                           ;16key_INT.c: 44: if(1==RD4) key=13;
   163  0046  1E08               	btfss	8,4
   164  0047  284A               	goto	l15
   165  0048  300D               	movlw	13
   166  0049  00A0               	movwf	_key
   167  004A                     l15
   168                           ;16key_INT.c: 45: if(1==RD5) key=14;
   169  004A  1E88               	btfss	8,5
   170  004B  284E               	goto	l16
   171  004C  300E               	movlw	14
   172  004D  00A0               	movwf	_key
   173  004E                     l16
   174                           ;16key_INT.c: 46: if(1==RD6) key=15;
   175  004E  1F08               	btfss	8,6
   176  004F  2852               	goto	l17
   177  0050  300F               	movlw	15
   178  0051  00A0               	movwf	_key
   179  0052                     l17
   180                           ;16key_INT.c: 47: if(1==RD7) key=16;
   181  0052  1F88               	btfss	8,7
   182  0053  2856               	goto	l18
   183  0054  3010               	movlw	16
   184  0055  00A0               	movwf	_key
   185  0056                     l18
   186                           ;16key_INT.c: 48: RD3=0;
   187  0056  1188               	bcf	8,3
   188                           ;16key_INT.c: 49: PORTD=0x0f;
   189  0057  300F               	movlw	15
   190  0058  0088               	movwf	8	;volatile
   191                           ;16key_INT.c: 50: PORTC=key;
   192  0059  0820               	movf	_key,w
   193  005A  0087               	movwf	7	;volatile
   194                           
   195                           	psect	intsave_0
   196  0070                     saved_w
   197  0070                     	ds	1
   198                           
   199                           	psect	intret
   200  005B  0822               	movf	saved_pclath,w
   201  005C  008A               	movwf	10
   202  005D                     int_restore
   203  005D  0821               	movf	saved_status,w
   204  005E  0083               	movwf	3
   205  005F  0EF0               	swapf	saved_w
   206  0060  0E70               	swapf	saved_w,w
   207  0061  0009               	retfie
   208                           
   209                           	psect	intentry
   210  0004                     int_entry
   211  0004  00F0               	movwf	saved_w
   212  0005  0803               	movf	3,w
   213  0006  0183               	clrf	3
   214  0007  00A1               	movwf	saved_status
   215  0008  080A               	movf	10,w
   216  0009  00A2               	movwf	saved_pclath
   217  000A  018A               	clrf	10
   218                           
   219                           	psect	intsave
   220  0021                     saved_status
   221  0021                     	ds	1
   222  0022                     saved_pclath
   223  0022                     	ds	1
   224                           
   225                           	psect	text3
   226  0000                     
   227  0000                     
   228  0000                     
   229  0000                     
   230  0000                     
   231  0000                     
   232  0000                     
   233  0000                     
   234  0000                     
   235  0000                     
   236  0000                     
   237  0000                     
   238  0000                     
   239  0000                     
   240  0000                     
   241  0000                     
   242  0000                     
   243  0000                     
   244  0000                     
   245  0000                     
   246  0000                     
   247  0000                     
   248  0000                     
   249  0000                     
   250  0000                     
   251  0000                     
   252  0000                     
   253  0000                     
   254  0000                     
   255  0000                     

⌨️ 快捷键说明

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