ImageVerifierCode 换一换
格式:PPT , 页数:22 ,大小:1.57MB ,
资源ID:14015097      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/14015097.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第10章 STC系列单片机片内EEPROM的应用.ppt)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第10章 STC系列单片机片内EEPROM的应用.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,10,章,STC,系列单片机片内,EEPROM,的应用,10.1 EEPROM,模块所属特殊功能寄存器,10.2 EEPROM,读、写、擦除,第,10,章,STC,系列单片机片内,EEPROM,的应用,STC,系列单片机内部不仅集成了,用于存储程序的,EEPROM,,还集成了,用于存储数据的,EEPROM,,不同的型号容量不同,从,1KB,45KB,不等,。,EEPROM,主要用于保存在掉电时不允许丢失的数据,在应用过程中所采集、运算或通过键盘输入等得到的一些修正参数。,STC,系列单片机内部集成的

2、用于存储数据的,EEPROM,和用于存储程序的,EEPROM,地址重叠,但属于不同的物理空间,。用户程序指令代码是通过串口直接下载至程序存储器,而用于存储数据的,EEPROM,则通过用户程序进行读写操作。,EEPROM,分为若干个扇区,,每个扇区的大小为,512B,,数据存储器的,擦除操作是按扇区进行,的,可以擦写的次数在,10,万次以上,。,使用时,同一次修改的数据应该存放于同一个扇区,不是同一次修改的数据最好存放在不同的扇区,不一定要存满。内部,EEPROM,的扇区地址如表,10,1,所示。,起始地址,结束地址,起始地址,结束地址,第一扇区,第二扇区,0000H,01FFH,0200H,0

3、3FFH,第三扇区,第四扇区,0400H,05FFH,0600H,07FFH,10.1 EEPROM,模块所属特殊功能寄存器,对存储数据的,EEPROM,读、写、擦除等操作要用到,6,个特殊功能寄存器,特殊功能寄存器名称,地址,描述,复位初值,IAP_DATA,C2H/E2H,数据寄存器,11111111B,IAP_ADDRH,C3H/E3H,地址寄存器高,8,位,00000000B,IAP_ADDRL,C4H/E4H,地址寄存器低,8,位,00000000B,IAP_CMD,C5H/E5H,命令寄存器,xxxxxx00B,IAP_TRIG,C6H/E6H,命令触发寄存器,xxxxxxxxB,

4、IAP_CONTR,C7H/E7H,控制寄存器,0000 x000B,STC11/10Fxx,、,STC12C5A60S2,等单片机的,6,个特殊功能寄存器的地址分别,为,C2,C7H,;而,STC12C56xx,、,STC12C54xx,、,STC89/90C51xx,等系列单片,机的地址为,E2,E7H,。,1.,命令寄存器,IAP_CMD,MS1,、,MS0,决定,EEPROM,的工作方式,MS1,MS0,操作任务的选择,0,0,待机模式,不操作,0,1,对,EEPROM,进行读操作,1,0,对,EEPROM,进行写操作,1,1,对,EEPROM,进行擦除操作,2.,控制寄存器,IAP_

5、CONTR,对,IAPEN,、,SWBS,两位,用户只能写入,1,、,0,或,0,、,0,。,IAPEN,:,读、写、擦除使能位。清,0,后禁止对,EEPROM,进行读、写、擦除;置,1,后允许对,EEPROM,进行读、写、擦除。,SWBS,:,若对该位写入,0,,则是选择了用户应用程序(,IAP,)对,EEPROM,进行操作;该位若写入,1,,则是选择了单片机内部固化的系统监控程序(,ISP,)对,EEPROM,进行操作。,SWRST,:,若对该位写入,1,时将产生系统软件复位,复位响应时,硬件自动将该位清零。,CMD_FAIL,:,若该位为,0,,表示对,EEPROM,的读、写、擦除等操作

6、是成功的;若该位为,1,,表示对,EEPROM,的读、写、擦除等操作失败,须由软件清,0,。,WT2,、,WT1,、,WT0,这三位设置等待时间,写入,EEPROM,单元的数据需要,55,s,的内部编程时间。如果是对内部扇区擦除,则需要,21ms,。在此期间,不得对,EEPROM,的任何单元进行任何访问,否则在此之前写入的命令失效。这三位的值决定等待上述时间所需要的系统时钟周期数,具体情况如表,10,3,所示。,WT2,WT1,WT0,读(,2,个时钟),写(,55us,),扇区擦除(,21ms,),对应,f,osc,1,1,1,2,个时钟,55,个时钟,21012,个时钟,1MHz,1,1,

7、0,2,个时钟,100,个时钟,42024,个时钟,2MHz,1,0,1,2,个时钟,165,个时钟,63036,个时钟,3MHz,1,0,0,2,个时钟,330,个时钟,126072,个时钟,6MHz,0,1,1,2,个时钟,660,个时钟,252144,个时钟,12MHz,0,1,0,2,个时钟,1000,个时钟,420240,个时钟,20MHz,0,0,1,2,个时钟,1320,个时钟,504288,个时钟,24MHz,0,0,0,2,个时钟,1760,个时钟,672384,个时钟,30MHz,10.2 EEPROM,读、写、擦除,EEPROM,进行读写时,,,必须按一个字节一个字节,地

8、操作。,通过以下程序了解对,EEPROM,的读、写、擦除的过程。,(,1,)从,STC12C5A60S2,单片机片内,EEPROM,中某单元读取数据,(假设系统时钟频率为,20MHz,),MOV IAP_ADDRH,#BYTE_ADDRH,;送单元地址的高,8,位,MOV IAP_ADDRL,#BYTE_ADDRL,;送单元地址的低,8,位,MOV IAP_CONTR,#10000010B,;设置等待时间且允许,EEPROM,进行读、写、擦除操作,MOV IAP_CMD,#00000001B,;送字节读指令,MOV IAP_TRIG,#5AH,;启动内部读取工作,MOV IAP_TRIG,#0

9、A5H,NOP,;等待,2,个时钟周期的时间,NOP,MOV A,ISP_DATA,;将读出的数据存入,A,寄存器,对,STC10/10Fxx,、,STC12C5Axx,等系列,单片机启动读、写、擦除工作时,,先给,IAP_TRIG,寄存器送立即数,5AH,再送,A5H,作为触发信号,;而对,STC12C56xx,、,STC12C54xx,、,STC89/90C51xx,等系列单片机需先送,46H,,再送,B9H,作为触发信号。,(,2,)向,STC12C5A60S2,单片机片内,EEPROM,中某单元写入数据,(假设系统时钟频率为,20MHz,):,MOV IAP_DATA,#DATA,;先

10、将要写入的数据送至,IAP_DATA,寄存器,MOV IAP_ADDRH,#BYTE_ADDRH,;送单元地址的高,8,位,MOV IAP_ADDRL,#BYTE_ADDRL,;送单元地址的低,8,位,MOV IAP_CONTR,#10000010B,;设置等待时间且允许对,EEPROM,进行读、写、擦除操作,MOV IAP_CMD,#00000010B,;送字节写命令,MOV IAP_TRIG,#5AH,;启动内部编程工作,MOV IAP_TRIG,#0A5H,LCALL DELAY_55s,;调用延时,55,s,的子程序,等待编程结束,完成读、写操作后,地址不会自动加,1,,每次执行读、写

11、操作时须重新送地址。,(,3,)如果在某扇区中已向部分单元写入了数据,要想再改写数据,需对该扇区的所有单元进行全部擦除,即改写数据前先对整个扇区进行擦除,对扇区擦除的程序如下(假设系统时钟频率为,20MHz,):,MOV IAP_ADDRH,#SECTOR _ADDR_HIGH,;送扇区起始地址的高,8,位,MOV IAP_ADDRL,#SECTOR _ADDR_LOW,;送扇区起始地址的低,8,位,MOV IAP_CONTR,#10000010B,;设置等待时间且允许对,EEPROM,进行读、写、擦除等操作,MOV IAP_CMD,#00000011B,;送扇区擦除指令,MOV IAP_TR

12、IG,#5AH,;启动擦除进程,MOV IAP_TRIG,#0A5H,LCALL DELAY_21ms;,延时,21ms,,等待擦除结束,【例,10,1,】,将,STC12C5A60S2,单片机片内,RAM,的,50H,5FH,单元的数据依次写入,EEPROM,的第一扇区的,0000H,000FH,单元。,分析:,如果在读、写、擦除的过程中,没有对,EEPROM,相关的寄存器进行访问,读、写、擦除一般是成功的。为了防止在读、写、擦除的过程中电源发生波动,在读、写、擦除后需要判断操作是否成功。设系统的时钟频率为,20MHz,,用,R0,作为指针指向片内,RAM,的,50H,5FH,单元,,DPT

13、R,指向,EEPROM,的,0000H,000FH,地址,要将数据写入,EEPROM,,首先对整个扇区进行擦除。若擦除不成功,需要重新擦除;若擦除成功,可将片内,RAM 50H,5FH,单元的数据写进,EEPROM,的,0000H,000FH,单元,然后再读出,EEPROM,的数据与片内,RAM,的,50H,5FH,单元的数据比较,若相同,表示写操作成功,若不同,表示写操作失败,需重新擦除后,将数据再次写进,EEPROM,对应的单元,汇编语言子程序,IAP_DATA EQU 0C2H,;数据寄存器,IAP_ADDRH EQU 0C3H,;高,8,位地址寄存器,IAP_ADDRL EQU 0C4

14、H,;低,8,位地址寄存器,IAP_CMD EQU 0C5H,;命令寄存器,IAP_TRIG EQU 0C6H,;触发寄存器,IAP_CONTR EQU 0C7H,;控制寄存器,SECTION_ADDR EQU 0000H,;扇区首地址,ORG 0000H,LJMP MAIN,ORG 0100H,MAIN,:,MOV SP,#0BFH,;初始化堆栈指针,START0,:,MOV DPTR,#SECTION_ADDR,;第一扇区的首地址送,DPTR,LCALL SECTION_ERASE,;调用扇区擦除子程序,MOV A,IAP_CONTR,;读控制寄存控制器,JNB ACC.4,START,;

15、若此位为,0,,表示擦除成功,可进行编程,LJMP START0,;若擦除失败,须重新进行擦除,START,:,MOV DPTR,#SECTION_ADDR,;第一扇区的首地址送,DPTR,MOV R0,#50H,;,R0,作为片内,RAM,的指针,MOV R2,#16,;,R2,作为写,16,个字节的计数器,LOOP,:,LCALL BYTE_PROGRAM,;调用向,EEPROM,写数据的子程序,LCALL BYTE_READ,;调用读,EEPROM,子程序,MOV A,R0,CJNE A,IAP_DATA,START0,;如果读到的数据与原数据不等,则重新开始,INC DPTR,;,EE

16、PROM,地址加,1,INC R0,;片内,RAM,地址加,1,DJNZ R2,LOOP,;计数不为,0,,跳转至,LOOP,SJMP$,SECTION_ERASE,:,;擦除,MOV IAP_CONTR,#82H,;设置等待时间且允许对,EEPROM,进行操作,MOV IAP_CMD,#03H,;对,EEPROM,进行扇区擦除命令,MOV IAP_ADDRL,DPL,;送入扇区首地址的低,8,位,MOV IAP_ADDRH,DPH,;送入扇区首地址的高,8,位,MOV IAP_TRIG,#5AH,;启动擦除操作,MOV IAP_TRIG,#0A5H,LCALL DELAY_21ms,;延时等

17、待,RET,BYTE_PROGRAM,:,;写,MOV A,R0,;读取片内,RAM,单元,50H,5FH,的内容,MOV IAP_DATA,A,;将数据送至数据寄存器,MOV IAP_CONTR,#82H,;允许对,EERPOM,操作并设置等待时间,MOV IAP_CMD,#02H,;对,EEPROM,进行写操作指令,MOV IAP_ADDRL,DPL,;送地址的低,8,位,MOV IAP_ADDRH,DPH,;送地址的高,8,位,MOV IAP_TRIG,#5AH,;启动写操作,MOV IAP_TRIG,#0A5H,LCALL DELAY_55,s,;延时等待,RET,BYTE_READ,

18、读,MOV IAP_CONTR,#82H,MOV IAP_CMD,#01H,;读,EEPROM,命令,MOV IAP_ADDRL,DPL,;送入地址的低,8,位,MOV IAP_ADDRH,DPH,;送入地址的高,8,位,MOV IAP_TRIG,#5AH;,启动读操作,MOV IAP_TRIG,#0A5H,NOP,NOP,RET,DELAY_55,s,:;略,DELAY_21ms,:,;略,END,C51,程序:,#include,#include/,声明本征函数库,#define uchar unsigned char,#define uint unsigned int,#defin

19、e SECTION_ADDR 0 x0000 /,定义扇区的首地址,uchar data*dp;/,定义指针,uchar Temp;,uint i,xdat;,long y;,void SECTION_ERASE(uint SECTION_ADDR);/,扇区擦除函数,void BYTE_PROGRAM(uint byte_addr);/,扇区编程函数,uchar BYTE_READ(uint byte_addr);/,读扇区内容函数,void Delay_,s()reentrant;/,延时函数,void main(),uchar flag=0;/,定义扇区擦除失败的标记位,dp=0 x50

20、/dp,指针指向,50H,while,(flag=0)/,若扇区擦除失败,则再次循环擦出,SECTION_ERASE(SECTION_ADDR);/,对整个扇区进行擦除,for,(i=0;i8);/,送入扇区地址的高,8,位,IAP_TRIG=0 x5A;/,启动触发,IAP_TRIG=0 xA5;,for,(int i=0;i8);/,送入扇区地址的高,8,位,IAP_DATA=*dp;/,将数据送至数据寄存器,IAP_TRIG=0 x5A;/,启动触发,IAP_TRIG=0 xA5;,Delay_,s,(,0 x0445,);延时,55,s,uchar BYTE_READ,(uint b

21、yte_addr),IAP_CONTR=0 x82;/,设置等待时间且允许对,EEPROM,进行操作,IAP_CMD=0 x01;/,对,EEPROM,进行读操作,IAP_ADDRL=byte_addr;/,送入扇区地址的低,8,位,IAP_ADDRH=(byte_addr 8);/,送入扇区地址的高,8,位,IAP_TRIG=0 x5A;/,启动触发,IAP_TRIG=0 xA5;,Temp=IAP_DATA;/,读出扇区单元的内容,_nop_();_nop_();,return,(Temp);,void Delay_,s(uint x)reentrant,/,延时函数,利用,R6,和,R7,传递参数,#pragma asm,MOV A,R7,DL0,:,MOV R7,A,DJNZ R7,$,DJNZ R6,DL0,#pragma endasm,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服