EEPROM 是 Electrically Erasable Programmable Read-Only Memory(电可擦写可编程只读存储器)的简写,具备掉电保持能力。
程序控制思路:
①上电读取 EEPROM 的记忆地址内容,获取掉电前的记忆。
②在需要修改记忆值的 *** 作处(如按键修改、时间修改),重新改写记忆值(一般需先擦除后填写);
延伸:
传统51单片机没有EEPROM,一般都需要外置IC,采用特定通讯时序来 *** 作EEPROM(如AT24C01、采用IIC通讯等);
现多数单片机都会内置EEPROM,直接根据手册要求的固定指令/时序即可 *** 作EEPROM;
追问: 当单片机进入掉电模式时程序就不运行了,当进入空闲模式时程序还在运行,时这样吗??如果我要设置一个按键,按一下就进入掉电模式,能这样编写吗:#include<reg52.h>sbit key1=P3^0\\定义按键位置void delay(unsigned int a){while(a--)} \\延时子程序void main(){while(1) {P1=0xffdelay(30000)P1=0x00delay(30000)\\P1口灯闪 if(!key1) PCON=0x02}}进入掉电模式或空闲模式后,如果想设定一个按键来唤醒单片机怎么编程(不要通过复位唤醒)??谢谢 回答: 上面说了,空闲模式可以通过中断唤醒,掉电模式只可以通过外部中断唤醒。你可以把按键接在外部中断引脚,用按键触发外部中断唤醒单片机(在外部中断服务函数中添加PCON=0x00)。 追问: 你的意思是先要将PCON清零吗??那掉电模式下程序在不在运行??我设计了个单片机电子时钟,用电池供电,为了省电,我想让单片机工作在掉电模式,当要查看时间时就唤醒单片机,请问这样的想法可以吗?能实现吗?关键我就是想知道掉电模式下程序在不在运行,会不会一掉电后程序就不运行了,时间就停止了······我会加分的,谢谢 回答: 我的意思是在中断中将PCON清0,唤醒单片机。进入空闲模式或掉电模式,程序就不运行了,停止在你进入空闲模式或掉电模式处,待重新唤醒又从停止处继续运行。你做时钟,应该是用时钟芯片吧?你的芯片有纽扣电池供电,走时间和单片机没有什么关系,单片机只是将里面的时间读出来而已,到你唤醒单片机的时候读出来的时间还是正确的!stc15系列单片机进入掉电模式的方法如下:
当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。
使单片机进入掉电模式的指令将成为休眠前单片机执行的最后一条指令,
进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。
可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,
需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
可将数字万用表调节到电流档,然后串接入电路中,观察单片机在正常工作模式、休眠模式、空闲模式下流过系统的总电流变化情况,经测试可发现结果如下:正常工作电流>空闲模式电流>掉电模式电流。
唤醒的方法:看芯片资料,上电复位,或者外部中断(有些可以,有些不行)可以从掉电模式唤醒。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)