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

📄 i2c.lst

📁 根据I2C协议传输的源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 231  0033  2800     R  JMP L138
 231  0034              L135:

; 233: 								if(!ReceiveByte())
 233  0034  2000     R  CALL _ReceiveByte
 233  0035  0080     R  MOV b0_8,A
 233  0036  3C00     R  SZ b0_8.0
 233  0037  2800     R  JMP L140

; 234: 									break;
 234  0038  2800     R  JMP L137
 234  0039              L140:

; 235: 								I2C.ucData[i] = I2C.uReceive.ucValue;
 235  0039  0700     R  MOV A,CR20
 235  003A  0B00     R  ADD A,OFFSET _I2C[8]
 235  003B  0080     R  MOV b0_8,A
 235  003C  0700     R  MOV A,b0_8
 235  003D  0081        MOV [01H],A
 235  003E  0700     R  MOV A,_I2C[2]
 235  003F  0080        MOV [00H],A
 235  0040              L136:

; 231: 							for(i=0; i<I2C.ucDataNumber; i++)
文件:I2C.c        盛群编译器版本 2.86 页次16 

 231  0040  1480     R  INC CR20
 231  0041              L138:
 231  0041  0700     R  MOV A,CR20
 231  0042  0200     R  SUB A,_I2C[7]
 231  0043  380A        SNZ [0ah].0
 231  0044  2800     R  JMP L135
 231  0045              L137:

; 237: 							I2C.uSend.ucValue = 0x80;						//发送准备信息
 237  0045  0F80        MOV A,080h
 237  0046  0080     R  MOV _I2C[1],A

; 238: 							I2C.ucPulseNumber = 1;
 238  0047  0F01        MOV A,01h
 238  0048  0080     R  MOV _I2C[4],A

; 239: 							PulseOut();								
 239  0049  2000     R  CALL _PulseOut

; 240: 							return OK;
 240  004A  1F05        CLR [05H]
 240  004B  3005        SET [05H].0
 240  004C  2800     R  JMP L112
 240  004D              L121:

; 243: 					ucWatch = 0xfd;
 243  004D  0FFD        MOV A,0fdh
文件:I2C.C        盛群编译器版本 2.86 页次15

 243  004E  0080     R  MOV _ucWatch,A

; 244: 					return ERROR;
 244  004F  1F05        CLR [05H]
 244  0050  2800     R  JMP L112
 244  0051              L119:

; 246: 			ucWatch = 0xff; return ERROR;
 246  0051  1F80     R  SET _ucWatch
 246  0052  1F05        CLR [05H]
 246  0053  2800     R  JMP L112
 246  0054              L113:

; 248: 	ucWatch = 0xfe;return ERROR;	
 248  0054  0FFE        MOV A,0feh
 248  0055  0080     R  MOV _ucWatch,A
 248  0056  1F05        CLR [05H]
 248  0057              L112:
 248  0057  0003        RET
 248  0000  00          LOCAL b0_8 DB ?

; 212: 	unsigned char i, ucTemp;
 212  0001  00          LOCAL CR20 DB ? ; i
 212  0058              _Send ENDP

; 252: {
 252  0000              @MAIN .SECTION 'CODE'
 252  0000              PUBLIC _MAIN
 252  0000              _MAIN PROC

; 256: 	SYSTEM_INITIAL();
文件:I2C.c        盛群编译器版本 2.86 页次17 

 256  0000  2000     R  CALL _SYSTEM_INITIAL

; 258: 	GameInitial();
 258  0001  2000     R  CALL _GameInitial

; 259: 	k = 0; t1 =0; t2 = 0; ucWatch = 0; ucWatch2 = 0;
 259  0002  1F00     R  CLR CR32
 259  0003  1F00     R  CLR CR37
 259  0004  1F00     R  CLR CR38
 259  0005  1F00     R  CLR _ucWatch
 259  0006  1F00     R  CLR _ucWatch2
 259  0007  2800     R  JMP L148
 259  0008              L147:

; 262: 		for(j=0, i1=1, i2=2, i3=3, i4=4; j<0xFFFE; j++, i1++, i2+=2, i3+=3, i4+=4)
 262  0008  1F00     R  CLR CR31
 262  0009  1F00     R  CLR CR31[1]
 262  000A  0F01        MOV A,01h
 262  000B  0080     R  MOV CR27,A
 262  000C  0F02        MOV A,02h
 262  000D  0080     R  MOV CR28,A
 262  000E  0F03        MOV A,03h
 262  000F  0080     R  MOV CR29,A
 262  0010  0F04        MOV A,04h
文件:I2C.C        盛群编译器版本 2.86 页次16

 262  0011  0080     R  MOV CR30,A
 262  0012  2800     R  JMP L153
 262  0013              L150:

; 264: 		I2C.ucID = 1;
 264  0013  0F01        MOV A,01h
 264  0014  0080     R  MOV _I2C[5],A

; 265: 		I2C.ucCommand = DISPLAY;
 265  0015  0F01        MOV A,01h
 265  0016  0080     R  MOV _I2C[6],A

; 266: 		I2C.ucDataNumber = 4;
 266  0017  0F04        MOV A,04h
 266  0018  0080     R  MOV _I2C[7],A

; 267: 		I2C.ucData[0] = i1;
 267  0019  0700     R  MOV A,CR27
 267  001A  0080     R  MOV _I2C[8],A

; 268: 		I2C.ucData[1] = i2;
 268  001B  0700     R  MOV A,CR28
 268  001C  0080     R  MOV _I2C[9],A

; 269: 		I2C.ucData[2] = i3;
 269  001D  0700     R  MOV A,CR29
 269  001E  0080     R  MOV _I2C[10],A

; 270: 		I2C.ucData[3] = i4;		
 270  001F  0700     R  MOV A,CR30
 270  0020  0080     R  MOV _I2C[11],A

; 271: 		ucTemp1 = I2C.ucData[0];
 271  0021  0700     R  MOV A,_I2C[8]
文件:I2C.c        盛群编译器版本 2.86 页次18 

 271  0022  0080     R  MOV CR33,A

; 272: 		ucTemp2 = I2C.ucData[1];
 272  0023  0700     R  MOV A,_I2C[9]
 272  0024  0080     R  MOV CR34,A

; 273: 		ucTemp3 = I2C.ucData[2];
 273  0025  0700     R  MOV A,_I2C[10]
 273  0026  0080     R  MOV CR35,A

; 274: 		ucTemp4 = I2C.ucData[3];		
 274  0027  0700     R  MOV A,_I2C[11]
 274  0028  0080     R  MOV CR36,A

; 275: 		if (!Send()) 
 275  0029  2000     R  CALL _Send
 275  002A  0080     R  MOV b0_9,A
 275  002B  3C00     R  SZ b0_9.0
 275  002C  2800     R  JMP L171

; 276: 			{t1 = 0x1; break;}
 276  002D  0F01        MOV A,01h
 276  002E  0080     R  MOV CR37,A
 276  002F  2800     R  JMP L152
 276  0030              L171:

; 277: 		for(n=0; n<0xFFff; n++) ;
 277  0030  1F00     R  CLR CR26
 277  0031  1F00     R  CLR CR26[1]
 277  0032  2800     R  JMP L176
 277  0033              L173:
 277  0033              L174:
 277  0033  1480     R  INC CR26
文件:I2C.C        盛群编译器版本 2.86 页次17

 277  0034  3D0A        SZ [0AH].2
 277  0035  1480     R  INC CR26[1]
 277  0036              L176:
 277  0036  0FFF        MOV A,0ffh
 277  0037  0200     R  SUB A,CR26[1]
 277  0038  380A        SNZ [0ah].0
 277  0039  2800     R  JMP L218
 277  003A  390A        SNZ [0ah].2
 277  003B  2800     R  JMP L173
 277  003C  0FFF        MOV A,0ffh
 277  003D  0200     R  SUB A,CR26
 277  003E  380A        SNZ [0ah].0
 277  003F  2800     R  JMP L218
 277  0040  390A        SNZ [0ah].2
 277  0041  2800     R  JMP L173
 277  0042              L218:

; 278: 		I2C.ucData[0] = 0x00;
 278  0042  1F00     R  CLR _I2C[8]

; 279: 		I2C.ucData[1] = 0x00;
 279  0043  1F00     R  CLR _I2C[9]

; 280: 		I2C.ucData[2] = 0x00;
 280  0044  1F00     R  CLR _I2C[10]
文件:I2C.c        盛群编译器版本 2.86 页次19 


; 281: 		I2C.ucData[3] = 0x00;
 281  0045  1F00     R  CLR _I2C[11]

; 282: 		I2C.ucID = 1;
 282  0046  0F01        MOV A,01h
 282  0047  0080     R  MOV _I2C[5],A

; 283: 		I2C.ucCommand = KEYBOARD;
 283  0048  0F03        MOV A,03h
 283  0049  0080     R  MOV _I2C[6],A

; 284: 		I2C.ucDataNumber = 4;		
 284  004A  0F04        MOV A,04h
 284  004B  0080     R  MOV _I2C[7],A

; 285: 		if (!Send())
 285  004C  2000     R  CALL _Send
 285  004D  0080     R  MOV b0_9,A
 285  004E  3C00     R  SZ b0_9.0
 285  004F  2800     R  JMP L187

; 286: 			{t2 = 0x2; break;}
 286  0050  0F02        MOV A,02h
 286  0051  0080     R  MOV CR38,A
 286  0052  2800     R  JMP L152
 286  0053              L187:

; 287: 		ucTemp1 = I2C.ucData[0];
 287  0053  0700     R  MOV A,_I2C[8]
 287  0054  0080     R  MOV CR33,A

; 288: 		ucTemp2 = I2C.ucData[1];
 288  0055  0700     R  MOV A,_I2C[9]
 288  0056  0080     R  MOV CR34,A

; 289: 		ucTemp3 = I2C.ucData[2];
 289  0057  0700     R  MOV A,_I2C[10]
 289  0058  0080     R  MOV CR35,A

; 290: 		ucTemp4 = I2C.ucData[3];			
 290  0059  0700     R  MOV A,_I2C[11]
 290  005A  0080     R  MOV CR36,A

; 291: 		if (I2C.ucData[0] != i1)
文件:I2C.C        盛群编译器版本 2.86 页次18

 291  005B  0700     R  MOV A,_I2C[8]
 291  005C  0400     R  XOR A,CR27
 291  005D  3D0A        SZ [0ah].2
 291  005E  2800     R  JMP L196

; 292: 			{k = 0x1;break;}
 292  005F  0F01        MOV A,01h
 292  0060  0080     R  MOV CR32,A
 292  0061  2800     R  JMP L152
 292  0062              L196:

; 293: 		if (I2C.ucData[1] != i2)
 293  0062  0700     R  MOV A,_I2C[9]
文件:I2C.c        盛群编译器版本 2.86 页次20 

 293  0063  0400     R  XOR A,CR28
 293  0064  3D0A        SZ [0ah].2
 293  0065  2800     R  JMP L199

; 294: 			{k = 0x2;break;}
 294  0066  0F02        MOV A,02h
 294  0067  0080     R  MOV CR32,A
 294  0068  2800     R  JMP L152
 294  0069              L199:

; 295: 		if (I2C.ucData[2] != i3)
 295  0069  0700     R  MOV A,_I2C[10]
 295  006A  0400     R  XOR A,CR29
 295  006B  3D0A        SZ [0ah].2
 295  006C  2800     R  JMP L203

; 296: 			{k = 0x3;break;}
 296  006D  0F03        MOV A,03h
 296  006E  0080     R  MOV CR32,A
 296  006F  2800     R  JMP L152
 296  0070              L203:

; 297: 		if (I2C.ucData[3] != i4)
 297  0070  0700     R  MOV A,_I2C[11]
 297  0071  0400     R  XOR A,CR30
 297  0072  3D0A        SZ [0ah].2
 297  0073  2800     R  JMP L207

; 298: 			{k = 0x4;break;}	
 298  0074  0F04        MOV A,04h
 298  0075  0080     R  MOV CR32,A
 298  0076  2800     R  JMP L152
 298  0077              L207:

; 299: 		for(n=0; n<0xFFff; n++) ;				
 299  0077  1F00     R  CLR CR26
 299  0078  1F00     R  CLR CR26[1]
 299  0079  2800     R  JMP L214
 299  007A              L211:
 299  007A              L212:
 299  007A  1480     R  INC CR26
文件:I2C.C        盛群编译器版本 2.86 页次19

 299  007B  3D0A        SZ [0AH].2
 299  007C  1480     R  INC CR26[1]
 299  007D              L214:
 299  007D  0FFF        MOV A,0ffh
 299  007E  0200     R  SUB A,CR26[1]
 299  007F  380A        SNZ [0ah].0
 299  0080  2800     R  JMP L219
 299  0081  390A        SNZ [0ah].2
 299  0082  2800     R  JMP L211
 299  0083  0FFF        MOV A,0ffh
 299  0084  0200     R  SUB A,CR26
 299  0085  380A        SNZ [0ah].0
 299  0086  2800     R  JMP L219
 299  0087  390A        SNZ [0ah].2
 299  0088  2800     R  JMP L211
 299  0089              L219:
 299  0089              L151:
文件:I2C.c        盛群编译器版本 2.86 页次21 


; 262: 		for(j=0, i1=1, i2=2, i3=3, i4=4; j<0xFFFE; j++, i1++, i2+=2, i3+=3, i4+=4)
 262  0089  1480     R  INC CR31
 262  008A  3D0A        SZ [0AH].2
 262  008B  1480     R  INC CR31[1]
 262  008C  1480     R  INC CR27
 262  008D  0F02        MOV A,02h
 262  008E  0380     R  ADDM A,CR28
 262  008F  0F03        MOV A,03h
 262  0090  0380     R  ADDM A,CR29
 262  0091  0F04        MOV A,04h
 262  0092  0380     R  ADDM A,CR30
 262  0093              L153:
 262  0093  0FFF        MOV A,0ffh
 262  0094  0200     R  SUB A,CR31[1]
 262  0095  380A        SNZ [0ah].0
 262  0096  2800     R  JMP L220
 262  0097  390A        SNZ [0ah].2
 262  0098  2800     R  JMP L150
 262  0099  0FFE        MOV A,0feh
 262  009A  0200     R  SUB A,CR31
 262  009B  380A        SNZ [0ah].0
 262  009C  2800     R  JMP L220
 262  009D  390A        SNZ [0ah].2
 262  009E  2800     R  JMP L150
 262  009F              L220:
 262  009F              L152:

; 301: 		if (j != 0xFFFF)
 301  009F  0700     R  MOV A,CR31
 301  00A0  0CFF        XOR A,0ffh
 301  00A1  390A        SNZ [0ah].2
 301  00A2  2800     R  JMP L221
 301  00A3  0700     R  MOV A,CR31[1]
 301  00A4  0CFF        XOR A,0ffh
 301  00A5  3D0A        SZ [0ah].2
 301  00A6  2800     R  JMP L215
 301  00A7              L221:

; 302: 			I2C.ucData[0] = 1;
 302  00A7  0F01        MOV A,01h
 302  00A8  0080     R  MOV _I2C[8],A
 302  00A9              L215:
文件:I2C.C        盛群编译器版本 2.86 页次20

 302  00A9              L148:

; 260: 	while(1)
 260  00A9  2800     R  JMP L147
 260  00AA              L146:
 260  00AA  0003        RET
 260  0000  00          LOCAL b0_9 DB ?

; 255: 	unsigned long j, n;
 255  0001  0002[       LOCAL CR26 DB 2 DUP (?) ; n
            00
            ]

; 254: 	unsigned char i1, i2, i3, i4, k,t1,t2;
 254  0003  00          LOCAL CR27 DB ? ; i1
文件:I2C.c        盛群编译器版本 2.86 页次22 

 254  0004  00          LOCAL CR28 DB ? ; i2
 254  0005  00          LOCAL CR29 DB ? ; i3
 254  0006  00          LOCAL CR30 DB ? ; i4

; 255: 	unsigned long j, n;
 255  0007  0002[       LOCAL CR31 DB 2 DUP (?) ; j
            00
            ]

; 254: 	unsigned char i1, i2, i3, i4, k,t1,t2;
 254  0009  00          LOCAL CR32 DB ? ; k

; 253: 	unsigned char ucTemp1, ucTemp2, ucTemp3, ucTemp4;
 253  000A  00          LOCAL CR33 DB ? ; ucTemp1
 253  000B  00          LOCAL CR34 DB ? ; ucTemp2
 253  000C  00          LOCAL CR35 DB ? ; ucTemp3
 253  000D  00          LOCAL CR36 DB ? ; ucTemp4

; 254: 	unsigned char i1, i2, i3, i4, k,t1,t2;
 254  000E  00          LOCAL CR37 DB ? ; t1
 254  000F  00          LOCAL CR38 DB ? ; t2
 254  00AB              _MAIN ENDP
 254  00AB              PUBLIC _ucI2CStatus
 254  0000              @ucI2CStatus .SECTION 'DATA'

;  36: unsigned char ucI2CAcc, ucI2CStatus;
  36  0000  00          _ucI2CStatus DB ? ; ucI2CStatus
  36  0001              PUBLIC _ucI2CAcc
  36  0000              @ucI2CAcc .SECTION 'DATA'
  36  0000  00          _ucI2CAcc DB ? ; ucI2CAcc
文件:I2C.C        盛群编译器版本 2.86 页次21

  36  0001              PUBLIC _ucWatch3
  36  0000              @ucWatch3 .SECTION 'DATA'

;   6: unsigned char ucWatch, ucWatch2, ucWatch3;
   6  0000  00          _ucWatch3 DB ? ; ucWatch3
   6  0001              PUBLIC _ucWatch2
   6  0000              @ucWatch2 .SECTION 'DATA'
   6  0000  00          _ucWatch2 DB ? ; ucWatch2
   6  0001              PUBLIC _ucWatch
   6  0000              @ucWatch .SECTION 'DATA'
   6  0000  00          _ucWatch DB ? ; ucWatch
   6  0001              EXTERN _SPEECH_INITIAL:NEAR
   6  0001              PUBLIC _I2C
   6  0000              @I2C .SECTION 'DATA'


;   1: struct sI2C I2C;
   1  0000  0010[       _I2C DB 16 DUP (?) ;I2C
            00
            ]


        0 Errors

⌨️ 快捷键说明

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