📄 pcf8583.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx pcf8583.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pcf8583.if
; dspopt NOT RUN
; C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pcf8583.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pcf8583.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pcf8583.tmp
.port
.file "pcf8583.c"
.file "f2407regs_c.h"
.globl _IMR
.globl _GREG
.globl _IFR
.globl _IMRADDR
.globl _PIRQR0
.globl _PIRQR1
.globl _PIRQR2
.globl _PIACKR0
.globl _PIACKR1
.globl _PIACKR2
.globl _SCSR1
.globl _SCSR2
.globl _DINR
.globl _PIVR
.globl _WDCNTR
.globl _WDKEY
.globl _WDCR
.globl _SPICCR
.globl _SPICTL
.globl _SPISTS
.globl _SPIBRR
.globl _SPIEMU
.globl _SPIRXBUF
.globl _SPITXBUF
.globl _SPIDAT
.globl _SPIPRI
.globl _SCICCR
.globl _SCICTL1
.globl _SCIHBAUD
.globl _SCILBAUD
.globl _SCICTL2
.globl _SCIRXST
.globl _SCIRXEMU
.globl _SCIRXBUF
.globl _SCITXBUF
.globl _SCIPRI
.globl _XINT1CR
.globl _XINT2CR
.globl _PADATDIR
.globl _PBDATDIR
.globl _PCDATDIR
.globl _PDDATDIR
.globl _PEDATDIR
.globl _PFDATDIR
.globl _MCRA
.globl _MCRB
.globl _MCRC
.globl _ADCCTRL1
.globl _ADCCTRL2
.globl _MAXCONV
.globl _CHSELSEQ1
.globl _CHSELSEQ2
.globl _CHSELSEQ3
.globl _CHSELSEQ4
.globl _AUTOSEQSR
.globl _RESULT0
.globl _RESULT1
.globl _RESULT2
.globl _RESULT3
.globl _RESULT4
.globl _RESULT5
.globl _RESULT6
.globl _RESULT7
.globl _RESULT8
.globl _RESULT9
.globl _RESULT10
.globl _RESULT11
.globl _RESULT12
.globl _RESULT13
.globl _RESULT14
.globl _RESULT15
.globl _CALIBRATION
.globl _MDER
.globl _TCR
.globl _RCR
.globl _MCR
.globl _BCR2
.globl _BCR1
.globl _ESR
.globl _GSR
.globl _CEC
.globl _CANIFR
.globl _CANIMR
.globl _LAM0H
.globl _LAM0L
.globl _LAM1H
.globl _LAM1L
.globl _MSGID0L
.globl _MSGID0H
.globl _MSGCTRL0
.globl _MBX0A
.globl _MBX0B
.globl _MBX0C
.globl _MBX0D
.globl _MSGID1L
.globl _MSGID1H
.globl _MSGCTRL1
.globl _MBX1A
.globl _MBX1B
.globl _MBX1C
.globl _MBX1D
.globl _MSGID2L
.globl _MSGID2H
.globl _MSGCTRL2
.globl _MBX2A
.globl _MBX2B
.globl _MBX2C
.globl _MBX2D
.globl _MSGID3L
.globl _MSGID3H
.globl _MSGCTRL3
.globl _MBX3A
.globl _MBX3B
.globl _MBX3C
.globl _MBX3D
.globl _MSGID4L
.globl _MSGID4H
.globl _MSGCTRL4
.globl _MBX4A
.globl _MBX4B
.globl _MBX4C
.globl _MBX4D
.globl _MSGID5L
.globl _MSGID5H
.globl _MSGCTRL5
.globl _MBX5A
.globl _MBX5B
.globl _MBX5C
.globl _MBX5D
.globl _GPTCONA
.globl _T1CNT
.globl _T1CMPR
.globl _T1PR
.globl _T1CON
.globl _T2CNT
.globl _T2CMPR
.globl _T2PR
.globl _T2CON
.globl _COMCONA
.globl _ACTRA
.globl _DBTCONA
.globl _CMPR1
.globl _CMPR2
.globl _CMPR3
.globl _CAPCONA
.globl _CAPFIFOA
.globl _CAP1FIFO
.globl _CAP2FIFO
.globl _CAP3FIFO
.globl _CAP1FBOT
.globl _CAP2FBOT
.globl _CAP3FBOT
.globl _EVAIMRA
.globl _EVAIMRB
.globl _EVAIMRC
.globl _EVAIFRA
.globl _EVAIFRB
.globl _EVAIFRC
.globl _GPTCONB
.globl _T3CNT
.globl _T3CMPR
.globl _T3PR
.globl _T3CON
.globl _T4CNT
.globl _T4CMPR
.globl _T4PR
.globl _T4CON
.globl _COMCONB
.globl _ACTRB
.globl _DBTCONB
.globl _CMPR4
.globl _CMPR5
.globl _CMPR6
.globl _CAPCONB
.globl _CAPFIFOB
.globl _CAP4FIFO
.globl _CAP5FIFO
.globl _CAP6FIFO
.globl _CAP4FBOT
.globl _CAP5FBOT
.globl _CAP6FBOT
.globl _EVBIMRA
.globl _EVBIMRB
.globl _EVBIMRC
.globl _EVBIFRA
.globl _EVBIFRB
.globl _EVBIFRC
.globl _WSGR
.file "global.h"
.globl _port8001
.file "pcf8583.c"
.globl _pcdata
.globl _deviceAddr
.globl _Pcf8583IoInit
.globl _Pcf8583DelayI2c
.globl _Pcf8583Start
.globl _Pcf8583sendByte
.globl _Pcf8583Ack
.globl _Pcf8583Stop
.globl _WriteByte
.globl _Receive
.globl _HostNoAck
.globl _HostAck
.globl _ReadByte
.globl _ContinusWrite
.globl _ContinusRead
.globl _setCalendar
.globl _getCalendar
.text
.sym _Pcf8583IoInit,_Pcf8583IoInit,32,2,0
.globl _Pcf8583IoInit
.func 35
;>>>> void Pcf8583IoInit()
******************************************************
* FUNCTION DEF : _Pcf8583IoInit
******************************************************
_Pcf8583IoInit:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> sda_1;
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4112
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
.line 4
;>>>> scl_1;
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16448
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
.line 5
;>>>> WriteByte(0x00,0x00); //count
LACK 0
SACL *+
SACL *+
CALL _WriteByte
SBRK 2
EPI0_1:
.line 6
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 40,000000000H,1
.sym _Pcf8583DelayI2c,_Pcf8583DelayI2c,32,2,0
.globl _Pcf8583DelayI2c
.func 44
;>>>> void Pcf8583DelayI2c()
;>>>> int i;
******************************************************
* FUNCTION DEF : _Pcf8583DelayI2c
******************************************************
_Pcf8583DelayI2c:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _i,1,4,1,16
.line 4
;>>>> for(i=0x7d;i--;) i=i; //unused action
LACK 125
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 1
SACL *
ADDK 1
BZ L2
L1:
LAC *
SACL *
LAC *
SUBK 1
SACL *
ADDK 1
BNZ L1
L2:
EPI0_2:
.line 5
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 48,000000000H,2
.sym _Pcf8583Start,_Pcf8583Start,32,2,0
.globl _Pcf8583Start
.func 52
;>>>> void Pcf8583Start()
******************************************************
* FUNCTION DEF : _Pcf8583Start
******************************************************
_Pcf8583Start:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> sda_1;
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4112
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
.line 4
;>>>> scl_1;
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16448
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
.line 5
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 6
;>>>> sda_0;
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4096
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65519
AND _PFDATDIR
SACL _PFDATDIR
.line 7
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 8
;>>>> scl_0;
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16384
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
LACK 65471
AND _PBDATDIR
SACL _PBDATDIR
.line 9
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
EPI0_3:
.line 10
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 61,000000000H,1
.sym _Pcf8583sendByte,_Pcf8583sendByte,32,2,0
.globl _Pcf8583sendByte
.func 65
;>>>> void Pcf8583sendByte(uchar byte)
******************************************************
* FUNCTION DEF : _Pcf8583sendByte
******************************************************
_Pcf8583sendByte:
LF4 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+
.sym _byte,-3+LF4,12,9,16
.sym _flag,1,12,1,16
.sym _sz,2,12,1,16
.line 2
;>>>> uchar flag,sz;
.line 4
;>>>> scl_0; //scl = 0;
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16384
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
LACK 65471
AND _PBDATDIR
SACL _PBDATDIR
.line 5
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 6
;>>>> for(flag=0x80;flag!=0x00;flag=flag/2)
LACK 128
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
LAC *
BZ L4
L3:
.line 8
;>>>> sz=byte&flag; //clear unused bits
LAC *
SBRK 4-LF4
AND *
ADRK 5-LF4
SACL *
.line 9
;>>>> if(sz==0) {sda_0;} //if relatived bit is 0,sda = 0
LAC *
BNZ L5
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4096
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65519
AND _PFDATDIR
SACL _PFDATDIR
B L6
L5:
.line 10
;>>>> else {sda_1;} //if relatived bit is 1,sda = 1
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4112
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
L6:
.line 11
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c,AR1
.line 12
;>>>> scl_1; //scl = 1
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16448
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
.line 13
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 14
;>>>> scl_0; //scl = 0
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16384
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
LACK 65471
AND _PBDATDIR
SACL _PBDATDIR
.line 15
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 6
RSXM
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC * ,14
SACH * ,1
LAC *
BNZ L3
L4:
EPI0_4:
.line 17
MAR * ,AR1
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 81,000000000H,3
.sym _Pcf8583Ack,_Pcf8583Ack,44,2,0
.globl _Pcf8583Ack
.func 85
;>>>> uchar Pcf8583Ack()
******************************************************
* FUNCTION DEF : _Pcf8583Ack
******************************************************
_Pcf8583Ack:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR2
.sym _sz,1,12,1,16
.sym _k,2,12,1,16
.line 3
;>>>> uchar sz, k=0;
LACK 0
LARK AR2,2
MAR *0+
SACL * ,AR1
.line 4
;>>>> sda_1; //sda = 1
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4112
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
.line 5
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 6
;>>>> sda_in; //config sda as input port
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 61439
LDPK _PFDATDIR
AND _PFDATDIR
SACL _PFDATDIR
LACK 16
OR _PFDATDIR
SACL _PFDATDIR
.line 7
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 8
;>>>> scl_1; //scl = 1
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16448
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
.line 9
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 10
;>>>> sz = PFDATDIR&0x10; //test data bit
LACK 16
LDPK _PFDATDIR
AND _PFDATDIR
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 11
;>>>> if(sz==0x10) k = 1; // if data bit is 1,k=1,failed
LAC *
SUBK 16
BNZ L7
LACK 1
MAR *+
SACL *
B L8
L7:
.line 12
;>>>> else k = 0; // if data bit is 0,k=0;successed
LACK 0
MAR *+
SACL *
L8:
.line 13
;>>>> sda_0; scl_0; // scl = sda = 0
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4096
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65519
AND _PFDATDIR
SACL _PFDATDIR
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16384
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
LACK 65471
AND _PBDATDIR
SACL _PBDATDIR
.line 14
;>>>> return(k);
ZALS *
EPI0_5:
.line 15
MAR * ,AR1
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 99,000000000H,3
.sym _Pcf8583Stop,_Pcf8583Stop,32,2,0
.globl _Pcf8583Stop
.func 103
;>>>> void Pcf8583Stop()
******************************************************
* FUNCTION DEF : _Pcf8583Stop
******************************************************
_Pcf8583Stop:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> sda_0; //sda = 0
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4096
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65519
AND _PFDATDIR
SACL _PFDATDIR
.line 4
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 5
;>>>> scl_1; //scl = 1
LACK 49151
LDPK _MCRA
AND _MCRA
SACL _MCRA
LACK 16448
LDPK _PBDATDIR
OR _PBDATDIR
SACL _PBDATDIR
.line 6
;>>>> Pcf8583DelayI2c();
CALL _Pcf8583DelayI2c
.line 7
;>>>> sda_1; //sda = 1
LACK 61439
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 4112
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
EPI0_6:
.line 8
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 110,000000000H,1
.sym _WriteByte,_WriteByte,44,2,0
.globl _WriteByte
.func 114
;>>>> uchar WriteByte(uchar addr,uchar data)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -