单片机课程设计-多按键花样流水灯.doc_第1页
单片机课程设计-多按键花样流水灯.doc_第2页
单片机课程设计-多按键花样流水灯.doc_第3页
单片机课程设计-多按键花样流水灯.doc_第4页
单片机课程设计-多按键花样流水灯.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

前言单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O接口电路通过应刷电路板上的总线连成一体的完整计算机系统。1从1971年出现单片机的雏形开始,短短四十多年的时间里,单片机便社会各领域中得到了广泛的应用在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式控制系统,成为日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。2本文主要讲的是单片机,课题名称为多按键花样流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。通过本课题的设计以后,使我了解到了单片机的许多方面的应用。 全套设计加扣3012250582 目录前言- 1 -目录- 2 -第一章 设计目的及要求- 3 -1.1、设计目的- 3 -1.2、设计要求- 3 -1.2.1、课程设计要求- 3 -1.2.2、基本设计功能要求主要分为以下几个部分:- 3 -第2章 方案设计- 4 -2.1、研究背景- 4 -2.2、本文研究的主要内容- 4 -2.3、方案论证- 4 -2.3.1、方案- 4 -第3章 主要元器件介绍- 5 -3.1 AT89C51单片机介绍- 5 -3.1.1 AT89C51芯片简介- 5 -3.1.2 引脚说明- 5 -3.2、LED-GREEN简介- 7 -3.3、CAP-ELEC简介- 7 -第4章 硬件电路设计- 8 -4.1、主控系统- 8 -4.2、花样灯输入及中断控制模块- 8 -4.3、时钟及复位电路- 10 -4.4、花样灯输出电路- 10 -第5章 软件设计及主要子程序- 12 -5.1、软件设计思路- 12 -5.2、主程序模块- 12 -第6章 系统仿真与调试- 13 -6.1、Keil编译- 13 -6.2、Protues仿真平台- 13 -6.2.1、Protues仿真简介及部分模块仿真- 13 -6.2.2、硬件电路总图与仿真- 14 -6.2.3、PCB仿真原理图- 15 -第7章 操作方法- 16 -第8章 课程设计总结- 18 -附录- 19 -汇编程序- 19 -参考文献- 22 -第一章 设计目的及要求1.1、设计目的本次课程设计目的在于真正的把所学单片机理论知识应用于实际,更加熟悉51单片机的硬件与软件。能灵活运用Keil进行软件编程调试以及用proteus软件仿真。本次设计多按键花样流水灯系统,画出系统硬件电路图,设计输入控制,输出控制,输出部分,时钟及复位电路等子程序。在调试程序时,要求整个系统工作正常、显示正确、结果满意,掌握该芯片的工作原理并完成读、写程序的设计、编写和调试。1.2、设计要求1.2.1、课程设计要求 能熟练运用51单片机实现硬件与软件结合完成电子产品的设计,把理论真正运用于实践,会用Keil等软件编程调试运行,熟悉应用Proteus软件仿真。强化编程练习,注意查询方式与中断方式的区别等等。1.2.2、基本设计功能要求主要分为以下几个部分:多按键花样流水灯采用80c51单片机为控制器件,用于日常商业店铺和商场的装饰,此花样流水灯共有四个按键,分别对应控制着四种花样灯光效果。当开关K1按下时,执行跑马灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。当K1断开时所有的LED应该都熄灭;当开关k2按下时,执行流水灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。当开关k2断开时所有LED灯都应熄灭;当开关K3按下时,执行戏水灯程序共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。然后继续上次操作。当开关k3断开时所有的LED应该熄灭;当k4按下时,则循环执行上述程序,一直到K4断开,所有的LED熄灭。第2章 方案设计2.1、研究背景 现在有一些特殊的场合需要用到花样流水灯,比如在广场上大妈大爷跳广场舞时,来用来烘托气氛,去火场站接亲朋好友,当做一个醒目的提醒,以及男生向女神表白是,拿出一个心形跑马灯之类的。借着这次单片机课程设计的机会,设计一个多按键花样流水灯,通过89c51单片机实现,以及通过Proteus和keil仿真实现。2.2、本文研究的主要内容设计内容完全按照前面的设计要求完成,完全满足前面的设计要求。2.3、方案论证2.3.1、方案 采用标准80c51单片机作为控制器;采用P2口作为输出口控制八个LED的亮灭;P1口为输出口,P1.0,P1.1,P1.2,P1.3分别与四个开关K1,K2,K3,K4相连作为输入控制口,采用外部中断的控制方式控制各种花样灯的开通。采用以上结构,考虑到只有8个LED灯,所选单片机的I/O口完全够用,不需外部扩展。该系统具有电路简单,设计方便,显示亮度高,显示准确,耗电较少,可靠性高等特点。整个电路组成框图如图2-1所示。 图2-1 花样流水灯控制系统第3章 主要元器件介绍3.1 AT89C51单片机介绍3.1.1 AT89C51芯片简介AT89C51是MCS51系列单片机中的一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。 主要性能:与MCS-51 微控制器产品系列兼容。 片内有4KB可在线重复编程的快闪擦写存储器存储数据保存时间为10年。宽工作电压范围:Vcc可为2.7V到6V全静态工作;可从0Hz至16MHz 程序存储器具有3级加密保护 128*8位内部RAM 32条可编程I/O线、两个16位定时器/计数器、中断结构具有5个中断源和2个优先级、可编程全双工串行通道、空闲状态维持低功耗和掉电状态保存存储内容。89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统各部分功能及说明类似于8051单片机内部结构说明。 特殊功能寄存器共有21个,用于对片内的各功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。 由上可见, 89C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个1位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机设计的精美之处。3.1.2 引脚说明 图3.1是标准的40引脚双列直插式集成电路芯片。图3.1 AT89C51引脚图P00P07 P0口8位双向口线(在引脚的3932号端子)。P10P17 P1口8位双向口线(在引脚的18号端子)。P20P27 P2口8位双向口线(在引脚的2128号端子)。P30P37 P3口8位双向口线(在引脚的1017号端子)。1、P0口有三个功能: (1)外部扩展存储器时,用作数据总线(如图中的D0D7为数据总线接口)(2)外部扩展存储器时,用作地址总线(如图中的A0A7为地址总线接口)(3)不扩展时,可做一般的I/O口使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。2、P1口功能:P1口只做I/O口使用,其内部有上拉电阻。3、P2口有两个功能:(1)扩展外部存储器时,当作地址总线使用;(2)做一般I/O口使用,其内部有上拉电阻。4、P3口有两个功能:除了作为I/O口使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。5、ALE/PROG 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。PROG为编程脉冲的输入端,在89C51单片机内部有一个4KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的,那么我们是怎样把编写好的程序存入进这个ROM中的呢?实际上是通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是PROG。6、PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作:(1)内部ROM读取时,PSEN不动作;(2)外部ROM读取时,在每个机器周期会动作两次;(3)外部RAM读取时,两个PSEN脉冲被跳过不会输出;(4)外接ROM时,与ROM的EA脚相接。7、EA/VPP 访问程序存储器控制信号:(1)接高电平时:CPU读取内部程序存储器(ROM)(2)接低电平时:CPU读取外部程序存储器(ROM)。8031单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。8、RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。9、XTAL1和XTAL2 :外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。10、VCC:电源端接+5V电压输入。11、GND:接地端。3.2、LED-GREEN简介 LED-GREEN是绿色发光二极管,显示为绿色。3.3、CAP-ELEC简介 电解电容是电容的一种,金属箔为正极(铝或钽),与正极紧贴金属的氧化膜(氧化铝或五氧化二钽)是电介质,阴极由导电材料、电解质(电解质可以是液体或固体)和其他材料共同组成,因电解质是阴极的主要部分,电解电容因此而得名。同时电解电容正负不可接错。第4章 硬件电路设计硬件电路的设计主要包括主控系统设计、花样灯输入控制部分及中断系统电路设计、花样灯输出控制部分电路设计、时钟及复位电路设计。4.1、主控系统主控系统采用80c51单片机,单片机P1口用于开关控制输入,P 2口用于控制输出花样灯花样变化 ,P3.2()口 用于外部中断输入。图4.1 89c21单片机4.2、花样灯输入及中断控制模块如图2-3,花样灯输入控制模块由四个开关,电源,上拉电阻及四个二极管组成。各开关风别和相应的P1口相连于此同时通过二极管与P3.2()口相连。当开关处于断开状态时,各开关所对应P1.N(N为0到3)口处于高电位状态,当开关闭合时,所对应得P1.N(N为0到3)口直接与地相连,便处于低电位状态,于此同时二级管也导通,使P3.2()也经过二极管也直接与地相连,因此P3.2()的电位便被拉升到低电位,引起外部中断。此处电路二极管的设置十分必要和关键,利用二极管的单向导电性使得任意开关按下时,不至使得P1.0-P1.3口发生短路,全部被拉到低电位,若无二极管按下任意开关时,四个开关的右端将同时处于低电位,这就使得程序不能准确判断到底是哪个开关闭合,从而就不能顺利执行相应的花样灯程序。图4.2 输入电路4.3、时钟及复位电路 图4.3 时钟及复位电路4.4、花样灯输出电路如图4.3,为花样灯输出控制部分电路图。图中共有八个发光二极管,其采用共阳极结构。输出信号从80c51单片机的P2口输出,每个P2.N(N从1-7)通过总线与其相对应一个发光二极管相连,发光二管与限流电阻相连,设置限流电阻的目的是限制流过发光二极管的电流大小,不至于使其因为热效应损坏。当P2.N(N从1-7)处于低电平的时候,与其相连的二极管便被点亮,通过对P2口的高低电平的控制便控制了发光二极管的点亮与熄灭。从而实现花样灯的变化。 图4.4 花样灯输出系统第5章 软件设计及主要子程序5.1、软件设计思路当人按下不同的按键时,会有不同的效果。K1是跑马灯,k2是流水灯,k3是戏水灯,k4是顺序执行以上三个效果,效果有发光二极管亮灯显示。5.2、主程序模块主程序主要完成初始化、检查有无开关闭合以及相应的发光二极管的亮灭形式等,主程序流水图如下图: 图4.3主程序流水图第6章 系统仿真与调试6.1、Keil编译Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势, Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。本次设计采用汇编语言编程,生成.hex文件以供装载到Protues中的单片机进行仿真。6.2、Protues仿真平台6.2.1、Protues仿真简介及部分模块仿真Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MATLAB等多种编译。目标代码的加载方法为,在Protues编辑环境双击AT89C51,弹出下图所示的对话框,在PROGRAM FILM一栏中单击打开按钮,选中Keil中生成的lzy.hex文件,在CLOCK FREQUENCY栏中设置系统工作频率为12MHZ,单击OK完成目标代码的加载。图6.1 程序代码加载6.2.2、硬件电路总图与仿真点击运行按钮启动系统仿真,用户按下相应的开关,发光二极管按照相对应的方式闪烁。硬件总图如下:图6.2 总图6.2.3、PCB仿真原理图 图6.2.3 PCB仿真图 第7章 操作方法当开关K1按下时,执行跑马灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。当K1断开时所有的LED应该都熄灭: 图7.1.1跑马灯效果图 当开关k2按下时,执行流水灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭,效果图如下 图7.1.2 流水灯效果图 当开关K3按下时,执行戏水灯程序共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。然后继续上次操作。当开关k3断开时所有的LED应该熄灭,效果图如下 图7.1.3 流水灯效果图当k4按下时,则循环执行跑马灯,流水灯,戏水灯三种效果,一直到K4断开,所有的LED熄灭。 第8章 课程设计总结本次课程设计我的课题是多按键花样流水灯的设计,开始的一天我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。经过第二天的努力,终于将本次课程设计电路原理图和程序做完了,以后的几天有不断的对电路图和程序做不断地修改,最终达到的效果完全符合课程设计的要求,但由于水平和时间有限,课设中难免有不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。本次课设遇到的最大的问题就是硬件电路的设计,如何让各开关都能引起中断又不能相互短路是最大的问题,最终这个问题的解决依靠一位叫做“山石子网友的指导,通过利用二极管的单向导电性,完美的解决了这个问题,在此表示衷心的感谢。在本次课程设计过程中,我增强了自己的动手能力和分析能力。在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。附录汇编程序;* 中断子程序LOOP:;判0转移到相应亮灯方式JNB P1.0,LIGHT1JNB P1.1,LIGHT2JNB P1.2,LIGHT3JNB P1.3,LIGHT4CLR EA;中断总禁止CLR EX0;禁止外部中断0MOV P2,#0FFH;P2口至高电位,关闭所有LEDQUIT: RETI;中断返回 跑马灯子程序先让P2口全部为高电平,让后让P2.1口点亮,考虑到人眼的视觉暂停效应,延时100ms,在通过移位指令依次点亮别的口,没点亮一个灯延时100ms.LIGHT1:;跑马灯程序(100ms)MOV P2,#0FFH;送P2口MOV A,#0FEH;P1.0口送低电平,LED1点亮L

温馨提示

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

评论

0/150

提交评论