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

📄 ex.asm

📁 这是购买周立功的试验箱时候松的源代码。很经典的代码。希望学习单片机的朋友好好研究。短小精悍。有意思。这是第三部分。后面还有好多。不知道管理员能否让我通过?
💻 ASM
字号:
	SDA		BIT	P1.7	;I2C总线定义
	SCL		BIT	P1.6
	RST		BIT	P1.0
	KEY_INT		BIT	P3.2
	MTD		EQU	40H	;发送数据缓冲器
	MRD		EQU	49H	;接收数据缓冲区
	
	;定义器件地址,变
	ZLG7290		EQU	70H	;ZLG7290的器件地址
	ACK		BIT	10H	;应答标志位
	SLA		DATA	50H	;器件的从地址
	SUBA		DATA	51H	;器件的子地址
	NUMBYTE		DATA	52H	;读/写的字节数变量

	ORG		8000H
	LJMP	MAIN
	ORG		8100H

;-------主程序如下:
MAIN:
	MOV 	SP,#70H	
	CLR	RST
	LCALL 	DELAY
	SETB	RST
	LCALL 	DELAY
MAINLOOP:
	JNB	KEY_INT,KEY_HANDLE
	SJMP	MAINLOOP
KEY_HANDLE:
	MOV	SLA,#ZLG7290	;指定器件地址
	MOV	SUBA,#01H	;指定子地址
	MOV	NUMBYTE,#01H	;发送2字节数据
	LCALL	IRDNBYTE	;调用写2字节数据程序
	LCALL	DELAY
	MOV 	R7,#08H
	MOV	A,#60H
HANDLELOOP:
	
	MOV	MTD,A
	PUSH	ACC
	MOV	30H,R7
	MOV	MTD+1,MRD
	MOV	SLA,#ZLG7290	;指定器件地址
	MOV	SUBA,#07H	;指定子地址
	MOV	NUMBYTE,#02H	;发送2字节数据
	LCALL	IWRNBYTE	;调用写2字节数据程序

	LCALL 	DELAY
	USING	2
	MOV	R7,30H
	POP	ACC
	INC	A
	DJNZ	R7,HANDLELOOP
	SJMP	MAINLOOP

DELAY:
	MOV 	R7,#80H
MIN:	DJNZ 	R7,YS500
	RET
YS500:	LCALL 	YS500US
	LJMP 	MIN
YS500US:MOV 	R6,#80H
	DJNZ 	R6,$
	RET
DELAY1:	MOV 	R7,#20H
	DJNZ 	R7,$
	RET

$INCLUDE(VI2C_ASM.INC)		;包含VIIC软件包
	END

⌨️ 快捷键说明

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