APP下载

单片机驱动X25045接口及汇编程序设计

2013-11-20

关键词:看门狗高电平子程序

苏 畅

(鸡西大学,黑龙江 鸡西 158100)

1 E2PROM 25045

X25045是美国的Xicor公司生产的标准化8脚串行E2PROM,它将看门狗定时器、E2PROM、电压监控3种基本功能组合在一个封装内,采用SPI串行外设接口方式,降低了硬件设计成本,提高了系统的可靠性,减少了对印刷电路板的空间要求,降低了系统成本和功耗,是一种比较典型的单片机外围芯片。X25045外部引脚如图1所示。

(1)其引脚功能如下。

CS:芯片片选择输入端。当该引脚保持低电平时X25045工作,该引脚电平变化将复位看门狗定时器。

SO:串行数据输出端。数据在SCK的下降沿输出到SO引脚上。

SI:串行数据输入端。数据或控制字由此引脚串行输入到X25045。

SCK:串行时钟输入端。其上升沿将数据或命令写入,下降沿将数据输出。

WP:写保护输入端。当它保持低电平时,芯片写操作被禁止,其他功能正常;当它保持高电平时,芯片开放写操作,其他功能正常。

Vss:电源地引脚。

Vcc:电源电压输入引脚。

RESET:单片机复位输入引脚(即复位输出引脚)漏极开路输出方式,高电平有效。

(2)控制字与寄存器。

X25045芯片的控制字输入、数据和地址的输入为八位方式,高位在前低位在后。在进行读、写操作前,应该先向它发出控制字,控制字及控制字格式如表1所示。

表1 X25045控制字

(3)状态寄存器。

RDSR指令可以访问的状态寄存器。状态寄存器可以在任何时间读、取,即使是在一个写周期。状态寄存器的格式如表2。

表2 状态寄存器的格式

发送WREN、WRDI、RDSR命令时,没有必要发送一个字节的地址或数据。

写控制位(WIP)位表示X25043/45是否繁忙的写操作。当设置为“1”,一个写操作正在进行中;当设定为“0”时,没有写操作正在进行中。在写操作过程中,所有其他位被设置为“1”,该WIP位是只读状态。

写使能锁存(WEL)位指示其状态 “写允许”锁存器。当设置为“1”时,锁存器被设置;当设置为“0”时,锁存器被复位。 WEL位是只读的并设置WREN指令和复位WRDI指令成功完成写入循环。

块保护位(BL0,BL1),这些非易失性控制位由WRSR指令设置,并允许用户选择四个级别的保护。 X25045分为四个1024位段。也就是说,用户可以读取段但将无法改变(写入)所选段内的数据。BL1和BL0的状态控制分区如表3。

表3 BL1和BL0的状态控制分区

允许设置看门狗定时器(WD0,WD1)位,如表4中所示的看门狗超时功能。这些非易失性控制位由WRSR指令设置。

表4 看门狗超时功能

2 AT89系列单片机[1]

AT89C51是ATMEL公司生产的一种单片机,具有4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位特性的微处理器。单片机的可擦除只读存储器可以反复擦除1 000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

VCC:电源引脚。

GND:电源地引脚。

P0口:双功能引脚,是8位双向输入/输出端口,每个引脚可吸收8个TTL门电路电流。第二功能作为数据总线、地址总线使用,当作为地址总线使用时是16位地址的低8位,利用分时复用方式。

P1口:内部提供上拉电阻,是8位双向输入/输出端口,P1口能接收输出4个TTL门电路电流。

P2口:双功能引脚,内部有上拉电阻,是8位双向输入/输出端口,可接收和输出4个TTL门电路电流。第二功能是16位地址的高8位地址。

P3口:双功能引脚,P3口管脚内部提供上拉电阻,是8位双向输入/输出端口,可吸收和输出4个TTL门电路电流。

RST:复位引脚,当需要复位单片机时,只要在RST引脚上持续输入两个机器周期的高电平单片机将被复位。

ALE/PROG:控制引脚,在单片机访问外部存储器时,该引脚输出地址所存信号,将所存P0口输出的低8位地址,一遍再下一个机器周期开将P0口作为数据总线来使用。

/PSEN:控制引脚,外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

/EA/VPP:控制引脚,一般情况下将该引脚直接接到VCC上访问内部程序存储器,内部程序存储器访问完后单片机将自动转到外部程序存储器取指令;当将该引脚置成低电平时单片机将直接访问外部程序存储器,8031系列单片机必须将该引脚接地。

XTAL1:内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时此引脚接地。

XTAL2:内部振荡电路反相放大器的输出端,是外接晶体的另一端,当采用外部振荡器时,此引脚接外部振荡源。

XTAL1、XTAL2两个引脚可以接两个电容C1,C2(20-40pF),和一个晶体振荡器,晶振经常使用6MHz、12MHz和11.0592MHz三种频率,时钟发生器把振荡频率分为两个频率,产生一个两相时钟信号P1和P2供单片机使用,P1在每个状态S的前半部分有效,P2在每个状态后半部分有效。

3 单片机与X25045芯片接口设计[2]

由于X25045非易失性芯片是串行控制方式,数据输入输出也是串行方式,因此,该芯片与单片机接口电路简单。SO引脚连接单片机P1.0引脚;SI引脚连接单片机P1.1引脚;SCK引脚连接单片机P1.2引脚;CS引脚连接单片机P1.3引脚;RET引脚通过一个10KΩ电阻连接+5V电源;WP引脚的一端通过一个5KΩ电阻连接+5V电源,另一端通过一个按键接地。这样选择接线方式主要是因为CS信号需要输入低电平和高电平来控制,而单片机的P0口和P2口是作为数据线和地址总线来使用,P3口又全部有第二功能,因此设计接口电路时采用P1口与X25045芯片接口连接控制。图2中R1是上拉电阻,必须接上拉电阻。WP信号由开关S控制,当S输入给WP‘0’时禁止写入,当S断开时WP得到信号‘1’数据可以写入。WP信号也可以由单片机P1口控制或是直接接高电平表示可以随意写入数据。单片机接口电路图如图2所示。

4 汇编程序设计

(1)定义端口程序

CS EQU P1.3

SO EQU P1.0

SI EQU P1.1

SCK EQU P1.2

(2)单字节输出子程序

说明:将累加器A中数据输出到SI上。

OUTB: MOV R7,#08H

TIAO1: CLR SCK

RLC A

MOV SI,C

SETB SCK

DJNZ R7,TIAO1

RET

(2)单字节输入子程序

说明:将SO上的数据输入到累加器A中。

INB: MOV R7,#08H

TIAO2: SETB SCK

NOP

CLR SCK

NOP

MOV C,SO

RLC A

SETB SCK

DJNZ R7,TIAO2

RET

(3)读状态寄存器子程序

说明:状态寄存器内容读入A。

READZ: CLR S

MOV A,#05H

ACALL OUTB

ACALL INB

SETB CS

RET

(4)置位写使能端子程序

WRITES: CLR CS

MOV A,#06H

ACALLOUTB

SETB CS

RET

(5)写状态寄存器子程序

说明:R2口内容为写入状态寄存器的数据。

WRITEZ: ACALL READZ

CLR F0

JNB ACC.0,TIAO3

SETB F0

RET

TIAO3: ACALL WRIES

CLR CS

MOV A,#01H

ACALL OUTB

MOV A,R2

ACALL OUTB

SETB CS

RET

(6)复位看门狗子程序

RESKMG: CLR CS

SETB CS

RET

参考文献:

[1]余永权.ATMEL89系列单片机应用技术[M].北京:北京航空航天大学出版社,2002.

[2]王幸之.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2011.

猜你喜欢

看门狗高电平子程序
一种基于FPGA的PWM防错输出控制电路
把他叫醒
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
一种采用FPGA实现的通用看门狗电路
浅谈子程序在数控车编程中的应用
把它叫醒
把它叫醒
子程序在数控车加工槽中的应用探索