当前位置:首页 > 单片机 > 单片机
[导读]X5045读写子程序;**************extern EEPROM constdefine******WRENEQU 06H ;X5045 WRITE ENABLE;WRDIEQU 04H ;X5045 write disableRDSREQU 05H ;Read x5045 status registerWRSREQU 01H ;Write x5045 status regi

X5045读写子程序
;**************extern EEPROM constdefine******
WRENEQU 06H ;X5045 WRITE ENABLE
;WRDIEQU 04H ;X5045 write disable
RDSREQU 05H ;Read x5045 status register
WRSREQU 01H ;Write x5045 status register
READEQU 03H ;Read data from x5045 instruction
WRITE EQU 02H ;Write data to x5045 instruction
STATUSEQU 30H ;STATUS REGISTER INIT
;*********************************************************
;***********读数据子程序********************
;数据最终在以R0间址的缓冲区中
RDX5_DAT: CLR A
RDX5_DAT0:MOV R7,#08H;8bit
RDX5_DAT1:CLR C
SETB SCK
NOP
NOP
NOP
NOP
NOP
CLR SCK ;产生下降边沿
NOP
NOP
NOP
NOP
NOP
MOV C,SDO ;读出数据
RLC A ;SO->Cy->ACC.0
DJNZ R7,RDX5_DAT1
MOV @R0,A ;数据暂存在缓冲区
INC R0
CLR ACC
DJNZ R1,RDX5_DAT0 ;未完继续
CLR SCK
RET
;********写数据子程序*******************
;********数据长度在 R1,数据在RO指向的地址中
WRITE_CD: CLR A
CLR C
WRITE_CD0:MOV A,@R0
MOV R7,#08H
WRITE_CD1:CLR SCK
RLC A
MOV SDI,C
CPL SCK ;SCK FOR 1 DATA IS valideation
CLR C
DJNZ R7,WRITE_CD1
INC R0;NEXT BYTE
DJNZ R1,WRITE_CD0
CLR SDI
RET
;**************读状态寄存器子程序
READ_STATUS:CLR A
CLR C
CLR CS
MOV A,#RDSR;Read status register instruction
MOV R7,#08H ;
READ_ST1: CLR SCK
RLC A ;FRIST FOR MSB BIT
MOV SDI,C
SETB SCK ;Make the rising edge of clock
CLR C
DJNZ R7,READ_ST1
MOV R7,#08H
READ_ST2: CLR C
SETB SCK ;DATA FROM X5045 TO CPU by the fulling edge
NOP
NOP
NOP
NOP
NOP
CPL SCK
NOP
NOP
NOP
NOP
NOP
MOV C,SDO
RLC A ;SO->Cy->ACC.0
DJNZ R7,READ_ST2
MOV 30H,A ;DATA SAVE TO "X5045" BUFFER
CLR SCK
SETB CS
RET

另外,如果不用X5045的看门狗的时候,请把它给禁止掉。
;**************STATUS REGISTER INIT*****
ST_INIT:LCALL READ_STATUS
MOV A,30H
JB ACC.0,$-5 ;X5045 IS BUSY THEN TURN CONTIUE TO READ
MOV R0,#30H
MOV @R0,#WRSR ;WRITE STATUS REGISTER INSTRUCTION
MOV R1,#01H
CLR CS;X5045 CHIP IS SELECTED
LCALL WRITE_CD
MOV R0,#30H
MOV @R0,#STATUS
MOV R1,#01H
LCALL WRITE_CD;WRITE DATA TO X5045
SETB CS
RET

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

如果读者朋友已经有过汇编相关基础,能够够好理解本文内容。汇编语言是比C语言更接近机器底层的编程语言,能让我们更好的理解和操纵硬件底层。

关键字: 汇编 C语言

从汇编角度来说,如果“test %al, %al”能改成“test %0x1, %al”就没有匪夷所思的问题了,如此一来应该会降低CPU的效率,毕竟执行指令还需要一个立即数,我没搞过编译器也没设计过CPU,纯属瞎猜,能搞...

关键字: 汇编 CPU 编译器

【说在前面的话】其实我很久之前就想写这篇文章了,但彼时总觉得这是一个伪命题:既然已经用了MDK,编译出来的代码,无论是体积还是性能都甩下armgcc好几条街,谁还会想用gcc来进行Cortex-M开发呢?对那些只能使用a...

关键字: GCC MDK 汇编

1.背景群里有个小伙伴学习设计加密方法,如同某商用软件输入注册码后就能使用扩展功能。设计时他很自然的想着所写的加密措施是否足够健壮安全,是否有什么方法可以绕过加密检查,也就是破解。权限管理仅在启动后检查一次注册码是否有效...

关键字: 指令 汇编 软件

最近很多伙计问我现在搞嵌入式还有没有必要学习汇编?

关键字: 嵌入式 汇编

来源 :智能软件研究中心,作者:罗宇哲,直接来源:华为开发者社区 声明:本公众号转发仅为传播相关技术知识,不作任何商业用途,如有疑义请联系删除。 01 ARM汇编指令 操作系统中硬件相关的部分集中体现在汇编指令和对寄存器...

关键字: ARM 汇编

Part 1. 机器指令 上一次 我们已经了解了 二进制和 CPU 的基本原理,知道了程序运行时,CPU 每秒数以亿次、十亿次、百亿次地震荡着时钟,同步执行着微小的 「电子操作」,例如:从内存读取一个字节的数据到 CPU...

关键字: 高级编程 编程语言 汇编

来源 :智能软件研究中心,作者:罗宇哲,直接来源:华为开发者社区 声明:本公众号转发仅为传播相关技术知识,不作任何商业用途,如有疑义请联系删除。 01 ARM汇编指令 操作系统中硬件相关的部分集中体现在汇编指令和对寄存器...

关键字: ARM 汇编

北京时间4月30日早间消息,据外媒报道,Facebook首席执行官扎克伯格周三警告称,过早重新开放公共空间“几乎可以肯定”将会导致新冠病毒的继续爆发,并带来不良的经济后果。 扎克伯格在公司第一季度财报

关键字: 扎克伯格 FACEBOOK LTE 汇编

北京时间4月30日早间消息,据外媒报道,Facebook首席执行官扎克伯格周三警告称,过早重新开放公共空间“几乎可以肯定”将会导致新冠病毒的继续爆发,并带来不良的经济后果。扎克伯格在公司第一季度财报电

关键字: 扎克伯格 FACEBOOK LTE 汇编
关闭