




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书题目: 基于单片机的双向流水灯 院(部): 机械工程学院 专业班级: 机设10-10 学 号: 2010302529 学生姓名: 周素博 指导教师: 张双双 2014 年 1 月 16 日安徽理工大学课程设计(论文)任务书 机械工程 院(部) 测控 教研室学号2010302529学生姓名周素博专业(班级)机设10-10题目基于单片机的双向流水灯设计任务及技术参数利用51单片机、8个LED灯等器件,设计一个单片机的输入系统,实现单片机控制的LED灯的双向来回流动,并画出硬件电路图,keil编程,以及protues仿真和电路板调试设计要求1、掌握AT80C51单片机输入/输出口的应用及软硬件实现,以及可编程序控制器技术应用过程中的一些基本技能。2、巩固、加深已学的理论知识,了解LED灯动态流动显示原理和程序设计方法。3、掌握Keil软件编写程序并生成烧写文件。4、熟悉单片机仿真软件proteus,掌握运用其模拟及仿真功能,了解可编程控制器的装备、调试的全过程。工作量单片机的选型;芯片、电阻和电容等元器件的选型;电路原理图的绘制;单片机程序的编制;程序调试仿真;设计说明书的编写工作计划第一周:使用Protues软件画电路原理图。第二周:使用Keil软件编写程序。第三周:使用Protues软件仿真与电路板的调试。第四周:编写及修改说明书。参考资料1张友德等.单片机原理应用与实验M.复旦大学出版社,1992.2张毅刚,彭喜源,谭晓钧,曲春波.MCS51单片机应用设计M.哈尔滨工业大学出版社,2001.1.3宋庆环,才卫国,高志.89C51单片机在直流电动机调速系统中的应用M.唐山学院,2008.44杨加国.单片机原理与应用及C51程序设计M.北京:清华大学出版社,2008.36曹巧媛.单片机原理及应用M.北京,电子工业出版社,1997.9指导教师签字教研室主任签字 2013 年 12 月 23 日学生姓名: 周素博 学号: 2010302529 专业班级: 机设10-10 课程设计题目: 基于单片机的双向来回流水灯 指导教师评语:成绩: 指导教师: 年 月 日 安徽理工大学课程设计(论文)成绩评定表安徽理工大学课程设计说明书目录摘要I绪论11设计课题及意义2 1.1设计任务2 1.2设计目的2 1.3设计意义22系统的硬件设计及原理3 2.1 AT89C51单片机简介3 2.2复位电路5 2.3时钟电路62.4流水灯电路72.5电路总图83软件设计9 3.1主要设计软件介绍9 3.1.1 Proteus软件介绍9 3.1.2 Keil软件介绍9 3.2设计思路11 3.3软件编程124软件原理图及调试仿真图134.1检查硬件连接134.2检查软件系统145硬件调试及实物图155.1步骤155.2电路板调试16设计体会及今后的改进意见17参考文献18i基于单片机的双向流水灯摘要经年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。在电子领域尤其是自动化智能控制领域,传统的分立元件或者数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。本次设计了一个AT89CT51单片机控制的双向流水灯,流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即由单片机电路(含晶振电路、复位电路等)、串口电路、发光二极管电路和必要的软件组成的单片机应用系统。包括protues软件仿真的硬件电路及keil软件C语言编程方法,最后将程序写入电路板中,体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。关键词: AT89C51,双向流水灯,C语言,Protues,KeilI绪论当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。我们周围有许多流水灯。通过单片机的控制,我们可以把城市的夜晚装饰的更漂亮。单片机实际上是微型计算机的一种,自从它问世以来,人们对它不断地改进,以应用于现代化社会的各方各面。单片机体积小,价格低廉,开发较为容易,可根据需要制作成各种智能控制器以代替人工的操作,实现自动化。在我国,由于ASIC(专用集成电路)的生产还跟不上,单片机的作用更加地重要,在智能仪器仪表、工业设备过程控制、家用电器中,都可以见到它的踪迹。单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。1 设计课题及意义1.1设计任务基于单片机的双向来回流水灯,利用51单片机、8个LED灯等器件,设计一个单片机输入显示系统,实现用单片机控制的LED灯的双向来流动,并画出硬件电路图,编程,仿真。1.2 设计目的1、掌握AT80C51单片机输入/输出口的应用及软硬件实现,以及可编程序控制器技术应用过程中的一些基本技能。2、巩固、加深已学的理论知识,了解LED灯动态流动显示原理和程序设计方法。3、掌握Keil软件编写程序并生成烧写文件。4、熟悉单片机仿真软件proteus,掌握运用其模拟及仿真功能,了解可编程控制器的装备、调试的全过程。1.3设计意义培养我们综合运用所学的理论知识和基本技能的能力,尤其是培养把理论和实际结合起来分析和解决问题的能力。2 系统的硬件设计及原理 2.1 AT89C51单片机简介按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。(1)主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路(2)管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。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口也可作为AT89C51的一些特殊功能口,如下所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)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)。(3)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(4)芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。P3:端口3是具有内部提升电路的双向I/O端口,通过控制各个端口的高低电平了实现LED流水灯的控制。2.2 复位电路单片机在启动或者程序运行错误时都需要复位,为了防止程序运行错误,系统加入了一个复位电路,必要时或者需要程序从头开始时,可以按下复位键,使程序从头开始运行,如图2-2所示,当按下按键时,就能完成整个系统的复位,使得程序从新运行。以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。所以有必要设计一个复位电路。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。手动按钮复位需要人为在复位输入端RST上加入高电平(如图2-3)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。这里选择普通开关、R1选1k欧,C1选普通22pF瓷片电容。图2-2 复位电路2.3 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用12MHz的石英晶体。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。图2-3 时钟电路2.4流水灯电路本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED1。同时,在电路中加一个电阻,可使电路电流稳定。因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的就做成流水灯了。图2-4 流水灯电路2.5电路总图将上述各电路元件在PROTUES依次找出,并连接,得到如下电路总图图2-5 硬件电路图3软件设计3.1主要设计软件介绍3.1.1Proteus软件介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus软件主要具有的几个特点如下:(1)智能原理图设计(ISIS)(2)完善的电路仿真功能(Prospice)(3)独特的单片机协同仿真功能(VSM)(4)实用的PCB设计平台在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。 Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。3.1.2KEIL软件介绍单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。Keil C51开发系统基本知识Keil C51开发系统基本知识1. 系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。2. Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。3.2 设计思路8个发光二极管LED0LED7经限流电阻分别接至P1口的P1.0P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的流水灯,显示规律如下图所示。图3-1 流水灯显示的规律3.3 软件编程使用C51编流水灯程序以及设计相应的硬件电路十分简单,且有多种方法。本方案力求程序最简化最清晰原则,用流程图表示算法如下:3-2 程序流程图程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp=11111110B时,执行_crol_(temp,1)之后temp=11111101,应用此两条语句必须把头文件包含进来。全部代码如下:#include#includeunsigned char temp; /定义字符变量temp,temp左移或右移并给连接LED的P1口赋值int a; /定义延迟函数delay()void delay(void);void main() temp=0xfe; /给temp赋初值P1=temp; /temp赋值给P1口,第一个LED(红色)点亮while(1) /主程序,括号中的程序将一直循环 for(a=0;a7;a+) /左移部分,LED从左到右依次点亮 temp=_crol_(temp,1); /_crol_语句控制变量temp左移delay(); /每个灯点亮之后延迟一会在点下一个灯P1=temp;for(a=0;a0;i-) /i,j不断计数占用CPU时间,达到延时目的for(j=1;j150;j+);4 软件原理图及调试仿真图4.1检查硬件连接在PROTUES检查各硬件管脚是否连接正确,线路逻辑是否正确。例如: 晶振电路的连接; 复位电路是否设计正确; 电阻和电容参数是否恰当等图4-1 软件原理图4.2检查软件系统(1)根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。(2)将所有程序组织起来,在软件环境下运行,检查程序是否正确。通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。图4-2 软件仿真图5硬件调试及实物图5.1步骤1打开程序,选取正确的电路板型号2点击open file,选取已生成的LED.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论