基于GPIO的LED流水灯设计_第1页
基于GPIO的LED流水灯设计_第2页
基于GPIO的LED流水灯设计_第3页
基于GPIO的LED流水灯设计_第4页
基于GPIO的LED流水灯设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上 学生课程设计题目 基于GPIO的LED流水灯设计 姓名 蒋 娜 学号 11 系 部 电子信息工程系 专业 计算机控制技术 指导教师 李列文 职称 讲师 2012 年 11 月 19 日长沙师范专科学校教务处制目录看门狗的设计摘要:根据嵌入式系统的具体应用特点,应用常规看门狗芯片设计了一种看门狗电路,在未处理气进入休眠低功耗、编程、远程升级维护等模式时,看门狗功能被临时屏蔽,从而保障了这些模式的正常运行,该电路已应用在实际系统中,应用效果证明了设计的有效性。关键词:看门狗;低功耗;嵌入式系统1 设计内容1.1 设计目的 看门狗的设计是为了实现一种灵活配置、多复位输出的

2、看门狗电路(且复位时间可调),实现了在系统被复位前做好重要自愿的备份工作以满足具体的应用需求。1.2 设计意义 随着电子系统朝规模大、体积小、速度快等特点发展,关于看门狗电路的设计也层出 不穷,以降低成本和空间,意法半导体退出一款看门狗定时器芯片STWD100,提供多种配置规格,超时设定包括3.4ms,6.3ms,102ms或者1.6s,另外还通过增加一个芯片使能输入接口,以实现当微处理器在系统编程或系统开机期间防止自动生成复位信号,为开发人员控制和管理应用提供了更好的灵活性。2 设计方案2.1 设计要求通常,硬件看门够只能监测微处理器是否正常“清狗”,却不能监测软件是否工作正常,特别是任务功

3、能十分正常,因此,此设计提出了一种软件看门狗的设计思路,对软件任务在执行时间上进行时间约束利定时器对软件任务计时,当任务的执行时间超过了最大指定时间,将这个任务所使用的资源释放,也就是将这个任务复位,等待下一次的执行,以弥补或克服硬件看门狗电路的不足。2.2 提出的问题“看门狗”原理如图1所示。工作正常的微处理器以T0周期频率向看门狗电路发送复位信号即“喂狗”信号,防止其产生复位信号。当出现异常时,微处理器没有发送喂狗信号的时间超过T1(通常,T1大于T0),即无法完成“喂狗”任务,看门狗电路因“饥饿”而输出复位信号,强制重启微处理器,使其重新进入正常循环状态。3 看门狗电路的设计图2是一种基

4、于看门狗IC设计的一种嵌入式系统看门狗电路图。 图中WDI是来自微处理器的喂狗信号;MR是看门狗芯片的手动复位输入端;WDO是看门狗芯片的超时输出端;RST是芯片的复位信号输出;S1是手动复位按钮;J1是跳线; 该电路的工作状态时序图,如图3所示。在T0时刻之前,S1处于闭合导通状态,看门狗芯片的RST输出低电平,复位微处理器。在T0T1时刻,由于来自微处理器的WD端输出周期性的矩形波,其周期小于看门狗电路的复位时间,看门狗电路RST输出高电平。不会复位微处理器。在T1T2时刻,由于微处理器不再输出清狗信号,即WDI保持低电平,引起看门狗芯片的WDO端输出低电平,复位微处理器,此为看门狗电路正

5、常工作状态。在T2T3时刻,为微处理器正常工作阶段,按照设定的频率发送喂狗信号,WDI端输出矩形波,防止看门狗芯片的WDO端输出低电平复位微处理器。在T3T4时刻,嵌入式系统需要改变工作状态,微处理器将进入在线编程、升级维护、休眠模式等模式时,先把V设置为高电平,然后进入相应的运行模式,此时,微处理器讲不会输出周期性的清狗信号。在T4时刻后,当V为高电平,看门狗芯片的WDO输出低电平。4 软件设计4.1 程序清单/* * 文 件 名:main.功 能:运行WDT,并控制LED1-LED8显示输出。程序开始先对LED1-LED8闪烁控制,并进行喂 * 狗处理;然后只点亮LED1,并进入死循环,等

6、待WDT复位。 * 说 明:将跳线器JP23短接,JP15全部断开。 */ #include "config.h" #define LEDCON 0x00ff0000; /* * 名 称:WdtFeed() * 功 能:看门狗喂狗操作。 * 入口参数:无 * 出口参数:无 */ void WdtFeed(void) WDFEED = 0xAA; WDFEED = 0x55; /* * 名 称:DelayNS() * 功 能:长软件延时,具有喂狗功能。 * 入口参数:dly 延时参数,值越大,延时越久 * 出口参数:无 */ void DelayNS(uint32 dly)

7、uint32 i; for(; dly>0; dly-) for(i=0; i<1000; i+)WdtFeed(); /* * 名 称:main() * 功 能:初始I/O口及WDT,然后开始先对LED1-LED8闪烁控制,并进行喂狗处理; * 然后只点亮LED1,并进入死循环,等待WDT复位。 * 说 明:如果将程序烧写到FLASH运行,WDT复位后程序会重新开始; */ int main(void) uint8 i; IO2DIR = LEDCON; WDTC = ; / 设置WDTC,喂狗重装值 WDMOD = 0x03; / 复位并启动WDT WdtFeed(); / 进

8、行喂狗操作 for(i=0; i<8; i+) IO2SET = 0x00ff0000; DelayNS(50); IO2CLR = 0x00ff0000; DelayNS(50); IO2SET = 0x00ff0000; IO2CLR = 0x; while(1); return(0);5 心得体会本次设计使我学到了很多的知识,相信对我以后的发展打下了良好的基础,不管是硬件的动手能力和软件的编写能力都有很大的提升。本次的设计是基于ARM7的看门狗模块的设计。这个芯片和我以往接触的C51系列和MSP430系列单片机都要复杂的多。不管是对寄存器的设置还是底层的开发都是庞大的工程。做完这个模块的开发,使我对ARM7系列的寄存器的使用和启动印象深刻,这对以后开发类似的程序模块打下坚实的基础。在软件的编写和设计中,让我更一步了解了ADS1.2编译环境。学好这个软件就是学好了一个使用的应用技能6 参考文献1 刘发志,张东,杨艳等,基于DM642的看门

温馨提示

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

评论

0/150

提交评论