




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳城市学院 基于单片机的LED跑马灯设计 胡松摘要单片机的出现时计算机发展史上的一个重要里程碑,它开辟了计算机技术的另一个领域嵌入式(Embedded)计算机领域。所谓单片机就是把中央处理器、存储器、定时器、I/0接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。单片机把微型计算机的各主要部分集成在一块芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。所以单片机是典型的嵌入式系统,是嵌入式系统低端应用的最佳选择。自20世纪70年代以来,单片机在工业测控、仪器仪表、航空航天、军事武器、家用电器等领域的应用越来越广泛,功能也越来越完善。由单片机及各种微
2、处理器、DSP所构成的嵌入式系统设计已成为电子技术产业发展的一项重要内容。单片机技术也成为电子技术及自动化专业必须掌握的技术之一。近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本设计主要以msp430g2553单片机为基础应用I/O口,复位电路,晶振电路并写好底层程序,做出能应用于跑马灯的最小系统。关键词:最小系统,嵌入式,msp430g2553,跑马灯目录1.绪论22.
3、设计方案及分析42.1设计目的42.2设计要求52.3LED灯管52.3.1LED灯简介52.3.2LED原理62.4系统框图62.5系统的软件设计72.5.1程序编写部分72.5.2延时的计算72.5.3程序流程图82.5.4跑马灯的效果描述92.6系统调试及结果分析103.总结和体会及遇到的问题114.致谢12附录13参考文献191. 绪论由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作
4、数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。首先,MSP430系列单片机的电源电压采用的是1.8-3.6V电压。因而可使其在1MHz的时钟条件下运行时,芯片的电流最低会在165A左右,RAM保持模式下的最低功耗只有0.1A。其次,独特的时钟系统设计。在MSP430系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL和FLL+)时钟系统和DCO数字振荡器时钟系统。可以只使
5、用一个晶体振荡器(32.768kHz)DT-26ORDT-381,也可以使用两个晶体振荡器。由系统时钟系统产生CPU和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。MSP430系列单片机的各系列都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位-ADC、DMA、I/O端口、基本定时器(BasicTimer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合
6、。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出A/D转换器;16位定时器(Timer_A和Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、PWM等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的I/O端口,P0、P1、P2端口能够接收外部上升沿或下降沿的中断输入;10/12位硬件A/D转换器有较高的转换速率,最高可达200kbps,能够满足大多数数据采集应用;能直接驱动液晶多达160段;实现两路的12位D/A转换;硬件I2C串行总线接口实现存储器串行扩展;以及为了增加数
7、据传输速度,而采用的DMA模块。MSP430系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。另外,MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的低功耗状态时,中断唤醒只需5s。MSP430系列有OTP型、FLASH型和ROM型三种类型的器件,这些器件的开发手段不同。对于OTP型和ROM型的器件是使用仿真器开发成功之后烧写或掩膜芯片;对于FLASH型则有十分方便的开发调试环境,因为器件片内有JTAG调试接口,还有可电擦写的FLASH存储器,因此采用先下载程序到FLASH内,再在器件内通过软件控制程序的运行,由JTAG接口读取片内信息供设计者调
8、试使用的方法进行开发。这种方式只需要一台PC机和一个JTAG调试器,而不需要仿真器和编程器。开发语言有汇编语言和C语言。2. 设计方案及分析2.1 设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。学习单片机课程以后,为了加深对理论知识的理解,加强理论知识在实际当中的运用,强化自己的动手能力,通过期末设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.2 设计要求(1)采用单片机msp430g2553做成最小系统来控制。(2)利用最小系统做出跑马灯,其LED灯的模式间隔时间采
9、用延时程序控制,每种模式可采用不同的延时,灵活多变。(3)10个LED灯采用共阴极接法。2.3 LED灯管2.3.1 LED灯简介LED具有功耗少、寿命长、光谱宽(眼睛看得舒适度好)、使用广泛,能灵活拼装各种需要的形状等优点。一般来说LED的工作电压是2V-3.6V。工作电流是0.02-0.03A。这就是说:它消耗的电能不超过0.1W。在恰当的电流和电压下,LED的使用寿命可达10万小时。此外,LED基本上是一块很小的晶片被封装在环氧树脂里面,所以它非常的小,非常的轻,硬件电路实现起来比较方便。因此本设计采用10个白色发光二极管,排成两列(每列5个),从而控制其灵活变化,设计出展示的方案。图2
10、-1 LED灯2.3.2 LED原理图2-2 LED结构及PN结原理LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片。 晶片的一端附在一个支架上,一端是负极负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的
11、原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。根据不同材料发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等。LED有共阴极和共阳极两种。在此设计中我们采用共阳极,共阳极将发光二极管的阳极连接在一起,接入+5V的电压。2.4 系统框图图 2-3 系统框图图2-4 管脚2.5 系统的软件设计2.5.1 程序编写部分此设计主要是采用控制系统的延时来完成的,此设计中流水灯包含8种模式,每次对P1、P2口赋予相应的值,即可达到预期的效果,再和不同的延时相配合,就能达到不同的流水效果了。在程序编写方面,本设计采用IAR软件进行编程。程序编写过程当中采用数组、取余、循环移位、移位运算
12、、延时等方式来达成想要的效果。编程内容以8种模式为核心,控制LED跑马灯和数码管进行8种变化方式,从而达到设计方案最终预期的效果。2.5.2 延时的计算在本次设计中采用的延时程序为while(count-),即延时时间为count*指令周期,所以可采用将count值在范围内改变,或采用多层嵌套,来更改延时时间,从而灵活应用,如改变速度等。由于方案中采用12MHZ的晶振,一个机器周期=12个振荡周期=1us,也就是说,一个基本操作占用时间为1us。那么当delay(50000)时,延时时间为0.5秒。2.5.3 程序流程图初始化 开始模式八模式一模式二模式三模式七模式四模式六模式五2.5.4 跑
13、马灯的效果描述此次设计中的LED采用共阴极设计,10个灯排列方式:P2.1 P2.2 P2.3 P2.4 P2.5P1.1 P1.2 P1.3 P1.4 P1.5共8种变化模式,如下:(1)P1.1P1.5依次亮一下P2.5P2.1依次亮一下即P1.1到P2.1一周依次亮一下(2)P1.1 P2.1为一组,P1.2 P2.2为一组P1.5 P2.5为一组依次亮起P1.1 P2.1为一组,P1.2 P2.2为一组P1.5 P2.5为一组依次灭掉即5列从左向右依次亮起,再从左向右依次灭掉(3)P1.1 P2.5为一组,P1.2 P2.4为一组P1.5 P2.1为一组依次亮起P1.5 P2.1为一组
14、,P1.4 P2.2为一组P1.1 P2.5为一组依次亮起即两排分别为从左向右,从右向左交错亮起,再分别从右向左从左向右交错亮起,循环两次(4)P1.3 P2.3亮起P1.2 P2.2 P1.4 P2.4亮起P1.1 P2.1 P1.5 P2.5亮起P1.1 P2.1 P1.5 P2.5灭掉P1.2 P2.2 P1.4 P2.4灭掉P1.3 P2.3灭掉即从中间向两边展开亮起,再从两边向中间收起灭掉。(5)按P1.1 P2.2 P1.3 P2.4 P1.5 P2.5 P1.4 P2.3 P1.2 P2.1顺序依次亮起即从P1.1到P2.1交叉依次亮起(6)P1.2 P2.2 P1.4 P2.4
15、亮起P1.1 P2.1 P1.3 P2.3 P1.5 P2.5亮起即2 4两列和1 3 5三列交互亮起,循环五次(7)P1.1 P2.5亮起P1.1 P1.2 P2.5 P2.4亮起P1.2 P1.3 P2.4 P2.3亮起P1.3 P1.4 P2.3 P2.2亮起P1.4 P1.5 P2.2 P2.1亮起P1.5 P2.1亮起再反向逆行一次即两排分别从左向右,从右向左两两交错逆行亮起(8)P1.1亮起P1.2 P2.1亮起P1.3 P2.2亮起P1.4 P2.3亮起P1.5 P2.4亮起P2.5亮起 即从P1.1起两两斜排亮起,循环三次2.6 系统调试及结果分析本设计整体采用线路少,谨慎按照
16、电路图焊好元件后,检测电路全部正常,不存在虚焊或漏焊,焊错。应用IAR软件根据设计要求编写出程序后,调试中出现符号错误及无用编码,根据提示改进后最终成功编写出所要求的程序,并用仿真程序调用后得到预期效果,下载软件到单片机。运行结果:成功下载软件,接通外部电源,LED灯亮起,但是有部分并未按照预期完成,经调试程序后,与预期相同,总体效果较好。3. 总结和体会及遇到的问题经过努力,我终于完成这次最小系统的的课程设计任务。在这次的单片机课程设计中我感觉受益匪浅,不用说我在其中学到的新知识是多么有价值,也不用说它拓宽了我多少的眼界,只是说它让我的能力得到了提高就已足以成为我努力付出的回报。通过课程设计
17、,我增强了对单片机的理解,学会查寻资料比较方案,学会单片机的设计计算;进一步提高分析解决实际问题的能力,创造一个动脑动手独立开展电路实验的机会,锻炼分析解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。做程序设计时,有些指令读不懂,不会用,要翻书上网查看,所亮的灯不是所预想的,经过仔细检查发现程序赋值问题并解决4. 致谢本论文是在刘丹丹老师的悉心指导之下完成的。三年来,老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。导师不仅授我以文,而且教我做人,
18、赋予我终生受益无穷之道。本论文从选题到完成,几易其稿,每一步都是在导师的指导下完成的,倾注了导师大量的心血,在此我向我的刘丹丹老师表示深切的谢意与祝福! 本论文的完成也离不开其他各位老师、同学和朋友的关心与帮助。在此也要感谢王鑫等各位老师在论文开题、初稿、预答辩期间所提出的宝贵意见,感谢机电学院能源课题组为本论文提供的数据和建议,还要感谢同组的其他成员,在科研过程中给我以许多鼓励和帮助。回想整个论文的写作过程,虽有不易,却让我除却浮躁,经历了思考和启示,也更加深切地体会了法学的精髓和意义,因此倍感珍惜。附录#include "
19、msp430g2553.h"void variety001();void variety002();void variety003();void variety004();void variety005();void variety006();void variety007();void variety008();int main() WDTCTL = WDTPW + WDTHOLD; while(1) variety001(); variety002(); variety003(); variety004(); variety005(); variety006(); variety
20、007(); variety008(); void variety001() unsigned char led; unsigned char P1variety0015=BIT1,BIT2,BIT3,BIT4,BIT5; unsigned char P2variety0015=BIT5,BIT4,BIT3,BIT2,BIT1; led=0x00; P1DIR=0xff; P2DIR=0xff; P1OUT=led; P2OUT=led; unsigned int i1,j1,i2,j2,j3; for(i1=0;i1<=4;i1+) led=ledP1variety001i1; P1O
21、UT=led; led=0x00; j1=50000; while(j1-); P1OUT=0x00; for(i2=0;i2<=4;i2+) led=ledP2variety001i2; P2OUT=led; led=0x00; j2=50000; while(j2-); P1OUT=0x00; P2OUT=0x00; j3=50000; while(j3-);void variety002() unsigned char P12variety002=0x03,0x07,0x0f,0x1f,0x3f; unsigned char P13variety002=0xfc,0xf8,0xf0
22、,0xe0,0xc0; P1DIR=0xff; P2DIR=0xff; P1OUT=0x00; P2OUT=0x00; unsigned int i1,j1,i2,j2,j3; for(i1=0;i1<5;i1+) P1OUT=P12variety002i1; P2OUT=P12variety002i1; j1=50000; while(j1-); for(i2=0;i2<5;i2+) P1OUT=P13variety002i2; P2OUT=P13variety002i2; j2=50000; while(j2-); P1OUT=0x00; P2OUT=0x00; j3=5000
23、0; while(j3-);void variety003() unsigned char P1variety003=0x03,0x07,0x0f,0x1f,0x3f; unsigned char P2variety003=0x20,0x30,0x38,0x3c,0x3e; P1DIR=0xff; P2DIR=0xff; P1OUT=0x00; P2OUT=0x00; unsigned i1,j1,i2,j2,j3,j4,j5=0; while(j5<=1) for(i1=0;i1<5;i1+) P1OUT=P1variety003i1; P2OUT=P2variety003i1;
24、 j1=20000; while(j1-); P1OUT=0x00; P2OUT=0x00; j4=50000; while(j4-); for(i2=0;i2<5;i2+) P1OUT=P2variety003i2; P2OUT=P1variety003i2; j2=20000; while(j2-); P1OUT=0x00; P2OUT=0x00; j3=20000; while(j3-); j5=j5+1; void variety004() unsigned char P1variety004=0x08,0x1c,0x3e; unsigned char P2variety004=
25、0x3e,0x1c,0x08; P1DIR=0xff; P2DIR=0xff; P1OUT=0x00; P2OUT=0x00; unsigned int i1,j1,i2,j2,j3; for(i1=0;i1<3;i1+) P1OUT=P1variety004i1; P2OUT=P1variety004i1; j1=30000; while(j1-); P1OUT=0x00; P2OUT=0x00; for(i2=0;i2<3;i2+) P1OUT=P2variety004i2; P2OUT=P2variety004i2; j2=60000; while(j2-); P1OUT=0
26、x00; P2OUT=0x00; j3=50000; while(j3-); void variety005() unsigned char P1variety005=0x02,0x02,0x0a,0x0a,0x2a,0x2a,0x3a,0x3a,0x3e,0x3e; unsigned char P2variety005=0x00,0x04,0x04,0x14,0x14,0x34,0x34,0x3c,0x3c,0x3e; P1DIR=0xff; P2DIR=0xff; P1OUT=0x00; P2OUT=0x00; unsigned int i1,j1,j3; for(i1=0;i1<1
27、0;i1+) P1OUT=P1variety005i1; P2OUT=P2variety005i1; j1=50000; while(j1-); P1OUT=0x00; P2OUT=0x00; j3=50000; while(j3-);void variety006() unsigned char P1variety005=0x14,0x2a; unsigned int i1=0,i2,j2,j3; while(i1<=4) for(i2=0;i2<2;i2+) P1OUT=P1variety005i2; P2OUT=P1variety005i2; j2=50000; while(
28、j2-); i1=i1+1; P1OUT=0x00; P2OUT=0x00; j3=50000; while(j3-);void variety007() unsigned char P1variety007=0x01,0x06,0x0c,0x18,0x30,0x20; unsigned char P2variety007=0x20,0x30,0x18,0x0c,0x06,0x01; P1DIR=0xff; P2DIR=0xff; P1OUT=0x00; P2OUT=0x00; unsigned int i1,j1,i2,j2,j3,j4; for(i1=0;i1<=5;i1+) P1OUT=P1variety007i1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微服务架构中服务互操作性的测试方法研究-洞察阐释
- Linux内核漏洞挖掘-洞察阐释
- 2025-2030中国椰子纤维行业市场发展趋势与前景展望战略研究报告
- 多级机械系统疲劳life预测模型-洞察阐释
- 2025-2030中国有机金属化合物行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国救护箱行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国排水清洁器行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国广汉市商业地产行业市场现状分析及竞争格局与投资发展研究报告
- 基因编辑抗病种质创新技术-洞察阐释
- 先进陶瓷材料在电池正极中的应用研究-洞察阐释
- 基于深度学习的语音分离技术研究
- 拆井施工方案
- 【中小企业财务管理存在的问题及对策分析-以A公司为例5100字(论文)】
- -2月班主任随堂听课记录表
- 《虚拟现实(VR)制作与应用》考试复习题库(汇总)
- 解剖学下肢肌课件
- NB/T 11141-2023煤矿用氮气降温装置
- 2023年山东省烟台市中考历史真题卷(含答案与解析)
- 国开2023春《语言学概论》形考任务1-3+大作业参考答案
- 第七章第四节+俄罗斯第二课时课件人教版七年级地理下册
- 大学生国家安全教育智慧树知到答案章节测试2023年广西科技大学
评论
0/150
提交评论