;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
一、93AA46与单片机的接口电路
VCC
AT89C2051
93AA46
P1.0 CS
P1.1 DI
P1.2 CLK
P1.3 DO
P1.4 ORG
二、控制子程序清单
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; X25045控制子程序清单 ??杨叶珍
; 1、WD_RST 看门狗复位子程序
; 2、WD_SET 看门狗定时时间设置子程序
; 3、RD_SR 读状态寄存器子程序
; 4、WR_SR 写状态寄存器子程序
; 5、RD_B 读一个字节数据子程序
; 6、WR_B 写一个字节数据子程序
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;
;I/O口定义
CS EQU P1.0
SI EQU P1.1
SO EQU P1.3
SCK EQU P1.2
;看门狗复位子程序
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
WR: MOV R0,#08H ;写8位数据
共3页 第1页
WR1: RLC A
MOV SI,C
CLR SCK
SETB SCK
DJNZ R0,WR1
RET
RD: MOV R0。#08H ;读8位数据
RD1: SETB SCK
CLR SCK
MOV C,SO
RLC A
DJNZ R0,RD1
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,1®F0后返回
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
共3页 第2页
;写一个字节数据子程序,写入地址在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
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

