您的位置 首页 汽车

根据X25165芯片在8051单片机中的使用

基于X25165芯片在8051单片机中的应用-X25165使用简单的三线总线串行外设接口(SPI),对芯片进行操作的所有操作码、字节地址及写入的数据均从SI引脚输入,写入数据在串行时钟(SCK)的上升沿被锁存,从芯片读取的数据从SO引脚串行移出,并在串行时钟的下降沿输出数据。

美国XICor公司出产的Z25165芯片是集看门狗、电压监控和串行EEPROM三项功用于一体的集成电路产品。该芯片的运用将有利于简化单片机体系的结构,下降体系的本钱,削减对电路板的空间需求,添加体系的可靠性。

1 芯片简介

X25165的引脚摆放如图1所示,各引脚功用阐明如表1所列。

X25165运用简略的三线总线串行外设接口(SPI),对芯片进行操作的一切操作码、字节地址及写入的数据均从SI引脚输入,写入数据在串行时钟(SCK)的上升沿被锁存,从芯片读取的数据从SO引脚串行移出,并在串行时钟的下降沿输出数据。

芯片的看门狗定时器和VCC电压监视器都对微处理器供给独立的维护,当体系产生毛病时,只需看门狗定时器到达其可编程的超时极限,RESET引脚当即主动产生一个继续200ms的高电平复位信号。当电源电压Vcc降到4.5V以下时,RESET引脚当即主动产生主电平复位信号,并一向维护到电源电压康复正常。在体系电源上电或掉电时,RESET引脚也当即主动产生一个高电平复位信号。这样,就能有用地避免体系死机、数据误写及误操作等毛病现象的产生。

依据X25165芯片在8051单片机中的运用

X25165芯片内部有2k×8位的串行EEPROM,每个字节能够擦写10万次以上,内部数据能够保存100年以上。运用时,能够经过编程对指定的块进行确定,以避免因为误操作等原因损坏保存的数据。

2 作业原理

2.1 指令

X25165共有七条指令(见表2),对芯片的一切操作都需求经过对指令存放器写指令来完结,一切的指令、地址、数据均以高位在前的方法(MSB)串行传送。

依据X25165芯片在8051单片机中的运用

2.2 状况存放器

X25165内有一个八位状况存放器,在任何时候都能够经过RDSR指令来读取状况存放器的内容,也能够经过WREN,SFLB,WRSR等指令来设置状况存放器中的某些位。状况存放器的格局如下:

FLB:只读位,指示一个易失位的状况,可用SFLB和RFLB指令进行置位和清零,上电时该位主动清零;

WPEN:为非易失位,可用WRSR指令进行编程,该位和WP引脚合作运用能以编程方法完结对硬件的写维护(见表5)。当WP引脚为低电平且WPEN位被置位时,一切状况存放器的写操作被制止。

3 芯片运用

3.1 硬件接口电路

在一个8051单片机体系中可依照图2的衔接方法运用该芯片。

3.2 软件接口规划

依据图2的衔接方法,笔者编写了七个有用的运用接口程序,供我们参阅。

a.串行输出了程序

将累加器A中的数据依照高位在前的次序(MSB)串行输出至X25165芯片中。

WD-OUTB:MOV R7,#08H;有8位数据要传输

WD-OUTB1:CLR P1.2;使SCK为低电平

RLC A ;将输出位移入C

MOV P1.1,C;进位位移入SI

SEIB P1.2;使SCK位为高电平

DJNZ R7,WD-OUTB1;判别循环是否完毕

CLR P1.1;清SI

RET

b.串行输入子程序

将1字节的数据依照高位在前的次序(MSB)从X25165中串行读入累加器A中。

WD-INB:MOV R7,#08H;有8位数据要接纳

WD-INB1:SETB P1.2;产生SCK脉冲

CLR P1.2 ;

MOV C, P1.0 ;S0移入进位位C

RLC A ;累加器A带进位位去移

DJNZ R7, WD-INB1;判别循环是否完毕

RET

c.读状况存放器子程序

用于从X25165中读状况存放器内容,读出的内容存放在A中。

WD-RD-SR:CLR P1.2 ;使SCK为低电平

CLR P1.3 ;芯片挑选CS有用

MOV A,#05H ;RDSR指令送累加器A

LCALL WD-OUTB ;输出RDSR指令

LCALL WD-INB ;读取状况存放器内容

CLR P1.2 ;使SCK为低电平

SETB P1.3 ;芯片挑选CS无效

RET

d.写状况存放子程序

该子程序能够设置块维护地址规模和可编程看门狗定时器超时周期。子程序中需求先使片选信号有用,然后用WREN指令设置写使能锁存器,8位指令输出后必须将片选信号拉高,这样才干使指令收效。相同,数据输出完结后也必须将片选信号拉高。

WD-WR-SR:CLR P1.2 ;使SCK为低电平

CLR P1.3 ;芯片挑选CS有用

MOV A, #06H ;WREN指令送累加器A

LCALL WD-OUTB ;输出WREN指令

SETB P1.3 ;使CS为高电平

CLR P1.3 ;芯片挑选CS有用

MOV A,#01H ;WRSR指令送累加器A

LCALL WD-OUTB ;输出WRSR指令,置状况存放器

MOV A,#10H;无块维护,超时周期;800ms

LCALL WD-OUTB ;输出状况存放器内容

CLR P1.2 ;使SCK为低电平

SETB P1.3 ;使CS为高电平

RET ;

e.读存储单元内容子程序

从X25165的串行EEPROM中读指定单元内容,需求先发送READ指令和16位地址,指定地址单元的数据在SCK脉冲的效果下就会从S0引脚顺次移出。

WD-RD-DATA:CLR P1.2 ;使SCK为低电平

CLR P1.3 ;芯片挑选CS有用

MOC A,#03H ;READ指令送累加器A

LCALL WD-OUTB;输出READ指令

MOV A,DPH;高位地址送累加器A

LCALL WD-OUTB ;输出高位地址

MOV A,DPL ;低位地址送累加器A

LCALL WD-OUTB ;输出低位地址

LCALL WD-INB ;读取(DPTR)单元的数据

MOV R4,A ;数据送R4

LCALL WD-INB ;读取(DPTP+1)单元的数据

MOV R5,A ;数据送R5

CLR P1.2 ;使SCK为低电平

SETB P1.3 ;芯片挑选CS无效

RET

f.写存储单元内容子程序

该子程序向芯片内EEPROM的指定开始地址写入数据,与写状况存放器子程序相同,程序中需求先输出WREN指令设置写使能锁存器。然后,按高位在前的次序输出存放于DPTR中的16位地址和存放于R5、R4中的16位数据。最终,要循环检测状况存放器的WIP位,直到芯征内容的写操作完结,以保证数据被安全可靠地写入芯片。

WD-WR-DATA:CLR P1.2 ;使SCK为低电平

CLR P1.3 ;芯片挑选CS有用

MOV A,#06H ;WREN指令送累加器A

LCALL WD-LUTB ;输出WREN指令

SETB P1.3 ;使CS为高电平

CLR P1.3 ;芯片挑选CS有用

MOV A,#02H ;WRITE指令送累加器A

LCALL WD-OUTB ;输出WRITE指令

MOV A,DPH ;输出高8位地址

LCALL WD-OUTB ;

MOV A,DPL ;输出低8位地址

LCALL WD-OUTB ;

MOV A, R4 ;输出低8位数据

LCALL WD-OUTB ;

MOV A,R5 ;输出高8位数据

LCALL WD-OUTB;

CLR P1.2 ;使SCK为低电平

SETB P1.3 ;使CS为高电平

WD-WIP-POLL:LCALL WD-RD-SR ;读状况存放器

JB ACC.0, WD-WIP-POLL

;检测WIP位

RET

g.看门狗定时器复位子程序

只需在设定的看门狗定时器超时周期以内履行子程序并向芯片的CS引脚发送一个下降沿,看门狗就不会产生复位输出信号。

WD-EAT:SETB P1.3 ;

CLR P1.3 ;产生CS下降沿脉冲

SETB P1.3 ;

RET

笔者在规划车轮径轴向位移检测仪时运用了X25165芯片,然后简化了体系结构,下降了本钱,提高了体系的可靠性,运用过程中保存的数据从未产生丢掉现象,运用成果令人满意。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/345445.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部