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

📄 iicnet1.a51.bak

📁 at24c512 at24c1024 at24c16 at24c64 at24c32 等iiceeprom读写通用程序。
💻 BAK
📖 第 1 页 / 共 2 页
字号:
;20060422 12:00通过对24c512的变地址读写

;---------------------------------------------------------------------------------
;COM单元程序
;---------------------------------------------------------------------------------
CS	BIT	P3.7		;eeprom喂狗

ComTxed bit	00H	;数据发送成功标记




;---------------------------------------------------------------------------------
;IIC单元程序
;---------------------------------------------------------------------------------

;引脚定义
SDA	BIT	P3.3
SCL	BIT	P3.2

WDT	BIT	P1.4

;常量定义
IICWAD_C	EQU	60H		;IIC读写半周期延时
C512Wr		EQU	0A0H	;24C512写入指令
C512Rd			EQU	0A1H	;24C512读出指令

;位变量定义
IICReAckB	BIT	01H	; IIC接收返回应答信号接收成功标记,1时接收成功


;变量定义
IICDelayCo	DATA	30H	;延时子程序延时计数器
IICRCo			DATA	31H	;IIC总线发送和接收数据字节时所用的位计数器
IICData		DATA	32H	;从IIC总线接收的数据字节
IICWAD		DATA	33H ;IIC等待应答信号检测应答次数
C512Ad0		DATA	34H	;24C512读写地址0
C512Ad1		DATA	35H	;24C512读写地址1
C512Data		DATA	36H	;24C512读写数据






;*********************************************************************************
;程序开始
;*********************************************************************************
ORG	0000H
AJMP 0030H

;---------------------------------------------------------------------------------
;中断入口
;---------------------------------------------------------------------------------



ORG 0003H		;外中断0入口
;AJMP  $

ORG 000BH		;定时器0中断入口
;AJMP	$

ORG 0013H		;外中断1入口
;AJMP	$

ORG 001BH		;定时器1中断入口
;AJMP	$

ORG 0023H		;com口
;AJMP	$

ORG 002BH		;定时器2中断入口
;AJMP	$





;*********************************************************************************
;主程序
;*********************************************************************************
ORG 0030H
STAR:
MOV SP,#10H							;设定堆栈起始地址

MOV		P1,#0FFH

CLR	RS0				;选择寄存器组0
CLR	RS1

;---------------------------------------------------------------------------------
;初始化计算脉冲长度的定时器0
;---------------------------------------------------------------------------------
MOV TMOD,#21H		;定时器0 1的工作方式
;MOV TH0,#00H
;MOV TL0,#00H
;SETB TR0

MOV TL1,#0FAH		;22.1184-9600
MOV TH1,#0FAH
SETB TR1

;com口工作方式
MOV SCON,#52H


;MOV PCON,#80H		;倍增波特率


;SETB	TR0
;SETB	TR1
;MOV	IE,#00H

CLR	RI
;SETB	TI

MOV	C512Ad1,#00H
MOV	C512Ad0,#01H
MOV	C512Data,#5FH




;---------------------------------------------------------------------------------
;主循环
;---------------------------------------------------------------------------------
MAIN:
	ACALL	rst_wdog
	ACALL	IICTEST
AJMP	MAIN
;---------------------------------------------------------------------------------





;---------------------------------------------------------------------------------
;子程序开始
;---------------------------------------------------------------------------------

;---------------------------------------------------------------------------------
;IIC TEST
;---------------------------------------------------------------------------------
IICTEST:
JNB RI,IICTESTEND
CLR RI
MOV	A,SBUF
CJNE	A,#01H,IICTEST_20
IICTEST_10:
INC	C512Data
ACALL	IICWr512

JB	IICReAckB,IICTEST_11
MOV	A,#0EEH
MOV	SBUF,A
AJMP	IICTESTEND

IICTEST_11:
MOV	A,C512Data
MOV	SBUF,A
AJMP	IICTESTEND



IICTEST_20:
CJNE	A,#02H,IICTEST_30
ACALL	IICRd512

JB	IICReAckB,IICTEST_21
MOV	A,#0EEH
MOV	SBUF,A

AJMP	IICTESTEND

IICTEST_21:
MOV	A,IICData
MOV	SBUF,A
AJMP	IICTESTEND


IICTEST_30:
CJNE	A,#03H,IICTEST_40
INC	C512Ad0
MOV	A,C512Ad0
MOV	SBUF,A
AJMP	IICTESTEND

IICTEST_40:
CJNE	A,#04H,IICTEST_50
DEC	C512Ad0
MOV	A,C512Ad0
MOV	SBUF,A

IICTEST_50:
CJNE	A,#05H,IICTESTEND

ACALL	IICCR

JB	IICReAckB,IICTEST_51
MOV	A,#0EEH
IICTEST_51:
MOV	SBUF,A


IICTESTEND:
RET



IICCR:


				ACALL	IICStart					;启动iic传送
				;发送寻址数据
				MOV	A,#C512Rd					;读取要操作的器件地址和操作方向(读/写)到累加器
				ACALL	IICSendByte			;发送累加器中的数据
				CLR	IICReAckB					;清零返回应答位
				ACALL	IICWaitAck				;等待应答动作
				JNB	IICReAckB,IICCREND;无应答跳转结束传送,有应答继续传送
			
				;读出数据(连续批量读出数据时可以修改该处)
				ACALL	IICRecByte				;发送累加器中的数据
				ACALL	IICNoAck					;发送不应答
				
	IICCREND:									;无应答转入点
	
	ACALL	IICStop								;发送iic结束通讯






RET




;---------------------------------------------------------------------------------
; Name		: ComTx
; Function	: send data from Tx Pin
; Calls		: None
; Input		: None
; Outputs	: None
; Register	: None
; Return	: None
; Date		: 20060420 Heng
;---------------------------------------------------------------------------------
ComTx:
	jnb	TI,ComTx00
	mov	A,#5FH
	mov	sbuf,A
	clr	TI
	setb	ComTxed
	ajmp	ComTx10
	ComTx00:
		clr	ComTxed
	ComTx10:
	ret














;*********************************************************************************
;* Name: RST_WDOG
;* Description: Reset Watchdog Timer
;* Function: 在没有输入输出时喂狗
;* Calls: None
;* Input: None
;* Outputs: None
;* Register Usage: None
;*********************************************************************************
rst_wdog:
             clr        cs                ; Bring /CS low to reset watchdog
             setb       cs                ; Bring /CS high
             ret










;**********************************************************
;iic
;**********************************************************

;---------------------------------------------------------------------------------
; Name		: IICDelay
; Function	: iic延时函数传送半位延时
; Calls		: None
; Input		: None

⌨️ 快捷键说明

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