STC单片机的EEPROM使用心得

来源:本站
导读:目前正在解读《STC单片机的EEPROM使用心得》的相关信息,《STC单片机的EEPROM使用心得》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《STC单片机的EEPROM使用心得》的详细说明。
简介:STC单片机利用IAP技术实现了EEPROM功能,相比外置存储芯片而言,在操作上比较方便。涉及STC单片机EEPROM操作的特殊功能寄存器有6个,地址分别是E2H、E3H、E4H、E5H、E6H和E7H。

STC单片机利用IAP技术实现了EEPROM功能,相比外置存储芯片而言,在操作上比较方便。涉及STC单片机EEPROM操作的特殊功能寄存器有6个,地址分别是E2H、E3H、E4H、E5H、E6H和E7H。在STC单片机使用手册中,作者分别将它们定义为:

一、IAP_DATA(E2H)

二、IAP_ADDRH(E3H)

三、IAP_ADDRL(E4H)

四、IAP_CMD(E5H)

五、IAP_TRIG(E6H)

六、IAP_CONTR(E7H)

本人认为,手册中给每个地址单元定义的英文词组太长,而且有点哆嗦,占的篇幅又大,感觉对正常阅读和理解产生了一定的干扰,反倒不好了解作者的意图了,还不如让使用者自己定义为好。我自己对这些单元分别定义为DATADDRHADDRLCMDTRIGCONTR。

一、DAT(E2H)从EEPROM中读取到的数据首先进入这里。要把数据写入EEPROM中,也要把数据放到这个单元中。也就是说,这个单元起到了中转站的作用,写入和读出都要通过这个单元。

二、ADDRH、ADDRL分别是EEPROM地址单元高8位和低8位。如要把数据存储到1000H单元中,那么在程序中,ADDRH的数值为10H,ADDRL的数值为00H。

三、CMD表示操作类型。数值为1是读,数值为2是写,数值为3是擦除。简单点说,就是“1读2写3擦除”。

四、CONTR寄存器,说明书上作了好多功能表述,但对于一般使用者来说,寄存器的前5位可以不作过多了解,只要掌握后3位意义就可以了。一般理解为,选择好后3位的数值,为的是确保在不同数值晶振下正确读写EEPROM。考虑到TRIG这个寄存器的要求,一般使用时,可将前5位设置为10000,后3位根据不同晶振频率来确定(这个见使用手册)。

五、TRIG这个寄存器,看了好长时间手册才了解它的一般使用,对这个寄存器理解应当放到最后。说明书是这样写的:为isp/iap操作时的命令模式寄存器。在ispen(isp_contr.7)=1时,对isp_trig先写入46h,再写入b9h,isp/iap命令才会生效。

其实也可以这样理解,当选择好EEPROM地址单元,选择好操作类型,以及在写入状态时准备好写入数据后,先向该寄存器送入46H数据,之后再向该寄存器送入B9H数值。EEPROM的读、写、擦除就完成了。

以上是本人对STC单片机的EEPROM使用的一些心得,若有不当或错误之处,请高手多多批评指正。

本人常用的STC_EEPROM基本操作程序

dat equ 0e2h

drh equ 0e3h

drl equ 0e4h

cmd equ 0e5h

trigequ 0e6h

contr equ 0e7h

;---------读取1个字节-------------------

read: mov drh,#10h ;设定存储单元地址高四位这里设1000h,也可选用其他单元

mov drl,#00h ;设定存储单元地址低四位

mov cmd,#01h ;设定读操作

mov contr,#84h ;设定操作时间 可组成子程序,进行调用

mov trig,#046h ;准备触发

mov trig,#0b9h ;触发

mov r0,dat ;读数据。 r0为读出的数据,也可以选用其他单元

nop

nop

ret

;---------写入1个字节-------------------

write:mov dat,r0 ;写数据。r0中为准备写入的数据,也可以选用其他单元

mov drh,#10h ;设定存储单元地址高四位这里设1000h,也可选用其他单元

mov drl,#00h ;设定存储单元地址低四位

mov cmd,#02h ;设定写操作

mov contr,#84h ;设定操作时间 可组成子程序,进行调用

mov trig,#046h ;准备触发

mov trig,#0b9h ;触发

nop

nop

ret

;---------擦除1个字节-------------------

clear:movdrh,#10h ;设定存储单元地址高四位这里设1000h,也可选用其他单元 可组成子程序,进行调用

movdrl,#00h ;设定存储单元地址低四位

movcmd,#03h;设定擦除操作

movcontr,#84h ;设定操作时间 可组成子程序,进行调用

movtrig,#046h ;准备触发

movtrig,#0b9h ;触发

nop

nop

ret

;=========关闭EEPROM====================

off:movdrh,#00h

movdrl,#00h

movcmd,#00h

movcontr,#00h

movtrig,#00h

ret

提醒:《STC单片机的EEPROM使用心得》最后刷新时间 2024-03-14 01:08:14,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《STC单片机的EEPROM使用心得》该内容的真实性请自行鉴别。