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

📄 main.lst

📁 自己学习PIC单片机时做的矩阵键盘仿真程序
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234                            Tue Mar 31 19:08:05 2009

Licensed to: SHAN
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z01234RS_,global,delta=1
     4                           	psect	rdata_0,global,class=BANK0,space=1,delta
      +                          =1
     5                           	psect	idata_0,global,class=CODE,delta=2
     6                           	psect	config,global,class=CONFIG,delta=2
     7                           	psect	text4,local,class=CODE,delta=2
     8                           	psect	text7,local,class=CODE,delta=2
     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	__Z01234RS_
    22  0190                     
    23  0190                     
    24                           
    25                           	psect	rdata_0
    26  002F                     _table
    27  002F                     	ds	1
    28  0030                     	ds	1
    29  0031                     	ds	1
    30  0032                     	ds	1
    31  0033                     	ds	1
    32  0034                     	ds	1
    33  0035                     	ds	1
    34  0036                     	ds	1
    35  0037                     	ds	1
    36  0038                     	ds	1
    37  0039                     	ds	1
    38  003A                     	ds	1
    39  003B                     	ds	1
    40  003C                     	ds	1
    41  003D                     	ds	1
    42  003E                     	ds	1
    43                           
    44                           	psect	idata_0
    45  07F0  343F               	retlw	63
    46  07F1  3406               	retlw	6
    47  07F2  345B               	retlw	91
    48  07F3  344F               	retlw	79
    49  07F4  3466               	retlw	102
    50  07F5  346D               	retlw	109
    51  07F6  347D               	retlw	125
    52  07F7  3407               	retlw	7
    53  07F8  347F               	retlw	127
    54  07F9  346F               	retlw	111
    55  07FA  3477               	retlw	119
    56  07FB  347C               	retlw	124
    57  07FC  3439               	retlw	57
    58  07FD  345E               	retlw	94
    59  07FE  3479               	retlw	121
    60  07FF  3471               	retlw	113	;#
    61                           
    62                           	psect	config
    63  2007  3B31               	dw	15153	;#
    64  0000                     _delay$ms	set	?_delay
    65                           
    66                           	psect	text4
    67  06E0                     _dig_tube
    68                           ;	_num0 assigned to ?a_dig_tube+0
    69  0000                     _dig_tube$num0	set	?a_dig_tube
    70                           ;_num0 stored from w
    71  06E0  0183               	clrf	3	;select bank 0
    72  06E1  00A6               	movwf	?a_dig_tube
    73                           ;main.c: 51: show(num0,0);
    74  06E2  01A7               	clrf	?_show
    75  06E3  271E  120A  118A   	fcall	_show
    76                           ;main.c: 52: show(num1,1);
    77  06E6  01A7               	clrf	?_show
    78  06E7  0AA7               	incf	?_show
    79  06E8  0821               	movf	?_dig_tube,w
    80  06E9  271E  120A  118A   	fcall	_show
    81                           ;main.c: 53: show(num2,2);
    82  06EC  3002               	movlw	2
    83  06ED  00A7               	movwf	?_show
    84  06EE  0822               	movf	?_dig_tube+1,w
    85  06EF  271E  120A  118A   	fcall	_show
    86                           ;main.c: 54: show(num3,3);
    87  06F2  3003               	movlw	3
    88  06F3  00A7               	movwf	?_show
    89  06F4  0823               	movf	?_dig_tube+2,w
    90  06F5  271E  120A  118A   	fcall	_show
    91                           ;main.c: 55: show(num4,4);
    92  06F8  3004               	movlw	4
    93  06F9  00A7               	movwf	?_show
    94  06FA  0824               	movf	?_dig_tube+3,w
    95  06FB  271E  120A  118A   	fcall	_show
    96                           ;main.c: 56: show(num5,5);
    97  06FE  3005               	movlw	5
    98  06FF  00A7               	movwf	?_show
    99  0700  0825               	movf	?_dig_tube+4,w
   100  0701  2F1E               	ljmp	_show
   101  0702                     _delay
   102                           ;	_i assigned to ?a_delay+0
   103  0000                     _delay$i	set	?a_delay
   104                           ;	_j assigned to ?a_delay+2
   105  0000                     _delay$j	set	?a_delay+2
   106                           ;main.c: 10: unsigned int i,j;
   107  0702  0183               	clrf	3	;select bank 0
   108  0703  01AB               	clrf	?a_delay
   109  0704  01AC               	clrf	?a_delay+1
   110  0705  2F15               	goto	l5
   111  0706                     l2
   112                           ;main.c: 12: {
   113                           ;main.c: 13: for(j=0;j<88;j++);
   114  0706  01AD               	clrf	?a_delay+2
   115  0707  01AE               	clrf	?a_delay+3
   116  0708                     l6
   117  0708  0AAD               	incf	?a_delay+2
   118  0709  1903               	btfsc	3,2
   119  070A  0AAE               	incf	?a_delay+3
   120  070B  3000               	movlw	0
   121  070C  022E               	subwf	?a_delay+3,w
   122  070D  3058               	movlw	88
   123  070E  1903               	btfsc	3,2
   124  070F  022D               	subwf	?a_delay+2,w
   125  0710  1C03               	btfss	3,0
   126  0711  2F08               	goto	l6
   127                           ;main.c: 14: }
   128  0712  0AAB               	incf	?a_delay
   129  0713  1903               	btfsc	3,2
   130  0714  0AAC               	incf	?a_delay+1
   131  0715                     l5
   132  0715  082A               	movf	?_delay+1,w
   133  0716  022C               	subwf	?a_delay+1,w
   134  0717  1D03               	btfss	3,2
   135  0718  2F1B               	goto	u25
   136  0719  0829               	movf	?_delay,w
   137  071A  022B               	subwf	?a_delay,w
   138  071B                     u25
   139  071B  1803               	btfsc	3,0
   140  071C  0008               	return
   141  071D  2F06               	goto	l2
   142  071E                     _show
   143                           ;	_j assigned to ?a_show+0
   144  0000                     _show$j	set	?a_show
   145                           ;_j stored from w
   146  071E  0183               	clrf	3	;select bank 0
   147  071F  00A8               	movwf	?a_show
   148                           ;main.c: 19: PORTD=table[j];
   149  0720  3E2F               	addlw	_table
   150  0721  0084               	movwf	4
   151  0722  1383               	bcf	3,7
   152  0723  0800               	movf	0,w
   153  0724  0088               	movwf	8	;volatile
   154                           ;main.c: 20: PORTA=~(1<<(k));
   155  0725  3001               	movlw	1
   156  0726  00F0               	movwf	btemp
   157  0727  0827               	movf	?_show,w
   158  0728  00F1               	movwf	btemp+1
   159  0729  0AF1               	incf	btemp+1
   160  072A  2F2D               	goto	u34
   161  072B                     u35
   162  072B  1003               	bcf	3,0
   163  072C  0DF0               	rlf	btemp
   164  072D                     u34
   165  072D  0BF1               	decfsz	btemp+1
   166  072E  2F2B               	goto	u35
   167  072F  0970               	comf	btemp,w
   168  0730  0085               	movwf	5	;volatile
   169                           ;main.c: 21: delay(1);
   170  0731  01A9               	clrf	?_delay
   171  0732  0AA9               	incf	?_delay
   172  0733  01AA               	clrf	?_delay+1
   173  0734  2702               	fcall	_delay
   174                           ;main.c: 22: PORTA=0XFF;
   175  0735  30FF               	movlw	-1
   176  0736  0085               	movwf	5	;volatile
   177                           ;main.c: 23: }
   178  0737  0008               	return
   179                           ;main.c: 37: void bell(unsigned char num)
   180                           ;main.c: 38: {
   181  0738                     _bell
   182                           ;	_num assigned to ?a_bell+0
   183  0000                     _bell$num	set	?a_bell
   184                           ;	_dnum assigned to ?a_bell+1
   185  0000                     _bell$dnum	set	?a_bell+1
   186                           ;_num stored from w
   187  0738  0183               	clrf	3	;select bank 0
   188  0739  00A0               	movwf	?a_bell
   189                           ;main.c: 39: unsigned char dnum;
   190  073A  00A1               	movwf	?a_bell+1
   191  073B  08A1               	movf	?a_bell+1
   192  073C  1903               	btfsc	3,2
   193  073D  0008               	return
   194  073E                     l12
   195                           ;main.c: 41: {
   196                           ;main.c: 42: RE0=1;
   197  073E  1409               	bsf	9,0
   198                           ;main.c: 43: delay(50);
   199  073F  3032               	movlw	50
   200  0740  00A9               	movwf	?_delay
   201  0741  01AA               	clrf	?_delay+1
   202  0742  2702               	fcall	_delay
   203                           ;main.c: 44: RE0=0;
   204  0743  1009               	bcf	9,0
   205                           ;main.c: 45: delay(20);
   206  0744  3014               	movlw	20
   207  0745  00A9               	movwf	?_delay
   208  0746  01AA               	clrf	?_delay+1
   209  0747  2702               	fcall	_delay
   210                           ;main.c: 46: }
   211  0748  0BA1               	decfsz	?a_bell+1
   212  0749  2F3E               	goto	l12
   213  074A  0008               	return
   214                           ;main.c: 60: unsigned char martric_key_scan()
   215                           ;main.c: 61: {
   216  074B                     _martric_key_scan
   217                           ;	_code_l assigned to ?a_martric_key_scan+0
   218  0000                     _martric_key_scan$code_l	set	?a_martric_key_sca
      +                          n
   219                           ;	_code_h assigned to ?a_martric_key_scan+1
   220  0000                     _martric_key_scan$code_h	set	?a_martric_key_sca
      +                          n+1
   221                           ;	_key_result assigned to ?a_martric_key_scan+2
   222  0000                     _martric_key_scan$key_result	set	?a_martric_key
      +                          _scan+2
   223                           ;main.c: 62: unsigned char code_h;
   224  074B  300F               	movlw	15
   225  074C  0183               	clrf	3	;select bank 0
   226  074D  0086               	movwf	6	;volatile
   227                           ;main.c: 66: if((PORTB&0X0F)!=0X0F)
   228  074E  0806               	movf	6,w	;volatile
   229  074F  390F               	andlw	15
   230  0750  3A0F               	xorlw	15
   231  0751  1903               	btfsc	3,2
   232  0752  3400               	retlw	0
   233                           ;main.c: 67: {
   234  0753  300A               	movlw	10
   235  0754  00A9               	movwf	?_delay
   236  0755  01AA               	clrf	?_delay+1
   237  0756  2702               	fcall	_delay
   238                           ;main.c: 69: if((PORTB&0X0F)!=0X0F)
   239  0757  0806               	movf	6,w	;volatile
   240  0758  390F               	andlw	15
   241  0759  3A0F               	xorlw	15
   242  075A  1903               	btfsc	3,2
   243  075B  3400               	retlw	0
   244                           ;main.c: 70: {
   245  075C  30EF               	movlw	-17
   246  075D  00A2               	movwf	?a_martric_key_scan+1
   247                           ;main.c: 72: while((code_h&0xff)!=0xff)
   248  075E  2FC7               	goto	l19
   249  075F                     l20
   250                           ;main.c: 73: {
   251  075F  0822               	movf	?a_martric_key_scan+1,w
   252  0760  0086               	movwf	6	;volatile

⌨️ 快捷键说明

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