基于单片机的掉电数据保持存储器Word格式文档下载.docx
《基于单片机的掉电数据保持存储器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的掉电数据保持存储器Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
清华大学出版社,2000.
[5]彭介华.电子技术课程设计指导[J].北京:
高等教育出版社,1997.
完成期限2012.6.29至2012.7.8
指导教师
专业负责人曹广华
2012年6月29日
目录
第1章绪论2
1.1掉电数据保持存储器的概述2
1.2技术状况2
1.3本设计任务3
第2章总体方案论证与设计3
2.1总体方案思路分析3
2.2总体方案设计3
第3章系统硬件设计4
3.1掉电保护存储器的硬件设计4
3.2数码显示管6
第4章系统的软件设计6
4.1主程序设计6
第5章系统调试与测试结果分析7
5.1使用的仪器仪表8
5.2系统调试8
5.3测试结果8
参考文献11
附录1程序1
附录2仿真效果图6
第1章绪论
单片计算机即单片微型计算机。
由RAM,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
本设计是通过单片机设计一个掉点数据存储器,要求开机后,LED数码管能够显示上次关机的数字。
还要设计一个能够进行数据回查的仪表。
1.1掉电数据保持存储器的概述
在位置测量系统中,基准量的建立是最基本的,也是必不可少的.而在目前所流行的位置测量系统中,大都采用相对测量或相对测量和绝对测量相结合的方法.不论是前者还是后者,要想保证测量基准在整个测量过程中不发生丢失,测量系统信息掉电保护就显得特别重要.由于有了系统信息掉电保护,可避免多次重建测量基准,而保证测量基准在整个测量过程中不发生丢失.所以在当前所用的测量系统中,信息掉电保护功能是必不可少的.所谓信息掉电保护是指系统在掉电的瞬间,能把测量头的位置坐标准确记录下来,待下次上电后,就可正确复现掉电前测量头的位置坐标,保证了在接下去的测量过程中,测量基准不发生变化,从而保证测量系统在整个测量过程中的准确性。
1.2技术状况
在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:
一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;
三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读的特点。
但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。
1.3本设计任务
本设计任务是以AT89C51单片机为控制核心,利用AT24C02内存芯片设计一个掉电数据保持存储器,要求系统在断电时,能够保存数据,再次开机时,可以使LED数码管能够显示上次关机时的数字。
设计要求包括单片机最小系统,
总线接口,LED显示电路。
第2章总体方案论证与设计
本系统采用单片机AT89C51为掉电数据保持存储器的控制核心。
2.1总体方案思路分析
AT89C5l中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路。
外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±
10pF,而如使用陶瓷谐振器建议选择40pF±
10F。
用户也可以采用外部时钟。
采用外部时钟的电路。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。
退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
同时AT24C02存储芯片,既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
所以使用EEPROMAT24C02实现掉电保护,我们根据其特点进行设计。
2.2总体方案设计
本电路主要用到单片机AT89C51,数据存储芯片AT24C02,电容,电阻,LED显示器等。
AT89C51单片机
开关控制电路
LED显示器
AT24C0数据存储芯片
图2-1总体设计方案
第3章系统硬件设计
3.1掉电保护存储器的硬件设计
3.1.1AT89C51介绍
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
图3-1AT89C51引脚图
3.1.2驱动电路的设计
此系统中驱动电路原理图如图3-1-2所示。
图3-1-2驱动电路原理图
3.2数码显示管
我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如下。
共阴极共阳极引脚图
图3-2-1数码显示管设计原理图
第4章系统的软件设计
4.1主程序设计
赋初值
调用读取函数数据
开始计时
清零
调用写入数据函数
图4-1主程序流程图图4-2写入数据子程序
第5章系统调试与测试结果分析
5.1使用的仪器仪表
按键开关,AT89C51单片机,AT24C02数据存储器,LED数码显示器,电容,电阻,电源插头。
各元器件的作用:
开关:
一个开关起到开关机作用,一个开关用于复位电路,
电容:
用于单片机的最小系统;
数码显示器:
显示数字
电阻:
用于限制电流。
5.2系统调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
5.2.1硬件调试
对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。
5.2.2软件调试
软件调试采用单片机仿真器及微机,将编好的程序进行调试,主要是检查语法错误。
5.2.3硬件软件联调
将调试好的硬件和软件进行联调,主要调试系统的实现功能。
5.3测试结果
开启电源带数字到达某一值关闭电源,等待十秒,待再次开启电源,显示为关机时结果。
5.3.1实验仿真图
(1)下图为开机7秒是显示数据。
图5-3-1-1
(2)关机十秒后再次开启,显示结果与上图相同。
图5-3-1-2
结论
通过此单片机课题的选定,编程,调试,仿真,我对AT89C51系列单片机有了进一步了解,对AT24C02芯片的应用更加灵活,对仿真软件的应用更加熟练,同时,对掉电保护存储器的认识由浅显的字面意思,上升到内部元件原理及其应用上面。
我知道了掉电保护应用极为广泛,许多精明仪器仪表都应用到了掉电保护。
主要原理是由电源监控芯片和串行E2PROMAT24C02构成的低成本掉电检测和保护电路,在实时保存数据和掉电恢复现场继续运行的单片机系统中具有现实的工程意义。
使用中比自带掉电保护的EZPROM要更加灵活,可以自由利用AT24C02的存储空间,例如循环使用、用个别单元存放可修改参数。
但是,由于实际应用中廉价的单片机大多数都不带
总线接口,这就使得在软件编程上复杂了一些,通过一定的编程技巧取得的效果是令人满意的。
参考文献
[6]朱兆优、陈坚等.单片机原理应用.电子工业出版社2010.9
[7]周航慈.单片机应用程序设计技术.北京航天航空大学出版社.2011.2
附录1程序
#include<
reg52.h>
intrins.h>
#defineOP_READ0xa1
#defineOP_WRITE0xa0
sbitSCL=P3^4;
sbitSDA=P3^5;
unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsignedcharsec=0;
unsignedintcount;
bitwrite=0;
sbitshiwei=P2^6;
sbitgewei=P2^7;
sbitK5=P3^2;
voiddelay1ms()
{
unsignedchari,j;
for(i=0;
i<
10;
i++)
for(j=0;
j<
33;
j++)
;
}
voiddelaynms(unsignedcharn)
{
unsignedchari;
for(i=0;
n;
delay1ms();
voidstart()
SDA=1;
SCL=1;
_nop_();
SDA=0;
SCL=0;
}
voidstop()
SCL=1;
SDA=0;
SCL=0;
}
bitAsk()
bitack_bit;
SDA=1;
ack_bit=SDA;
returnack_bit;
unsignedcharReadData()
unsignedchari;
unsignedcharx;
for(i=0;
i<
8;
i++)
x<
<
=1;
x|=(unsignedchar)SDA;
return(x);
voidWriteCurrent(unsignedchary)
i++)
SDA=(bit)(y&
0x80);
_nop_();
SCL=0;
y<
=1;
start();
WriteCurrent(OP_WRITE);
Ask();
WriteCurrent(add);
Ask();
WriteCurrent(dat);
stop();
delaynms(4);
unsignedcharReadCurrent()
WriteCurrent(OP_READ);
x=ReadData();
returnx;
unsignedcharReadSet(unsignedcharset_addr)
WriteCurrent(set_addr);
return(ReadCurrent());
voidLEDshow()
P0=table[sec/10];
shiwei=0;
delaynms
(2);
shiwei=1;
P0=table[sec%10];
gewei=0;
gewei=1;
voidmain(void)
{
TMOD=0x01;
ET0=1;
EA=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
sec=ReadSet
(2);
TR0=1;
while
(1)
LEDshow();
if(write==1)
write=0;
WriteSet(2,sec);
if(K5==0){
delaynms(10);
if(K5==0){
sec=0;
voidt0(void)interrupt1using0
count++;
if(count==20)
count=0;
sec++;
write=1;
if(sec==100)
{sec=0;
附录2仿真效果图
仿真效果图
东北石油大学课程设计成绩评价表
课程名称
单片机课程设计
题目名称
学生姓名
李云松
学号
0906********
指导教
师姓名
刘霞
刘继承
职称
教授
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
年月日