基于单片机心形流水灯设计论文.docx

上传人:b****5 文档编号:5802119 上传时间:2023-01-01 格式:DOCX 页数:45 大小:64.45KB
下载 相关 举报
基于单片机心形流水灯设计论文.docx_第1页
第1页 / 共45页
基于单片机心形流水灯设计论文.docx_第2页
第2页 / 共45页
基于单片机心形流水灯设计论文.docx_第3页
第3页 / 共45页
基于单片机心形流水灯设计论文.docx_第4页
第4页 / 共45页
基于单片机心形流水灯设计论文.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

基于单片机心形流水灯设计论文.docx

《基于单片机心形流水灯设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机心形流水灯设计论文.docx(45页珍藏版)》请在冰豆网上搜索。

基于单片机心形流水灯设计论文.docx

基于单片机心形流水灯设计论文

 

课程设计(论文)说明书

题目:

心形流水灯

院(系):

信息与通信学院

专业:

通信工程

学生姓名:

学号:

指导教师:

职称:

 

2012年12月1日

摘要

本论文基于单片机技术与单片机芯片AT89S51芯片功能和C语言程序,实现心形流水灯的多种亮与灭的循环。

首先,我们了解单片机的一些技术,了解了单片机芯片AT89S51的一些功能;然后结合C语言编程;最后将它们运用到实际的电路,使心形LED灯实现多种亮灭方法。

本论文介绍关于流水灯的运用和单片机技术;然后介绍芯片AT89S51;最后介绍运用到的相关软件.

关键词:

单片机;流水灯;C语言;

 

Abstract

ThispaperBasedonthesinglechipmicrocomputerandsinglechipmicrocomputerchipAT89S51chipfunctionandClanguageprogram,Realizationofflowingwaterlightheartavarietyoflightandthecycleofdestruction。

primarily,Weknowsomeofthesinglechipmicrocomputertechnology,UnderstandingofthesinglechipmicrocomputerchipAT89S51ofsomefunctions,ThenbasedontheClanguageprogramming;Finallytheyareappliedtothepracticalcircuit,MakeheartLEDlampachieveavarietyoflightoutmethod.Thispaperintroducesabouttheuseofflowingwaterlightandsinglechipmicrocomputer;andthenintroducedchipAT89S51;Attheendofthispaperappliedtosoftware.

Keywords:

micro-computer;lightwater;Cprogramminglanguage

 

3.4设计步骤及方法...................................................................................................................................8

4.3C语言程序运用......................................................................................................................................10

 

引言

LED流水灯是运用单片机原理和一些芯片功能,结合C语言或者汇编语言,实现灯的亮灭方式。

流水灯主要用于装饰婚庆布置、宾馆、酒店、酒吧、聚会、商厦、家居、橱窗、俱乐部、音乐会、歌厅、时装表演、舞厅、舞台、等等各个场所,也可以作为礼物送人。

本文主要讲述我完成这次课设所经历的五个阶段:

总体方案设计、硬件电路设计方案及原理、软件调试及仿真,电路板的制作、对于本次课程设计的改进预想。

在介绍我本次课程设计的设计原理的同时,也侧重同时记录了我是如何对于设计过程中遇到的问题进行分析和解决的。

同时,我也着重介绍了我所用到的相关软件和芯片功能。

 

1设计方案

1.1总体设计目标

使心形LED灯实现42种不同形式的闪烁功能

利用C语言编程,使LED灯实现42种不同形式的闪烁功能,一直循环。

1.2总体设计组成框图

系统框图如下

 

 

1.1系统框图

运用单片机与芯片STC89C52功能,以及C语言程序编程,是LED灯实现多种亮灭方法,运用晶振给单片机芯片提供一个时钟信号,本次实验采用12MHz的晶振给单片机提供时钟信号。

2相关运用及功能

2.1流水灯运用

LED灯可以装饰婚庆布置、宾馆、酒店、酒吧、聚会、商厦、家居、橱窗、俱乐部、音乐会、歌厅、时装表演、舞厅、舞台、等等各个场所,也可以当做礼物送人。

人们可以将各种亮法的灯去装饰自己需要装饰的地方,也可以安放在广告牌,这样更为吸引人们的关注。

2.2单片机运用

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

1.在智能仪器仪表上的应用

2.在工业控制中的应用

3.在家用电器中的应用

4.在计算机网络和通信领域中的应用

5.单片机在医用设备领域中的应用

6.在各种大型电器中的模块化应用

7.单片机在汽车设备领域中的应用

此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。

2.3STC89S52芯片功能

STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

 

主要特性如下:

 

1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意

选择,指令代码完全兼容传统8051. 

2. 工作电压:

5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机) 3. 工作频率范围:

0~40MHz,相当于普通8051的0~80MHz,实际工作

频率可达48MHz 

4. 用户应用程序空间为8K字节 5. 片上集成512字节RAM 

6. 通用I/O口(32个),复位后为:

P1/P2/P3/P4是准双向口/弱上拉,

P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

 

7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无

需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片 8. 具有EEPROM功能 9. 具有看门狗功能 

10. 共3个16位定时器/计数器。

即定时器T0、T1、T2 

11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可

由外部中断低电平触发中断方式唤醒 

12. 通用异步串行口(UART),还可用定时器软件实现多个UART 13. 工作温度范围:

-40~+85℃(工业级)/0~75℃(商业级) 14. PDIP封装 

STC89C52RC单片机的工作模式 

 掉电模式:

典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原

程序

  

PDIP封装的AT89S51管脚图

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口除了作为普通I/O口,还有第二功能:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(T0定时器的外部计数输入)

P3.5T1(T1定时器的外部计数输入)

P3.6/WR(外部数据存储器的写选通)

P3.7/RD(外部数据存储器的读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。

读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。

只有读端口时才真正地把外部的数据读入到内部总线。

89C51的P0、P1、P2、P3口作为输入时都是准双向口。

除了P1口外P0、P2、P3口都还有其他的功能。

RST:

复位输入端,高电平有效。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

地址锁存允许/编程脉冲信号端。

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器的选通信号,低电平有效。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:

外部程序存储器访问允许。

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

片内振荡器反相放大器和时钟发生器的输入端。

XTAL2:

片内振荡器反相放大器的输出端。

3软件部分设计方案及仿真

3.1multisim软件功能简介

Multisim是InteractiveImageTechnologies(ElectronicsWorkbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。

它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。

为适应不同的应用场合,Multisim推出了许多版本,用户可以根据自己的需要加以选择。

在本书中将以教育版为演示软件,结合教学的实际需要,简要地介绍该软件的概况和使用方法,并给出几个应用实例。

Multisim是加拿大图像交互技术公司(InteractiveImageTechnoligics简称IIT公司)推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。

它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。

  工程师们可以使用Multisim交互式地搭建电路原理图,并对电路行为进行仿真。

Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。

通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程.

3.2AltiumDesigner软件功能简介

AltiumDesigner提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。

AltiumDesigner在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式以及PCB版图设计、编辑和制造。

并集成了现代设计数据管理功能,使得AltiumDesigner成为电子产品开发的完整解决方案-一个既满足当前,也满足未来开发需求的解决方案。

最新发布的AltiumDesigner10为您带来了一个全新的管理元器件的方法。

其中包括新的用途系统、修改管理、新的生命周期和审批制度、实时供应链管理等更多的新功能!

Release10将继续保持不断插入新的功能和技术的过程,使得您可以更方便轻松地创建您的下一代电子产品设计。

Altium的统一的设计架构以将硬件,软件和可编程硬件等等集成到一个单一的应用程序中而闻名。

它可让您在一个项目内,甚或是整个团队里自由地探索和开发新的设计创意和设计思想,团队中的每个人都拥有对于整个设计过程的统一的设计视图。

AltiumDesigner10提供了一个强大的高集成度的板级设计发布过程,它可以验证并将您的设计和制造数据进行打包,这些操作只需一键完成,从而避免了人为交互中可能出现的错误。

发布管理系统简化规范了发布您的设计项目的流程,或者更具体地说,是那些项目中定义的配置,直观,简洁而且稳定。

更重要的是,该系统可以被直接链接到您的后台版本控制系统。

新增的强大的预发布版验证手段的组合-用以确保所有包含在发布中的设计文件都是当前的,与存储在您的版本控制系统中的相应的文件“主人”保持同步的文件,并且通过了所有特定的规则检查ERC,DRC,等等,从而,您可以在更高层面上控制发布管理,并可保证卓越的发布质量。

3.3keil软件功能简介

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51开发系统基本知识KeilC51开发系统基本知识

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

下面详细介绍KeilC51开发系统各部分功能和使用。

C51工具包的整体结构,如图

(1)所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及A51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

3.4设计步骤及方法

首先,确定好原理图后,在multisim软件上画好,并仿真;然后在keil软件软件上面,用C语言进行编程,把程序录入芯片STC89S52上面,再做板。

4电路板的制作及调试

4.2电路板的调试过程及所遇问题的解决方案

电路所设计的功能能否实现,电路板制作的好坏也起了很大的作用。

在接通电源前,我先对电路中的主要线路进行了测量,包括电源线,排线,芯片之间的连线,然后就接上5V电源,开始对电路中的功能进行检测。

接通5V电源后,首先观察所以等是否都亮,如果不亮,一一看电路板是否虚焊了。

还有灯如果亮,但是不按自己编的程序亮,还要看程序是否已经成功录入芯片,或者程序错误,还有,程序对了,电路也没有虚焊,灯并没有按照程序亮法亮,这样检查焊锡是否多了,焊锡多了也容易出现问题,因为焊接时,焊锡会空隙焊接,实际上并没有焊接好电路。

在这次的调试过程中,从最开始的制作到后来的电路板进行实物检测,我都遇到了很多的问题,以下是我对这些问题的解决过程以及从中获得的心得体会

4.2.2断线和虚焊

在做完电路板,焊接好元件之后就要对线路进行全面的检查,用万用表对着原理图来测量,不能光凭肉眼判断。

在这次的课设中,在焊好元件后我已经对线路进行了检查,然后在后来的调试过程中发现原来检查好的线路上又出现了断线,应该是在调试的过程中剐蹭造成的,因此在电路不能实现功能时要及时进行线路的检查。

在焊接的技术不是很熟练的时候,虚焊很容易出现,而且与断线相比,它不容易被发现,特别是对于多管脚的芯片,芯片插进去的时候就会很困难,很容易出现一些管脚没有完全穿过去的情况,这个时候就最容易出现虚焊,在这次课设的过程中,就是有一个芯片的管脚没有插好导致电路没有实现功能。

还有,管脚特别多的时候,不能把管脚焊接在一起,这样会造成电路短路,元器件会容易烧坏,所以,在接电源之前要注意检查虚焊和焊接是否会造成短路。

还有注意芯片的保护,由于芯片管脚很多,而且芯片管脚比较小,所以在芯片的安放和拿出过程中必须要小心,不能把芯片管脚弄坏,建议使用工具把管脚取出。

4.2.3万用表的使用

使用万用表,可以检查电路是否虚焊了,这样有助于保证电路板成功实它的功能。

4.3C语言程序运用

在本次课程设计中,c语言程序的编程对电路板最终功能实现占大部分的作用,以下是部分c语言程序代码:

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodetable0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移

ucharcodetable1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移

ucharcodetable2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)

ucharcodetable3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)

ucharcodetable4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)

ucharcodetable5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)

ucharcodetable6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)

ucharcodetable7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)

uchari,j;//定义循环变量

uinttt=70;//定义时间指数

voiddelay(uinttime)//延时函数

{

uintx,y;

for(x=time;x>0;x--)

for(y=110;y>0;y--);

}

voiddisp0()//状态0所有LED闪烁3次

{

for(i=0;i<3;i++)

{

P0=0x00;P2=0x00;P3=0x00;P1=0x00;

delay(300);

P0=0xff;P2=0xff;P3=0xff;P1=0xff;

delay(300);

}

}

voiddisp1()//状态1LED顺时针转一圈

{

for(i=0;i<8;i++)

{

P2=table1[i];

delay(100);

}

P2=0xff;

for(i=0;i<8;i++)

{

P3=table1[i];

delay(100);

}

P3=0xff;

for(i=0;i<8;i++)

{

P1=table1[i];

delay(100);

}

P1=0xff;

for(i=0;i<8;i++)

{

P0=table0[i];

delay(100);

}

P0=0xff;

}

voiddisp2()//状态2LED逆时针转一圈

{

for(i=0;i<8;i++)

{

P0=table1[i];

delay(100);

}

P0=0xff;

for(i=0;i<8;i++)

{

P1=table0[i];

delay(100);

}

P1=0xff;

for(i=0;i<8;i++)

{

P3=table0[i];

delay(100);

}

P3=0xff;

for(i=0;i<8;i++)

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1