教学课件单片机创新开发教程ch13 使用EEPROM.pptx
-
资源ID:76412581
资源大小:2.55MB
全文页数:16页
- 资源格式: PPTX
下载积分:10金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
教学课件单片机创新开发教程ch13 使用EEPROM.pptx
教材配套PPT正版可修改课件教学课件单片机创新开发教程ch13 使用EEPROM单片机创新开发教程-基于STC8吴险峰第13章 使用EEPROMEEPROM(带电可擦可编程只读存储器)是用户可更改的只读存储器,用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。本章讲解其功能和典型编程方法。1.情境导入2.学习目标3.相关知识4.项目设计5.项目实现6.知识拓展7.强化练习13.1情境导入小白:“真麻烦,一断电,我原来保存的数据都没有了,又要重新开始设置。”小牛:“单片机有掉电后数据不丢失的存储芯片,叫作EEPROM。你可以将关键数据存储在这里,下次开机数据依然保存。”小白:“这么神奇,我要学!”13.2 学习目标【知识目标】1.学习EEPROM的理论知识。2.掌握EEPROM的图形化编程。【能力目标】1.能理解EEPROM和FLASH区别。2.能进行EEPROM设置。3.能进行EEPROM编程。4.会利用Proteus跟踪存储器内容。13.3 相关知识l13.3.1.EEPROM和FLASH l13.3.2.STC8的EEPROM结构l13.3.3.图形化指令13.3 相关知识13.3.1.EEPROM和FLASH 可电擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM),是一种掉电后数据不丢失的存储芯片。传统的EEPROM可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1,具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。现在ROM都用FLASH技术。flash属于广义的EEPROM,因为它也是电擦除的ROM。FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低。EEPROM和FLASH的区别在于FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同。为了降低成本,我们可以用FLASH来模拟EEPROM。13.3 相关知识13.3.2.STC8的EEPROM结构STC8系列单片机内部集成了大容量的 EEPROM。利用 ISP/IAP 技术可将内部 Data Flash 当EEPROM,擦写次数在 10 万次以上。EEPROM 可分为若干个扇区,每个扇区包含 512 字节。使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定要用满。数据存储器的擦除操作是按扇区进行的。EEPROM 可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。在用户程序中,可以对 EEPROM 进行字节读/字节编程/扇区擦除操作。13.3 相关知识13.3.3.图形化指令EEPROM常用图形化指令如表13-1所示。常用指令图形化指令实例1.EEPROM擦除指定扇区。参数:EE_address:要擦除的EEPROM的扇区中的一个字节地址。引入头文件#includelib/eeprom.hvoideeprom_sector_erase(uint16EE_address)/擦除一个扇区函数2.EEPROM从buf中读取数据。参数:EE_address:要读出的EEPROM的首地址。DataAddress:要读出数据的指针。length:要读出的长度voideeprom_read(uint16EE_address,uint8*DataAddress,uint8length)/读N个字节函数3.EEPROM写入数据到buf。参数:EE_address:要写入的EEPROM的首地址。DataAddress:要写入数据的指针。length:要写入的长度uint8eeprom_write(uint16EE_address,uint8*DataAddress,uint8length)/写N个字节函数13.4 项目设计STC8H8K64U的EEPROM大小是可用在ISP下载时用户自己设置的。用户可用根据自己的需要在整个FLASH空间中规划出任意不超过FLASH大小的EEPROM空间。可以在STC-ISP操作,如下图13-1所示。13.4 项目设计任务 EEPROM读写测试程序#include uint32 sys_clk=24000000;/设置PWM、定时器、串口、EEPROM频率参数#include lib/UART.h#include lib/delay.h#include lib/eeprom.hcode uint8 writebuf=h,e,l,l,o;xdata uint8 readbuf512;void setup()/注意STC16暂不支持EEPROM P3M1|=0 x04;P3M0&=0 x04;/高阻输入 P3M1|=0 x08;P3M0&=0 x08;/高阻输入 uart_init(UART_1,UART1_RX_P30,UART1_TX_P31,9600,TIM_1);/初始化串口void loop()if(P3_2=0)delay(30);if(P3_2=0)eeprom_sector_erase(0);/EEPROM擦除指定扇区 eeprom_write(0,writebuf,(sizeof(writebuf)/sizeof(writebuf0);/EEPROM写数据 uart_putstr(UART_1,EEPROM Write Finished!);/字符串输出 if(P3_3=0)delay(30);if(P3_3=0)eeprom_read(0,readbuf,(sizeof(writebuf)/sizeof(writebuf0);/EEPROM读数据 uart_putstr(UART_1,Data Readed is:);/字符串输出 uart_putstr(UART_1,readbuf);/字符串输出 注意本程序和天问block对应范例程序略有不同。原来范例程序使用OLED显示屏,代码较长。这里改成串口打印方式,代码少了很多。按键1启动写入,按键2启动读取。结果通过串口工具打印。13.5 项目实现13.5.1.开发板演示开发板任务演示步骤的和前章基本类似,为避免重复略去。具体操作请扫描二维码观看。13.5 项目实现13.5.2.Proteus仿真实例Proteus仿真需要打印串口输出。具体电路图类同第仿真需要打印串口输出。具体电路图类同第12章串口任务章串口任务1仿真。实验结果当按下仿真。实验结果当按下K1键,写入键,写入EEPROM,串口输出,串口输出如图如图13-3所示。所示。按下按下K2键,读出键,读出EEPROM,串口输出如图,串口输出如图13-4所示。所示。注意我们只是执行代码,注意我们只是执行代码,Proteus没有源代码信息,系统无法不能直接查看没有源代码信息,系统无法不能直接查看FLASH和和EEPROM。只能查看。只能查看RAM,如图,如图13-5所示。所示。13.6.知识拓展【科普】EEPROM的技术原理lEEPROM底层也是基于MOS管的半导体工艺,只是在传统的MOS管控制栅下插入一层浮栅。浮栅周围的氧化层与绝缘层将其与各电极相互隔离,浮栅中的电子泄漏速度很慢,在非热平衡的亚稳态下可保持数十年。浮栅延长区的下方有个薄氧区小窗口,在外加强电场的作用下漏极与浮栅之间可以进行双向电子流动,继而达到对存储单元的“擦除”与“写入”操作。EEPROM大量取代了EPROM芯片,后者只能用强紫外线照射来擦除。l很多同学不太理解EEPROM原理,其实可以把其存储单元想象成一个抽水马桶。马桶里面有个浮球(浮栅),蓄水的时候浮球浮起(有电荷)。蓄水后,即使关闭角阀(断电),也会长期保持水位不变(长时间存储)。查看浮球的位置可以知道是否有水(数据读取)。按下马桶开关(加电压电路导通),水就通过管道流走了(数据擦除)。打开角阀(通电),可以重新蓄水(数据写入)。l【思考与启示】l1.为啥现在半导体都是使用MOS管,而不是三极管。l2.比较EEPROM和EPROM的区别。13.7强化练习1.用开发板演示天问Block的EEPROM范例。2.实现可以记录流水灯状态的EEPROM程序。谢谢观看