X25045(ASM)程序浙江大学图书馆; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *; X25045; 1、WD_RST 看门狗复位子程序; 2、WD_SET 看门狗定时时间设置子程序; 3、RD_SR 读状态寄存器子程序; 4、WR_SR 写状态寄存器子程序; 5、RD_B 读一个字节数据子程序; 6、WR_B 写一个字节数据子程序;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *CS EQU CS_RAMSI EQU DATAINSO EQU DATAOUTSCK EQU CLK
WR_: MOV R0,#08H ;写8位数据
WR_1: RLC A
MOV SI,C
CLR SCK
SETB SCK
DJNZ R0,WR_1
RET
保罗 沃克尔
RD_: MOV R0,#08H ;读8位数据
RD_1: SETB SCK
CLR SCK
MOV C,SO
RLC A
DJNZ R0,RD_1
RET
;
看门狗复位子程序
WD_RST: CLR CS
中国教育科学学报 SETB CS情天欲海
RET
;看门狗定时时间设置成600ms
熊文修WD_SET: MOV R0,#10H ;若将定时时间设为1.4S或200ms,则应送立即
;数#00或#20
LCALL WR_SR
RET
;读状态寄存器子程序,读出的X25045的状态存在A累加器中
RD_SR: MOV A,#05H ;将RDSR命令送A累加器
CLR CS
LCALL WR_
LCALL RD_
SETB CS
RET
;写状态寄存器子程序。F0为写成功与否标志,F0=0,写成功;F0=1,写失败
WR_SR: LCALL RD_SR ;检查WPI位,确定X25045是否正在进行写操作
CLR F0
JNB ACC.0,WR_SR1 ;WPI=0,转写状态寄存器
SETB F0 ;WPI=1,1F0后返回
RET
WR_SR1: CLR CS
MOV A,#06H ;置位写使能寄存器
LCALL WR_
SETB CS
CLR CS
MOV A,#01H ;送写状态寄存器命令
LCALL WR_
MOV A,#18H ;设看门狗定时时间为600ms,块保护地址为
;100H~1FFH
LCALL WR_
CLR CS
SETB CS
RET
;读一个字节数据子程序,待读出数据地址在R3中,读出后的数据存R4
RD_B: LCALL RD_SR
JB ACC.0,RD_B
CLR CS
MOV A,#03H ;送读E2PROM命令,地址在00H~FFH间
LCALL WR_
心音传感器 MOV A,R3 ;送地址
LCALL WR_
LCALL RD_ ;读数据并送R4
MOV R4,A
SETB CS
RET
;写一个字节数据子程序,写入地址在R3中,数据在R4中
WR_B: LCALL RD_SR
JB ACC.0,WR_B
CLR CS
MOV A,#06H ;置位写使能寄存器
LCALL WR_
SETB CS
CLR CS
MOV A,#02H ;送写E2PROM命令,地址在00H~FFH间
LCALL WR_
MOV A,R3 ;送地址
LCALL WR_
MOV A,R4 ;送待写数据
LCALL WR_
CLR CS
SETB CS
RET