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

下载本文档

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

文档简介

1、基于MSP430上的流水灯的实验设计申报者 : 队长 : 队员 : 摘要: IAR Embedded Workbench IDE是MSP430开发环境,它包含了编辑器;编译器;连接器;调试器;硬件中断模拟器;下载C语言程序到MSP430应用系统。因此,学习和使用IAR Embedded Workbench IDE是MSP430开发环境是进行MSP430开发必不可少的环节。主要原理是通过430单片机产生信号,控制一定数量的LED产生不同规律的变换,通过不同的程序,产生不同的循环,从而达到不同的变换效果。关键词:MSP 430 程序 LED 变换 循环Abstract:IAR Embed

2、ded Workbench IDE MSP430 developmentenvironment, itcontains the editor; compiler; connector;debugger; hardware interrupt simulator; download Clanguage program in the MSP430 application system.Therefore, the learning and use of the IAR 

3、EmbeddedWorkbench IDE MSP430 development environment isMSP430 development of essential link. The main principle is to generate the signal by 430 single chip microcomputer, transform to control the amount of LED produced by different ru

4、les, different procedures,different cycle, so as to achieve the transformation effect of different.Keywords: MSP 430 program LED transform circle目录一 MSP430单片机的概述1.1 MSP430系列单片机的基本信息 . . .31.2 MSP430系列单片机与51系列单片机的比较. . . . 4二 设计思路2.1设计平台. . . . . . . . . . . .

5、. . . .4 2.2设计思路. . . . . . . . . . . . . . .5三 电路设计3.1电路模块设计. . . . . . . . . . . . . .63.1.1 晶振电路模块. . . . . . . . . . . . . .6 3.1.2 复位电路模块. . . . . . . . . . . . . .6 3.1.3 数码管显示模块. . . . . . . . . . . 6 3.1.4 功能模式选择模块. . . . . . . . . . . .63.1.5 LED流水灯模块. . . . . . . . . . . .63.2 实验电路设计 . . .

6、 . . . . . . . .6 7 8 9四 程序调试及实验结果展示. . . . . . . . .10 11五 实验总结. . . . . . . . . . . . . .11 12六 参考文献. . . . . . . . . . . . . . .12附录一. . . . . . . . . . . . . . .12 13 14附录二. . . . . . . . . . . . . . . .141. MSP430单片机的概述1.1 MSP430系列单片机的基本信息ClockRAMFIASH ACLK SMCLK MCLKRISCCPU16-bitJTAG/Debug MAB

7、 MDB DigitalPeripheralAnalogPeripheral ACLK SMCLK图1 MSP430内部原理框图在运算速度方面,MSP430系列单片机能在8MHz晶体的驱动下,实现125us的指令周期。16位的数据宽度、125us的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如FFT等)。MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只需6us。其主要特性如下:1、超低功耗;2、丰富的片上外围模块;3、方便高效的开发环境;4、适应工业级运行环境1.2 MSP430系列单片

8、机与51系列单片机的比较首先,89C51单片机是8位单片机,其指令是采用的被称为“CISC”的复杂指令集,共具有111条指令。而MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条内核指令,大量的指令则是模拟指令;众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快。其次,89C51单片机本身的电源电压是5伏,有两种低功耗方式:待机方式和掉电方式。正常情况下消耗的电流为24mA,在待机状态下,其耗电电流仍为3mA;即使在掉电方式下,电源电压可以下降到2V,但是为了保存内部RAM中的数据,还需要提供约500uA的电流。

9、而MSP430系列单片机在低功耗方面的优越之处,则是89C51系列不可比拟的。正因为如此,MSP430系列单片机更适合应用于使用电池供电的仪器、仪表类产品中。再者,89C51系列单片机由于其内部总线是8位的,其内部功能模块基本上都是8位,虽然经过各种努力其内部功能模块有了显著增加,但是受其结构本身的限制很大,尤其模拟功能部件的增加更显困难。MSP430系列其基本架构是16位的,同时在其内部的数据总线经过转换还存在8位的总线,在加上本身就是混合型的结构,因而对它这样的开放型的架构来说,无论扩展8位的功能模块,还是16位的功能模块,即使扩展像模/数转换或数/模转换这类的功能模块也是很方便的。这也就

10、是为什么MSP430系列产品和其中功能部件迅速增加的原因。最后,就是在开发工具方面。对于89C51来说,由于它是最早进入中国的单片机,人们对它再熟悉不过了,再加上我国各方人士的努力,创造了不少适合我们使用的开发工具。但是如何实现在线编程还是一个很大问题。对于MSP430系列而言,由于引入了FLASH型程序存储器和JTAG技术,不仅使开发工具变得简便,而且价格也相对低廉,并且还可以实现在线编程。2.1设计平台MSP430单片机;PC机,IAR Embedded Workbench IDE软件平台,Proteus软件平台图2 MSP430单片机2.2 设计思路本系统主要通过P5口来控制LED的闪烁

11、,通过模式按键来选择需要的闪烁方式,通过两个按键来控制复位,一个按键控制全部停止,一个按键控制暂停。在程序方面,我们首先定义了一个delay进行延时功能,定义一个keycode函数,利用变量temp来判断是否有键按下,并与中断一起完成及时对循环的跳出。将变量m,n放在主函数中,从而实现,按键暂停流水灯的复位功能。 3 设计方案要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在这个设计中,我们不只是单一的做向左运动或向右运动,V而是设计了三个模式,因此我们在普通的流水灯基础上增加了模式的选择功能一个数码显示管来显示模式编号。在此我们还应

12、注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。该流水灯实验一共可分为五个模块:晶振电路模块、复位电路模块、数码管显示模块、功能模式选择模块、LED流水灯模块。LED流水灯模块复位电路模块功能模式选择模块MSP430单片机数码管显示模块晶振电路模块 图3 系统原理框图3.1 电路模块3.1.1 晶振电路模块晶振是晶体振荡器的简称。在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的

13、特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振的负载电容为15p或12.5p,如果再考虑元件引脚的等效输入电容,则两个22p的电容构成晶振的振荡电路就是比较好的选择。3.1.2 复位电路模块这个模块主要进行复位操作。3.1.3 数码

14、管显示模块此模块主要是用来显示按下模式键后选择是哪个模式,其选择范围为09,既10个模式,因此只用一个数码管就可以了。3.1.4 功能模式选择模块在该模块中,我们要运用1个键,、模式键,因为该设计一共设有3种模式,因此模式键的功能就是选择运行哪一个模式。3.1.5 LED流水灯模块要实现流水灯功能,我们只要将发光二极管LED1LED16依次点亮、熄灭,16只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。且每一个LED灯于一个电阻串联。3.2 实验电路设计

15、本实验的电路仿真在Proteus平台上完成,图4为电路仿真图,该电路图载入IAR Embedded Workbench IDE平台上编写的单片机C语言程序,已经通过调试及仿真,正常工作,但画此电路时有一个问题没有注意到,首先我们没有定义中断,导致循环不能跳出,最终利用中断成功解决这个问题。 图4 电路仿真图中断程序#pragma vector=PORT1_VECTOR _interrupt void PORT_1 ()选择按键 while(1) keycod(); switch (num) case 1: show1();P5OUT=LED1;break;主函数 case 2: show2()

16、;P5OUT=LED2;break; case 3: show3();P5OUT=LED3;break; if(P1IN !=0x07) m+;中断程序 if(m>9)m=0; 否 a+; b=b+2;子函数 if(b>4)b=0; n-; 是 if(n<0)n=9; P1IFG=0X00; 图5 中断程序框图主程序流程图(部分举例)#include "msp430f149.h"#define UNIT unsigned intIntm,n,void delay(unsigned int i)void show1() if(P1IN=0X0F)P4OUT=

17、chm-chn;delay(10000); else if(P1IN=0X0E)P4OUT=chm+chn;delay(10000);void show2() P4OUT=(a*b)0xff; delay(10000); void show3()P4OUT=LED2m;delay(10000);void keycod()temp=P1IN; #pragma vector=PORT1_VECTOR _interrupt void PORT_1 () while(1) 上述程序用程序框图表示,很容易理解主函数 YN选择按键中断程序Display LED1Show1Display show1 Sho

18、w2Display LED2Display show2Show33Display LED3Display show3 图6 主程序框图 4 程序调试及实验结果展示(节选)实验结果举例41亮法1 有2种模式Show1按下列步骤运行,初始状态模式1 按住时状态1 状态2 状态3 状态4 状态5 状态6 状态7 模式2 松开时P4OUT=chm-chn;ch=0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00;m逐渐增加,n逐渐减小变化过于复杂在此无法展示4.2. 亮法2 有256种模式Show2按下列步骤运行,截取部分初始状态状态1 状态2 状态3

19、状态4 状态5 状态6 状态7 状态8 状态9 状态10 状态11 状态12 状态13 状态14 状态15 4.3. 亮法3Show3按下列步骤运行,初始状态状态1 状态2 状态3 状态4 状态5 状态6 状态7 状态8 5 实验总结图7 电路图焊板本来我们小组打算在PC机上仿真展示,但由于时间紧急且为五人小组,故决定焊板制作出电路实物,以显示我们小组的单片机开发能力。如图7所示,为最终焊板电路。虽说效率故焊板成板质量比较粗糙。最终该焊板也没能正常工作。 最终我们只出现了焊接不牢,弄错引脚,连线较为复杂的问题,经过努力还是完美的解决了,胜感欣慰。由此此实验结束。6. 参考文献李智奇 MSP43

20、0系列超低功耗单片机原理与系统设计 西安电子科技大学出版社 2008年附录一 完整C代码#include "msp430f249.h"#define UNIT unsigned intUNIT LED=0X3F,0X06,0X5B,0X4F;UNIT LED2=0x01,0x03,0x07,0x0f,0xff,0xf0,0xe0,0xc0,0x80,0xff;UNIT ch=0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00;int m=0;int n=9,num,temp;int b=0;int a=0x01; void delay(unsigned int i) unsigned int j; while(i-) for(j=0;j<1000;j-);void show1() if(P1IN=0X0F)P4OUT=chm-chn;delay(10000); else if(P1IN=0X0E)P4OUT=chm+chn;delay(10000);void show2() P4OUT=(a*b)0xff;

温馨提示

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

评论

0/150

提交评论