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

📄 main.lst

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


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234                            Fri Apr 17 15:57:13 2009

Licensed to: SHAN
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z01234RS_,global,delta=1
     4                           	psect	strings,global,class=STRING,delta=2
     5                           	psect	const1,local,class=CONST,delta=2
     6                           	psect	const2,local,class=CONST,delta=2
     7                           	psect	text0,local,class=CODE,delta=2
     8                           	psect	config,global,class=CONFIG,delta=2
     9                           	psect	text4,local,class=CODE,delta=2
    10                           	psect	intcode,global,class=CODE,delta=2
    11                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
    12                           	psect	intret,global,class=CODE,delta=2
    13                           	psect	intentry,global,class=CODE,delta=2
    14                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    15                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    16                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     
    27                           
    28                           	psect	__Z01234RS_
    29  0190                     
    30  0190                     
    31                           
    32                           	psect	const1
    33  0066  0782               	addwf	2
    34  0067                     _table
    35  0067  343F               	retlw	63
    36  0068  3406               	retlw	6
    37  0069  345B               	retlw	91
    38  006A  344F               	retlw	79
    39  006B  3466               	retlw	102
    40  006C  346D               	retlw	109
    41  006D  347D               	retlw	125
    42  006E  3407               	retlw	7
    43  006F  347F               	retlw	127
    44  0070  346F               	retlw	111
    45  0071  3400               	retlw	0
    46  0072  3440               	retlw	64
    47  0073  3439               	retlw	57
    48                           
    49                           	psect	const2
    50  0074  0782               	addwf	2
    51  0075                     _table1
    52  0075  34BF               	retlw	-65
    53  0076  3486               	retlw	-122
    54  0077  34DB               	retlw	-37
    55  0078  34CF               	retlw	-49
    56  0079  34E6               	retlw	-26
    57  007A  34ED               	retlw	-19
    58  007B  34FD               	retlw	-3
    59  007C  3487               	retlw	-121
    60  007D  34FF               	retlw	-1
    61  007E  34EF               	retlw	-17	;#
    62                           
    63                           	psect	text0
    64  0721                     _show
    65                           ;	_j assigned to ?a_show+0
    66  0000                     _show$j	set	?a_show
    67                           ;_j stored from w
    68  0721  0183               	clrf	3	;select bank 0
    69  0722  00AD               	movwf	?a_show
    70                           ;main.c: 20: PORTD=table[j];
    71  0723  3000               	movlw	_table shr (0+8)
    72  0724  008A               	movwf	10
    73  0725  082D               	movf	?a_show,w
    74  0726  2066               	call	((_table+-1)& (0+2047))| (($)& (0+-2048))
    75  0727  120A  118A         	pagesel	$
    76  0729  0088               	movwf	8	;volatile
    77                           ;main.c: 21: PORTA=~(1<<(k));
    78  072A  3001               	movlw	1
    79  072B  00F0               	movwf	btemp
    80  072C  082C               	movf	?_show,w
    81  072D  00F1               	movwf	btemp+1
    82  072E  0AF1               	incf	btemp+1
    83  072F  2F32               	goto	u14
    84  0730                     u15
    85  0730  1003               	bcf	3,0
    86  0731  0DF0               	rlf	btemp
    87  0732                     u14
    88  0732  0BF1               	decfsz	btemp+1
    89  0733  2F30               	goto	u15
    90  0734  0970               	comf	btemp,w
    91  0735  0085               	movwf	5	;volatile
    92                           ;main.c: 22: DelayMs(1);
    93  0736  3001               	movlw	1
    94  0737  120A  118A  260D   	fcall	_DelayMs
      +       120A  118A         
    95                           ;main.c: 23: PORTA=0XFF;
    96  073C  30FF               	movlw	-1
    97  073D  0085               	movwf	5	;volatile
    98                           ;main.c: 24: }
    99  073E  0008               	return
   100  073F                     _dig_tube
   101                           ;	_num0 assigned to ?a_dig_tube+0
   102  0000                     _dig_tube$num0	set	?a_dig_tube
   103                           ;_num0 stored from w
   104  073F  0183               	clrf	3	;select bank 0
   105  0740  00AB               	movwf	?a_dig_tube
   106                           ;main.c: 38: show(num0,0);
   107  0741  01AC               	clrf	?_show
   108  0742  2721  120A  118A   	fcall	_show
   109                           ;main.c: 39: show(num1,1);
   110  0745  01AC               	clrf	?_show
   111  0746  0AAC               	incf	?_show
   112  0747  0826               	movf	?_dig_tube,w
   113  0748  2721  120A  118A   	fcall	_show
   114                           ;main.c: 40: show(num2,2);
   115  074B  3002               	movlw	2
   116  074C  00AC               	movwf	?_show
   117  074D  0827               	movf	?_dig_tube+1,w
   118  074E  2721  120A  118A   	fcall	_show
   119                           ;main.c: 41: show(num3,3);
   120  0751  3003               	movlw	3
   121  0752  00AC               	movwf	?_show
   122  0753  0828               	movf	?_dig_tube+2,w
   123  0754  2721  120A  118A   	fcall	_show
   124                           ;main.c: 42: show(num4,4);
   125  0757  3004               	movlw	4
   126  0758  00AC               	movwf	?_show
   127  0759  0829               	movf	?_dig_tube+3,w
   128  075A  2721  120A  118A   	fcall	_show
   129                           ;main.c: 43: show(num5,5);
   130  075D  3005               	movlw	5
   131  075E  00AC               	movwf	?_show
   132  075F  082A               	movf	?_dig_tube+4,w
   133  0760  2F21               	ljmp	_show
   134  0761                     _init
   135                           ;main.c: 28: TRISA=0;
   136  0761  1683               	bsf	3,5
   137  0762  1303               	bcf	3,6	;carry unused
   138  0763  0185               	clrf	5	;volatile
   139                           ;main.c: 29: PORTA=0XFF;
   140  0764  30FF               	movlw	-1
   141  0765  1283               	bcf	3,5
   142  0766  0085               	movwf	5	;volatile
   143                           ;main.c: 30: TRISD=0;
   144  0767  1683               	bsf	3,5
   145  0768  0188               	clrf	8	;volatile
   146                           ;main.c: 31: PORTD=0;
   147  0769  1283               	bcf	3,5
   148  076A  0188               	clrf	8	;volatile
   149                           ;main.c: 32: OPTION=0x04;
   150  076B  3004               	movlw	4
   151  076C  1683               	bsf	3,5
   152  076D  0081               	movwf	1
   153                           ;main.c: 33: INTCON=0xa0;
   154  076E  30A0               	movlw	-96
   155  076F  008B               	movwf	11	;volatile
   156                           ;main.c: 34: }
   157  0770  1283               	bcf	3,5
   158  0771  0008               	return
   159  0772                     _main
   160                           ;	_h assigned to ?a_main+0
   161  0000                     _main$h	set	?a_main
   162                           ;main.c: 48: unsigned int h;
   163  0772  2761               	fcall	_init
   164                           ;main.c: 50: for(h=0;h<100;h++)
   165  0773  01A4               	clrf	?a_main
   166  0774  01A5               	clrf	?a_main+1
   167  0775                     l5
   168                           ;main.c: 51: {
   169                           ;main.c: 52: dig_tube(8,8,8,8,8,8);
   170  0775  3008               	movlw	8
   171  0776  00A6               	movwf	?_dig_tube
   172  0777  00A7               	movwf	?_dig_tube+1
   173  0778  00A8               	movwf	?_dig_tube+2
   174  0779  00A9               	movwf	?_dig_tube+3
   175  077A  00AA               	movwf	?_dig_tube+4
   176  077B  273F  120A  118A   	fcall	_dig_tube
   177                           ;main.c: 53: asm("nop");
   178  077E  0000               	nop	;#
   179                           ;main.c: 54: }
   180  077F  0AA4               	incf	?a_main
   181  0780  1903               	btfsc	3,2
   182  0781  0AA5               	incf	?a_main+1
   183  0782  3000               	movlw	0
   184  0783  0225               	subwf	?a_main+1,w
   185  0784  3064               	movlw	100
   186  0785  1903               	btfsc	3,2
   187  0786  0224               	subwf	?a_main,w
   188  0787  1C03               	btfss	3,0
   189  0788  2F75               	goto	l5
   190                           ;main.c: 55: DS18B20_RESET();
   191  0789  120A  118A  26E5   	fcall	_DS18B20_RESET
   192                           ;main.c: 56: DS18B20_WRITE_BYTE(0xCC);
   193  078C  30CC               	movlw	-52
   194  078D  120A  118A  26BC   	fcall	_DS18B20_WRITE_BYTE
   195                           ;main.c: 57: DS18B20_WRITE_BYTE(0x44);
   196  0790  3044               	movlw	68
   197  0791  120A  118A  26BC   	fcall	_DS18B20_WRITE_BYTE
      +       120A  118A         
   198                           ;main.c: 58: for(h=0;h<500;h++)
   199  0796  01A4               	clrf	?a_main
   200  0797  01A5               	clrf	?a_main+1
   201  0798                     l8
   202                           ;main.c: 59: {
   203                           ;main.c: 60: dig_tube(8,8,8,8,8,8);
   204  0798  3008               	movlw	8
   205  0799  00A6               	movwf	?_dig_tube
   206  079A  00A7               	movwf	?_dig_tube+1
   207  079B  00A8               	movwf	?_dig_tube+2
   208  079C  00A9               	movwf	?_dig_tube+3
   209  079D  00AA               	movwf	?_dig_tube+4
   210  079E  273F  120A  118A   	fcall	_dig_tube
   211                           ;main.c: 61: asm("nop");
   212  07A1  0000               	nop	;#
   213                           ;main.c: 62: }
   214  07A2  0AA4               	incf	?a_main
   215  07A3  1903               	btfsc	3,2
   216  07A4  0AA5               	incf	?a_main+1
   217  07A5  3001               	movlw	1
   218  07A6  0225               	subwf	?a_main+1,w
   219  07A7  30F4               	movlw	244
   220  07A8  1903               	btfsc	3,2
   221  07A9  0224               	subwf	?a_main,w
   222  07AA  1C03               	btfss	3,0
   223  07AB  2F98               	goto	l8
   224  07AC                     l12
   225                           ;main.c: 63: while(1)
   226                           ;main.c: 64: {
   227  07AC  120A  118A  2713   	fcall	_DS18B20_READ_TEMP
   228                           ;main.c: 67: work_temp();
   229  07AF  120A  118A  261A   	fcall	_work_temp
      +       120A  118A         
   230                           ;main.c: 68: dig_tube(display[3],display[2],dis
      +                          play[1],doth,dotl,12);
   231  07B4  0835               	movf	_display+2,w
   232  07B5  00A6               	movwf	?_dig_tube
   233  07B6  0834               	movf	_display+1,w
   234  07B7  00A7               	movwf	?_dig_tube+1
   235  07B8  0821               	movf	_doth,w
   236  07B9  00A8               	movwf	?_dig_tube+2
   237  07BA  0822               	movf	_dotl,w
   238  07BB  00A9               	movwf	?_dig_tube+3
   239  07BC  300C               	movlw	12
   240  07BD  00AA               	movwf	?_dig_tube+4
   241  07BE  0836               	movf	_display+3,w
   242  07BF  273F  120A  118A   	fcall	_dig_tube
   243                           ;main.c: 71: }
   244  07C2  2FAC               	goto	l12
   245                           
   246                           	psect	config
   247  2007  3B31               	dw	15153	;#
   248  0000                     _show$k	set	?_show
   249                           
   250                           	psect	intcode
   251                           ;main.c: 74: void interrupt time0()
   252                           ;main.c: 75: {
   253  000B                     _time0
   254  000B                     int_func
   255                           ;main.c: 76: T0IF=0;
   256  000B  110B               	bcf	11,2
   257                           ;main.c: 77: intnum++;
   258  000C  1283               	bcf	3,5
   259  000D  1303               	bcf	3,6	;carry unused
   260  000E  0AA0               	incf	_intnum
   261                           ;main.c: 78: if(intnum==5)
   262  000F  0820               	movf	_intnum,w
   263  0010  3A05               	xorlw	5
   264  0011  1903               	btfsc	3,2
   265                           ;main.c: 79: {
   266  0012  01A0               	clrf	_intnum
   267                           
   268                           	psect	intsave_0
   269  0075                     saved_w
   270  0075                     	ds	1
   271                           
   272                           	psect	intret
   273  0013  083B               	movf	saved_pclath,w
   274  0014  008A               	movwf	10
   275  0015                     int_restore
   276  0015  083A               	movf	saved_status,w
   277  0016  0083               	movwf	3
   278  0017  0EF5               	swapf	saved_w
   279  0018  0E75               	swapf	saved_w,w
   280  0019  0009               	retfie
   281                           
   282                           	psect	intentry
   283  0004                     int_entry
   284  0004  00F5               	movwf	saved_w
   285  0005  0803               	movf	3,w
   286  0006  0183               	clrf	3
   287  0007  00BA               	movwf	saved_status
   288  0008  080A               	movf	10,w
   289  0009  00BB               	movwf	saved_pclath
   290  000A  018A               	clrf	10
   291  0000                     
   292  0000                     
   293  0000                     

⌨️ 快捷键说明

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