欢迎来到天天文库
浏览记录
ID:59125176
大小:414.00 KB
页数:22页
时间:2020-09-25
《单片机原理与应用-基于汇编C51及混合编程第10章STC系列单片机片内EEPROM的应用ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、系统扩展设计及例题的介绍与实际应用相结合,原理图中给出了各元器件的实际应用参数。在第7-12章中的每一道例题都采用汇编、C51两种语言分别编程实现。第12章中数字显示温度计、RLC测量仪两个应用实例的电路及程序都通过了验证。第10章STC系列单片机片内EEPROM的应用10.1EEPROM模块所属特殊功能寄存器10.2EEPROM读、写、擦除第10章STC系列单片机片内EEPROM的应用STC系列单片机内部不仅集成了用于存储程序的EEPROM,还集成了用于存储数据的EEPROM,不同的型号容量不同,从1KB-45KB不等。EEPROM主要用于保存在掉电时不允许
2、丢失的数据,在应用过程中所采集、运算或通过键盘输入等得到的一些修正参数。STC系列单片机内部集成的用于存储数据的EEPROM和用于存储程序的EEPROM地址重叠,但属于不同的物理空间。用户程序指令代码是通过串口直接下载至程序存储器,而用于存储数据的EEPROM则通过用户程序进行读写操作。EEPROM分为若干个扇区,每个扇区的大小为512B,数据存储器的擦除操作是按扇区进行的,可以擦写的次数在10万次以上。使用时,同一次修改的数据应该存放于同一个扇区,不是同一次修改的数据最好存放在不同的扇区,不一定要存满。内部EEPROM的扇区地址如表10-1所示。起始地址结束
3、地址起始地址结束地址第一扇区第二扇区0000H01FFH0200H03FFH第三扇区第四扇区0400H05FFH0600H07FFH…………10.1EEPROM模块所属特殊功能寄存器对存储数据的EEPROM读、写、擦除等操作要用到6个特殊功能寄存器特殊功能寄存器名称地址描述复位初值IAP_DATAC2H/E2H数据寄存器11111111BIAP_ADDRHC3H/E3H地址寄存器高8位00000000BIAP_ADDRLC4H/E4H地址寄存器低8位00000000BIAP_CMDC5H/E5H命令寄存器xxxxxx00BIAP_TRIGC6H/E6H命令触发
4、寄存器xxxxxxxxBIAP_CONTRC7H/E7H控制寄存器0000x000BSTC11/10Fxx、STC12C5A60S2等单片机的6个特殊功能寄存器的地址分别为C2-C7H;而STC12C56xx、STC12C54xx、STC89/90C51xx等系列单片机的地址为E2-E7H。1.命令寄存器IAP_CMDMS1、MS0决定EEPROM的工作方式MS1MS0操作任务的选择00待机模式,不操作01对EEPROM进行读操作10对EEPROM进行写操作11对EEPROM进行擦除操作2.控制寄存器IAP_CONTR对IAPEN、SWBS两位,用户只能写入1
5、、0或0、0。IAPEN:读、写、擦除使能位。清0后禁止对EEPROM进行读、写、擦除;置1后允许对EEPROM进行读、写、擦除。SWBS:若对该位写入0,则是选择了用户应用程序(IAP)对EEPROM进行操作;该位若写入1,则是选择了单片机内部固化的系统监控程序(ISP)对EEPROM进行操作。SWRST:若对该位写入1时将产生系统软件复位,复位响应时,硬件自动将该位清零。CMD_FAIL:若该位为0,表示对EEPROM的读、写、擦除等操作是成功的;若该位为1,表示对EEPROM的读、写、擦除等操作失败,须由软件清0。WT2、WT1、WT0这三位设置等待时间
6、,写入EEPROM单元的数据需要55μs的内部编程时间。如果是对内部扇区擦除,则需要21ms。在此期间,不得对EEPROM的任何单元进行任何访问,否则在此之前写入的命令失效。这三位的值决定等待上述时间所需要的系统时钟周期数,具体情况如表10-3所示。WT2WT1WT0读(2个时钟)写(55us)扇区擦除(21ms)对应fosc1112个时钟55个时钟21012个时钟1MHz1102个时钟100个时钟42024个时钟2MHz1012个时钟165个时钟63036个时钟3MHz1002个时钟330个时钟126072个时钟6MHz0112个时钟660个时钟252144
7、个时钟12MHz0102个时钟1000个时钟420240个时钟20MHz0012个时钟1320个时钟504288个时钟24MHz0002个时钟1760个时钟672384个时钟30MHz10.2EEPROM读、写、擦除EEPROM进行读写时,必须按一个字节一个字节地操作。通过以下程序了解对EEPROM的读、写、擦除的过程。(1)从STC12C5A60S2单片机片内EEPROM中某单元读取数据(假设系统时钟频率为20MHz)MOVIAP_ADDRH,#BYTE_ADDRH;送单元地址的高8位MOVIAP_ADDRL,#BYTE_ADDRL;送单元地址的低8位MOV
8、IAP_CONTR,#10000010
此文档下载收益归作者所有