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

📄 i2c.lst

📁 上载的程序可以用于PIC单片机,也可以用于430单片机,本人原创,到至今还没有发现哪位网友想出这种办法,希望站长能多加分.
💻 LST
📖 第 1 页 / 共 5 页
字号:
      +                          d char *repa_p,int len)
   929  007BB2  0100               	movlb	__Lparam shr (0+8)
   930  007BB4  51F5               	movf	(?_readPage24AA64+1)^(__Lparam& (0+65280))
      +                          ,w
   931  007BB6  6EE1               	movwf	fsr1l,c
   932                           ;I2C.c: 335: hi &= 0x1F;
   933  007BB8  0E1F               	movlw	31
   934  007BBA  16E1               	andwf	fsr1l,f,c
   935                           ;I2C.c: 337: low = (char)(addr & 0xff);
   936  007BBC  51F4               	movf	?_readPage24AA64^(__Lparam& (0+65280)),w
   937  007BBE  6ED9               	movwf	fsr2l,c
   938                           ;I2C.c: 340: hi = (char)((addr >> 8) & 0xff);
   939  007BC0  51F5               	movf	(?_readPage24AA64+1)^(__Lparam& (0+65280))
      +                          ,w
   940  007BC2  6EE1               	movwf	fsr1l,c
   941                           ;I2C.c: 341: hi &= 0x1F;
   942  007BC4  0E1F               	movlw	31
   943  007BC6  16E1               	andwf	fsr1l,f,c
   944                           ;I2C.c: 343: low = (char)(addr & 0xff);
   945  007BC8  51F4               	movf	?_readPage24AA64^(__Lparam& (0+65280)),w
   946  007BCA  6ED9               	movwf	fsr2l,c
   947                           ;I2C.c: 346: I2C_START();
   948  007BCC  DE0D               	call	_I2C_START	;wreg free
   949                           ;I2C.c: 348: I2C_TxHToL(0xA0);
   950  007BCE  0EA0               	movlw	160
   951  007BD0  0100               	movlb	__Lparam shr (0+8)
   952  007BD2  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
   953  007BD4  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
   954  007BD6  DE74               	call	_I2C_TxHToL	;wreg free
   955                           ;I2C.c: 350: I2C_GetACK();
   956  007BD8  DDD0               	call	_I2C_GetACK	;wreg free
   957                           ;I2C.c: 352: I2C_TxHToL(hi);
   958  007BDA  50E1               	movf	fsr1l,w,c
   959  007BDC  0100               	movlb	__Lparam shr (0+8)
   960  007BDE  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
   961  007BE0  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
   962  007BE2  DE6E               	call	_I2C_TxHToL	;wreg free
   963                           ;I2C.c: 354: I2C_GetACK();
   964  007BE4  DDCA               	call	_I2C_GetACK	;wreg free
   965                           ;I2C.c: 356: I2C_TxHToL(low);
   966  007BE6  50D9               	movf	fsr2l,w,c
   967  007BE8  0100               	movlb	__Lparam shr (0+8)
   968  007BEA  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
   969  007BEC  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
   970  007BEE  DE68               	call	_I2C_TxHToL	;wreg free
   971                           ;I2C.c: 358: I2C_GetACK();
   972  007BF0  DDC4               	call	_I2C_GetACK	;wreg free
   973                           ;I2C.c: 361: I2C_START();
   974  007BF2  DDFA               	call	_I2C_START	;wreg free
   975                           ;I2C.c: 363: I2C_TxHToL(0xA1);
   976  007BF4  0EA1               	movlw	161
   977  007BF6  0100               	movlb	__Lparam shr (0+8)
   978  007BF8  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
   979  007BFA  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
   980  007BFC  DE61               	call	_I2C_TxHToL	;wreg free
   981                           ;I2C.c: 365: I2C_GetACK();
   982  007BFE  DDBD               	call	_I2C_GetACK	;wreg free
   983                           ;I2C.c: 366: for(i = 0;i < len - 1;i++)
   984  007C00  0100               	movlb	__Lparam shr (0+8)
   985  007C02  6BFA               	clrf	?a_readPage24AA64^(__Lparam& (0+65280)),b
   986  007C04  6BFB               	clrf	(?a_readPage24AA64+1)^(__Lparam& (0+65280)
      +                          ),b
   987                           ; _repa_p loaded to fsr1
   988  007C06  C0F6  FFE1         	movff	?_readPage24AA64+2,fsr1l
   989  007C0A  C0F7  FFE2         	movff	?_readPage24AA64+3,fsr1h
   990  007C0E                     l98:
   991  007C0E  0100               	movlb	__Lparam shr (0+8)
   992  007C10  0EFF               	movlw	255
   993  007C12  25F8               	addwf	(?_readPage24AA64+4)^(__Lparam& (0+65280)
      +                          ),w
   994  007C14  6E00               	movwf	btemp,c
   995  007C16  0EFF               	movlw	255
   996  007C18  21F9               	addwfc	(?_readPage24AA64+5)^(__Lparam& (0+65280
      +                          )),w
   997  007C1A  6E01               	movwf	btemp+1,c
   998  007C1C  51FB               	movf	(?a_readPage24AA64+1)^(__Lparam& (0+65280)
      +                          ),w
   999  007C1E  0A80               	xorlw	128
  1000  007C20  6E02               	movwf	btemp+2,c
  1001  007C22  5001               	movf	btemp+1,w,c
  1002  007C24  0A80               	xorlw	128
  1003  007C26  5C02               	subwf	btemp+2,w,c
  1004  007C28  E102               	bnz	u345
  1005  007C2A  5000               	movf	btemp,w,c
  1006  007C2C  5DFA               	subwf	?a_readPage24AA64^(__Lparam& (0+65280)),w
  1007  007C2E                     u345:
  1008  007C2E  E20F               	bc	u340
  1009                           ;I2C.c: 367: {
  1010  007C30  DEE7               	call	_I2C_RxHToL	;wreg free
  1011  007C32  0100               	movlb	__Lparam shr (0+8)
  1012  007C34  51FA               	movf	?a_readPage24AA64^(__Lparam& (0+65280)),w
  1013  007C36  24E1               	addwf	fsr1l,w,c
  1014  007C38  6EE9               	movwf	fsr0l,c
  1015  007C3A  51FB               	movf	(?a_readPage24AA64+1)^(__Lparam& (0+65280)
      +                          ),w
  1016  007C3C  20E2               	addwfc	fsr1h,w,c
  1017  007C3E  6EEA               	movwf	fsr0h,c
  1018  007C40  C000  FFEF         	movff	btemp,indf0
  1019                           ;I2C.c: 371: I2C_SetACK();
  1020  007C44  DDC9               	call	_I2C_SetACK	;wreg free
  1021  007C46  0100               	movlb	__Lparam shr (0+8)
  1022  007C48  4BFA               	infsnz	?a_readPage24AA64^(__Lparam& (0+65280)),
      +                          f,b
  1023  007C4A  2BFB               	incf	(?a_readPage24AA64+1)^(__Lparam& (0+65280)
      +                          ),f,b
  1024  007C4C  D7E0               	goto	l98
  1025  007C4E                     u340:
  1026                           ;I2C.c: 372: }
  1027  007C4E  DED8               	call	_I2C_RxHToL	;wreg free
  1028  007C50  C0F8  F002         	movff	?_readPage24AA64+4,btemp+2
  1029  007C54  C0F9  F003         	movff	?_readPage24AA64+5,btemp+3
  1030  007C58  50E1               	movf	fsr1l,w,c
  1031  007C5A  2602               	addwf	btemp+2,f,c
  1032  007C5C  50E2               	movf	fsr1h,w,c
  1033  007C5E  2203               	addwfc	btemp+3,f,c
  1034  007C60  0EFF               	movlw	255
  1035  007C62  2402               	addwf	btemp+2,w,c
  1036  007C64  6EE9               	movwf	fsr0l,c
  1037  007C66  0EFF               	movlw	255
  1038  007C68  2003               	addwfc	btemp+3,w,c
  1039  007C6A  6EEA               	movwf	fsr0h,c
  1040  007C6C  C000  FFEF         	movff	btemp,indf0
  1041                           ;I2C.c: 376: I2C_SetNAk();
  1042  007C70  DDB7               	call	_I2C_SetNAk	;wreg free
  1043                           ;I2C.c: 378: I2C_STOP();
  1044  007C72  DDE5               	call	_I2C_STOP	;wreg free
  1045                           ;I2C.c: 380: return len;
  1046  007C74  C0F8  F000         	movff	?_readPage24AA64+4,btemp
  1047  007C78  C0F9  F001         	movff	?_readPage24AA64+5,btemp+1
  1048  007C7C  0012               	return	
  1049                           ;I2C.c: 381: }
  1050  007C7E  00F4               	dw	?_writePage24AA64
  1051  007C80                     _writePage24AA64:
  1052  000000                     
  1053                           ;I2C.c: 382: void writePage24AA64(int addr,unsig
      +                          ned char *wrpa_p,int len)
  1054  007C80  0100               	movlb	__Lparam shr (0+8)
  1055  007C82  51F5               	movf	(?_writePage24AA64+1)^(__Lparam& (0+65280)
      +                          ),w
  1056  007C84  6E02               	movwf	btemp+2,c
  1057                           ;I2C.c: 390: hi &= 0x1F;
  1058  007C86  0E1F               	movlw	31
  1059  007C88  1602               	andwf	btemp+2,f,c
  1060                           ;I2C.c: 392: low = (char)(addr & 0xff);
  1061  007C8A  51F4               	movf	?_writePage24AA64^(__Lparam& (0+65280)),w
  1062  007C8C  6ED9               	movwf	fsr2l,c
  1063                           ;I2C.c: 395: if(len > 32) len = 32;
  1064  007C8E  51F9               	movf	(?_writePage24AA64+5)^(__Lparam& (0+65280)
      +                          ),w
  1065  007C90  0A80               	xorlw	128
  1066  007C92  0F80               	addlw	-128
  1067  007C94  0E21               	movlw	33
  1068  007C96  B4D8               	btfsc	status,2,c
  1069  007C98  5DF8               	subwf	(?_writePage24AA64+4)^(__Lparam& (0+65280
      +                          )),w
  1070  007C9A  E303               	bnc	l100
  1071  007C9C  0E20               	movlw	32
  1072  007C9E  6FF8               	movwf	(?_writePage24AA64+4)^(__Lparam& (0+65280
      +                          )),b
  1073  007CA0  6BF9               	clrf	(?_writePage24AA64+5)^(__Lparam& (0+65280)
      +                          ),b
  1074  007CA2                     l100:
  1075                           ;I2C.c: 398: I2C_START();
  1076  007CA2  DDA2               	call	_I2C_START	;wreg free
  1077                           ;I2C.c: 400: I2C_TxHToL(0xA0);
  1078  007CA4  0EA0               	movlw	160
  1079  007CA6  0100               	movlb	__Lparam shr (0+8)
  1080  007CA8  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
  1081  007CAA  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
  1082  007CAC  DE09               	call	_I2C_TxHToL	;wreg free
  1083                           ;I2C.c: 402: I2C_GetACK();
  1084  007CAE  DD65               	call	_I2C_GetACK	;wreg free
  1085                           ;I2C.c: 404: I2C_TxHToL(hi);
  1086  007CB0  5002               	movf	btemp+2,w,c
  1087  007CB2  0100               	movlb	__Lparam shr (0+8)
  1088  007CB4  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
  1089  007CB6  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
  1090  007CB8  DE03               	call	_I2C_TxHToL	;wreg free
  1091                           ;I2C.c: 406: I2C_GetACK();
  1092  007CBA  DD5F               	call	_I2C_GetACK	;wreg free
  1093                           ;I2C.c: 408: I2C_TxHToL(low);
  1094  007CBC  50D9               	movf	fsr2l,w,c
  1095  007CBE  0100               	movlb	__Lparam shr (0+8)
  1096  007CC0  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
  1097  007CC2  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
  1098  007CC4  DDFD               	call	_I2C_TxHToL	;wreg free
  1099                           ;I2C.c: 410: I2C_GetACK();
  1100  007CC6  DD59               	call	_I2C_GetACK	;wreg free
  1101                           ;I2C.c: 411: for(i = 0;i < len;i++)
  1102  007CC8  6A02               	clrf	btemp+2,c
  1103  007CCA  6A03               	clrf	btemp+3,c
  1104  007CCC                     l104:
  1105  007CCC  0100               	movlb	__Lparam shr (0+8)
  1106  007CCE  5003               	movf	btemp+3,w,c
  1107  007CD0  0A80               	xorlw	128
  1108  007CD2  6E00               	movwf	btemp,c
  1109  007CD4  51F9               	movf	(?_writePage24AA64+5)^(__Lparam& (0+65280)
      +                          ),w
  1110  007CD6  0A80               	xorlw	128
  1111  007CD8  5C00               	subwf	btemp,w,c
  1112  007CDA  E102               	bnz	u365
  1113  007CDC  51F8               	movf	(?_writePage24AA64+4)^(__Lparam& (0+65280)
      +                          ),w
  1114  007CDE  5C02               	subwf	btemp+2,w,c
  1115  007CE0                     u365:
  1116  007CE0  E20F               	bc	u360
  1117                           ;I2C.c: 412: {
  1118  007CE2  0100               	movlb	__Lparam shr (0+8)
  1119  007CE4  5002               	movf	btemp+2,w,c
  1120  007CE6  25F6               	addwf	(?_writePage24AA64+2)^(__Lparam& (0+65280
      +                          )),w
  1121  007CE8  6EE9               	movwf	fsr0l,c
  1122  007CEA  5003               	movf	btemp+3,w,c
  1123  007CEC  21F7               	addwfc	(?_writePage24AA64+3)^(__Lparam& (0+6528
      +                          0)),w
  1124  007CEE  6EEA               	movwf	fsr0h,c
  1125  007CF0  50EF               	movf	indf0,w,c
  1126  007CF2  6FFC               	movwf	?_I2C_TxHToL^(__Lparam& (0+65280)),b
  1127  007CF4  6BFD               	clrf	(?_I2C_TxHToL+1)^(__Lparam& (0+65280)),b
  1128  007CF6  DDE4               	call	_I2C_TxHToL	;wreg free
  1129                           ;I2C.c: 416: I2C_GetACK();
  1130  007CF8  DD40               	call	_I2C_GetACK	;wreg free
  1131  007CFA  4A02               	infsnz	btemp+2,f,c
  1132  007CFC  2A03               	incf	btemp+3,f,c
  1133  007CFE  D7E6               	goto	l104
  1134  007D00                     u360:
  1135                           ;I2C.c: 417: }
  1136  007D00  D59E               	goto	_I2C_STOP	;wreg free
  1137                           ;I2C.c: 421: return;
  1138                           ;I2C.c: 422: }
  1139  007D02                     _I2C_CLR:
  1140  000000                     
  1141                           ;I2C.c: 426: void I2C_CLR(void)
  1142  007D02  0100               	movlb	__Lparam shr (0+8)
  1143  007D04  6BF4               	clrf	(?a_I2C_CLR+2)^(__Lparam& (0+65280)),b
  1144                           ;I2C.c: 430: for(a=0;a<40

⌨️ 快捷键说明

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