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

📄 x5045.asm

📁 51单片机用汇编实例 包括ad
💻 ASM
字号:
;==============================================================
; 文件名称: X5045.ASM
; 功能描述: 先写再读 X5045
;==============================================================
CS	BIT  94H		; P1.4

SPDR	DATA 086H		; SPI寄存器声明
SPSR	DATA 0AAH
SPCR	DATA 0D5H

ADDR	DATA 30H
BYTE	DATA 31H

	ORG 0000H
	LJMP START

	ORG 0100H
START:	NOP
	MOV SPCR, #51H			; 设置 SPI 的控制寄存器
	MOV ADDR, #00H			; 写入X5045的地址
	MOV BYTE, #20H			; 写入X5045的数据
	MOV R4, #00H			; 写数据个数计数
STLP1:	LCALL WRITE			; 调用写函数
	INC ADDR
	INC BYTE
	MOV R6, #80H			; 延时
	LCALL DELAY
	INC R4
	CJNE R4, #16, STLP1
	MOV R0, #40H			; 读出数据存放首地址
	MOV R4, #00H			; 计数
	MOV ADDR, #00H			; 读取地址
	CLR CS				; 设备使能
	MOV A, #03H			; 读命令
	LCALL SST_MASTERIO
	MOV A, ADDR			; 地址
	LCALL SST_MASTERIO
STLP2:	MOV A, #00H
	LCALL SST_MASTERIO		; 读取数据
	MOV A, R1
	MOV @R0, A			; 保存数据
	INC R0
	INC R4
	CJNE R4, #16, STLP2
	SETB CS

	SJMP $




; 延时子程序
; 入口参数: R6(增加延时)
; 影响寄存器: R7
DELAY:	MOV R7, #10
DLAY1:	DJNZ R7, DLAY1
	DJNZ R6, DELAY
	RET

; 处理主从控制器间的字节传输
; 入口参数: A (SPI 输出)
; 出口参数: R1
SST_MASTERIO:
	MOV SPDR, A
MIO1:	MOV A, SPSR
	ANL A, #80H
	CJNE A, #80H, MIO1
	ANL SPSR, #7FH
	MOV R1, SPDR
	RET

; 读取状态寄存器
; 出口参数: R1
;READ_STATUS_REG:
;	CLR CS				; 使能设备
;	MOV A, #05H			; 发送 RDSR 命令
;	LCALL SST_MASTERIO
;	MOV A, #00H
;	LCALL SST_MASTERIO		; 接收字节
;	SETB CS				; 禁止设备
;	RET

; 写状态寄存器(看门狗设置)
; 入口参数: R2 (状态字)
;WRSR:	CLR CS
;	MOV A, #01H
;	LCALL SST_MASTERIO
;	MOV A, R2
;	LCALL SST_MASTERIO
;	SETB CS
;	RET

; 使能写操作
WREN:	CLR CS
	MOV A, #06H
	LCALL SST_MASTERIO
	SETB CS
	RET

; 禁止写操作
;WRDI:	CLR CS
;	MOV A, #04H
;	LCALL SST_MASTERIO
;	SETB CS
;	RET

; 读一个字节
; 入口参数: ADDR (操作地址)
; 出口参数: R1
;READ:	CLR CS
;	MOV A, #03H
;	LCALL SST_MASTERIO
;	MOV A, ADDR
;	LCALL SST_MASTERIO
;	SETB CS
;	RET

; 写一个字节
WRITE:	LCALL WREN			; 写使能
	MOV R6, #01H
	LCALL DELAY			; 延时
	CLR CS				; 设备使能
	MOV A, #02H			; Write 命令
	LCALL SST_MASTERIO
	MOV A, ADDR
	LCALL SST_MASTERIO
	MOV A, BYTE
	LCALL SST_MASTERIO
	SETB CS				; 禁止设备
	RET

	END

⌨️ 快捷键说明

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