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

📄 busio.src

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_BYTE);
			; SOURCE LINE # 463
	CLR  	A
	MOV  	R7,A
	LCALL	_SendI2CByte
; 	if(NoAck) goto buserror;
			; SOURCE LINE # 464
	JB   	NoAck,?_PortDataOut?endi2c
?C0046:
; 
; 	/* Send C1 */
; 	SendI2CByte(0xC1);
			; SOURCE LINE # 467
	MOV  	R7,#0C1H
	LCALL	_SendI2CByte
; 	if(NoAck) goto buserror;
			; SOURCE LINE # 468
	JB   	NoAck,?_PortDataOut?endi2c
?C0047:
; 
; 	SendI2CByte(index);
			; SOURCE LINE # 470
	MOV  	R7,index?868
	LCALL	_SendI2CByte
; 	if(NoAck) goto buserror;
			; SOURCE LINE # 471
	JB   	NoAck,?_PortDataOut?endi2c
?C0048:
; 
; 	SendI2CStop();
			; SOURCE LINE # 473
	LCALL	SendI2CStop
; 	/* ------------- Finish C1 -------------- */
; 
; 	/* ---- I2C Start and send slave address for C2 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
			; SOURCE LINE # 477
	MOV  	R7,#030H
	LCALL	_GoI2CMaster
; 	if(NoAck | BusFault) goto buserror;
			; SOURCE LINE # 478
	MOV  	C,BusFault
	ORL  	C,NoAck
	JC   	?_PortDataOut?endi2c
?C0049:
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_AUTOINC);
			; SOURCE LINE # 481
	MOV  	R7,#040H
	LCALL	_SendI2CByte
; 	if(NoAck) goto buserror;
			; SOURCE LINE # 482
	JB   	NoAck,?_PortDataOut?endi2c
?C0050:
; 
; 	/* Send C2 */
; 	SendI2CByte(0xC2);
			; SOURCE LINE # 485
	MOV  	R7,#0C2H
	LCALL	_SendI2CByte
; 	if(NoAck) goto buserror;
			; SOURCE LINE # 486
	JB   	NoAck,?_PortDataOut?endi2c
?C0051:
; 
; 	/* data transmit */
; 	for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
			; SOURCE LINE # 489
	MOV  	byteCnt?872,cnt?871
	MOV  	byteCnt?872+01H,cnt?871+01H
?C0052:
	SETB 	C
	MOV  	A,byteCnt?872+01H
	SUBB 	A,#00H
	MOV  	A,byteCnt?872
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?_PortDataOut?endi2c
; 		SendI2CByte(*s++);
			; SOURCE LINE # 490
	MOV  	R0,#s?870
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?PLDIIDATA
	LCALL	?C?CLDPTR
	MOV  	R7,A
	LCALL	_SendI2CByte
; 		if(NoAck) goto buserror;
			; SOURCE LINE # 491
	JB   	NoAck,?_PortDataOut?endi2c
; 	}
			; SOURCE LINE # 492
?C0054:
	MOV  	A,byteCnt?872+01H
	DEC  	byteCnt?872+01H
	JNZ  	?C0121
	DEC  	byteCnt?872
?C0121:
	SJMP 	?C0052
;     goto endi2c;
			; SOURCE LINE # 493
; 
; 	/* ------------- Finish C2 -------------- */
; buserror:
			; SOURCE LINE # 496
; #if DEBUGMSG
;    printf("BUS error (PortDataOut) !!!!\n");
; #endif   
; 
; endi2c:
			; SOURCE LINE # 501
?_PortDataOut?endi2c:
; 	SendI2CStop();
			; SOURCE LINE # 502
	LCALL	SendI2CStop
; #endif
; 
; #if USE_SPIBUS
; 	/* ------------- Phace C0 -------------- */
; 	/* Start SPI and set to WRITE mode */
;    SPIStart(SPI_WRITE);
; 	if(BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendSPIByte(WRITE_BYTE);
; 
; 	/* Send C0 */
; 	SendSPIByte(0xC0);
; 
; 	/* Send the contest of C0 */
; 	SendSPIByte(c0);
; 
; 	/* Stop SPI bus temperally */
;    SPIStop();
; 	/* ------------- Finish C0 -------------- */
; 
; 	/* ------------- Phace C1 -------------- */
;    /* Start SPI and Set to WRITE mode */
; 	SPIStart(SPI_WRITE);
; 	if(BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendSPIByte(WRITE_BYTE);
; 
; 	/* Send C1 */
; 	SendSPIByte(0xC1);
; 
; 	/* Send index */
; 	SendSPIByte(index);
; 
; 	/* Stop SPI bus temperally */
;    SPIStop();
; 	/* ------------- Finish C1 -------------- */
; 
; 	/* ------------- Phace C2 -------------- */
;    /* Start SPI and Set to WRITE mode */
; 	SPIStart(SPI_WRITE);
; 	if(BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendSPIByte(WRITE_AUTOINC);
; 
; 	/* Send C2 */
; 	SendSPIByte(0xC2);
; 
; 	/* data transmit */
; 	for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; 		SendSPIByte(*s++);
; 	}
; 	/* ------------- Finish C2 -------------- */
; 	
; buserror:
; 	/* Finish transmition */
;    SPIStop();
; #endif
; 
; #if USE_PARALBUS
; 	/* ---- Send data for C0 ---- */
; 	/* Send command */
; 	PARALPORT = WRITE_BYTE;
; 
; 	/* Send C0 */
; 	PARALPORT = 0xC0;
; 
; 	/* Send the contest of C0 */
; 	PARALPORT = c0;
; 	/* ------ Finish C0   ------- */
; 
; 	/* ---- Send data for C1 ---- */
; 	/* Send command */
; 	PARALPORT = WRITE_BYTE;
; 
; 	/* Send C1 */
; 	PARAPORT = 0xC1;
; 
; 	PARALPORT = index;
; 	/* ------ Finish C1 --------- */
; 
; 	/* ---- Send data for C2 ---- */
; 	/* Send command */
; 	PARALPORT = WRITE_AUTOINC;
; 
; 	/* Send C2 */
; 	PARALPORT = 0xC2;
; 
; 	/* data transmit */
; 	for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; 		PARALPORT = *s++;
; 	}
; 	/* ------- Finish C2 -------- */
; #endif
; 
; #if DISABLEINT0
; 	/* restove interrupt 0 flag */
; 	EX0 =	IntFlag;
			; SOURCE LINE # 602
	MOV  	C,IntFlag?873
	MOV  	EX0,C
; #endif
; }
			; SOURCE LINE # 604
	RET  	
; END OF _PortDataOut

; 
; 
; #if 0 //(DEBUGMSG == 0)
; /*********************************************
; * Receive bytes of data to an MOSAIC device     *
; **********************************************/
; void PortDataIn(unsigned char index, unsigned char c0, unsigned char *s, int cnt)
; {
; 	int data byteCnt;
; 
; #if DISABLEINT0
; 	bit IntFlag;
; 
; 	/* disable interrupt 0 */
; 	IntFlag = EX0;
; 	EX0 = 0;
; #endif
; 
; #if USE_I2CBUS
; 	/* ---- I2C Start and send slave address for C0 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_BYTE);
; 	if(NoAck) goto buserror;
; 
; 	/* Send C0 */
; 	SendI2CByte(0xC0);
; 	if(NoAck) goto buserror;
; 
; 	/* Send the contest of C0 */
; 	SendI2CByte(c0);
; 	if(NoAck) goto buserror;
; 
; 	SendI2CStop();
; 	/* ------------- Finish C0 -------------- */
; 
; 	/* ---- I2C Start and send slave address for C1 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_BYTE);
; 	if(NoAck) goto buserror;
; 
; 	/* Send C1 */
; 	SendI2CByte(0xC1);
; 	if(NoAck) goto buserror;
; 
; 	SendI2CByte(index);
; 	if(NoAck) goto buserror;
; 
; 	SendI2CStop();
; 	/* ------------- Finish C1 -------------- */
; 
; 	/* ---- I2C Start and send slave address for C2 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendI2CByte(READ_AUTOINC);
; 	if(NoAck) goto buserror;
; 
; 	/* Send C2 */
; 	SendI2CByte(0xC2);
; 	if(NoAck) goto buserror;
; 
;  	/* I2C Start and send slave address */
;  	GoI2CMaster(SLAVEADDR_REGR);
; 	if (NoAck | BusFault) goto buserror;
; 
; 	/* data transmit */
; 	for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; 		*s++ = RcvI2CByte(byteCnt);
; 	}
; 	
; 	goto endi2c;		
; 
; 	/* ------------- Finish C2 -------------- */
; buserror:
; #if DEBUGMSG
;    printf("BUS error (PortDataOut) !!!!\n");
; #endif   
; 
; endi2c:
; 	SendI2CStop();
; #endif
; 
; 
; 
; 
; #if DISABLEINT0
; 	/* restove interrupt 0 flag */
; 	EX0 =	IntFlag;
; #endif
; }
; 
; #endif
; 
; 
; #if 0
; void PortByteOut(unsigned char index, unsigned char c0, unsigned char s)
; {
; 	int data byteCnt;
; 
; #if DISABLEINT0
; 	bit IntFlag;
; 
; 	/* disable interrupt 0 */
; 	IntFlag = EX0;
; 	EX0 = 0;
; #endif
; 
; #if USE_I2CBUS
; 	/* ---- I2C Start and send slave address for C0 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_BYTE);
; 	if(NoAck) goto buserror;
; 
; 	/* Send C0 */
; 	SendI2CByte(0xC0);
; 	if(NoAck) goto buserror;
; 
; 	/* Send the contest of C0 */
; 	SendI2CByte(c0);
; 	if(NoAck) goto buserror;
; 
; 	SendI2CStop();
; 	/* ------------- Finish C0 -------------- */
; 
; 	/* ---- I2C Start and send slave address for C1 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_BYTE);
; 	if(NoAck) goto buserror;
; 
; 	/* Send C1 */
; 	SendI2CByte(0xC1);
; 	if(NoAck) goto buserror;
; 
; 	SendI2CByte(index);
; 	if(NoAck) goto buserror;
; 
; 	SendI2CStop();
; 	/* ------------- Finish C1 -------------- */
; 
; 	/* ---- I2C Start and send slave address for C2 ---- */
;  	GoI2CMaster(SLAVEADDR_REGW);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send command */
; 	SendI2CByte(WRITE_BYTE);
; 	if(NoAck) goto buserror;
; 
; 	/* Send C2 */
; 	SendI2CByte(0xC2);
; 	if(NoAck) goto buserror;
; 
; 	/* data transmit */
; 	SendI2CByte(s);
; 	if(NoAck) goto buserror;
;     	goto endi2c;
; 
; 	/* ------------- Finish C2 -------------- */
; buserror:
; #if DEBUGMSG
;    printf("BUS error (PortByteOut) !!!!\n");
; #endif   
; 
; endi2c:
; 	SendI2CStop();
; #endif
; 
; #if DISABLEINT0
; 	/* restove interrupt 0 flag */
; 	EX0 =	IntFlag;
; #endif
; }
; #endif
; 
; #if 0
; /**********************************************
; * Receive one byte from Standard device       *
; ***********************************************/
; unsigned char BusByteIn(unsigned char slv, unsigned char index)
; {
; 	unsigned char bval;
; 
; 	/* I2C Start and send WRITE slave address */
;  	GoI2CMaster(slv);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send index */
; 	SendI2CByte(index);
; 	if(NoAck) goto buserror;
; 
; 	/* I2C Start and send READ slave address */
;  	GoI2CMaster(slv | 0x01);
; 	if(NoAck) goto buserror;
; 
; 	/* data transmit */
; 	bval = RcvI2CByte(1);
; 
; buserror:	
; 	/* Finish trasmition */
; 	SendI2CStop();
; 
; 	return(bval);
; }
; 
; /*********************************************
; * Send bytes of data to standard device      *
; **********************************************/
; void BusByteOut(unsigned char slv, unsigned char index, unsigned char val)
; {
; 	/* I2C Start and send WRITE slave address */
;  	GoI2CMaster(slv);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send index */
; 	SendI2CByte(index);
; 	if(NoAck) goto buserror;
; 
; 	/* data transmit */
; 	SendI2CByte(val);
; 
; buserror:	
; 	SendI2CStop();
; }
; 
; /**********************************************
; * Receive bytes of data from Standard device  *
; ***********************************************/
; void BusDataIn(unsigned char slv, unsigned char index, unsigned char *s, int cnt)
; {
; 	int data byteCnt;
; 
; 	/* I2C Start and send WRITE slave address */
;  	GoI2CMaster(slv);
; 	if(NoAck | BusFault) goto buserror;
; 
; 	/* Send index */
; 	SendI2CByte(index);
; 	if(NoAck) goto buserror;
; 
; 	/* I2C Start and send READ slave address */
;  	GoI2CMaster(slv | 0x01);
; 	if(NoAck) goto buserror;
; 
; 	/* data transmit */
; 	for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; 		*s++ = RcvI2CByte(byteCnt);
; 	}
; 
; buserror:	
; 	/* Finish trasmition */
; 	SendI2CStop();
; }
; #endif
; 
; /*********************************************
; * Send bytes of data to standard device      *
; **********************************************/
; void eepByteOut(unsigned int index, unsigned char val)

	RSEG  ?PR?_eepByteOut?BUSIO
	USING	0
_eepByteOut:
	MOV  	index?974,R6
	MOV  	index?974+01H,R7
	MOV  	val?975,R5
			; SOURCE LINE # 874
; {
			; SOURCE LINE # 875
;    unsigned char slv;
; 
; #if DISABLEINT0
; 	bit IntFlag;
; 
; 	/* disable interrupt 0 */
; 	IntFlag = EX0;
			; SOURCE LINE # 882
	MOV  	C,EX0
	MOV  	IntFlag?977,C
; 	EX0 = 0;
			; SOURCE LINE # 883
	CLR  	EX0
; #endif
; 
; 	WPPin = 0;
			; SOURCE LINE # 886
	CLR  	WPPin
; 
;    if(index < 256)
			; SOURCE LINE # 888
	CLR  	C
	MOV  	A,index?974
	SUBB 	A,#01H
	JNC  	?C0058
;       slv = SLAVEADDR_EEPW0;
			; SOURCE LINE # 889
	MOV  	slv?976,#0A0H
	SJMP 	?C0059
?C0058:
;    else
;    if(index < 512) {
			; SOURCE LINE # 891
	CLR  	C
	MOV  	A,index?974
	SUBB 	A,#02H
	JNC  	?C0060
;       slv = SLAVEADDR_EEPW1;
			; SOURCE LINE # 892
	MOV  	slv?976,#0A2H
;       index -= 256;
			; SOURCE LINE # 893
	CLR  	A
	ADD  	A,index?974+01H
	MOV  	index?974+01H,A
	MOV  	A,#0FFH
	ADDC 	A,index?974
	MOV  	index?974,A
;    } else
			; SOURCE LINE # 894
	SJMP 	?C0059
?C0060:
;    if(index < 768) {
			; SOURCE LINE # 895
	CLR  	C
	MOV  	A,index?974
	SUBB 	A,#03H
	JNC  	?C0062
;       slv = SLAVEADDR_EEPW2;
			; SOURCE LINE # 896
	MOV  	slv?976,#0A4H
;       index -= 512;
			; SOURCE LINE # 897
	CLR  	A
	ADD  	A,index?974+01H
	MOV  	index?974+01H,A
	MOV  	A,#0FEH
	ADDC 	A,index?974
	MOV  	index?974,A
;    } else {
			; SOURCE LINE # 898
	SJMP 	?C0059
?C0062:
;       slv = SLAVEADDR_EEPW3;
			; SOURCE LINE # 899
	MOV  	slv?976,#0A6H
;       index -= 768;
			; SOURCE LINE # 900
	CLR  	A
	ADD  	A,index?974+01H
	MOV  	index?974+01H,A
	MOV  	A,#0FDH
	ADDC 	A,index?974
	MOV  	index?974,A
;    }
			; SOURCE LINE # 901
?C0059:
; 	/* I2C Start and send WRITE slave address */
;  	GoI2CMaster(slv);
			; SOURCE LINE # 903
	MOV  	R7,slv?976
	LCALL	_GoI2CMaster

⌨️ 快捷键说明

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