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

📄 main.lst

📁 自己学习PIC单片机时的仿真程序
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234                            Tue Mar 31 11:11:44 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	text6,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  0731                     _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  0731  0183               	clrf	3	;select bank 0
    72  0732  00A6               	movwf	?a_dig_tube
    73                           ;main.c: 51: show(num0,0);
    74  0733  01A7               	clrf	?_show
    75  0734  276F  120A  118A   	fcall	_show
    76                           ;main.c: 52: show(num1,1);
    77  0737  01A7               	clrf	?_show
    78  0738  0AA7               	incf	?_show
    79  0739  0821               	movf	?_dig_tube,w
    80  073A  276F  120A  118A   	fcall	_show
    81                           ;main.c: 53: show(num2,2);
    82  073D  3002               	movlw	2
    83  073E  00A7               	movwf	?_show
    84  073F  0822               	movf	?_dig_tube+1,w
    85  0740  276F  120A  118A   	fcall	_show
    86                           ;main.c: 54: show(num3,3);
    87  0743  3003               	movlw	3
    88  0744  00A7               	movwf	?_show
    89  0745  0823               	movf	?_dig_tube+2,w
    90  0746  276F  120A  118A   	fcall	_show
    91                           ;main.c: 55: show(num4,4);
    92  0749  3004               	movlw	4
    93  074A  00A7               	movwf	?_show
    94  074B  0824               	movf	?_dig_tube+3,w
    95  074C  276F  120A  118A   	fcall	_show
    96                           ;main.c: 56: show(num5,5);
    97  074F  3005               	movlw	5
    98  0750  00A7               	movwf	?_show
    99  0751  0825               	movf	?_dig_tube+4,w
   100  0752  2F6F               	ljmp	_show
   101  0753                     _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  0753  0183               	clrf	3	;select bank 0
   108  0754  01AB               	clrf	?a_delay
   109  0755  01AC               	clrf	?a_delay+1
   110  0756  2F66               	goto	l5
   111  0757                     l2
   112                           ;main.c: 12: {
   113                           ;main.c: 13: for(j=0;j<88;j++);
   114  0757  01AD               	clrf	?a_delay+2
   115  0758  01AE               	clrf	?a_delay+3
   116  0759                     l6
   117  0759  0AAD               	incf	?a_delay+2
   118  075A  1903               	btfsc	3,2
   119  075B  0AAE               	incf	?a_delay+3
   120  075C  3000               	movlw	0
   121  075D  022E               	subwf	?a_delay+3,w
   122  075E  3058               	movlw	88
   123  075F  1903               	btfsc	3,2
   124  0760  022D               	subwf	?a_delay+2,w
   125  0761  1C03               	btfss	3,0
   126  0762  2F59               	goto	l6
   127                           ;main.c: 14: }
   128  0763  0AAB               	incf	?a_delay
   129  0764  1903               	btfsc	3,2
   130  0765  0AAC               	incf	?a_delay+1
   131  0766                     l5
   132  0766  082A               	movf	?_delay+1,w
   133  0767  022C               	subwf	?a_delay+1,w
   134  0768  1D03               	btfss	3,2
   135  0769  2F6C               	goto	u25
   136  076A  0829               	movf	?_delay,w
   137  076B  022B               	subwf	?a_delay,w
   138  076C                     u25
   139  076C  1803               	btfsc	3,0
   140  076D  0008               	return
   141  076E  2F57               	goto	l2
   142  076F                     _show
   143                           ;	_j assigned to ?a_show+0
   144  0000                     _show$j	set	?a_show
   145                           ;_j stored from w
   146  076F  0183               	clrf	3	;select bank 0
   147  0770  00A8               	movwf	?a_show
   148                           ;main.c: 19: PORTD=table[j];
   149  0771  3E2F               	addlw	_table
   150  0772  0084               	movwf	4
   151  0773  1383               	bcf	3,7
   152  0774  0800               	movf	0,w
   153  0775  0088               	movwf	8	;volatile
   154                           ;main.c: 20: PORTA=~(1<<(k));
   155  0776  3001               	movlw	1
   156  0777  00F0               	movwf	btemp
   157  0778  0827               	movf	?_show,w
   158  0779  00F1               	movwf	btemp+1
   159  077A  0AF1               	incf	btemp+1
   160  077B  2F7E               	goto	u34
   161  077C                     u35
   162  077C  1003               	bcf	3,0
   163  077D  0DF0               	rlf	btemp
   164  077E                     u34
   165  077E  0BF1               	decfsz	btemp+1
   166  077F  2F7C               	goto	u35
   167  0780  0970               	comf	btemp,w
   168  0781  0085               	movwf	5	;volatile
   169                           ;main.c: 21: delay(1);
   170  0782  01A9               	clrf	?_delay
   171  0783  0AA9               	incf	?_delay
   172  0784  01AA               	clrf	?_delay+1
   173  0785  2753               	fcall	_delay
   174                           ;main.c: 22: PORTA=0XFF;
   175  0786  30FF               	movlw	-1
   176  0787  0085               	movwf	5	;volatile
   177                           ;main.c: 23: }
   178  0788  0008               	return
   179                           ;main.c: 37: void bell(unsigned char num)
   180                           ;main.c: 38: {
   181  0789                     _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  0789  0183               	clrf	3	;select bank 0
   188  078A  00A0               	movwf	?a_bell
   189                           ;main.c: 39: unsigned char dnum;
   190  078B  00A1               	movwf	?a_bell+1
   191  078C  08A1               	movf	?a_bell+1
   192  078D  1903               	btfsc	3,2
   193  078E  0008               	return
   194  078F                     l12
   195                           ;main.c: 41: {
   196                           ;main.c: 42: RE0=1;
   197  078F  1409               	bsf	9,0
   198                           ;main.c: 43: delay(50);
   199  0790  3032               	movlw	50
   200  0791  00A9               	movwf	?_delay
   201  0792  01AA               	clrf	?_delay+1
   202  0793  2753               	fcall	_delay
   203                           ;main.c: 44: RE0=0;
   204  0794  1009               	bcf	9,0
   205                           ;main.c: 45: delay(20);
   206  0795  3014               	movlw	20
   207  0796  00A9               	movwf	?_delay
   208  0797  01AA               	clrf	?_delay+1
   209  0798  2753               	fcall	_delay
   210                           ;main.c: 46: }
   211  0799  0BA1               	decfsz	?a_bell+1
   212  079A  2F8F               	goto	l12
   213  079B  0008               	return
   214                           ;main.c: 25: void init()
   215                           ;main.c: 26: {
   216  079C                     _init
   217                           ;main.c: 27: TRISA=0;
   218  079C  1683               	bsf	3,5
   219  079D  1303               	bcf	3,6	;carry unused
   220  079E  0185               	clrf	5	;volatile
   221                           ;main.c: 28: PORTA=0XFF;
   222  079F  30FF               	movlw	-1
   223  07A0  1283               	bcf	3,5
   224  07A1  0085               	movwf	5	;volatile
   225                           ;main.c: 29: TRISD=0;
   226  07A2  1683               	bsf	3,5
   227  07A3  0188               	clrf	8	;volatile
   228                           ;main.c: 30: PORTD=0;
   229  07A4  1283               	bcf	3,5
   230  07A5  0188               	clrf	8	;volatile
   231                           ;main.c: 31: TRISB=0X0F;
   232  07A6  300F               	movlw	15
   233  07A7  1683               	bsf	3,5
   234  07A8  0086               	movwf	6	;volatile
   235                           ;main.c: 32: PORTB=0;
   236  07A9  1283               	bcf	3,5
   237  07AA  0186               	clrf	6	;volatile
   238                           ;main.c: 33: TRISE0=0;
   239  07AB  1683               	bsf	3,5
   240  07AC  1009               	bcf	9,0
   241                           ;main.c: 34: RE0=0;
   242  07AD  1283               	bcf	3,5
   243  07AE  1009               	bcf	9,0
   244                           ;main.c: 35: }
   245  07AF  0008               	return
   246                           ;main.c: 58: void main()
   247                           ;main.c: 59: {unsigned char key_num;
   248  07B0                     _main
   249                           ;	_key_num assigned to ?a_main+0
   250  0000                     _main$key_num	set	?a_main
   251                           ;main.c: 60: init();
   252  07B0  279C               	fcall	_init
   253  07B1                     l18
   254                           ;main.c: 61: while(1)
   255                           ;main.c: 62: {
   256  07B1  1806               	btfsc	6,0
   257  07B2  2FBD               	goto	l20
   258                           ;main.c: 64: {
   259  07B3  300A               	movlw	10
   260  07B4  00A9               	movwf	?_delay
   261  07B5  01AA               	clrf	?_delay+1
   262  07B6  2753               	fcall	_delay
   263                           ;main.c: 66: if(RB0==0)
   264  07B7  1806               	btfsc	6,0
   265  07B8  2FBD               	goto	l20
   266                           ;main.c: 67: {
   267  07B9                     l22
   268  07B9  1C06               	btfss	6,0
   269  07BA  2FB9               	goto	l22
   270                           ;main.c: 69: key_num=1;
   271  07BB  01A0               	clrf	?a_main
   272  07BC  0AA0               	incf	?a_main
   273                           ;main.c: 70: }
   274  07BD                     l20
   275                           ;main.c: 73: if(RB1==0)
   276  07BD  1886               	btfsc	6,1
   277  07BE  2FC9               	goto	l25
   278                           ;main.c: 74: {
   279  07BF  300A               	movlw	10
   280  07C0  00A9               	movwf	?_delay
   281  07C1  01AA               	clrf	?_delay+1
   282  07C2  2753               	fcall	_delay
   283                           ;main.c: 76: if(RB1==0)
   284  07C3  1886               	btfsc	6,1
   285  07C4  2FC9               	goto	l25
   286                           ;main.c: 77: {
   287  07C5                     l27
   288  07C5  1C86               	btfss	6,1
   289  07C6  2FC5               	goto	l27
   290                           ;main.c: 79: key_num=2;
   291  07C7  3002               	movlw	2
   292  07C8  00A0               	movwf	?a_main
   293                           ;main.c: 80: }
   294  07C9                     l25
   295                           ;main.c: 83: if(RB2==0)
   296  07C9  1906               	btfsc	6,2
   297  07CA  2FD5               	goto	l30
   298                           ;main.c: 84: {
   299  07CB  300A               	movlw	10
   300  07CC  00A9               	movwf	?_delay
   301  07CD  01AA               	clrf	?_delay+1
   302  07CE  2753               	fcall	_delay
   303                           ;main.c: 86: if(RB2==0)
   304  07CF  1906               	btfsc	6,2
   305  07D0  2FD5               	goto	l30
   306                           ;main.c: 87: {
   307  07D1                     l32
   308  07D1  1D06               	btfss	6,2
   309  07D2  2FD1               	goto	l32
   310                           ;main.c: 89: key_num=3;
   311  07D3  3003               	movlw	3
   312  07D4  00A0               	movwf	?a_main
   313                           ;main.c: 90: }
   314  07D5                     l30
   315                           ;main.c: 93: if(RB3==0)
   316  07D5  1986               	btfsc	6,3
   317  07D6  2FE1               	goto	l35
   318                           ;main.c: 94: {
   319  07D7  300A               	movlw	10
   320  07D8  00A9               	movwf	?_delay
   321  07D9  01AA               	clrf	?_delay+1

⌨️ 快捷键说明

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