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

📄 keyboard.lst

📁 采用模块化格式编写的基于PIC单片机的简单计算器
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-16605                            Wed May  6 21:52:06 2009

Licensed to: ONE
     1                           	processor	16F877
     2                           	opt	pw 79
     3                           	psect	__Z16605RS_,global,delta=1
     4                           	psect	strings,global,class=STRING,delta=2
     5                           	psect	const1,local,class=CONST,delta=2
     6                           	psect	text0,local,class=CODE,delta=2
     7                           	psect	text1,local,class=CODE,delta=2
     8  0000                     
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18                           
    19                           	psect	__Z16605RS_
    20  0190                     
    21  0190                     
    22                           
    23                           	psect	const1
    24  0008  0782               	addwf	2
    25  0009                     _KeyCode
    26  0009  34EE               	retlw	-18
    27  000A  3407               	retlw	7
    28  000B  34ED               	retlw	-19
    29  000C  3408               	retlw	8
    30  000D  34EB               	retlw	-21
    31  000E  3409               	retlw	9
    32  000F  34E7               	retlw	-25
    33  0010  342F               	retlw	47
    34  0011  34DE               	retlw	-34
    35  0012  3404               	retlw	4
    36  0013  34DD               	retlw	-35
    37  0014  3405               	retlw	5
    38  0015  34DB               	retlw	-37
    39  0016  3406               	retlw	6
    40  0017  34D7               	retlw	-41
    41  0018  342A               	retlw	42
    42  0019  34BE               	retlw	-66
    43  001A  3401               	retlw	1
    44  001B  34BD               	retlw	-67
    45  001C  3402               	retlw	2
    46  001D  34BB               	retlw	-69
    47  001E  3403               	retlw	3
    48  001F  34B7               	retlw	-73
    49  0020  342D               	retlw	45
    50  0021  347E               	retlw	126
    51  0022  3400               	retlw	0
    52  0023  347D               	retlw	125
    53  0024  3443               	retlw	67
    54  0025  347B               	retlw	123
    55  0026  343D               	retlw	61
    56  0027  3477               	retlw	119
    57  0028  342B               	retlw	43
    58                           
    59                           	psect	text0
    60  0649                     _scankeypad
    61                           ;	_ScanCode assigned to ?a_scankeypad+0
    62  0000                     _scankeypad$ScanCode	set	?a_scankeypad
    63                           ;	_i assigned to ?a_scankeypad+1
    64  0000                     _scankeypad$i	set	?a_scankeypad+1
    65                           ;	_key4L assigned to ?a_scankeypad+2
    66  0000                     _scankeypad$key4L	set	?a_scankeypad+2
    67                           ;	_key4H assigned to ?a_scankeypad+3
    68  0000                     _scankeypad$key4H	set	?a_scankeypad+3
    69                           ;keyboard.C: 24: char key4H=0,key4L=0,ScanCode=
      +                          0,i=0;
    70  0649  0183               	clrf	3	;select bank 0
    71  064A  01AC               	clrf	?a_scankeypad+3
    72  064B  01AB               	clrf	?a_scankeypad+2
    73  064C  01A9               	clrf	?a_scankeypad
    74  064D  01AA               	clrf	?a_scankeypad+1
    75                           ;keyboard.C: 25: TRISC=0xF0;
    76  064E  30F0               	movlw	-16
    77  064F  1683               	bsf	3,5
    78  0650  0087               	movwf	7	;volatile
    79                           ;keyboard.C: 26: PORTC=0x00;
    80  0651  1283               	bcf	3,5
    81  0652  0187               	clrf	7	;volatile
    82                           ;keyboard.C: 27: asm("nop");
    83  0653  0000               	nop	;#
    84                           ;keyboard.C: 28: asm("nop");
    85  0654  0000               	nop	;#
    86                           ;keyboard.C: 29: key4H=PORTC;
    87  0655  0807               	movf	7,w	;volatile
    88  0656  00AC               	movwf	?a_scankeypad+3
    89                           ;keyboard.C: 30: key4H=key4H&0xF0;
    90  0657  30F0               	movlw	-16
    91  0658  05AC               	andwf	?a_scankeypad+3
    92                           ;keyboard.C: 31: if(key4H!=0xF0)
    93  0659  082C               	movf	?a_scankeypad+3,w
    94  065A  3AF0               	xorlw	-16
    95  065B  1903               	btfsc	3,2
    96  065C  34FF               	retlw	-1
    97                           ;keyboard.C: 32: {
    98  065D  3014               	movlw	20
    99  065E  00B2               	movwf	?_delay
   100  065F  01B3               	clrf	?_delay+1
   101  0660  120A  118A  261F   	fcall	_delay
      +       120A  118A         
   102                           ;keyboard.C: 34: key4H=PORTC;
   103  0665  0807               	movf	7,w	;volatile
   104  0666  00AC               	movwf	?a_scankeypad+3
   105                           ;keyboard.C: 35: if(key4H!=0xF0)
   106  0667  3AF0               	xorlw	-16
   107  0668  1903               	btfsc	3,2
   108  0669  34FF               	retlw	-1
   109                           ;keyboard.C: 36: {
   110  066A  300F               	movlw	15
   111  066B  1683               	bsf	3,5
   112  066C  0087               	movwf	7	;volatile
   113                           ;keyboard.C: 38: PORTC=0x00;
   114  066D  1283               	bcf	3,5
   115  066E  0187               	clrf	7	;volatile
   116                           ;keyboard.C: 39: asm("nop");
   117  066F  0000               	nop	;#
   118                           ;keyboard.C: 40: asm("nop");
   119  0670  0000               	nop	;#
   120                           ;keyboard.C: 41: key4L=PORTC;
   121  0671  0807               	movf	7,w	;volatile
   122  0672  00AB               	movwf	?a_scankeypad+2
   123                           ;keyboard.C: 42: key4L=key4L&0x0F;
   124  0673  300F               	movlw	15
   125  0674  05AB               	andwf	?a_scankeypad+2
   126                           ;keyboard.C: 43: if(key4L!=0x0F)
   127  0675  082B               	movf	?a_scankeypad+2,w
   128  0676  3A0F               	xorlw	15
   129  0677  1903               	btfsc	3,2
   130  0678  34FF               	retlw	-1
   131                           ;keyboard.C: 44: {
   132  0679  082C               	movf	?a_scankeypad+3,w
   133  067A  072B               	addwf	?a_scankeypad+2,w
   134  067B  00A9               	movwf	?a_scankeypad
   135                           ;keyboard.C: 46: i=0;
   136  067C  01AA               	clrf	?a_scankeypad+1
   137                           ;keyboard.C: 47: while(ScanCode!=KeyCode[i][0])
   138  067D                     l5
   139                           ;keyboard.C: 50: }
   140  067D  3000               	movlw	_KeyCode shr (0+8)
   141  067E  008A               	movwf	10
   142  067F  082A               	movf	?a_scankeypad+1,w
   143  0680  072A               	addwf	?a_scankeypad+1,w
   144  0681  2008               	call	((_KeyCode+-1)& (0+2047))| (($)& (0+-2048
      +                          ))
   145  0682  120A  118A         	pagesel	$
   146  0684  0629               	xorwf	?a_scankeypad,w
   147  0685  1903               	btfsc	3,2
   148  0686  2E89               	goto	l7
   149                           ;keyboard.C: 48: {
   150  0687  0AAA               	incf	?a_scankeypad+1
   151  0688  2E7D               	goto	l5
   152  0689                     l7
   153                           ;keyboard.C: 52: return(KeyCode[i][1]);
   154  0689  3000               	movlw	_KeyCode shr (0+8)
   155  068A  008A               	movwf	10
   156  068B  1403               	bsf	3,0
   157  068C  0D2A               	rlf	?a_scankeypad+1,w
   158  068D  2008               	call	((_KeyCode+-1)& (0+2047))| (($)& (0+-2048
      +                          ))
   159  068E  120A  118A         	pagesel	$
   160  0690  0008               	return
   161                           
   162                           	psect	text1
   163  0000                     
   164  0000                     
   165  0000                     
   166  0000                     
   167  0000                     
   168  0000                     
   169  0000                     
   170  0000                     
   171  0000                     
   172  0000                     
   173  0000                     
   174  0000                     
   175  0000                     
   176  0000                     
   177  0000                     
   178  0000                     
   179  0000                     
   180  0000                     
   181  0000                     
   182  0000                     
   183  0000                     
   184  0000                     
   185  0000                     
   186  0000                     
   187  0000                     
   188  0000                     
   189  0000                     
   190  0000                     
   191  0000                     
   192  0000                     
   193  0000                     
   194  0000                     
   195  0000                     
   196  0000                     
   197  0000                     
   198  0000                     
   199  0000                     
   200  0000                     
   201  0000                     
   202  0000                     
   203  0000                     
   204  0000                     
   205  0000                     
   206  0000                     
   207  0000                     
   208  0000                     
   209  0000                     
   210  0000                     

⌨️ 快捷键说明

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