收藏 分销(赏)

基于单片机流水灯论文.doc

上传人:二*** 文档编号:4512903 上传时间:2024-09-26 格式:DOC 页数:20 大小:205KB
下载 相关 举报
基于单片机流水灯论文.doc_第1页
第1页 / 共20页
本文档共20页,全文阅读请下载到手机保存,查看更方便
资源描述
. . 西北民族大学 2012级专业课程设计(论文) 基于单片机流水灯设计 年 级: 学 号: 姓 名: 专 业: 自动化 二零一五年六 . .word.. . . 摘要 本论文基于单片机技术与单片机芯片AT89S51芯片功能和C语言程序,实现心形流水灯的多种亮与灭的循环。首先,我们了解单片机的一些技术,了解了单片机芯片AT89S51的一些功能;然后结合C语言编程;最后将它们运用到实际的电路,使心形LED灯实现多种亮灭方法。本论文介绍关于流水灯的运用和单片机技术;然后介绍芯片AT89S51;最后介绍运用到的相关软件. 关键词:单片机;流水灯;C语言; Abstract This paper Based on the single chip microputer and single chip microputer chip AT89S51 chip function and C language program,Realization of flowing water light heart a variety of light and the cycle of destruction。primarily,We know some of the single chip microputer technology,Understanding of the single chip microputer chip AT89S51 of some functions, Then based on the C language programming; Finally they are applied to the practical circuit, Make heart LED lamp achieve a variety of light out method. This paper introduces about the use of flowing water light and single chip microputer; and then introduced chip AT89S51; At the end of this paper applied to software. Key words:micro-puter;light water ;C programming language 目 录 引 言1 1 设计方案2 1.1 总体设计目标2 1.2总体设计组成框图2 2 相关运用与功能2 2.1流水灯运用2 2.2 单片机运用3 2.3 STC89C52芯片功能 3 3 软件部分设计方案及仿真6 3.1 multisim软件功能简介 6 3.2 Altium Designer软件功能简介 7 3.3 keil软件功能 8 3.4 设计步骤及方法...........................................................................................................................8 4 电路板的制作及调试8 4.1电路板的制作8 4.2 电路板的调试过程及所遇问题的解决方案9 4.3 C语言程序运用................................................................................................................................10 5 结论11 辞12 参考文献13 附 录14 . .word.. . . 引 言 LED流水灯是运用单片机原理和一些芯片功能,结合C语言或者汇编语言,实现灯的亮灭方式。流水灯主要用于装饰婚庆布置、宾馆、酒店、酒吧、聚会、商厦、家居、橱窗、俱乐部、音乐会、歌厅、时装表演、舞厅、舞台、等等各个场所,也可以作为礼物送人。 本文主要讲述我完成这次课设所经历的五个阶段:总体方案设计、硬件电路设计方案及原理、软件调试及仿真,电路板的制作、对于本次课程设计的改进预想。在介绍我本次课程设计的设计原理的同时,也侧重同时记录了我是如何对于设计过程中遇到的问题进行分析和解决的。同时,我也着重介绍了我所用到的相关软件和芯片功能。 1 设计方案 1.1 总体设计目标 使心形LED灯实现42种不同形式的闪烁功能 利用C语言编程,使LED灯实现42种不同形式的闪烁功能,一直循环。 1.2总体设计组成框图 系统框图如下 AT89S51 5v电压源 心形LED灯 1.1系统框图 运用单片机与芯片STC89C52功能,以及C语言程序编程,是LED灯实现多种亮灭方法,运用晶振给单片机芯片提供一个时钟信号,本次实验采用12MHz的晶振给单片机提供时钟信号。 2 相关运用及功能 2.1流水灯运用 LED灯可以装饰婚庆布置、宾馆、酒店、酒吧、聚会、商厦、家居、橱窗、俱乐部、音乐会、歌厅、时装表演、舞厅、舞台、等等各个场所, 也可以当做礼物送人。人们可以将各种亮法的灯去装饰自己需要装饰的地方,也可以安放在广告牌,这样更为吸引人们的关注。 2.2 单片机运用 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个X畴: 1.在智能仪器仪表上的应用 2.在工业控制中的应用 3.在家用电器中的应用 4.在计算机网络和通信领域中的应用 5.单片机在医用设备领域中的应用 6.在各种大型电器中的模块化应用 7.单片机在汽车设备领域中的应用 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 2.3 STC89S52芯片功能 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。  主要特性如下:  1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.  2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机) 3. 工作频率X围: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. 工作温度X围:-40~+85℃(工业级)/0~75℃(商业级) 14. PDIP封装  STC89C52RC单片机的工作模式  l 掉电模式:典型功耗<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.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(T0定时器的外部计数输入) P3.5 T1(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.1 multisim软件功能简介 Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。为适应不同的应用场合,Multisim推出了许多版本,用户可以根据自己的需要加以选择。在本书中将以教育版为演示软件,结合教学的实际需要,简要地介绍该软件的概况和使用方法,并给出几个应用实例。 Multisim是加拿大图像交互技术公司(Interactive Image Technoligics简称IIT公司)推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。     工程师们可以使用Multisim交互式地搭建电路原理图,并对电路行为进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程. 3.2 Altium Designer软件功能简介 Altium Designer 提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer成为电子产品开发的完整解决方案-一个既满足当前,也满足未来开发需求的解决方案。 最新发布的 Altium Designer10 为您带来了一个全新的管理元器件的方法。其中包括新的用途系统、修改管理、新的生命周期和审批制度、实时供应链管理等更多的新功能! Release 10 将继续保持不断插入新的功能和技术的过程,使得您可以更方便轻松地创建您的下一代电子产品设计。 Altium 的统一的设计架构以将硬件,软件和可编程硬件等等集成到一个单一的应用程序中而闻名。它可让您在一个项目内,甚或是整个团队里自由地探索和开发新的设计创意和设计思想,团队中的每个人都拥有对于整个设计过程的统一的设计视图。 Altium Designer 10 提供了一个强大的高集成度的板级设计发布过程,它可以验证并将您的设计和制造数据进行打包,这些操作只需一键完成,从而避免了人为交互中可能出现的错误。发布管理系统简化规X了发布您的设计项目的流程,或者更具体地说,是那些项目中定义的配置, 直观,简洁而且稳定。更重要的是,该系统可以被直接到您的后台版本控制系统。 新增的强大的预发布版验证手段的组合 - 用以确保所有包含在发布中的设计文件都是当前的,与存储在您的版本控制系统中的相应的文件“主人”保持同步的文件,并且通过了所有特定的规则检查ERC, DRC, 等等, 从而,您可以在更高层面上控制发布管理,并可保证卓越的发布质量。 3.3 keil软件功能简介 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为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语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 Keil C51开发系统基本知识Keil C51开发系统基本知识 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(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.3 C语言程序运用 在本次课程设计中,c语言程序的编程对电路板最终功能实现占大部分的作用,以下是部分c语言程序代码: #include <REGX52.H> #define uint unsigned int #define uchar unsigned char uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移 uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移 uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位) uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位) uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位) uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位) uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0) uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0) uchar i,j; //定义循环变量 uint tt=70; //定义时间指数 void delay(uint time) //延时函数 { { disp31(); //状态31 逐步逆时针点亮P2、P1的LED,再逆时熄灭后,再逆时针点亮P0、P3的LED,再逆时熄灭 disp32(); //状态32 LED自上而下逐步点亮,然后从下往上逐步熄灭 disp33(); //状态33 LED从左往右开始点亮(直到全亮),然后从左右两边开始熄灭(直到全部熄灭) disp37(); //状态37 2个LED自上而下移动,并点亮最下2个LED,然后2个LED再自下而上回去,同时4个LED(上下各2个LED)再来回移动一次 disp36(); //状态36 从P0.7、P3.0开始同时逆时针旋转,直到LED全亮 disp40(); //状态40 LED从P3.0、P0.7开始逆时针同时熄灭,直到LED全部熄灭 disp35(); //状态35 从P2.7、P1.7开始同时顺时针旋转,直到LED全亮 disp41(); //状态41 LED从P2.7、P1.7开始顺时针同时熄灭,直到全部熄灭 disp34(); //状态34 LED从左往右开始点亮(直到全亮),然后从中间往左右边熄灭 disp28(); //状态28 P1、P2和P0、P3交替闪烁 } } 5 结论 本次课程设计,是第一次课程设计。感触很深,本来很多软件都还没有学,像Altium Designer软件和keil软件,多亏同学的帮助,还有网上的很多视频教程。在同学帮助下,还有老师指导和自己努力下,自己慢慢学会了很多东西。学会怎么样绘制原理图,怎样更好去焊接板。 实验中,由于是第一次由自己设计做的板,刚开始的时候,由于自己的理论不足,经验不足,导致好多错误。不过,通过老师的指导,同学的帮助,还有自己去图书馆翻阅资料,在网上看很多软件教学视频,使自己学会了很多理论知识。在做电路板的过程中,自己焊接还有校检电路。在此过程中,知道注意设置焊盘的大小,电路的合理走线。这些都会对后面焊接电路的成功与否有比较大的左右,还有也知道自己应该多动手,多多练习做电路板。 在本次课程设计过程中,我深刻了解到自己的各方面知识是多么匮乏,还有自己的动手能力是那么的弱。这告诉我多去学习相关资料,多去上网看一下关于专业所用的相关软件教程,有什么不懂的地方,应该多去向老师请教,多去和同学交流。当然,最主要的还是多锻炼自己的动手能。 辞 本次课程设计,我可以顺利完成任务,首先要感谢老师的指导,再次感谢同学们给与我的帮助,其次,也要感谢科协的同学在我去做电路板的过程中,帮我配置腐蚀液,最后,也要感谢学校给我们这样一次锻炼的机会,感谢学校给我们提供给我们锻炼的场所和氛围。 正是老师、同学、学校给予我锻炼的机会,让本次课程设计能够顺利成功完成。 参考文献 [1] 郭天祥编著:《51单片机C语言教程》,电子工业,2008 [2] (美)弗洛伊德著,余璆等译:《数字电子技术(第九版)》,电子工业,2008 [3] 侯玉宝等编著:《基于Proteus的51系列单片机设计与仿真 》,电子工业,2008 [4] 吉雷.章优仕.齐永龙. Protel99电子电路设计[M], :电子科技大学,2000 [5]《C语言程序设计》 谭浩强 清华大学 (2010-06出版) 附 录 1.设计相关附图 元器件清单 : 红色发光二极管 5MM 32个 贴片电阻 470欧姆 32个 直插电阻 10K 1个 电容 30pf 2个 电解电容 10uf 1个 晶振 12.000MHz 1个 STC89C52 1个 导线 2根 排针 2 P DIP40插座 1个 自锁开关 1个 USB插头(母座) 1个 USB数据线(公对公) 1条 图1.1 元件清单 图1.2 原理图 . .word..
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服