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

📄 i2c.lst

📁 上载的程序可以用于PIC单片机,也可以用于430单片机,本人原创,到至今还没有发现哪位网友想出这种办法,希望站长能多加分.
💻 LST
📖 第 1 页 / 共 5 页
字号:
   457  0078E0  0F80               	addlw	-128
   458  0078E2  0E01               	movlw	1
   459  0078E4  B4D8               	btfsc	status,2,c
   460  0078E6  5CF3               	subwf	prodl,w,c
   461  0078E8  E2F6               	bc	l44
   462                           ;I2C.c: 137: I2C_Set_sck_high();
   463  0078EA  DF37               	call	_I2C_Set_sck_high	;wreg free
   464                           ;I2C.c: 138: nValue <<= 1;
   465  0078EC  0100               	movlb	__Lparam shr (0+8)
   466  0078EE  90D8               	bcf	status,0,c
   467  0078F0  37FC               	rlcf	?_I2C_TxHToL^(__Lparam& (0+65280)),f,b
   468  0078F2  37FD               	rlcf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),f,b
   469                           ;I2C.c: 139: for(j = 30;j > 0;j--);
   470  0078F4  0E1E               	movlw	30
   471  0078F6  6EF3               	movwf	prodl,c
   472  0078F8  6AF4               	clrf	prodh,c
   473  0078FA                     l47:
   474  0078FA  06F3               	decf	prodl,f,c
   475  0078FC  A0D8               	btfss	status,0,c
   476  0078FE  06F4               	decf	prodh,f,c
   477  007900  50F4               	movf	prodh,w,c
   478  007902  0A80               	xorlw	128
   479  007904  0F80               	addlw	-128
   480  007906  0E01               	movlw	1
   481  007908  B4D8               	btfsc	status,2,c
   482  00790A  5CF3               	subwf	prodl,w,c
   483  00790C  E2F6               	bc	l47
   484                           ;I2C.c: 140: I2C_Set_sck_low();
   485  00790E  DF2D               	call	_I2C_Set_sck_low	;wreg free
   486  007910  4AF6               	infsnz	tblptrl,f,c
   487  007912  2AF7               	incf	tblptrh,f,c
   488  007914  50F7               	movf	tblptrh,w,c
   489  007916  0A80               	xorlw	128
   490  007918  0F80               	addlw	-128
   491  00791A  0E08               	movlw	8
   492  00791C  B4D8               	btfsc	status,2,c
   493  00791E  5CF6               	subwf	tblptrl,w,c
   494  007920  B0D8               	btfsc	status,0,c
   495  007922  0012               	return	
   496  007924  D7CF               	goto	l39
   497                           ;I2C.c: 141: }
   498                           ;I2C.c: 144: }
   499                           ;       param _nValue assigned to ?_I2C_TxLToH+0
   500  007926  00F2               	dw	?_I2C_TxLToH
   501  007928                     _I2C_TxLToH:
   502  000000                     
   503                           ;I2C.c: 145: void I2C_TxLToH(int nValue)
   504  007928  6AF6               	clrf	tblptrl,c
   505  00792A  6AF7               	clrf	tblptrh,c
   506  00792C                     l51:
   507                           ;I2C.c: 151: {
   508  00792C  0100               	movlb	__Lparam shr (0+8)
   509  00792E  A1F2               	btfss	?_I2C_TxLToH^(__Lparam& (0+65280)),0,b
   510  007930  D002               	goto	l54
   511                           ;I2C.c: 153: I2C_Set_sda_high();
   512  007932  DF03               	call	_I2C_Set_sda_high	;wreg free
   513  007934  D001               	goto	l55
   514  007936                     l54:
   515                           ;I2C.c: 154: else
   516  007936  DF09               	call	_I2C_Set_sda_low	;wreg free
   517  007938                     l55:
   518                           ;I2C.c: 156: for(j = 30;j > 0;j--);
   519  007938  0E1E               	movlw	30
   520  00793A  6EF3               	movwf	prodl,c
   521  00793C  6AF4               	clrf	prodh,c
   522  00793E                     l56:
   523  00793E  06F3               	decf	prodl,f,c
   524  007940  A0D8               	btfss	status,0,c
   525  007942  06F4               	decf	prodh,f,c
   526  007944  50F4               	movf	prodh,w,c
   527  007946  0A80               	xorlw	128
   528  007948  0F80               	addlw	-128
   529  00794A  0E01               	movlw	1
   530  00794C  B4D8               	btfsc	status,2,c
   531  00794E  5CF3               	subwf	prodl,w,c
   532  007950  E2F6               	bc	l56
   533                           ;I2C.c: 157: I2C_Set_sck_high();
   534  007952  DF03               	call	_I2C_Set_sck_high	;wreg free
   535                           ;I2C.c: 158: nValue >>= 1;
   536  007954  0100               	movlb	__Lparam shr (0+8)
   537  007956  35F3               	rlcf	(?_I2C_TxLToH+1)^(__Lparam& (0+65280)),w
   538  007958  33F3               	rrcf	(?_I2C_TxLToH+1)^(__Lparam& (0+65280)),f,b
   539  00795A  33F2               	rrcf	?_I2C_TxLToH^(__Lparam& (0+65280)),f,b
   540                           ;I2C.c: 159: for(j = 30;j > 0;j--);
   541  00795C  0E1E               	movlw	30
   542  00795E  6EF3               	movwf	prodl,c
   543  007960  6AF4               	clrf	prodh,c
   544  007962                     l59:
   545  007962  06F3               	decf	prodl,f,c
   546  007964  A0D8               	btfss	status,0,c
   547  007966  06F4               	decf	prodh,f,c
   548  007968  50F4               	movf	prodh,w,c
   549  00796A  0A80               	xorlw	128
   550  00796C  0F80               	addlw	-128
   551  00796E  0E01               	movlw	1
   552  007970  B4D8               	btfsc	status,2,c
   553  007972  5CF3               	subwf	prodl,w,c
   554  007974  E2F6               	bc	l59
   555                           ;I2C.c: 160: I2C_Set_sck_low();
   556  007976  DEF9               	call	_I2C_Set_sck_low	;wreg free
   557  007978  4AF6               	infsnz	tblptrl,f,c
   558  00797A  2AF7               	incf	tblptrh,f,c
   559  00797C  50F7               	movf	tblptrh,w,c
   560  00797E  0A80               	xorlw	128
   561  007980  0F80               	addlw	-128
   562  007982  0E08               	movlw	8
   563  007984  B4D8               	btfsc	status,2,c
   564  007986  5CF6               	subwf	tblptrl,w,c
   565  007988  B0D8               	btfsc	status,0,c
   566  00798A  0012               	return	
   567  00798C  D7CF               	goto	l51
   568                           ;I2C.c: 161: }
   569                           ;I2C.c: 164: }
   570  00798E                     _I2C_RxByte:
   571  000000                     
   572                           ;I2C.c: 167: int I2C_RxByte(void)
   573  00798E  6AF6               	clrf	tblptrl,c
   574  007990  6AF7               	clrf	tblptrh,c
   575                           ;I2C.c: 170: int i;
   576  007992  DED3               	call	_I2C_Set_sda_high	;wreg free
   577                           ;I2C.c: 175: TRISC |= 0B00010000;
   578  007994  8894               	bsf	3988,4,c	;volatile
   579                           ;I2C.c: 176: asm(" nop");
   580  007996  F000               	nop		;#
   581                           ;I2C.c: 177: asm(" nop");
   582  007998  F000               	nop		;#
   583                           ;I2C.c: 178: asm(" nop");
   584  00799A  F000               	nop		;#
   585                           ;I2C.c: 179: asm(" nop");
   586  00799C  F000               	nop		;#
   587                           ;I2C.c: 180: for(i = 0;i < 8;i++)
   588  00799E  6AF3               	clrf	prodl,c
   589  0079A0  6AF4               	clrf	prodh,c
   590  0079A2                     l63:
   591                           ;I2C.c: 181: {
   592  0079A2  DEDB               	call	_I2C_Set_sck_high	;wreg free
   593                           ;I2C.c: 184: if(PORTC&0B00010000)
   594  0079A4  A882               	btfss	3970,4,c	;volatile
   595  0079A6  D010               	goto	l66
   596                           ;I2C.c: 185: {
   597  0079A8  CFF3 F002          	movff	prodl,btemp+2
   598  0079AC  0E01               	movlw	1
   599  0079AE  6E00               	movwf	btemp,c
   600  0079B0  6A01               	clrf	btemp+1,c
   601  0079B2  2A02               	incf	btemp+2,f,c
   602  0079B4  D003               	goto	u194
   603  0079B6                     u195:
   604  0079B6  90D8               	bcf	status,0,c
   605  0079B8  3600               	rlcf	btemp,f,c
   606  0079BA  3601               	rlcf	btemp+1,f,c
   607  0079BC                     u194:
   608  0079BC  2E02               	decfsz	btemp+2,f,c
   609  0079BE  D7FB               	goto	u195
   610  0079C0  5000               	movf	btemp,w,c
   611  0079C2  12F6               	iorwf	tblptrl,f,c
   612  0079C4  5001               	movf	btemp+1,w,c
   613  0079C6  12F7               	iorwf	tblptrh,f,c
   614  0079C8                     l66:
   615                           ;I2C.c: 187: }
   616  0079C8  0E1E               	movlw	30
   617  0079CA  6E00               	movwf	btemp,c
   618  0079CC  6A01               	clrf	btemp+1,c
   619  0079CE                     l67:
   620  0079CE  0600               	decf	btemp,f,c
   621  0079D0  A0D8               	btfss	status,0,c
   622  0079D2  0601               	decf	btemp+1,f,c
   623  0079D4  5001               	movf	btemp+1,w,c
   624  0079D6  0A80               	xorlw	128
   625  0079D8  0F80               	addlw	-128
   626  0079DA  0E01               	movlw	1
   627  0079DC  B4D8               	btfsc	status,2,c
   628  0079DE  5C00               	subwf	btemp,w,c
   629  0079E0  E2F6               	bc	l67
   630                           ;I2C.c: 189: I2C_Set_sck_low();
   631  0079E2  DEC3               	call	_I2C_Set_sck_low	;wreg free
   632  0079E4  4AF3               	infsnz	prodl,f,c
   633  0079E6  2AF4               	incf	prodh,f,c
   634  0079E8  50F4               	movf	prodh,w,c
   635  0079EA  0A80               	xorlw	128
   636  0079EC  0F80               	addlw	-128
   637  0079EE  0E08               	movlw	8
   638  0079F0  B4D8               	btfsc	status,2,c
   639  0079F2  5CF3               	subwf	prodl,w,c
   640  0079F4  E3D6               	bnc	l63
   641                           ;I2C.c: 190: }
   642  0079F6  CFF6 F000          	movff	tblptrl,btemp
   643  0079FA  CFF7 F001          	movff	tblptrh,btemp+1
   644  0079FE  0012               	return	
   645                           ;I2C.c: 193: }
   646  007A00                     _I2C_RxHToL:
   647  000000                     
   648                           ;I2C.c: 196: int I2C_RxHToL(void)
   649  007A00  6AF6               	clrf	tblptrl,c
   650  007A02  6AF7               	clrf	tblptrh,c
   651                           ;I2C.c: 199: int i;
   652  007A04  DE9A               	call	_I2C_Set_sda_high	;wreg free
   653                           ;I2C.c: 204: TRISC |= 0B00010000;
   654  007A06  8894               	bsf	3988,4,c	;volatile
   655                           ;I2C.c: 205: asm(" nop");
   656  007A08  F000               	nop		;#
   657                           ;I2C.c: 206: asm(" nop");
   658  007A0A  F000               	nop		;#
   659                           ;I2C.c: 207: asm(" nop");
   660  007A0C  F000               	nop		;#
   661                           ;I2C.c: 208: asm(" nop");
   662  007A0E  F000               	nop		;#
   663                           ;I2C.c: 209: for(i = 0;i < 8;i++)
   664  007A10  6AF3               	clrf	prodl,c
   665  007A12  6AF4               	clrf	prodh,c
   666  007A14                     l71:
   667                           ;I2C.c: 210: {
   668  007A14  DEA2               	call	_I2C_Set_sck_high	;wreg free
   669                           ;I2C.c: 213: if(PORTC&0B00010000)
   670  007A16  A882               	btfss	3970,4,c	;volatile
   671  007A18  D011               	goto	l74
   672                           ;I2C.c: 214: {
   673  007A1A  50F3               	movf	prodl,w,c
   674  007A1C  0807               	sublw	7
   675  007A1E  6E02               	movwf	btemp+2,c
   676  007A20  0E01               	movlw	1
   677  007A22  6E00               	movwf	btemp,c
   678  007A24  6A01               	clrf	btemp+1,c
   679  007A26  2A02               	incf	btemp+2,f,c
   680  007A28  D003               	goto	u234
   681  007A2A                     u235:
   682  007A2A  90D8               	bcf	status,0,c
   683  007A2C  3600               	rlcf	btemp,f,c
   684  007A2E  3601               	rlcf	btemp+1,f,c
   685  007A30                     u234:
   686  007A30  2E02               	decfsz	btemp+2,f,c
   687  007A32  D7FB               	goto	u235
   688  007A34  5000               	movf	btemp,w,c
   689  007A36  12F6               	iorwf	tblptrl,f,c
   690  007A38  5001               	movf	btemp+1,w,c
   691  007A3A  12F7               	iorwf	tblptrh,f,c
   692  007A3C                     l74:
   693                           ;I2C.c: 216: }
   694  007A3C  0E1E               	movlw	30

⌨️ 快捷键说明

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