单片机课程设计:基于单片机的掉电数据保持存储器.doc_第1页
单片机课程设计:基于单片机的掉电数据保持存储器.doc_第2页
单片机课程设计:基于单片机的掉电数据保持存储器.doc_第3页
单片机课程设计:基于单片机的掉电数据保持存储器.doc_第4页
单片机课程设计:基于单片机的掉电数据保持存储器.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东 北 石 油 大 学 课 程 设 计 课 程 单片机课程设计 题 目 基于单片机的掉电数据保持存储器 院 系 专业班级 学生姓名 学生学号 指导教师 2013年 7 月 8日 东北石油大学课程设计任务书课程 单片机课程设计 题目 基于单片机的掉电数据保持存储器 专业 姓名 学号 一、任务 设计一款以AT89C51单片机为控制核心,利用AT24C02内存芯片设计的一种掉电数据存储器,这种存储器掉电后再次开机,LED数码管能够显示上次关机时的数字。二、设计要求1 掌握AT24C02内存芯片的工作原理及使用方法。2 通过对AT89C51单片机的编程,实现存储器掉电后再次开机时,LED数码管能够显示上次关机时的数字。3 写出详细的设计报告。4 给出全部电路和源程序。三、参考资料1 焦丽鹃.李春旭.郭学良.液晶显示器在人机交互系统中的应用J.信息技术,2006年11期. 2 马忠梅.单片机的C 语言应用程序设计M.北京:北京航空航天大学出版社.2006 3 刘勇数字电路M.电子工业出版社,20044 沈红卫.单片机应用系统设计实例与分析M.北京:北京航空航天大学出版社.2003 .5 周润景.基于Proteus的电路与单片机仿真系统设计与仿真M. 北京:北京航空航天大学出版社. 2005.完成期限 2013.7.1 - 2013.7.10 指导教师 专业负责人 2013年 6月 29 日目 录第1章 绪论11.1 掉电数据保持存储器的概述11.2 单片机发展的技术状况11.3 本设计任务2第2 章 总体方案论证与设计32.1 总体方案思路分析32.2 总体硬件组成框图3第3章 系统硬件设计53.1 掉电数据保持存储器的硬件设计53.2 晶振电路模块的设计53.3 复位电路模块的设计73.4 数码显示管模块设计8第4章 系统的软件设计94.1 主程序设计94.2 子程序设计10第5章 系统调试与测试结果分析115.1 使用的仪器仪表115.2 系统调试115.3 测试结果11结 论12参考文献13附录14第1章 绪论近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 而51系列单片机1是各单片机中最为典型和最有代表性的一种,通过本次课程设计进一步对单片机学习和应用,从而更熟悉单片机的原理和相关设计并提高了开发软、硬件的能力。本设计是通过单片机设计一个掉电数据存储器,要求开机后,LED数码管能够显示上次关机的数字。还要设计一个能够进行数据回查的仪表。1.1 掉电数据保持存储器的概述在位置测量系统中,基准量的建立是最基本的,也是必不可少的而在目前所流行的位置测量系统中,大都采用相对测量或相对测量和绝对测量相结合的方法不论是前者还是后者,要想保证测量基准在整个测量过程中不发生丢失,测量系统信息掉电保护就显得特别重要由于有了系统信息掉电保护,可避免多次重建测量基准,而保证测量基准在整个测量过程中不发生丢失所以在当前所用的测量系统中,信息掉电保护功能是必不可少的所谓信息掉电保护是指系统在掉电的瞬间,能把测量头的位置坐标准确记录下来,待下次上电后,就可正确复现掉电前测量头的位置坐标,保证了在接下去的测量过程中,测量基准不发生变化,从而保证测量系统在整个测量过程中的准确性2。1.2 单片机发展的技术状况在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用。EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读的特点。但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM3。1.3 本设计任务本研究即以AT89C51单片机为核心,利用AT24C02内存芯片设计一个掉电数据保持存储器,要求系统在断电时,能够保存数据,再次开机时,可以使LED数码管能够显示上次关机时的数字。其基本电路包括:单片机最小系统、I2C接口电路、LED显示电路等。第2 章 总体方案论证与设计本系统采用单片机AT89C51为控制核心,利用AT24C02内存芯片4设计一个掉电数据保持存储器,要求系统在断电时,能够保存数据,再次开机时,可以使LED数码管能够显示上次关机时的数字。系统主要包括单片机最小系统、I2C接口电路、LED显示电路等。2.1 总体方案思路分析AT89C5l 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路。 外接石英晶体及电容 C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用 30pF10pF,而如使用陶瓷谐振器建议选择 40pF10F。 用户也可以采用外部时钟。采用外部时钟的电路。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。 在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内 RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变 RAM中的内容,在 Vcc 恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。同时AT24C02存储芯片,既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。所以使用EEPROM AT24C02实现掉电保护,我们根据其特点进行设计5。2.2 总体硬件组成框图 AT89C51 LED显示器AT24C0数据存储芯片 晶振电路 复位电路 开关控制电路 图2-1 总体硬件组成框图 系统框图如图2-1所示,系统主要由单片机AT89C51,数据存储芯片AT24C02,晶振电路,复位电路,开关控制电路组成。 第3章 系统硬件设计3.1 掉电数据保持存储器的硬件设计3.1.1 AT89C51芯片介绍AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大 AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 IO 口线,两个 16 位定时计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位6。图3-1-1 AT89C51引脚图 3.1.2 驱动电路的设计此系统中驱动电路原理图如图3-1-2所示。 图3-1-2 驱动电路原理图3.2 晶振电路模块的设计 图3-2 晶振电路89C51芯片内部有一个高增益反相放大器,用于构成振荡器7。如图32,反相放大器的输入端为XTAL1 ,输出端为XTAL2,两个跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容器通常取30pF左右,可以稳定频率并对振荡频率有微调作用XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF 左右。一个晶体振荡器,接在单片机内部的振荡电路上,两个电容是起振电容,频率越高,应该越小8。3.3 复位电路模块的设计 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0P3 口均置1 引脚表现为高电平,程序计数器和特殊功能寄存器SFR 全部清零。当复位脚由高电平变为低电平时,芯片为ROM 的00H 处开始运行程序。 如上图3-3所示复位电路,由于复位时高电平有效,当刚接上电源的瞬间,电容C1两端相当于短路,即相当于给RESET引脚一个高电平,等充电结束时(这个时间很短暂),电容相当于断开,这时已经完成了复位动作9。 图3-3 复位电路3.4 数码显示管模块设计我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮10。而共阳极就是将八个LED的阳极连在一起。其原理图如下11。 共阴极 共阳极 引脚图 图3-2-1 数码显示管设计原理图第4章 系统的软件设计4.1 主程序设计开始 赋初值调用读取函数数据开始计时 调用读取函数数据是否计时一秒否清零是调用写入数据函数是否清零键为零否是 延时 图4-1 主程序流程图4.2 子程序设计 开始 将数据送入SDA 赋初值 等待一个周期SCL上升沿数据写入AT24C02 等待2个周期 SCL置低电平 将数据左移一位 移入次数加1否是否移入次数为8是 返回主程序图4-2 写入数据子程序第5章 系统调试与测试结果分析5.1 使用的仪器仪表 按键开关,AT89C51单片机,AT24C02数据存储器,LED数码显示器,电容,电阻,电源插头。下面为各元器件的作用: 开关:一个开关起到开关机作用,一个开关用于复位电路; 电容:用于单片机的最小系统; 数码显示器:显示数字。5.2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。5.2.1硬件调试 对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。5.2.2软件调试 软件调试采用单片机仿真器WAVE6000L及微机,将编好的程序进行调试,主要是检查语法错误。5.2.3硬件软件联调 将调试好的硬件和软件进行联调,主要调试系统的实现功能。5.3 测试结果此次系统设计结果较好,开启电源带数字到达某一值关闭电源,等待五秒,待再次开启电源,显示为关机时结果。结 论 本设计任务是以AT89C51单片机为控制核心,利用AT24C02内存芯片设计一个掉电数据保持存储器。通过这次的学习,我对我对AT89C51系列单片机有了进一步了解,对AT24C02芯片的应用更加灵活。更主要得是我知道了掉电保护的主要原理是由电源监控芯片和串行E2PROM AT24C02构成的低成本掉电检测和保护电路,在实时保存数据和掉电恢复现场继续运行的单片机系统中具有现实的工程意义。使用中比自带掉电保护的EZPROM 要更加灵活,可以自由利用AT24C02 的存储空间,例如循环使用、用个别单元存放可修改参数。但是,由于实际应用中廉价的单片机大多数都不带总线接口,这就使得在软件编程上复杂了一些,通过一定的编程技巧取得的效果是令人满意的。 通过软硬件的仿真调试,实现了本次设计的基本功能:实现存储器掉电后再次开机时,LED数码管能够显示上次关机时的数字。但在实际应用中,功能不仅仅于此,通过对程序的稍做修改,我们就可以实现更多的功能。参考文献1 焦丽鹃.李春旭.郭学良.液晶显示器在人机交互系统中的应用J.信息技术,2006年11期. 2 刘勇数字电路M.电子工业出版社,20043 沈红卫.单片机应用系统设计实例与分析M.北京:北京航空航天大学出版社.2003 .4 彭介华.电子技术课程设计指导J.北京:高等教育出版社,1997.5 万光毅.单片机实验与实践教程M. 北京:北京航空航天大学出版社.2005.1.6 张毅刚.单片机原理及应用M. 北京:高等教育出版社.2003:160-190.7 诸昌钤.LED 显示屏系统原理及工程技术M. 成都:电子科技大学出版社.2000.8 张红.基于单片机控制的LED 点阵显示屏系统J. 微计算机信息.2009.25期 1-2卷:92-93.9 胡烨,姚鹏翼,陈明.Protel 99SE原理图与PCB设计教程M.机械工业出版社.2005:23-99.10 马忠梅.单片机的C 语言应用程序设计M.北京:北京航空航天大学出版社.200611 周润景.基于Proteus的电路与单片机仿真系统设计与仿真M. 北京:北京航空航天大学出版社. 2005. 附录1 程序#include #include #define OP_READ 0xa1 #define OP_WRITE 0xa0 sbit SCK=P34; sbit SDA=P35; unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; unsigned char sec=0; unsigned int count; bit write=0; sbit shiwei=P26; sbit gewei=P27; sbit K5=P32; void delay1ms()unsigned char i,j; for(i=0;i10;i+)for(j=0;j33;j+); void delaynms(unsigned char n) unsigned char i;for(i=0;in;i+)delay1ms();void start()SDA = 1; SCK = 1; SDA = 0; SCK = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); void stop()SDA = 0; SCK = 1; _nop_(); _nop_(); SDA = 1; _nop_(); _nop_(); SDA=0; _nop_(); _nop_(); SCK=0;bit Ask() bit ack_bit; SDA = 1; _nop_(); _nop_(); SCK = 1; _nop_(); _nop_(); ack_bit = SDA; SCK = 0; return ack_bit; unsigned char ReadData()unsigned char i;unsigned char x; for(i = 0; i 8; i+)SCK = 1; x=1; x|=(unsigned char)SDA; SCK = 0; return(x); void WriteCurrent(unsigned char y)unsigned char i;for(i = 0; i 8; i+) SDA = (bit)(y&0x80); _nop_(); SCK = 1; _nop_(); _nop_(); SCK = 0; y = 1; unsigned char writeset(unsigned char add,unsigned int dat) start(); WriteCurrent(OP_WRITE); Ask();WriteCurrent(add); Ask();WriteCurrent(dat); Ask();stop(); delaynms(4); unsigned char ReadCurrent()unsigned char x;start(); WriteCurrent(OP_READ); Ask();x=ReadData(); stop(); return x; unsigned char ReadSet(unsigned char set_addr)start(); WriteCurrent(OP_WRITE); Ask();WriteCurrent(set_addr); Ask();return(ReadCurren

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论