lesson5.lst

来自「PIC16F877入门程序和仿真原理图」· LST 代码 · 共 539 行 · 第 1/2 页

LST
539
字号


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-65018                            Mon Apr  6 15:43:28 2009

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z65018RS_,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	text1,local,class=CODE,delta=2
     7                           	psect	text2,local,class=CODE,delta=2
     8                           	psect	text4,local,class=CODE,delta=2
     9                           	psect	intcode,global,class=CODE,delta=2
    10                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
    11                           	psect	intret,global,class=CODE,delta=2
    12                           	psect	intentry,global,class=CODE,delta=2
    13                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    14                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25                           
    26                           	psect	__Z65018RS_
    27  0190                     
    28  0190                     
    29                           
    30                           	psect	rdata_0
    31  0026                     _table
    32  0026                     	ds	1
    33  0027                     	ds	1
    34  0028                     	ds	1
    35  0029                     	ds	1
    36  002A                     	ds	1
    37  002B                     	ds	1
    38  002C                     	ds	1
    39  002D                     	ds	1
    40  002E                     	ds	1
    41  002F                     	ds	1
    42  0030                     	ds	1
    43  0031                     	ds	1
    44  0032                     	ds	1
    45  0033                     	ds	1
    46  0034                     	ds	1
    47  0035                     	ds	1
    48  0036                     _table_we
    49  0036                     	ds	1
    50  0037                     	ds	1
    51  0038                     	ds	1
    52  0039                     	ds	1
    53  003A                     	ds	1
    54  003B                     	ds	1
    55                           
    56                           	psect	idata_0
    57  07EA  3440               	retlw	64
    58  07EB  34F9               	retlw	-7
    59  07EC  34A4               	retlw	-92
    60  07ED  34B0               	retlw	-80
    61  07EE  3419               	retlw	25
    62  07EF  3412               	retlw	18
    63  07F0  3403               	retlw	3
    64  07F1  34F8               	retlw	-8
    65  07F2  3400               	retlw	0
    66  07F3  3410               	retlw	16
    67  07F4  3408               	retlw	8
    68  07F5  3403               	retlw	3
    69  07F6  3446               	retlw	70
    70  07F7  3421               	retlw	33
    71  07F8  3406               	retlw	6
    72  07F9  340E               	retlw	14
    73  07FA  3401               	retlw	1
    74  07FB  3402               	retlw	2
    75  07FC  3404               	retlw	4
    76  07FD  3408               	retlw	8
    77  07FE  3410               	retlw	16
    78  07FF  3420               	retlw	32
    79                           
    80                           	psect	text1
    81  07B2                     _delay
    82                           ;	_y assigned to ?a_delay+0
    83  0000                     _delay$y	set	?a_delay
    84                           ;	_x assigned to ?a_delay+2
    85  0000                     _delay$x	set	?a_delay+2
    86                           ;lesson5.c: 21: unsigned int x,y;
    87  07B2  0183               	clrf	3	;select bank 0
    88  07B3  0822               	movf	?_delay,w
    89  07B4  00A4               	movwf	?a_delay+2
    90  07B5  0823               	movf	?_delay+1,w
    91  07B6  00A5               	movwf	?a_delay+3
    92  07B7  0424               	iorwf	?a_delay+2,w
    93  07B8  1903               	btfsc	3,2
    94  07B9  0008               	return
    95  07BA                     l3
    96                           ;lesson5.c: 23: for(y=110;y>0;y--);
    97  07BA  306E               	movlw	110
    98  07BB  00A2               	movwf	?a_delay
    99  07BC  01A3               	clrf	?a_delay+1
   100  07BD                     l6
   101  07BD  08A2               	movf	?a_delay
   102  07BE  1903               	btfsc	3,2
   103  07BF  03A3               	decf	?a_delay+1
   104  07C0  03A2               	decf	?a_delay
   105  07C1  0823               	movf	?a_delay+1,w
   106  07C2  0422               	iorwf	?a_delay,w
   107  07C3  1D03               	btfss	3,2
   108  07C4  2FBD               	goto	l6
   109  07C5  08A4               	movf	?a_delay+2
   110  07C6  1903               	btfsc	3,2
   111  07C7  03A5               	decf	?a_delay+3
   112  07C8  03A4               	decf	?a_delay+2
   113  07C9  0825               	movf	?a_delay+3,w
   114  07CA  0424               	iorwf	?a_delay+2,w
   115  07CB  1903               	btfsc	3,2
   116  07CC  0008               	return
   117  07CD  2FBA               	goto	l3
   118                           
   119                           	psect	text2
   120                           ;lesson5.c: 25: void display()
   121                           ;lesson5.c: 26: {
   122  07CE                     _display
   123                           ;lesson5.c: 27: PORTC=0X01;
   124  07CE  3001               	movlw	1
   125  07CF  0183               	clrf	3	;select bank 0
   126  07D0  0087               	movwf	7	;volatile
   127                           ;lesson5.c: 28: PORTB=table[disp_num];
   128  07D1  0820               	movf	_disp_num,w
   129  07D2  3E26               	addlw	_table
   130  07D3  0084               	movwf	4
   131  07D4  1383               	bcf	3,7
   132  07D5  0800               	movf	0,w
   133  07D6  0086               	movwf	6	;volatile
   134                           ;lesson5.c: 29: }
   135  07D7  0008               	return
   136  07D8                     _init
   137                           ;lesson5.c: 10: TRISC=0X00;
   138  07D8  1683               	bsf	3,5
   139  07D9  1303               	bcf	3,6	;carry unused
   140  07DA  0187               	clrf	7	;volatile
   141                           ;lesson5.c: 11: TRISB=0X00;
   142  07DB  0186               	clrf	6	;volatile
   143                           ;lesson5.c: 12: OPTION=0X07;
   144  07DC  3007               	movlw	7
   145  07DD  0081               	movwf	1
   146                           ;lesson5.c: 13: TMR0=61;
   147  07DE  303D               	movlw	61
   148  07DF  1283               	bcf	3,5
   149  07E0  0081               	movwf	1	;volatile
   150                           ;lesson5.c: 14: INTCON=0XA0;
   151  07E1  30A0               	movlw	-96
   152  07E2  008B               	movwf	11	;volatile
   153                           ;lesson5.c: 15: T0IE=1;
   154  07E3  168B               	bsf	11,5
   155                           ;lesson5.c: 16: disp_num=0;
   156  07E4  01A0               	clrf	_disp_num
   157                           ;lesson5.c: 17: T0IF=0;
   158  07E5  110B               	bcf	11,2
   159                           ;lesson5.c: 18: }
   160  07E6  0008               	return
   161                           ;lesson5.c: 30: void main()
   162                           ;lesson5.c: 31: {
   163  07E7                     _main
   164                           ;lesson5.c: 32: init();
   165  07E7  27D8               	fcall	_init
   166  07E8                     l12
   167                           ;lesson5.c: 33: while(1)
   168                           ;lesson5.c: 34: {
   169  07E8  27CE               	fcall	_display
   170                           ;lesson5.c: 36: }
   171  07E9  2FE8               	goto	l12
   172                           
   173                           	psect	intcode
   174                           ;lesson5.c: 38: void interrupt time0()
   175                           ;lesson5.c: 39: {
   176  000B                     _time0
   177  000B                     int_func
   178                           ;lesson5.c: 40: T0IF=0;
   179  000B  110B               	bcf	11,2
   180                           ;lesson5.c: 41: TMR0=61;
   181  000C  303D               	movlw	61
   182  000D  1283               	bcf	3,5
   183  000E  1303               	bcf	3,6	;carry unused
   184  000F  0081               	movwf	1	;volatile
   185                           ;lesson5.c: 42: num++;
   186  0010  0AA1               	incf	_num
   187                           ;lesson5.c: 43: if(num==5)
   188  0011  0821               	movf	_num,w
   189  0012  3A05               	xorlw	5
   190  0013  1D03               	btfss	3,2
   191  0014  281B               	goto	l14
   192                           ;lesson5.c: 44: {
   193  0015  01A1               	clrf	_num
   194                           ;lesson5.c: 46: disp_num++;
   195  0016  0AA0               	incf	_disp_num
   196                           ;lesson5.c: 47: if(disp_num==10)
   197  0017  0820               	movf	_disp_num,w
   198  0018  3A0A               	xorlw	10
   199  0019  1903               	btfsc	3,2
   200                           ;lesson5.c: 48: {
   201  001A  01A0               	clrf	_disp_num
   202                           ;lesson5.c: 50: }
   203                           ;lesson5.c: 52: }
   204  001B                     l14
   205                           
   206                           	psect	intsave_0
   207  0071                     saved_w
   208  0071                     	ds	1
   209                           
   210                           	psect	intret
   211  001B  083D               	movf	saved_pclath,w
   212  001C  008A               	movwf	10
   213  001D                     int_restore
   214  001D  083C               	movf	saved_status,w
   215  001E  0083               	movwf	3
   216  001F  0EF1               	swapf	saved_w
   217  0020  0E71               	swapf	saved_w,w
   218  0021  0009               	retfie
   219                           
   220                           	psect	intentry
   221  0004                     int_entry
   222  0004  00F1               	movwf	saved_w
   223  0005  0803               	movf	3,w
   224  0006  0183               	clrf	3
   225  0007  00BC               	movwf	saved_status
   226  0008  080A               	movf	10,w
   227  0009  00BD               	movwf	saved_pclath
   228  000A  018A               	clrf	10
   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                     
   256  0000                     
   257  0000                     
   258  0000                     
   259  0000                     
   260  0000                     

⌨️ 快捷键说明

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