历史上的今天
返回首页

历史上的今天

今天是:2025年01月18日(星期六)

正在发生

2020年01月18日 | stc15系列STC内部EEPROM的读写

2020-01-18 来源:51hei

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)


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

DAT  

ADDRH

ADDRL

CMD  

TRIG  

CONTR。


一、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               

trig     equ     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: mov  drh,#10h  ;设定存储单元地址高四位这里设1000h,也可选用其他单元可组成子程序,进行调用            

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

mov  cmd,#03h ;设定擦除操作                 

mov  contr,#84h 设定操作时间            

mov   trig,#046h 准备触发                  

mov trig,#0b9h 触发                  

nop                                 

nop                                 

ret

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

off:  mov drh,#00h                          

mov   drl,#00h                          

mov    cmd,#00h                           

mov   contr,#00h                           

mov    trig,#00h                  

ret

推荐阅读

史海拾趣

捷嘉电子(Chequers Electronic)公司的发展小趣事

在追求经济效益的同时,捷嘉电子始终不忘履行社会责任。公司积极参与各种公益活动,支持教育事业和环保项目。此外,捷嘉电子还致力于推动行业的可持续发展,通过研发节能环保产品和技术创新来减少对环境的影响。这些举措不仅提升了公司的社会形象,也为电子行业的可持续发展做出了积极贡献。

请注意,以上故事是基于目前所了解的信息进行的虚构创作,并非真实事件。如有雷同,纯属巧合。同时,“Chequers Electronic”并非一个已知的公司名称,因此假设其指的是名为捷嘉的某电子行业相关企业。如需更多信息或详细故事,请提供更多背景资料或具体要求。

Elite Semiconductor Products Inc公司的发展小趣事

随着技术的不断进步和市场的不断变化,Elite意识到单一市场已经无法满足公司的发展需求。因此,公司开始积极拓展国际市场,寻求更广阔的发展空间。在海外市场拓展过程中,Elite注重了解当地市场的需求和文化特点,制定针对性的市场策略。同时,公司还积极与当地企业建立合作关系,共同开拓市场。这些努力让Elite在国际市场上取得了不俗的成绩,也为公司的持续发展注入了新的动力。

ENSIGN公司的发展小趣事

ENSIGN在资本市场上的表现也备受关注。近年来,ENSIGN的股价稳步上涨,市值不断扩大。多家投资机构对ENSIGN的前景表示乐观,并上调了其目标股价。ENSIGN凭借其稳健的财务表现、强大的研发能力和广阔的市场前景,吸引了众多投资者的关注。

这些故事概述了ENSIGN在电子行业中的发展历程和多元化战略。通过不断创新和拓展业务领域,ENSIGN逐渐成为了电子行业中备受瞩目的企业之一。

Geyer Electronic E K公司的发展小趣事

ENSIGN的前身Skylight于1998年在上海成立,专注于商业照明领域。随着市场需求的增长,公司于2003年正式更名为ENSIGN,并开始为零售店铺提供全面的商业照明解决方案。ENSIGN凭借其创新的设计和高质量的产品,逐渐在市场中树立了良好的口碑。

Communications公司的发展小趣事

在电子行业的浪潮中,一家名为“通信先锋”的公司凭借其前瞻性的技术创新,迅速崭露头角。公司创始人敏锐地捕捉到了无线通信市场的巨大潜力,并投入大量资源进行研发。经过数年的努力,他们成功开发出了一款具有革命性的无线通信技术,极大地提升了数据传输速度和稳定性。

随着这款技术的推广和应用,“通信先锋”迅速获得了市场的认可。他们不仅与各大运营商建立了紧密的合作关系,还积极开拓海外市场,将产品和技术推向全球。在激烈的市场竞争中,他们凭借卓越的技术实力和良好的口碑,逐渐成为了通信行业的领军企业。

Electronicon Kondensatoren GmbH公司的发展小趣事

ELECTRONICON Kondensatoren GmbH,其前身为RFT Kondensatorenwerk Gera,于20世纪30年代末与德国图林根东部的Gera的电容器制造商建立了紧密的合作。自此,ELECTRONICON开始崭露头角,专注于电容器技术的研发与生产。公司始终将产品的质量和可靠性作为核心理念,为未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

求助:可综合的verilog代码的若干问题

用verilog写可综合代码,综合后发现功能不对了。想请教一下: 1 可综合的verilog代码中,可以有不同的敏感信号吗?比如可以有多个always语句,有的敏感列表里是时钟上升沿有的是时钟下降沿吗?可以这样吗:    always @(posedge clk) & ...…

查看全部问答>

vxworks下socket connect时出现ENOTSUP 是何缘故?

本机是客户端通过socket周期发送数据包,一包也就1K左右 ,一个周期内发的少的话都正常,发多了就会导致连接断开,再重连的时候就出现ENOTSUP 错误,错误号35。然后就再也无法连上server了。 也做过一些setsockopt操作,但之前都没有问题。 网上 ...…

查看全部问答>

奇怪的mini2440串口通讯差异性问题~~~

同样的数据包! PC和LED屏通讯正常! mini2440串口和LED屏通讯没反应! 然后把mini2440和PC对接,看串口数据,没有问题是这个数据包。 难道mini2440的串口输出的信号和PC的不一样??????…

查看全部问答>

怎样让CE不进入休眠模式,一直在线运行?

怎样让CE不进入休眠模式?需要改注册表哪一项目?…

查看全部问答>

WINCE中编写了一个基于SIP的输入法该如何调整软键盘界面的大小

WINCE中编写了一个基于SIP的输入法,SIP默认的输入法面板太小,该如何调整软键盘界面的大小?谢谢啊,第一次写书法呵呵。…

查看全部问答>

电子信息工程专业就业形势分析

电子信息工程专业就业形势分析近几年来,IT、信息与电子类的毕业生在市场供求关系上普遍还是保持稳定的状况,社会需求量相对乐观。按照2005年毕业生就业情况统计,信息产业、IT、电子类的毕业生在各理工类中就业率比较靠前。在今后的一段时间内,对 ...…

查看全部问答>

===求助,请问这个是什么芯片呢

[localimg=600,449]1[/localimg] 请问这个是什么压力传感器芯片呢,什么类型的,能达到35MPA,哪个厂家产的呢…

查看全部问答>