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

📄 pcf8583.asm

📁 dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,fir等的很多程序.
💻 ASM
📖 第 1 页 / 共 3 页
字号:
*******************************************************
* 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 + -