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

📄 iic.src

📁 TSL256源程序驱动!通过其IIC口采集环境光光强
💻 SRC
📖 第 1 页 / 共 3 页
字号:
; .\IIC.SRC generated from: ..\Inc\IIC.c
; COMPILER INVOKED BY:
;        d:\Keil\C51\BIN\C51.EXE ..\Inc\IIC.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND PRINT(.\IIC.lst) SRC(.\IIC.SRC)

$NOMOD51

NAME	IIC

CCF2	BIT	0D8H.2
P1M0	DATA	091H
P0M1	DATA	094H
P0	DATA	080H
CCF3	BIT	0D8H.3
P2M0	DATA	095H
P1M1	DATA	092H
P1	DATA	090H
CCF4	BIT	0D8H.4
P3M0	DATA	0B1H
P2M1	DATA	096H
P2	DATA	0A0H
CCF5	BIT	0D8H.5
P3M1	DATA	0B2H
P3	DATA	0B0H
T0	BIT	0B0H.4
AC	BIT	0D0H.6
T1	BIT	0B0H.5
ISP_TRIG	DATA	0E6H
EA	BIT	0A8H.7
T2	BIT	090H.0
SPCTL	DATA	085H
CF	BIT	0D8H.7
FE	BIT	098H.7
CH	DATA	0F9H
IE	DATA	0A8H
CL	DATA	0E9H
CEX0	BIT	0B0H.7
CCAP0H	DATA	0FAH
CEX1	BIT	0B0H.5
CCAP1H	DATA	0FBH
CEX2	BIT	0A0H.0
CCAP2H	DATA	0FCH
CEX3	BIT	0A0H.4
CCAP3H	DATA	0FDH
CR	BIT	0D8H.6
CCAP4H	DATA	0FEH
CCAP0L	DATA	0EAH
EXF2	BIT	0C8H.6
RD	BIT	0B0H.7
CCAP5H	DATA	0FFH
CCAP1L	DATA	0EBH
CCAPM0	DATA	0DAH
CCAP2L	DATA	0ECH
CCAPM1	DATA	0DBH
ES	BIT	0A8H.4
CCAP3L	DATA	0EDH
CCAPM2	DATA	0DCH
IP	DATA	0B8H
CCAP4L	DATA	0EEH
CCAPM3	DATA	0DDH
CCAP5L	DATA	0EFH
CCAPM4	DATA	0DEH
RI	BIT	098H.0
CCAPM5	DATA	0DFH
INT0	BIT	0B0H.2
CY	BIT	0D0H.7
TI	BIT	098H.1
INT1	BIT	0B0H.3
CLK_DIV	DATA	0C7H
RCAP2H	DATA	0CBH
ISP_CMD	DATA	0E5H
PS	BIT	0B8H.4
SP	DATA	081H
T2EX	BIT	090H.1
CMOD	DATA	0D9H
CCON	DATA	0D8H
OV	BIT	0D0H.2
RCAP2L	DATA	0CAH
C_T2	BIT	0C8H.1
WR	BIT	0B0H.6
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
SBUF	DATA	099H
PCON	DATA	087H
ADC_CONTR	DATA	0C5H
ISP_ADDRH	DATA	0E3H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
ISP_ADDRL	DATA	0E4H
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
AUXR	DATA	08EH
CP_RL2	BIT	0C8H.0
ADC_DATA	DATA	0C6H
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
EX1	BIT	0A8H.2
TB8	BIT	098H.3
IT1	BIT	088H.2
TH2	DATA	0CDH
ADC_LOW2	DATA	0BEH
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
ECI	BIT	0B0H.4
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
TL2	DATA	0CCH
PT0	BIT	0B8H.1
LED	BIT	090H.0
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
ISP_CONTR	DATA	0E7H
TR0	BIT	088H.4
RS1	BIT	0D0H.4
TR1	BIT	088H.6
SDA	BIT	090H.1
PX0	BIT	0B8H.0
TR2	BIT	0C8H.2
WDT_CONTR	DATA	0E1H
PX1	BIT	0B8H.2
PCA_PWM0	DATA	0F2H
DRE	BIT	0B0H.2
EADC_SPI	BIT	0A8H.5
PCA_PWM1	DATA	0F3H
DPH	DATA	083H
PCA_PWM2	DATA	0F4H
PCA_PWM3	DATA	0F5H
PCA_PWM4	DATA	0F6H
PCA_PWM5	DATA	0F7H
DPL	DATA	082H
EPCA_LVD	BIT	0A8H.6
IPH	DATA	0B7H
SPSTAT	DATA	084H
SCL	BIT	090H.2
EXEN2	BIT	0C8H.3
REN	BIT	098H.4
PADC_SPI	BIT	0B8H.5
T2MOD	DATA	0C9H
T2CON	DATA	0C8H
ISP_DATA	DATA	0E2H
PPCA_LVD	BIT	0B8H.6
SADEN	DATA	0B9H
RXD	BIT	0B0H.0
SADDR	DATA	0A9H
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H
CCF0	BIT	0D8H.0
CCF1	BIT	0D8H.1
SPDAT	DATA	086H
P0M0	DATA	093H
?PR?I2C_Start?IIC    SEGMENT CODE INBLOCK 
?PR?I2C_Stop?IIC     SEGMENT CODE INBLOCK 
?PR?_Send_Byte_I2C?IIC                   SEGMENT CODE INBLOCK 
?PR?Read_Byte_I2C_ACK?IIC                SEGMENT CODE INBLOCK 
?PR?Read_Byte_I2C_NoACK?IIC              SEGMENT CODE INBLOCK 
?PR?_TSL2561_write_byte?IIC              SEGMENT CODE INBLOCK 
?PR?_TSL2561_read_byte?IIC               SEGMENT CODE INBLOCK 
?DT?_TSL2561_read_byte?IIC               SEGMENT DATA OVERLAYABLE 
?PR?InitTsl256x?IIC  SEGMENT CODE INBLOCK 
?DT?InitTsl256x?IIC  SEGMENT DATA OVERLAYABLE 
?PR?_CalculateLux?IIC                    SEGMENT CODE INBLOCK 
?DT?_CalculateLux?IIC                    SEGMENT DATA OVERLAYABLE 
?PR?GetLux?IIC       SEGMENT CODE INBLOCK 
?DT?GetLux?IIC       SEGMENT DATA OVERLAYABLE 
?DT?IIC              SEGMENT DATA 
	EXTRN	CODE (_delay_1ms)
	EXTRN	CODE (?C?LSHL)
	EXTRN	CODE (?C?LMUL)
	EXTRN	CODE (?C?ULSHR)
	EXTRN	CODE (?C?ULCMP)
	EXTRN	CODE (?C?ULDIV)
	PUBLIC	CH1
	PUBLIC	CH0
	PUBLIC	GetLux
	PUBLIC	?_CalculateLux?BYTE
	PUBLIC	_CalculateLux
	PUBLIC	InitTsl256x
	PUBLIC	_TSL2561_read_byte
	PUBLIC	_TSL2561_write_byte
	PUBLIC	Read_Byte_I2C_NoACK
	PUBLIC	Read_Byte_I2C_ACK
	PUBLIC	_Send_Byte_I2C
	PUBLIC	I2C_Stop
	PUBLIC	I2C_Start

	RSEG  ?DT?_CalculateLux?IIC
?_CalculateLux?BYTE:
      iGain?856:   DS   2
       tInt?857:   DS   2
        ch0?858:   DS   2
        ch1?859:   DS   2
      iType?860:   DS   2
	ORG  10
     ratio1?861:   DS   4
      ratio?862:   DS   4
       temp?863:   DS   4
        lux?864:   DS   4
    chScale?865:   DS   4
   channel1?866:   DS   4
   channel0?867:   DS   4
          b?868:   DS   2
          m?869:   DS   2

	RSEG  ?DT?_TSL2561_read_byte?IIC
?_TSL2561_read_byte?BYTE:
     status?654:   DS   1

	RSEG  ?DT?GetLux?IIC
?GetLux?BYTE:
          i?970:   DS   2

	RSEG  ?DT?InitTsl256x?IIC
?InitTsl256x?BYTE:
     status?755:   DS   1

	RSEG  ?DT?IIC
            CH0:   DS   2
            CH1:   DS   2
; //**********************************************************
; //**                     IIC驱动程序                   **
; //**          单片机: STC12C5410AD 主频: 24MHz          **
; //**              Jumping <2008.04.20>              **
; //**********************************************************
; 
; //#include <REGx051.H>								// AT89C4051头文件
; #include "../inc/STC12C5410AD.H"					// AT89C4051头文件
; #include <INTRINS.H>								// 系统调令头文件
; #include "def.h"									// 类型定义文件
; #include "config.h"									// 配置头文件
; #include "IIC.h"									// 配置头文件
; #include "uart.h"									// 配置头文件
; 
; //*****变量声明****
; INT CH0,CH1;     
; 
; // *** 函数声明 ***
; void I2C_Start (void);
; void I2C_Stop (void);
; BOOL Send_Byte_I2C(BYTE tmData);
; BYTE Read_Byte_I2C_ACK();
; BYTE Read_Byte_I2C_NoACK();
; uchar TSL2561_read_byte( uchar addr);
; void InitTsl256x(void);
; INT GetLux(void);
; //BOOL Read_Data_I2C(BYTE iNum, unsigned int wAddr, BYTE tmData[64]);
; //BOOL Write_Data_I2C(BYTE iNum, unsigned int wAddr, BYTE tmData[64]);
; 
; //***************************************************************************************
; unsigned int CalculateLux(unsigned int iGain, unsigned int tInt, unsigned int ch0, unsigned int ch1, int iType);
; #pragma OPTIMIZE(4)
; /*******************************************************************************
; * 名    称: I2C_Start()
; * 功    能: 启动I2C操作
; * 入口参数: 无
; * 出口参数: 无
; *******************************************************************************/
; void I2C_Start (void)

	RSEG  ?PR?I2C_Start?IIC
I2C_Start:
	USING	0
			; SOURCE LINE # 39
; {
			; SOURCE LINE # 40
; 	uchar i;
; 
; 	SCL = 1;
			; SOURCE LINE # 43
	SETB 	SCL
; 	SDA = 1;
			; SOURCE LINE # 44
	SETB 	SDA
; 
; 	for(i=0; i<12; i++)
			; SOURCE LINE # 46
;---- Variable 'i?040' assigned to Register 'R7' ----
	CLR  	A
	MOV  	R7,A
?C0001:
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#0CH
	JNC  	?C0002
; 	_nop_ ();
			; SOURCE LINE # 47
	NOP  	
	INC  	R7
	SJMP 	?C0001
?C0002:
; 
; 	SDA = 0;
			; SOURCE LINE # 49
	CLR  	SDA
; 
; 	for(i=0; i<12; i++)
			; SOURCE LINE # 51
	CLR  	A
	MOV  	R7,A
?C0004:
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#0CH
	JNC  	?C0005
; 	_nop_ ();
			; SOURCE LINE # 52
	NOP  	
	INC  	R7
	SJMP 	?C0004
?C0005:
; 	
; 	SCL = 0;
			; SOURCE LINE # 54
	CLR  	SCL
; }
			; SOURCE LINE # 55
	RET  	
; END OF I2C_Start

; 
; 
; /*******************************************************************************
; * 名    称: I2C_Stop()
; * 功    能: 结束I2C操作
; * 入口参数: 无
; * 出口参数: 无
; *******************************************************************************/
; void I2C_Stop (void)

	RSEG  ?PR?I2C_Stop?IIC
I2C_Stop:
	USING	0
			; SOURCE LINE # 64
; {
			; SOURCE LINE # 65
; 	uchar i;
; 
; 	SCL = 0;
			; SOURCE LINE # 68
	CLR  	SCL
; 	SDA = 0;
			; SOURCE LINE # 69
	CLR  	SDA
; 
; 	for(i=0; i<12; i++)
			; SOURCE LINE # 71
;---- Variable 'i?141' assigned to Register 'R7' ----
	CLR  	A
	MOV  	R7,A
?C0008:
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#0CH
	JNC  	?C0009
; 	_nop_ ();
			; SOURCE LINE # 72
	NOP  	
	INC  	R7
	SJMP 	?C0008
?C0009:
; 	SCL = 1;
			; SOURCE LINE # 73
	SETB 	SCL
; 
; 	for(i=0; i<12; i++)
			; SOURCE LINE # 75
	CLR  	A
	MOV  	R7,A
?C0011:
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#0CH
	JNC  	?C0012
; 	_nop_ ();
			; SOURCE LINE # 76
	NOP  	
	INC  	R7
	SJMP 	?C0011
?C0012:
; 	SDA = 1;
			; SOURCE LINE # 77
	SETB 	SDA
; 								
; }
			; SOURCE LINE # 79
	RET  	
; END OF I2C_Stop

; /*********************************************/
; /*  name:  Send_Byte_I2C                     */
; /*  input: BYTE tmData                         */
; /*  output:	BOOL                             */
; /*  function: Send one tmData to 24256         */
; /*********************************************/
; BOOL Send_Byte_I2C(BYTE tmData)

	RSEG  ?PR?_Send_Byte_I2C?IIC
_Send_Byte_I2C:
	USING	0
			; SOURCE LINE # 86
;---- Variable 'tmData?242' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 87
; 	BYTE i,temp;
; 	BOOL bSendOk;
; 	
; 	temp = tmData;
			; SOURCE LINE # 91
;---- Variable 'temp?244' assigned to Register 'R6' ----
	MOV  	R6,AR7
; 
; 	SCL = 0;
			; SOURCE LINE # 93
	CLR  	SCL
; 
; 	for(i=0; i<8; i++)
			; SOURCE LINE # 95
;---- Variable 'i?243' assigned to Register 'R5' ----
	CLR  	A
	MOV  	R5,A
?C0015:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#08H
	JNC  	?C0016
; 	_nop_ ();
			; SOURCE LINE # 96
	NOP  	
	INC  	R5
	SJMP 	?C0015
?C0016:
; 
; 	for(i=0; i<8; i++)
			; SOURCE LINE # 98
	CLR  	A
	MOV  	R5,A
?C0018:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#08H
	JNC  	?C0019
; 	{
			; SOURCE LINE # 99
; 		if(temp & 0x80)
			; SOURCE LINE # 100
	MOV  	A,R6
	JNB  	ACC.7,?C0021
; 			SDA = 1;
			; SOURCE LINE # 101
	SETB 	SDA
	SJMP 	?C0022
?C0021:
; 		else
; 			SDA = 0;
			; SOURCE LINE # 103
	CLR  	SDA
?C0022:
; 
; 		_nop_ ();
			; SOURCE LINE # 105
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 106
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 107
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 108
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 109
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 110
	NOP  	
; 
; 		SCL = 1;
			; SOURCE LINE # 112
	SETB 	SCL
; 		temp = _crol_(temp,1);
			; SOURCE LINE # 113
	MOV  	R0,#01H
	MOV  	R7,AR6
	MOV  	A,R7
	INC  	R0
	SJMP 	?C0075
?C0074:
	RL   	A
?C0075:
	DJNZ 	R0,?C0074
	MOV  	R6,A
; 
; 		_nop_ ();
			; SOURCE LINE # 115
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 116
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 117
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 118
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 119
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 120
	NOP  	
; 
; 		SCL = 0;
			; SOURCE LINE # 122
	CLR  	SCL
; 
; 		_nop_ ();
			; SOURCE LINE # 124
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 125
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 126
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 127
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 128
	NOP  	
; 		_nop_ ();
			; SOURCE LINE # 129
	NOP  	
; 
; 	}
			; SOURCE LINE # 131
	INC  	R5
	SJMP 	?C0018
?C0019:
; 	
; 	for(i=0; i<5; i++)
			; SOURCE LINE # 133
	CLR  	A
	MOV  	R5,A
?C0023:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#05H
	JNC  	?C0024
; 	_nop_ ();
			; SOURCE LINE # 134
	NOP  	
	INC  	R5
	SJMP 	?C0023
?C0024:
; 	
; 	SCL = 1;
			; SOURCE LINE # 136
	SETB 	SCL

⌨️ 快捷键说明

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