📄 busio.src
字号:
; BUSIO.SRC generated from: BUSIO.C
$NOMOD51
NAME BUSIO
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
PSW DATA 0D0H
ACC DATA 0E0H
B DATA 0F0H
SP DATA 081H
DPL DATA 082H
DPH DATA 083H
PCON DATA 087H
TCON DATA 088H
TMOD DATA 089H
TL0 DATA 08AH
TL1 DATA 08BH
TH0 DATA 08CH
TH1 DATA 08DH
IE DATA 0A8H
IP DATA 0B8H
SCON DATA 098H
SBUF DATA 099H
CY BIT 0D0H.7
AC BIT 0D0H.6
F0 BIT 0D0H.5
RS1 BIT 0D0H.4
RS0 BIT 0D0H.3
OV BIT 0D0H.2
P BIT 0D0H.0
TF1 BIT 088H.7
TR1 BIT 088H.6
TF0 BIT 088H.5
TR0 BIT 088H.4
IE1 BIT 088H.3
IT1 BIT 088H.2
IE0 BIT 088H.1
IT0 BIT 088H.0
EA BIT 0A8H.7
ES BIT 0A8H.4
ET1 BIT 0A8H.3
EX1 BIT 0A8H.2
ET0 BIT 0A8H.1
EX0 BIT 0A8H.0
PS BIT 0B8H.4
PT1 BIT 0B8H.3
PX1 BIT 0B8H.2
PT0 BIT 0B8H.1
PX0 BIT 0B8H.0
RD BIT 0B0H.7
WR BIT 0B0H.6
T1 BIT 0B0H.5
T0 BIT 0B0H.4
INT1 BIT 0B0H.3
INT0 BIT 0B0H.2
TXD BIT 0B0H.1
RXD BIT 0B0H.0
SM0 BIT 098H.7
SM1 BIT 098H.6
SM2 BIT 098H.5
REN BIT 098H.4
TB8 BIT 098H.3
RB8 BIT 098H.2
TI BIT 098H.1
RI BIT 098H.0
SDAPin BIT 090H.6
SCLPin BIT 090H.7
WPPin BIT 090H.5
ResetPin BIT 0A0H.0
BrightnessPin BIT 0B0H.5
VGA_CON_PIN BIT 0A0H.5
LED_O_Pin BIT 080H.0
LED_G_Pin BIT 080H.1
PANEL_VCC_PIN BIT 0A0H.2
PANEL_BKL_PIN BIT 0A0H.3
POWER_BUT_PIN BIT 090H.4
MENU_BUT_PIN BIT 090H.1
RIGHT_BUT_PIN BIT 090H.2
LEFT_BUT_PIN BIT 090H.3
AUTO_BUT_PIN BIT 090H.0
?PR?_RegDataTableOut?BUSIO SEGMENT CODE
?DT?_RegDataTableOut?BUSIO SEGMENT DATA OVERLAYABLE
?PR?_RegByteIn?BUSIO SEGMENT CODE
?DT?_RegByteIn?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_RegByteIn?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_RegDataIn?BUSIO SEGMENT CODE
?DT?_RegDataIn?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_RegDataIn?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_RegByteOut?BUSIO SEGMENT CODE
?DT?_RegByteOut?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_RegByteOut?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_RegWordOut?BUSIO SEGMENT CODE
?DT?_RegWordOut?BUSIO SEGMENT DATA OVERLAYABLE
?PR?_RegBitOut?BUSIO SEGMENT CODE
?DT?_RegBitOut?BUSIO SEGMENT DATA OVERLAYABLE
?PR?_RegDataOut?BUSIO SEGMENT CODE
?DT?_RegDataOut?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_RegDataOut?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_TconByteOut?BUSIO SEGMENT CODE
?DT?_TconByteOut?BUSIO SEGMENT DATA OVERLAYABLE
?PR?_PortDataOut?BUSIO SEGMENT CODE
?DT?_PortDataOut?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_PortDataOut?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_eepByteOut?BUSIO SEGMENT CODE
?DT?_eepByteOut?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_eepByteOut?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_eepByteIn?BUSIO SEGMENT CODE
?DT?_eepByteIn?BUSIO SEGMENT DATA OVERLAYABLE
?PR?_eepDataIn?BUSIO SEGMENT CODE
?DT?_eepDataIn?BUSIO SEGMENT DATA OVERLAYABLE
?PR?_eepDataOut?BUSIO SEGMENT CODE
?DT?_eepDataOut?BUSIO SEGMENT DATA OVERLAYABLE
?BI?_eepDataOut?BUSIO SEGMENT BIT OVERLAYABLE
?PR?_TDAByteOut?BUSIO SEGMENT CODE
?PR?_TDADataTableOut?BUSIO SEGMENT CODE
?PR?_TDAByteIn?BUSIO SEGMENT CODE
EXTRN CODE (_GoI2CMaster)
EXTRN CODE (_SendI2CByte)
EXTRN CODE (_RcvI2CByte)
EXTRN CODE (SendI2CStop)
EXTRN BIT (NoAck)
EXTRN BIT (BusFault)
EXTRN CODE (_miscDelay)
EXTRN CODE (?C?PLDIIDATA)
EXTRN CODE (?C?CLDPTR)
EXTRN CODE (?C?CSTPTR)
PUBLIC _TDAByteIn
PUBLIC _TDADataTableOut
PUBLIC _TDAByteOut
PUBLIC ?_eepDataOut?BYTE
PUBLIC _eepDataOut
PUBLIC ?_eepDataIn?BYTE
PUBLIC _eepDataIn
PUBLIC _eepByteIn
PUBLIC _eepByteOut
PUBLIC ?_PortDataOut?BYTE
PUBLIC _PortDataOut
PUBLIC _TconByteOut
PUBLIC ?_RegDataOut?BYTE
PUBLIC _RegDataOut
PUBLIC _RegBitOut
PUBLIC _RegWordOut
PUBLIC _RegByteOut
PUBLIC ?_RegDataIn?BYTE
PUBLIC _RegDataIn
PUBLIC _RegByteIn
PUBLIC _RegDataTableOut
RSEG ?DT?_RegDataTableOut?BUSIO
?_RegDataTableOut?BYTE:
s?040: DS 3
ORG 3
cnd?041: DS 1
index?042: DS 1
RSEG ?DT?_RegByteIn?BUSIO
?_RegByteIn?BYTE:
index?143: DS 1
ORG 1
val?144: DS 1
RSEG ?BI?_RegByteIn?BUSIO
?_RegByteIn?BIT:
IntFlag?145: DBIT 1
RSEG ?DT?_RegDataIn?BUSIO
?_RegDataIn?BYTE:
index?246: DS 1
s?247: DS 3
cnt?248: DS 2
ORG 6
byteCnt?249: DS 2
RSEG ?BI?_RegDataIn?BUSIO
?_RegDataIn?BIT:
IntFlag?250: DBIT 1
RSEG ?DT?_RegByteOut?BUSIO
?_RegByteOut?BYTE:
index?351: DS 1
val?352: DS 1
RSEG ?BI?_RegByteOut?BUSIO
?_RegByteOut?BIT:
IntFlag?353: DBIT 1
RSEG ?DT?_RegWordOut?BUSIO
?_RegWordOut?BYTE:
b?456: DS 2
RSEG ?DT?_RegBitOut?BUSIO
?_RegBitOut?BYTE:
index?557: DS 1
val?558: DS 1
mask?559: DS 1
RSEG ?DT?_RegDataOut?BUSIO
?_RegDataOut?BYTE:
index?661: DS 1
s?662: DS 3
cnt?663: DS 2
ORG 6
byteCnt?664: DS 2
RSEG ?BI?_RegDataOut?BUSIO
?_RegDataOut?BIT:
IntFlag?665: DBIT 1
RSEG ?DT?_TconByteOut?BUSIO
?_TconByteOut?BYTE:
index?766: DS 1
val?767: DS 1
RSEG ?DT?_PortDataOut?BUSIO
?_PortDataOut?BYTE:
index?868: DS 1
c0?869: DS 1
s?870: DS 3
cnt?871: DS 2
ORG 7
byteCnt?872: DS 2
RSEG ?BI?_PortDataOut?BUSIO
?_PortDataOut?BIT:
IntFlag?873: DBIT 1
RSEG ?DT?_eepByteOut?BUSIO
?_eepByteOut?BYTE:
index?974: DS 2
val?975: DS 1
ORG 3
slv?976: DS 1
RSEG ?BI?_eepByteOut?BUSIO
?_eepByteOut?BIT:
IntFlag?977: DBIT 1
RSEG ?DT?_eepByteIn?BUSIO
?_eepByteIn?BYTE:
index?1078: DS 2
ORG 2
bval?1079: DS 1
slv?1080: DS 1
RSEG ?DT?_eepDataIn?BUSIO
?_eepDataIn?BYTE:
index?1181: DS 2
s?1182: DS 3
cnt?1183: DS 2
ORG 7
byteCnt?1184: DS 2
slv?1185: DS 1
RSEG ?DT?_eepDataOut?BUSIO
?_eepDataOut?BYTE:
index?1286: DS 2
s?1287: DS 3
cnt?1288: DS 2
ORG 7
byteCnt?1289: DS 2
slv?1290: DS 1
i?1291: DS 1
RSEG ?BI?_eepDataOut?BUSIO
?_eepDataOut?BIT:
IntFlag?1292: DBIT 1
; /************************************************
; * *
; * BUSIO.C: IO control routines. *
; * *
; *************************************************/
; #include "MOSAIC.h"
; #include "BUSIO.h"
;
; #include <reg51.h>
; #include "global.h"
;
;
;
;
;
;
;
; /**********************************************
; * Send Table data to MOSAIC regs *
; ***********************************************/
; void RegDataTableOut(unsigned char *s)
RSEG ?PR?_RegDataTableOut?BUSIO
USING 0
_RegDataTableOut:
MOV s?040,R3
MOV s?040+01H,R2
MOV s?040+02H,R1
; SOURCE LINE # 21
; {
; SOURCE LINE # 22
?C0001:
; unsigned char cnd, index;
;
; while ((cnd = *s++) != -1) {
; SOURCE LINE # 25
MOV R0,#s?040
CLR A
MOV B,#01H
LCALL ?C?PLDIIDATA
LCALL ?C?CLDPTR
MOV cnd?041,A
CPL A
JZ ?C0003
; index = *s++;
; SOURCE LINE # 26
MOV R0,#s?040
CLR A
MOV B,#01H
LCALL ?C?PLDIIDATA
LCALL ?C?CLDPTR
MOV index?042,A
; RegDataOut(index, s, cnd);
; SOURCE LINE # 27
MOV R7,A
MOV R3,s?040
MOV R2,s?040+01H
MOV R1,s?040+02H
MOV A,cnd?041
MOV ?_RegDataOut?BYTE+04H,#00H
MOV ?_RegDataOut?BYTE+05H,A
LCALL _RegDataOut
; s += cnd;
; SOURCE LINE # 28
MOV A,cnd?041
ADD A,s?040+02H
MOV s?040+02H,A
CLR A
ADDC A,s?040+01H
MOV s?040+01H,A
; }
; SOURCE LINE # 29
SJMP ?C0001
; }
; SOURCE LINE # 30
?C0003:
RET
; END OF _RegDataTableOut
;
;
; /**********************************************
; * Receive byte of data from MOSAIC regs *
; ***********************************************/
; unsigned char RegByteIn(unsigned char index)
RSEG ?PR?_RegByteIn?BUSIO
USING 0
_RegByteIn:
MOV index?143,R7
; SOURCE LINE # 36
; {
; SOURCE LINE # 37
; unsigned char data val;
;
; #if DISABLEINT0
; bit IntFlag;
;
; /* disable interrupt 0 */
; IntFlag = EX0;
; SOURCE LINE # 44
MOV C,EX0
MOV IntFlag?145,C
; EX0 = 0;
; SOURCE LINE # 45
CLR EX0
; #endif
;
; #if USE_I2CBUS
; /* I2C Start and send slave address */
; GoI2CMaster(SLAVEADDR_REGW);
; SOURCE LINE # 50
MOV R7,#030H
LCALL _GoI2CMaster
; if (NoAck | BusFault) goto buserror;
; SOURCE LINE # 51
MOV C,BusFault
ORL C,NoAck
JC ?_RegByteIn?endi2c
?C0004:
;
; /* Send comm */
; SendI2CByte(READ_BYTE);
; SOURCE LINE # 54
MOV R7,#080H
LCALL _SendI2CByte
; if (NoAck) goto buserror;
; SOURCE LINE # 55
JB NoAck,?_RegByteIn?endi2c
?C0006:
;
; /* Send index */
; SendI2CByte(index);
; SOURCE LINE # 58
MOV R7,index?143
LCALL _SendI2CByte
; if (NoAck) goto buserror;
; SOURCE LINE # 59
JB NoAck,?_RegByteIn?endi2c
?C0007:
;
; SendI2CStop();
; SOURCE LINE # 61
LCALL SendI2CStop
;
; /* I2C Start and send slave address */
; GoI2CMaster(SLAVEADDR_REGR);
; SOURCE LINE # 64
MOV R7,#031H
LCALL _GoI2CMaster
; if (NoAck | BusFault) goto buserror;
; SOURCE LINE # 65
MOV C,BusFault
ORL C,NoAck
JC ?_RegByteIn?endi2c
?C0008:
;
; /* data transmit */
; val = RcvI2CByte(1);
; SOURCE LINE # 68
MOV R7,#01H
LCALL _RcvI2CByte
MOV val?144,R7
;
; endi2c:
; SOURCE LINE # 70
?_RegByteIn?endi2c:
; /* Finish transmition */
; SendI2CStop();
; SOURCE LINE # 72
LCALL SendI2CStop
; #endif
;
; #if USE_SPIBUS
; /* Start SPI and set to WRITE mode */
; SPIStart(SPI_WRITE);
; if(BusFault) goto buserror;
;
; /* Send comm */
; SendSPIByte(READ_BYTE);
;
; /* Send index */
; SendSPIByte(index);
;
; /* Stop SPI bus temperally */
; SPIStop();
;
; /* Start SPI and set to READ mode */
; SPIStart(SPI_READ);
; if(BusFault) goto buserror;
;
; /* data transmit */
; val = RcvSPIByte();
;
; buserror:
; /* Finish transmition */
; SPIStop();
; #endif
;
; #if USE_PARALBUS
; /* Send comm */
; PARALPORT = READ_BYTE;
;
; /* Send index */
; PARALPORT = index;
;
; /* data transmit */
; val = PARALPORT;
; #endif
;
; #if DISABLEINT0
; /* restove interrupt 0 flag */
; EX0 = IntFlag;
; SOURCE LINE # 114
MOV C,IntFlag?145
MOV EX0,C
; #endif
;
; return(val);
; SOURCE LINE # 117
MOV R7,val?144
;
; buserror:
; SOURCE LINE # 119
; #if DEBUGMSG
; printf(" BUS error (RegByteIn) !!!!\n");
; #endif
; goto endi2c;
; SOURCE LINE # 123
; }
; SOURCE LINE # 124
?C0010:
RET
; END OF _RegByteIn
;
; /**********************************************
; * Receive bytes of data from MOSAIC regs *
; ***********************************************/
; void RegDataIn(unsigned char index, unsigned char *s, int cnt)
RSEG ?PR?_RegDataIn?BUSIO
USING 0
_RegDataIn:
MOV index?246,R7
MOV s?247,R3
MOV s?247+01H,R2
MOV s?247+02H,R1
; SOURCE LINE # 129
; {
; SOURCE LINE # 130
; int data byteCnt;
;
; #if DISABLEINT0
; bit IntFlag;
;
; /* disable interrupt 0 */
; IntFlag = EX0;
; SOURCE LINE # 137
MOV C,EX0
MOV IntFlag?250,C
; EX0 = 0;
; SOURCE LINE # 138
CLR EX0
; #endif
;
; #if USE_I2CBUS
; /* I2C Start and send slave address */
; GoI2CMaster(SLAVEADDR_REGW);
; SOURCE LINE # 143
MOV R7,#030H
LCALL _GoI2CMaster
; if (NoAck | BusFault) goto buserror;
; SOURCE LINE # 144
MOV C,BusFault
ORL C,NoAck
JC ?_RegDataIn?endi2c
?C0011:
;
; /* Send comm */
; SendI2CByte(READ_AUTOINC);
; SOURCE LINE # 147
MOV R7,#0C0H
LCALL _SendI2CByte
; if (NoAck) goto buserror;
; SOURCE LINE # 148
JB NoAck,?_RegDataIn?endi2c
?C0013:
;
; /* Send index */
; SendI2CByte(index);
; SOURCE LINE # 151
MOV R7,index?246
LCALL _SendI2CByte
; if (NoAck) goto buserror;
; SOURCE LINE # 152
JB NoAck,?_RegDataIn?endi2c
?C0014:
;
; SendI2CStop();
; SOURCE LINE # 154
LCALL SendI2CStop
;
; /* I2C Start and send slave address */
; GoI2CMaster(SLAVEADDR_REGR);
; SOURCE LINE # 157
MOV R7,#031H
LCALL _GoI2CMaster
; if (NoAck | BusFault) goto buserror;
; SOURCE LINE # 158
MOV C,BusFault
ORL C,NoAck
JC ?_RegDataIn?endi2c
?C0015:
;
; /* data transmit */
; for(byteCnt = cnt; byteCnt > 0; byteCnt--) {
; SOURCE LINE # 161
MOV byteCnt?249,cnt?248
MOV byteCnt?249+01H,cnt?248+01H
?C0016:
SETB C
MOV A,byteCnt?249+01H
SUBB A,#00H
MOV A,byteCnt?249
XRL A,#080H
SUBB A,#080H
JC ?_RegDataIn?endi2c
; *s++ = RcvI2CByte(byteCnt);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -