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

📄 main2.lst

📁 pic16f886读取LM75A温度芯片的程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   726  0508  244C               	fcall	_I2C_GetAck
   727  0509  3800               	iorlw	0
   728  050A  1903               	btfsc	3,2
   729  050B  2D0E               	goto	l52
   730                           ;main2.c: 347: {
   731  050C  2433               	fcall	_I2C_Stop
   732                           ;main2.c: 349: return 0;
   733  050D  3400               	retlw	0
   734  050E                     l52
   735  050E  03A9               	decf	?_I2C_Puts+4
   736  050F  0F29               	incfsz	?_I2C_Puts+4,w
   737  0510  2D02               	goto	l53
   738                           ;main2.c: 350: }
   739  0511  2433               	fcall	_I2C_Stop
   740                           ;main2.c: 354: return 1;
   741  0512  3401               	retlw	1
   742  0513                     _I2C_Gets
   743                           ;	_SlaveAddr assigned to ?a_I2C_Gets+0
   744  0000                     _I2C_Gets$SlaveAddr	set	?a_I2C_Gets
   745                           ;	_i assigned to ?a_I2C_Gets+1
   746  0000                     _I2C_Gets$i	set	?a_I2C_Gets+1
   747                           ;	_a assigned to ?a_I2C_Gets+2
   748  0000                     _I2C_Gets$a	set	?a_I2C_Gets+2
   749                           ;_SlaveAddr stored from w
   750  0513  0183               	clrf	3	;select bank 0
   751  0514  00AA               	movwf	?a_I2C_Gets
   752                           ;main2.c: 374: unsigned char I2C_Gets ( unsigne
      +                          d char SlaveAddr, unsigned int SubAddr,
   753  0515  08A9               	movf	?_I2C_Gets+4
   754  0516  1903               	btfsc	3,2
   755                           ;main2.c: 383: return 0;
   756  0517  3400               	retlw	0
   757                           ;main2.c: 385: a[0] = SlaveAddr;
   758  0518  082A               	movf	?a_I2C_Gets,w
   759  0519  00AC               	movwf	?a_I2C_Gets+2
   760                           ;main2.c: 387: if ( SubMod > 2 )
   761  051A  3003               	movlw	3
   762  051B  0227               	subwf	?_I2C_Gets+2,w
   763  051C  1C03               	btfss	3,0
   764  051D  2D29               	goto	l60
   765                           ;main2.c: 388: SubMod = 2;
   766  051E  3002               	movlw	2
   767  051F  00A7               	movwf	?_I2C_Gets+2
   768                           ;main2.c: 390: switch ( SubMod )
   769  0520  2D29               	goto	l60
   770  0521                     l61
   771                           ;main2.c: 391: {
   772                           ;main2.c: 393: a[1] = (char)(SubAddr);
   773  0521  0825               	movf	?_I2C_Gets,w
   774  0522  00AD               	movwf	?a_I2C_Gets+3
   775                           ;main2.c: 394: break;
   776  0523  2D30               	goto	l59
   777  0524                     l62
   778                           ;main2.c: 395: case 2:
   779                           ;main2.c: 396: a[1] = (char)(SubAddr >> 8);
   780  0524  0826               	movf	?_I2C_Gets+1,w
   781  0525  00AD               	movwf	?a_I2C_Gets+3
   782                           ;main2.c: 397: a[2] = (char)(SubAddr);
   783  0526  0825               	movf	?_I2C_Gets,w
   784  0527  00AE               	movwf	?a_I2C_Gets+4
   785                           ;main2.c: 398: break;
   786  0528  2D30               	goto	l59
   787  0529                     l60
   788  0529  0827               	movf	?_I2C_Gets+2,w
   789  052A  3A01               	xorlw	1
   790  052B  1903               	btfsc	3,2
   791  052C  2D21               	goto	l61
   792  052D  3A03               	xorlw	3
   793  052E  1903               	btfsc	3,2
   794  052F  2D24               	goto	l62
   795  0530                     l59
   796                           ;main2.c: 401: SubMod++;
   797  0530  0AA7               	incf	?_I2C_Gets+2
   798                           ;main2.c: 402: I2C_Start();
   799  0531  24B5               	fcall	_I2C_Start
   800                           ;main2.c: 403: I2C_Delay();
   801  0532  2495               	fcall	_I2C_Delay
   802                           ;main2.c: 404: for ( i=0; i<SubMod; i++ )
   803  0533  01AB               	clrf	?a_I2C_Gets+1
   804  0534                     l66
   805  0534  0827               	movf	?_I2C_Gets+2,w
   806  0535  022B               	subwf	?a_I2C_Gets+1,w
   807  0536  1803               	btfsc	3,0
   808  0537  2D46               	goto	l64
   809                           ;main2.c: 405: {
   810  0538  082B               	movf	?a_I2C_Gets+1,w
   811  0539  3E2C               	addlw	?a_I2C_Gets+2
   812  053A  0084               	movwf	4
   813  053B  1383               	bcf	3,7
   814  053C  0800               	movf	0,w
   815  053D  2469               	fcall	_I2C_Write
   816                           ;main2.c: 407: if ( I2C_GetAck() )
   817  053E  244C               	fcall	_I2C_GetAck
   818  053F  3800               	iorlw	0
   819  0540  1903               	btfsc	3,2
   820  0541  2D44               	goto	l67
   821                           ;main2.c: 408: {
   822  0542  2433               	fcall	_I2C_Stop
   823                           ;main2.c: 410: return 0;
   824  0543  3400               	retlw	0
   825  0544                     l67
   826  0544  0AAB               	incf	?a_I2C_Gets+1
   827  0545  2D34               	goto	l66
   828  0546                     l64
   829                           ;main2.c: 411: }
   830  0546  2495               	fcall	_I2C_Delay
   831                           ;main2.c: 416: I2C_Start();
   832  0547  24B5               	fcall	_I2C_Start
   833                           ;main2.c: 418: I2C_Write(a[0]+1);
   834  0548  0A2C               	incf	?a_I2C_Gets+2,w
   835  0549  2469               	fcall	_I2C_Write
   836                           ;main2.c: 419: if ( I2C_GetAck() )
   837  054A  244C               	fcall	_I2C_GetAck
   838  054B  3800               	iorlw	0
   839  054C  1903               	btfsc	3,2
   840  054D  2D52               	goto	l70
   841                           ;main2.c: 420: {
   842  054E  2433               	fcall	_I2C_Stop
   843                           ;main2.c: 422: return 0;
   844  054F  3400               	retlw	0
   845                           ;main2.c: 432: break;
   846  0550                     l72
   847                           ;main2.c: 433: }
   848  0550  3000               	movlw	0
   849  0551  2416               	fcall	_I2C_PutAck
   850  0552                     l70
   851                           ;main2.c: 423: }
   852                           ;main2.c: 426: {
   853  0552  0828               	movf	?_I2C_Gets+3,w
   854  0553  0084               	movwf	4
   855  0554  1383               	bcf	3,7
   856  0555  23EF               	fcall	_I2C_Read
   857  0556  1383               	bcf	3,7
   858  0557  0080               	movwf	0
   859                           ;main2.c: 428: dat++;
   860  0558  0AA8               	incf	?_I2C_Gets+3
   861                           ;main2.c: 429: if ( --Size == 0 )
   862  0559  0BA9               	decfsz	?_I2C_Gets+4
   863  055A  2D50               	goto	l72
   864                           ;main2.c: 430: {
   865  055B  3001               	movlw	1
   866  055C  2416               	fcall	_I2C_PutAck
   867                           ;main2.c: 435: }
   868  055D  2433               	fcall	_I2C_Stop
   869                           ;main2.c: 438: return 1;
   870  055E  3401               	retlw	1
   871  055F                     _num_change
   872                           ;	_tep assigned to ?a_num_change+0
   873  0000                     _num_change$tep	set	?a_num_change
   874                           ;	_tt assigned to ?a_num_change+1
   875  0000                     _num_change$tt	set	?a_num_change+1
   876                           ;	_yy assigned to ?a_num_change+2
   877  0000                     _num_change$yy	set	?a_num_change+2
   878                           ;	_y assigned to ?a_num_change+5
   879  0000                     _num_change$y	set	?a_num_change+5
   880                           ;_tep stored from w
   881  055F  0183               	clrf	3	;select bank 0
   882  0560  00A5               	movwf	?a_num_change
   883                           ;main2.c: 46: unsigned char num_change(unsigned
      +                           char tep)
   884  0561  00F0               	movwf	btemp
   885  0562  120A  118A  2679   	fcall	lbtoft
   886  0565  01F3               	clrf	btemp+3
   887  0566  304C               	movlw	76
   888  0567  00F4               	movwf	btemp+4
   889  0568  3042               	movlw	66
   890  0569  00F5               	movwf	btemp+5
   891  056A  120A  118A  2714   	fcall	ftdiv
   892  056D  0870               	movf	btemp,w
   893  056E  00AA               	movwf	?a_num_change+5
   894  056F  0871               	movf	btemp+1,w
   895  0570  00AB               	movwf	?a_num_change+6
   896  0571  0872               	movf	btemp+2,w
   897  0572  00AC               	movwf	?a_num_change+7
   898                           ;main2.c: 51: yy=y;
   899  0573  082A               	movf	?a_num_change+5,w
   900  0574  00A7               	movwf	?a_num_change+2
   901  0575  082B               	movf	?a_num_change+6,w
   902  0576  00A8               	movwf	?a_num_change+3
   903  0577  082C               	movf	?a_num_change+7,w
   904  0578  00A9               	movwf	?a_num_change+4
   905                           ;main2.c: 53: tt=(unsigned char)((y-0.8)/0.031)
      +                          ;
   906  0579  30CD               	movlw	205
   907  057A  00F3               	movwf	btemp+3
   908  057B  304C               	movlw	76
   909  057C  00F4               	movwf	btemp+4
   910  057D  303F               	movlw	63
   911  057E  00F5               	movwf	btemp+5
   912  057F  082A               	movf	?a_num_change+5,w
   913  0580  00F0               	movwf	btemp
   914  0581  082B               	movf	?a_num_change+6,w
   915  0582  00F1               	movwf	btemp+1
   916  0583  082C               	movf	?a_num_change+7,w
   917  0584  00F2               	movwf	btemp+2
   918  0585  120A  118A  26E3   	fcall	ftsub
   919  0588  30F4               	movlw	244
   920  0589  00F3               	movwf	btemp+3
   921  058A  30FD               	movlw	253
   922  058B  00F4               	movwf	btemp+4
   923  058C  303C               	movlw	60
   924  058D  00F5               	movwf	btemp+5
   925  058E  120A  118A  2714   	fcall	ftdiv
   926  0591  120A  118A  274C   	fcall	fttol
      +       120A  118A         
   927  0596  0870               	movf	btemp,w
   928  0597  00A6               	movwf	?a_num_change+1
   929                           ;main2.c: 55: }
   930  0598  0008               	return	;uses W
   931  0599                     _delay
   932                           ;	_i assigned to ?a_delay+0
   933  0000                     _delay$i	set	?a_delay
   934                           ;	_j assigned to ?a_delay+1
   935  0000                     _delay$j	set	?a_delay+1
   936                           ;_i stored from w
   937  0599  0183               	clrf	3	;select bank 0
   938  059A  00B2               	movwf	?a_delay
   939                           ;main2.c: 25: void delay(unsigned char i)
   940  059B  08B2               	movf	?a_delay
   941  059C  1903               	btfsc	3,2
   942  059D  0008               	return
   943  059E                     l2
   944                           ;main2.c: 29: for(j=10;j>0;j++);
   945  059E  300A               	movlw	10
   946  059F  00B3               	movwf	?a_delay+1
   947  05A0                     l5
   948  05A0  0FB3               	incfsz	?a_delay+1
   949  05A1  2DA0               	goto	l5
   950  05A2  0BB2               	decfsz	?a_delay
   951  05A3  2D9E               	goto	l2
   952  05A4  0008               	return
   953  05A5                     _ad_init
   954                           ;main2.c: 32: void ad_init()
   955  05A5  1683               	bsf	3,5
   956  05A6  1303               	bcf	3,6	;carry unused
   957  05A7  1405               	bsf	5,0	;volatile
   958                           ;main2.c: 35: ANSEL|=0x01;
   959  05A8  1703               	bsf	3,6
   960  05A9  1408               	bsf	8,0
   961                           ;main2.c: 36: ADCON0=0x41;
   962  05AA  3041               	movlw	65
   963  05AB  1283               	bcf	3,5
   964  05AC  1303               	bcf	3,6	;carry unused
   965  05AD  009F               	movwf	31	;volatile
   966                           ;main2.c: 37: ADCON1=0x00;
   967  05AE  1683               	bsf	3,5
   968  05AF  019F               	clrf	31
   969                           ;main2.c: 38: GIE=1;
   970  05B0  178B               	bsf	11,7
   971                           ;main2.c: 39: PEIE=1;
   972  05B1  170B               	bsf	11,6
   973                           ;main2.c: 40: ADIE=1;
   974  05B2  170C               	bsf	12,6
   975                           ;main2.c: 41: ADIF=0;

⌨️ 快捷键说明

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