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

📄 lesson5_tmr1.lst

📁 PIC16F877入门程序和仿真原理图
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-65018                            Mon Apr  6 16:49:46 2009

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z65018RS_,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	text4,local,class=CODE,delta=2
     8                           	psect	intcode,global,class=CODE,delta=2
     9                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
    10                           	psect	intret,global,class=CODE,delta=2
    11                           	psect	intentry,global,class=CODE,delta=2
    12                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    13                           	psect	text6,local,class=CODE,delta=2
    14                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    15                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26                           
    27                           	psect	__Z65018RS_
    28  0190                     
    29  0190                     
    30                           
    31                           	psect	const1
    32  0034  0782               	addwf	2
    33  0035                     _table
    34  0035  3440               	retlw	64
    35  0036  34F9               	retlw	-7
    36  0037  34A4               	retlw	-92
    37  0038  34B0               	retlw	-80
    38  0039  3419               	retlw	25
    39  003A  3412               	retlw	18
    40  003B  3403               	retlw	3
    41  003C  34F8               	retlw	-8
    42  003D  3400               	retlw	0
    43  003E  3410               	retlw	16
    44                           
    45                           	psect	text0
    46  0773                     _Delay
    47                           ;	_x assigned to ?a_Delay+0
    48  0000                     _Delay$x	set	?a_Delay
    49                           ;	_i assigned to ?a_Delay+1
    50  0000                     _Delay$i	set	?a_Delay+1
    51                           ;_x stored from w
    52  0773  0183               	clrf	3	;select bank 0
    53  0774  00A5               	movwf	?a_Delay
    54                           ;lesson5_TMR1.c: 11: char i;
    55  0775  2F7C               	goto	l2
    56  0776                     l3
    57                           ;lesson5_TMR1.c: 13: for(i=0;i<200;i++);
    58  0776  01A6               	clrf	?a_Delay+1
    59  0777                     l5
    60  0777  0AA6               	incf	?a_Delay+1
    61  0778  30C8               	movlw	-56
    62  0779  0226               	subwf	?a_Delay+1,w
    63  077A  1C03               	btfss	3,0
    64  077B  2F77               	goto	l5
    65  077C                     l2
    66  077C  1283               	bcf	3,5
    67  077D  1303               	bcf	3,6	;carry unused
    68  077E  03A5               	decf	?a_Delay
    69  077F  0F25               	incfsz	?a_Delay,w
    70  0780  2F76               	goto	l3
    71  0781  0008               	return
    72                           ;lesson5_TMR1.c: 38: void display(unsigned char
      +                           data)
    73                           ;lesson5_TMR1.c: 39: { unsigned char a,b;
    74  0782                     _display
    75                           ;	_a assigned to ?a_display+0
    76  0000                     _display$a	set	?a_display
    77                           ;	_b assigned to ?a_display+1
    78  0000                     _display$b	set	?a_display+1
    79                           ;	_data assigned to ?a_display+2
    80  0000                     _display$data	set	?a_display+2
    81                           ;_data stored from w
    82  0782  0183               	clrf	3	;select bank 0
    83  0783  00A4               	movwf	?a_display+2
    84                           ;lesson5_TMR1.c: 40: b=(data/10);
    85  0784  300A               	movlw	10
    86  0785  00F1               	movwf	btemp+1
    87  0786  0824               	movf	?a_display+2,w
    88  0787  120A  118A  27CA   	fcall	lbdiv
    89  078A  00A3               	movwf	?a_display+1
    90                           ;lesson5_TMR1.c: 41: a=(data%10);
    91  078B  300A               	movlw	10
    92  078C  00F1               	movwf	btemp+1
    93  078D  0824               	movf	?a_display+2,w
    94  078E  120A  118A  27CA   	fcall	lbmod
    95  0791  0870               	movf	btemp,w
    96  0792  00A2               	movwf	?a_display
    97                           ;lesson5_TMR1.c: 43: PORTD=0x02;
    98  0793  3002               	movlw	2
    99  0794  0088               	movwf	8	;volatile
   100                           ;lesson5_TMR1.c: 44: PORTB=table[a];
   101  0795  3000               	movlw	_table shr (0+8)
   102  0796  008A               	movwf	10
   103  0797  0822               	movf	?a_display,w
   104  0798  2034               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   105  0799  0086               	movwf	6	;volatile
   106                           ;lesson5_TMR1.c: 45: Delay(2);
   107  079A  3002               	movlw	2
   108  079B  120A  118A  2773   	fcall	_Delay
   109                           ;lesson5_TMR1.c: 46: PORTD=0x01;
   110  079E  3001               	movlw	1
   111  079F  0088               	movwf	8	;volatile
   112                           ;lesson5_TMR1.c: 47: PORTB=table[b];
   113  07A0  3000               	movlw	_table shr (0+8)
   114  07A1  008A               	movwf	10
   115  07A2  0823               	movf	?a_display+1,w
   116  07A3  2034               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
   117  07A4  0086               	movwf	6	;volatile
   118                           ;lesson5_TMR1.c: 48: Delay(2);
   119  07A5  3002               	movlw	2
   120  07A6  120A  118A  2F73   	ljmp	_Delay
   121                           ;lesson5_TMR1.c: 30: void time1_init()
   122                           ;lesson5_TMR1.c: 31: {
   123  07A9                     _time1_init
   124                           ;lesson5_TMR1.c: 32: T1CON=0x08;
   125  07A9  3008               	movlw	8
   126  07AA  0183               	clrf	3	;select bank 0
   127  07AB  0090               	movwf	16	;volatile
   128                           ;lesson5_TMR1.c: 33: TMR1IE=1;
   129  07AC  1683               	bsf	3,5
   130  07AD  140C               	bsf	12,0
   131                           ;lesson5_TMR1.c: 34: TMR1IF=0;
   132  07AE  1283               	bcf	3,5
   133  07AF  100C               	bcf	12,0
   134                           ;lesson5_TMR1.c: 35: TMR1H=(65536-50000)/256;
   135  07B0  303C               	movlw	60
   136  07B1  008F               	movwf	15	;volatile
   137                           ;lesson5_TMR1.c: 36: TMR1L=(65536-50000)%256;
   138  07B2  30B0               	movlw	-80
   139  07B3  008E               	movwf	14	;volatile
   140                           ;lesson5_TMR1.c: 37: }
   141  07B4  0008               	return
   142                           ;lesson5_TMR1.c: 16: void initial()
   143                           ;lesson5_TMR1.c: 17: {
   144  07B5                     _initial
   145                           ;lesson5_TMR1.c: 18: TRISB=0x00;
   146  07B5  1683               	bsf	3,5
   147  07B6  1303               	bcf	3,6	;carry unused
   148  07B7  0186               	clrf	6	;volatile
   149                           ;lesson5_TMR1.c: 20: TRISD=0x00;
   150  07B8  0188               	clrf	8	;volatile
   151                           ;lesson5_TMR1.c: 23: PORTD=0x00;
   152  07B9  1283               	bcf	3,5
   153  07BA  0188               	clrf	8	;volatile
   154                           ;lesson5_TMR1.c: 24: INTCON=0xC0;
   155  07BB  30C0               	movlw	-64
   156  07BC  008B               	movwf	11	;volatile
   157                           ;lesson5_TMR1.c: 25: PIE1=0x00 ;
   158  07BD  1683               	bsf	3,5
   159  07BE  018C               	clrf	12	;volatile
   160                           ;lesson5_TMR1.c: 26: PIR1=0x00 ;
   161  07BF  1283               	bcf	3,5
   162  07C0  018C               	clrf	12	;volatile
   163                           ;lesson5_TMR1.c: 27: }
   164  07C1  0008               	return
   165                           ;lesson5_TMR1.c: 67: main()
   166                           ;lesson5_TMR1.c: 68: {
   167  07C2                     _main
   168                           ;lesson5_TMR1.c: 70: initial();
   169  07C2  27B5               	fcall	_initial
   170                           ;lesson5_TMR1.c: 71: time1_init();
   171  07C3  27A9               	fcall	_time1_init
   172                           ;lesson5_TMR1.c: 72: TMR1ON=1;
   173  07C4  1410               	bsf	16,0
   174  07C5                     l17
   175                           ;lesson5_TMR1.c: 73: while(1)
   176                           ;lesson5_TMR1.c: 74: {
   177  07C5  0821               	movf	_data1,w
   178  07C6  2782  120A  118A   	fcall	_display
   179                           ;lesson5_TMR1.c: 76: }
   180  07C9  2FC5               	goto	l17
   181                           
   182                           	psect	intcode
   183                           ;lesson5_TMR1.c: 51: void interrupt time1_ISR()
   184                           ;lesson5_TMR1.c: 52: {
   185  000B                     _time1_ISR
   186  000B                     int_func
   187                           ;lesson5_TMR1.c: 53: if(TMR1IF==1)
   188  000B  0183               	clrf	3	;select bank 0
   189  000C  1C0C               	btfss	12,0
   190  000D  281E               	goto	l11
   191                           ;lesson5_TMR1.c: 54: {
   192  000E  303C               	movlw	60
   193  000F  008F               	movwf	15	;volatile
   194                           ;lesson5_TMR1.c: 56: TMR1L=(65536-50000)%256;
   195  0010  30B0               	movlw	-80
   196  0011  008E               	movwf	14	;volatile
   197                           ;lesson5_TMR1.c: 57: TMR1IF=0 ;
   198  0012  100C               	bcf	12,0
   199                           ;lesson5_TMR1.c: 58: count++ ;
   200  0013  0AA0               	incf	_count
   201                           ;lesson5_TMR1.c: 59: if(count==5)
   202  0014  0820               	movf	_count,w
   203  0015  3A05               	xorlw	5
   204  0016  1D03               	btfss	3,2
   205  0017  281E               	goto	l11
   206                           ;lesson5_TMR1.c: 60: { count=0;
   207  0018  01A0               	clrf	_count
   208                           ;lesson5_TMR1.c: 61: data1++;
   209  0019  0AA1               	incf	_data1
   210                           ;lesson5_TMR1.c: 62: if(data1==60)
   211  001A  0821               	movf	_data1,w
   212  001B  3A3C               	xorlw	60
   213  001C  1903               	btfsc	3,2
   214                           ;lesson5_TMR1.c: 63: {data1=0;}
   215  001D  01A1               	clrf	_data1
   216                           ;lesson5_TMR1.c: 64: }
   217                           ;lesson5_TMR1.c: 65: }
   218                           ;lesson5_TMR1.c: 66: }
   219  001E                     l11
   220                           
   221                           	psect	intsave_0
   222  0075                     saved_w
   223  0075                     	ds	1
   224                           
   225                           	psect	intret
   226  001E  0828               	movf	saved_pclath,w
   227  001F  008A               	movwf	10
   228  0020                     int_restore
   229  0020  0827               	movf	saved_status,w
   230  0021  0083               	movwf	3
   231  0022  0EF5               	swapf	saved_w
   232  0023  0E75               	swapf	saved_w,w
   233  0024  0009               	retfie
   234                           
   235                           	psect	intentry
   236  0004                     int_entry
   237  0004  00F5               	movwf	saved_w
   238  0005  0803               	movf	3,w
   239  0006  0183               	clrf	3
   240  0007  00A7               	movwf	saved_status
   241  0008  080A               	movf	10,w
   242  0009  00A8               	movwf	saved_pclath
   243  000A  018A               	clrf	10
   244                           
   245                           	psect	intsave
   246  0027                     saved_status
   247  0027                     	ds	1
   248  0028                     saved_pclath
   249  0028                     	ds	1
   250                           
   251                           	psect	text6
   252  0000                     
   253  0000                     
   254  0000                     
   255  0000                     
   256  0000                     
   257  0000                     
   258  0000                     
   259  0000                     
   260  0000                     
   261  0000                     
   262  0000                     
   263  0000                     
   264  0000                     
   265  0000                     
   266  0000                     
   267  0000                     
   268  0000                     
   269  0000                     
   270  0000                     
   271  0000                     
   272  0000                     

⌨️ 快捷键说明

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