花样流水灯的设计_第1页
花样流水灯的设计_第2页
花样流水灯的设计_第3页
花样流水灯的设计_第4页
花样流水灯的设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...摘要计算机技术的飞速开展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。单片机具有体积小、功能强大、低功耗、应用广泛等特点。以AT公司的芯片AT89C51单片机来实现流水灯的设计。本系统由单片机控制,I/O口接LED的负极,而LED的正极则直接与5V电源相连。通过I/O口输出的低电平点亮LED灯。因此可以通过控制单片机的I/O口的电平上下以到达控制LED,从而实现不同把戏的流水灯的目的。关键词:LED,单片机,上下电平变化ABSTRACTTherapiddevelopmentofcomputertechnologyandimproving,bringustothenewera,now,theapplicationofcomputerhasbeendeepintothethousands.Singlechipmicrocomputerismadeonanintegratedcircuitchipcomputer,hereinafterreferredtoassinglechipmicrocomputer.SCMhasbeenwidelyusedinthepresentsociety,smalltoPeople'sDailyelectronicproducts,bigtoaerospaceaircraft,spacecraft,abovehasthewideapplicationofsingle-chipmicrocomputer.SCMhassmallvolume,powerfulfunction,lowpowerconsumption,wideapplication,etc.ATthecompany'schipAT89C51single-chipmicrocomputertorealizethewaterlampdesign.Thissystemcontrolledbysinglechipmicrocomputer,I/OportsconnecttheLEDthecathode,andLEDtheanodeisdirectlyconnectedto5Vpowersupply.ThroughtheI/Oportoutputlowlevellightleds.SoyoucansinglechipmicrocomputercontrolthroughtheI/OportstocontrolLED,thelevelofhighandlowsoastorealizethepurposeofthedifferentpatternofflowingwaterlight.Keywords:LED,MCU,HighandLowoutputleve目录第1章引言11.1研究背景及意义11.2国内外研究现状以及本系统的重点问题11.3本文章节安排2第2章系统设计方案论证32.1控制器模块方案论证32.2键盘模块方案42.3电源模块方案4第3章系统硬件设计方案53.1系统设计框图53.2硬件电路设计53.2.1电源电路53.2.2单片机89C52最小系统63.2.3按键电路133.3.4LED灯电路13第4章程序设计及软件仿真154.1软件设计框图154.2软件开发平台选择154.3软件系统功能模块164.3.1初始化模块164.3.2延时函数174.3.3定时器控制模块174.3.4键盘扫描模式174.3.5LED灯输出控制模块184.4程序调试仿真194.4.1仿真平台介绍194.4.2仿真测试19第5章硬件调试215.1硬件设计215.2硬件调试215.2.1下载功能调试215.2.2LED电路测试215.2.3模式选择功能调试225.2.4速度加减功能调试225.2.5复位电路调试225.2.6稳定性测试22总结23致谢25参考文献26附录27附录一:原理图27附录二:硬件实物28附录三:程序代码29第1章引言1.1研究背景及意义现如今,随着集成化芯片的飞速开展,分立元件或数字逻辑电路正逐步被集成电路所取代,而单片机作为一种集成电路,其价格低廉,且可靠性强、控制简单但控制方法多样。单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的电子表、洗衣机、电饭褒、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印件、机、调制解调器;计算机网络的通讯设备;智能化仪表中的万用表,示波器,逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等等。有资料说明:2007年全球单片机的产值到达151亿美元,我国单片机的销售额到达400亿元人民币,我国每年单片机的需求量达50至60亿片,是全球单片机的最大市场。可以说单片机已经渗透到了我们生活的各个领域。1.2国内外研究现状以及本系统的重点问题单片机自从问世以来便得到了广泛的应用,单片机以其体积小、重量轻、功耗低、功能强、数据在芯片内部传输速度较快、可靠性高、程序运行速度快、抗干扰能力强等优势迅速得到了人们的青睐,被广泛应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口电路、计算机通信和单片机多级系统等领域。而在流水灯的控制系统中,单片机更是取代了传统流水灯的分立元件设计,成为该系统的核心部件。传统设计的流水灯,电路复杂,且可靠性较差,并且把戏单一;而单片机控制的流水灯,把戏纷繁多样,且易于修改;硬件电路比分立元件的设计简单很多,本钱也极为低廉。因此,单片机控制的流水灯必将在流水灯领域掀起一场大革命。本文中所设计的系统为基于51单片机的把戏流水灯控制系统。该系统由一块单片机通过C语言编程来实现控制功能。可靠且灵活性高、适用范围广、且变换的把戏繁多,同时也适用于霓虹灯以及交通灯等领域。本文将详细介绍该对该系统的设计。1.3本文章节安排第1章介绍了论文的研究背景及意义,对主要研究的技术指标和章节安排进展了说明。第2章对本系统的设计方案的各个设计模块进展比拟论证,得到了适合本文的设计方案。第3章提出了系统设计框图以AT89S52单片机为主控制器,通过键盘来设控制流水灯的模式与流水灯的快慢。第4章根据设计方案,设计了软件设计框图,并对各个模块的主要算法进展说明。第5章利用protues进展软硬件设计仿真,并进展实物制作,验证实物的性能指标。第6章对本文研究的内容和工作进展总结,查找缺乏并作出展望。第2章系统设计方案论证2.1控制器模块方案论证方案一:使用FPGA,让第一个灯先亮,然后通过移位,依次点亮其他的灯,便形成了流水灯。初始状态时,所有灯都不亮,每来一个时钟脉冲CLK,计数器就加1.每当判断出计数器中的数值到达25000000时,就会点亮一个灯,并进展移位,FPGA输出的数据就应该先是10000000,隔一秒就编程110000000一直变化到11111111,这样就依次点亮所有的灯,也就形成了流水灯。而当当8个灯都被点亮时,需要一个操作使得所有的灯都恢复为初始状态,即:灯都不亮,然后再一次流水即可。如果是右移位,就会出现右流水现象。反之就是左流水。方案二:使用单片机,将LED的正极接电源,负极接单片机的I/O,然后当单片机的I/O口输出低电平时,即点亮LED灯,然后通过移位指令让其他LED依次点亮,即形成流水效果。假设是左移指令,即为左流水;右移指令则为右流水。在数控方面,单片时机优于CPLD或FPGA器件,因为此处只是用于流水灯控制,不需要太高的速度以及准确度,且上述两种期间控制起来也比单片机麻烦,因此没有必要选用价格昂贵的CPLD和FPGA器件。而单片机则不同,因为单片机在技术领域已经相当成熟,市面上流通有型号与品牌繁多的单片机,各种参考文献也非常多,且价格低廉,只需要几元人民币,因此用单片机控制会较为划算。其次,单片机的编程方式较为多样,可选用普及度很高的C语言或汇编语言进展编程,在这一点上也优于CPLD和FPGA器件。因此,最终决定采取单片机控制的方案。由于单片机的高电平的电位为大于2V,低电平电位为小于0.8V,而供电的电源为5V,且一般的LED的耐压为3-4V,因此,假设直接将I/O口与LED相连,有可能会烧坏LED,因此需要串联分压电阻。阻值大约为220-300Ω。考虑到PCB的布局布线,因此打算采用P0口和P2口来驱动LED灯。但因为P0口的驱动能力较弱,因此需要在P0口外部提供的强上拉。因此采取接阻值为10kΩ的排阻的方法来提供这个强上拉。2.2键盘模块方案方案一:采用独立式按键电路,每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点为当按键较多时占用单片机的I/O口数目较多。方案二:采用标准4×4键盘,此类键盘采用矩阵式行列扫描方式,优点是当按键较多时可降低占用单片机的I/O口数目。本系统只需要三个按键,分别为控制模式按键,流水灯变换速度加,流水灯变换速度减,因此本系统采用独立式按键即可满足系统要求,降低开发难度和硬件本钱。2.3电源模块方案由于系统的单片机和LED灯的电压都只需要5V,不需要多种电压,因此直接采用市场上现有的220V转5V的电源,通过DC线连接系统的火牛头为系统供电。第3章系统硬件设计方案3.1系统设计框图根据系统设计方案的论证,设计出如图3-1所示的系统设计框图,下面依次介绍各个模块的具体设计实现细节。图3-1系统设计框图3.2硬件电路设计3.2.1电源电路本设计需要用到5V供电,考虑采用USB转DC电源线接5V,1A开关电源以提供稳定的电压,参加一个6脚自锁开关控制电路通断。单片机的40脚接至VCC,20脚接至GND,电路图如图3-2所示,图中J1为DC火牛头。图3-2电源电路图3.2.2单片机89C52最小系统本系统采用的核心控制模块是常用的单片机型号:89C52。下面简要介绍该单片机的特点和使用方法。单片机简介1.单片机内部构造MCS-51构造的单片机内部采用模块式构造,其构造组成框图如图3-3所示。由图可见,该系列单片机主要由随机数据存储器〔RAM〕、程序存储器〔ROM〕、中央处理器〔CPU〕、输入输出口、串行口、内置的定时器/计数器、中断控制、总线控制、以及时钟电路通过总线连接而成。CPU是单片机内部的核心器件,分为运算器和控制器两大局部,此外还有面向控制的未处理功能。STC89C52中有512字节的随机数据存储器(RAM),可通过片外扩展来提升RAM容量。存储器(ROM),是用来存储程序的存储器,在STC89C52中集成了8K字节的FLASH存储器,如果片内的容量不够,还可扩展至64KB。中断系统:具有5个中断源,2级中断优先权。定时器/计数器:片内集成了3个16位的定时器/计数器T0、T1、T2,具有四种工作方式串行口:一个全双工异步串行口,具有四种工作方式,可进展串口通信,扩展并行I/O口,还可以与多个单片机相连以构成多级系统。特殊功能存放器(SFR):共有26个特殊功能存放器,用于CPU对片内各功能部件进展管理和监视。特殊功能存放器实际上是片内各个功能部件的控制存放器和状态存放器,这些特殊功能存放器映射在片内RAM区80H-FFH的地址区内。图3-3MCS-51内部构造2.STC89C52引脚构造目前,STC89C52多采用DIP-40封装,即双列直插,共40个引脚的封装方式。此外,还有44引脚的PLCC和LQFP封装〔都为表贴元件〕。其中40个引脚根据功能的不能可分为3类:(1)、电源及时钟引脚——VCC、GND;XTAL1、XTAL2。(2)、控制引脚——PSEN非、ALE/PROG非、EA非/Vpp、RST〔即复位〕。(3)、I/O口引脚——P0、P1、P2、P3,为4个8为I/O口的外部引脚。3.单片机时钟介绍单片机执行的指令均是在CPU控制的时序控制电路的控制下进展的,各种时序均与时钟周期有关。(1)、时钟周期时钟周期是单片机时钟控制信号的根本时间单位。假设时钟晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc.如fosc=12MHz,Tosc=83.3ns。(2)、机器周期CPU完成一个根本操作所需要的时间称为机器周期。单片机中通常把执行一条指令的过程分为几个机器周期。每个机器周期完成一个根本操作,如取指令、读或写数据等。STC89C52单片机每12个时钟周期为一个机器周期。即Tcy=12/fosc.假设fosc=12MHz,Tcy=1us。STC89C52单片机的一个机器周期包括12个时钟周期,分为6个状态,S1-S6。每个状态又分为两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、...、S6P2。(3)、指令周期指令周期是执行一条指令所需的时间。STC89C52单片机中指令按字节来分,可分为单字节、双字节、三字节指令,因此执行一条指令的时间也有所不同。对于简单的单字节指令,取出指令立即执行,只需要一个机器周期的时间。而有些复杂的指令则需要两个或多个指令周期。从指令的执行时间看,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令是双机器周期,只有乘除法指令占用4个机器周期。复位电路设计(1)、复位操作当STC89C52单片机进展复位操作时,PC存放器初始化为0000H,使STC89C52单片机从程序存储器的0000H单元开场执行程序。除了进入系统的正常初始化之外,当程序运行出错或者操作错误使得系统处于“死锁〞状态时,按复位键使得RST脚为高电平,使STC89C52单片机拜托当前状态而重启程序。出PC存放器外,复位操作还对其他一些存放器有影响,例如SP、Acc、PSW、DPTR等。(2)、复位电路复位电路就是把电路恢复到起始状态的电路。能够在系统上电时给予复位信号,并且会一直等到系统的电源不再改变为止才会撤离所给的复位信号,这就是复位电路的功能所在。复位后的CPU的主要特征是各IO口呈现高电平。对于单片机而言根本的复位操作是将单片机的复位引脚RST上给定一个高电平信号并让该信号维持在2个机器周期以上,便可触发系统复位中断从而将系统复位。单片机系统的复位方式有:按键复位和上电复位。首先是按键复位:复位电路最简单的方式就是通过按键复位直接在单片机复位引脚RST上参加高电平。单片机的复位引脚接至电阻R1一端,电阻R1另外一端接地。电路如下所示。常用的途径是在复位引脚端和正电压之间安装复位按键。当给一个力使按键被压迫向下,单片机的复位方位就会保持VCC。假设保持按下10ms即可让系统实现复位,如图3-4所示。图3-4按键复位图3-5上电复位图3-6混合模式第二个是上电复位:上电复位的电路图如图3-5所示,具体实现方式如下:系统上电瞬间单片机复位引脚RST电压时间变化曲线如图3-7所示。从曲线上易得当系统在一刹那完成上电,根据电容工作原理特性,它两端的Uc1不可能实现迅猛的变化,故电源电压全部加到R1上,然后电容C1开场充电,时间常数T=R1*C1,此时电容电压逐渐增加,R1两端电压逐渐降低,如果R1两端电压从高电平到低电平持续时间到达2个机器周期,即可实现单片机复位。图3-7Urst电压时间曲线在本设计中采用了按键复位和上电复位的两种模式〔如图3-6所示〕上电复位完成系统初始化,同时增加的手动按键复位可以方便调试使用。时钟电路设计时钟电路用于产生单片机工作时所必需的控制信号,STC89C52单片机的内部电路正是在时钟电路的控制下严格按时序执行指令进展工作的。在执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时钟电路产生一系列控制信号完成指令所规定的操作。CPU发出的时序信号有两类,一类用于对片内各个功能部件的控制;另一类用于对片外存储器或I/O口的控制。(1)、内部时钟方式STC89C52内部有一个用于构成振荡器的高增益反向放大器,它的输入端为芯片的XTAL1脚,输出端为XTAL2脚。这两个引脚跨界石英晶体和微调电容,构成一个稳定的自激振荡器。电路的电容C1和C2通常选择30pF。该电容的大小会影响振荡器频率的上下,振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常是1.2-12MHz。STC89C52通常采用12MHz的石英晶体。晶体的频率越高,系统的时钟频率越高,单片机的运行速度也就越快。但运行速度快对存储器的速度要求就越高,对PCB电路板的工艺要求也就越高,即要求线间的寄生电容要小。晶体和电容应尽可能安装得离单片机近一些以减少寄生电容,更好地保证振荡器稳定、可靠地工作。为了提高温度稳定性,应采用温度稳定性好的电容。(2)、外部时钟方式外部时钟方式使用现成的外部振荡器产生脉冲信号,通常用于多片STC89C52单片机同时工作,以便于多片单片机之间的同步,一般为地狱12MHz的方波。外部时钟源直接接到XTAL1端,XTAL2端悬空。(3)、时钟信号的输出当使用片内振荡器时,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需要增加驱动能力。(4)、晶振电路在单片机最小系统晶振的作用是给单片机输入时钟信号,这个时钟信号就是单片机的工作速度。单片机工作的最小时间计量单位就是由晶振决定的。电路图如图3-4所示。晶振电路电容选择的原则为:(1)、C1,C2,因为每一种晶振都有各自的特性,所以最好按制造厂商所提供的数值选择外部元器件。(2)、在误差允许的区域内,C1和C2值都是越小,实现的功能就越准确,如果C1和C2值比正常数值大时,可能会使振荡器更加稳定,可是也会增加响应的时间。图3-8晶振电路本系统的单片机最小系统的时钟电路采用图3.8所示的晶振电路,其中晶振选用12MHz石英晶体振荡器,接至单片机的XTAL1和XTAL2脚,两个电容选用30p瓷片电容。通过上述具体方案的设计论证,本系统设计了如图3-9所示的最小系统。图3-9单片机最小系统程序下载电路在实际制作实物的还需要增加一个下载电路模块,方便调试下载。程序下载电路中包含一个4pin排针,分别接至Vcc、单片机的10脚〔RXD/P3.0〕、单片机的11脚〔TXD/P3.1)、GND。在下载程序时,需采用STC公司的USB下载器,下载器的VCC脚接排针VCC脚;下载器的RXD脚接排针的TXD脚;下载器的TXD脚连接排针的RXD脚;下载器的GND脚接排针的GND脚,然后用STC公司的ISP软件选择keil编译生成的hex文件,即可将程序烧写到单片机中。电路如图3-10所示。图中P2即为4pin排针。图3-10下载接口电路3.2.3按键电路按键选择弹片开关,电路由3个弹片开关组成。3个弹片开关的一段依次接至单片机的1〔P1.0〕、2〔P1.1〕、3〔P1.3〕脚;另一端共地。功能依次为模式切换、加快运行速度、减慢运行速度,电路如图3-11所示。图3-11按键电路3.3.4LED灯电路将16个LED的负极依次与单片机的P1口和P2口的16个I/O口相接,正极则与5V电源相接。但由于直接相接可能会烧坏发光二极管,因此需要串联电阻。限流电阻的阻值根据设计经历及现有电阻取值为220Ω.由于为了便于设计PCB电路板时布局布线,故此处的电阻采用贴片0805封装。此外,由于P0口的驱动能力较弱,无法直接驱动8个发光二极管,应选择在P0口的I/O和发光二极管的负极之间接入10kΩ的共阳排阻以提供一个强上拉。电路图如图3-12中P1即为10kΩ共阳排阻。图3-12LED电路第4章程序设计及软件仿真4.1软件设计框图如图4-1所示为本系统的软件实现流程图。图4-1软件流程4.2软件开发平台选择软件设计的开发平台采用美国keilSoftware公司出品的Keiluvision4。Keiluvision4是美国keilsoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编语言相比,C语言在功能上、构造性、可读性、可维护性上有明显的又是,因而易学易用。keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些局部组合在一起。运行keil软件需要win98、NT、win2000、winXP等操作系统。假设使用C语言进展编程,keil将是不二之选,即使是使用汇编语言编程,keil方便易用的集成环境以及强大的软件仿真调试工具也能让开发者事半功倍。4.3软件系统功能模块本系统采用构造化模块程序设计,所谓“模块〞,实质上就是具有一定功能、相对独立的程序段。在编程过程中首先将所要完成的各个功能分别按模块编写和调试,所有模块调试成功以后,再将各个模块连接整合在一起形成系统。模块化程序设计的主要特点是:单个模块比一个完整的程序更容易编写、查错和测试;模块化程序可以实现共享,一个模块化程序可被多个任务在不同的条件下调用;把输入/输出封装起来,可以使程序减少不必要的修改;这样的设计有利于程序代码的优化和共享,而且便于设计、调试和维护,可以增强系统的可靠性。本系统的主要模块有:初始化模块、延时模块、定时器控制模块、键盘扫描模式、LED灯输出控制模块,下面依次简要介绍。4.3.1初始化模块根据本系统的设计要求,当系统上电之后,LED灯并不亮,只有进入模式切换之后才有变换,因此需要对系统的控制参数,比方模式标志位、速度变量进展初始化,其代码如下:voidInitialCPU(void){RunMode=0x00;TimerCount=0;SystemSpeedIndex=10;Delay1ms(500);SetSpeed(SystemSpeedIndex);}4.3.2延时函数系统控制流水灯的变换主要是通过延时函数的延时时间长短来做出相应的反映,因此设置一个延时函数是控制速度的关键,其代码如下:voidDelay1ms(unsignedintcount){ unsignedinti,j; for(i=0;i<count;i++) for(j=0;j<120;j++);}其中,count为时间控制参数。4.3.3定时器控制模块由于单片机资源有限,通过利用中断来检测按键,提高单片机的时钟利用率,其代码如下:voidInitialTimer2(void){T2CON=0x00; //16BitAuto-ReloadModeTH2=RCAP2H=0xFC; //重装值,初始值 TL2=RCAP2L=0x18;ET2=1; //定时器2中断允许TR2=1; //定时器2启动EA=1;}4.3.4键盘扫描模式键盘扫描主要是利用IO口读取的参数与0相与,然后进展比拟,判断是哪个键输入了控制信号,比拟之后返回相应的值,返回值被另一个键盘反响函数得到相应的控制信号。其代码分为两局部,一局部为扫描局部,一局部为输出控制信号,扫描局部如下:unsignedcharKeyTemp,CheckValue,Key=0x00;CheckValue=P1&0x07;if(CheckValue==0x07)return0x00;Delay1ms(10);KeyTemp=P1&0x07;if(KeyTemp==CheckValue)return0x00;if(!(CheckValue&0x01))Key|=0x10;if(!(CheckValue&0x02))Key|=0x20;if(!(CheckValue&0x04))Key|=0x40;returnKey;输出控制信号核心算法如下:if(Key&0x10){LEDDirection=1;LEDIndex=0;LEDFlag=1;}if(Key&0x20){if(SystemSpeedIndex>0){--SystemSpeedIndex;SetSpeed(SystemSpeedIndex);}if(Key&0x40){if(SystemSpeedIndex<28){++SystemSpeedIndex;SetSpeed(SystemSpeedIndex)4.3.5LED灯输出控制模块LED灯的输出信号进展一次性赋值,P2口直接与低八位相与得到相应所设定的信号,P0口先将数据进展左移八位,然后在进展相与得到相应所设定的信号。其相与代码如下〔只选取了两种流水模式的代码〕:{P2=~(LEDStatus&0x00FF);P0=~((LEDStatus>>8)&0x00FF);}其根据模式赋予不同的输出值代码如下:voidMode_0(void){P2=0xFF;P0=0xFF;}voidMode_1(void){LEDShow(0x0001<<LEDIndex);LEDIndex=(LEDIndex+1)%16;}voidMode_2(void){LEDShow(0x8000>>LEDIndex);LEDIndex=(LEDIndex+1)%16;}4.4程序调试仿真4.4.1仿真平台介绍仿真平台采用英国Labcenterelectronics公司开发的EDA工具软件proteus。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比拟好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。4.4.2仿真测试首先,在proteus里编辑原理图,如图4-2所示,然后再在单片机属性中导入从keil中生成的hex文件即可进展仿真。图4-2仿真电路第5章硬件调试5.1硬件设计用Altiumdesigner6-9,将事先画好的原理图的网格导入PCB文档,然后对元件进展布局和布线设计,最终得到的PCB电路板如图5-1所示。图5-1PCB布线图5.2硬件调试5.2.1下载功能调试将STC公司的USB下载器与4pin排针P2相接,然后翻开ISP软件,选择对应的hex文件,设置好com口、芯片型号、波特率之后,点击开场下载,观察到程序成功地烧录到了单片机中。然后拔掉下载器,接通电源,可以看到流水灯正常运行,说明下载功能已通过。5.2.2LED电路测试接通电路后仔细观察,发现没有从头至尾都不亮的灯,说明LED电路已通过。5.2.3模式选择功能调试接通电源,流水灯开场运行,然后按动弹片开关1,即S2,如果能正常切换模式,则说明这局部的功能已通过。观察到当按下模式切换按键时,流水灯的运行模式改变,由正转变为反转,说明这局部已通过。5.2.4速度加减功能调试当流水灯以正常速度运行时,按下弹片开关2,即S3,观察到流水灯的运行速度明显加快,说明加速功能已通过。按下弹片开关3,即S4,观察到流水灯的速度回归正常速度,再按一下,发现流水灯的运行速度变慢,说明减速功能也已通过。5.2.5复位电路调试先让流水灯运行一段时间,然后按下复位按键,弹片开关4,即S1,观察到流水灯中止当前运行状态,又回到最初的运行状态。说明复位电路也通过。5.2.6稳定性测试接通电源,让程序持续运行较长时间,发现PCB电路板无严重发热情况,且程序也没有出现所得的“跑飞〞现象,仍可实现模式切换、加速减速、复位功能,即一切正常。说明稳定性较强,稳定性测试已通过。总结1.总结分析根据屡次实物测试的结果,可以确定该设计已到达设计任务的要求。首先,本设计使用51单片机实现了流水灯的设计。其次,该设计实现了通过按键来改变流水灯运行模式的功能、实现了通过按键来改变流水灯运行速度的任务要求。且经过长时间不连续运行的稳定性测试后,电路板无大量发热情况,且程序运行也正常,没有出现所谓的“跑飞〞情况,说明该系统的稳定度较高用万用表测量LED两端的电压和电流可以得到结论,即理论局部阐述的对于LED限流电阻的计算较为准确。万用表测到的LED两端的压降为1.9V,通过的电流约为8.6mA,小于额定电流10mA,因此安全度也较高。且在程序的设计上也到达了设计任务的要求,即实现了流水灯运行模式7档可调、加速运行16个档位可调、减速运行16个档位可调。2.有待解决的问题仔细总结分析过后,发现硬件方面存在的问题是焊工有待改良,有些元件给的锡太多,有些元件的锡太少,这样会造成潜在的不稳定因素。而且在制板的时候,有些线因为腐蚀的问题导致线宽有变化,这样会造成电阻的突变,也容易产生寄生电容,也是不稳定因素。PCB电路板在设计的过程中未将VCC和GND的线额外加粗,这样容易导致因为电阻太小,电路板发热严重的现象。且在进展布局布线的时候,电路板的布局和走线不够紧凑,导致设计出来的PCB电路板尺寸较大,不够小巧,造成了不必要的浪费。至于软件代码方面,则是没有参加消抖程序,这样容易造成误操作。3.收获与体会通过本次系统设计任务,让我明白了耐心细致的重要性。虽然最终结果比拟成功,但是成功的路是坎坷的。就拿PCB电路板的制作过程来说吧,中途因为在进展热转印操作的时候操作不当,导致前两块PCB电路板的制作都以失败告终,转印温度设置不够,导致碳粉附着不够牢,在腐蚀的时候不停地往下掉,浪费了两块覆铜板。然后在焊的时候由于烙铁温度太高,且烙铁与覆铜板的接触时间太长,导致有好几个发光二极管被烫坏,然后不停地测试,重新焊接浪费了较多时间。有些焊盘的锡太多,有些焊盘的锡又太少,使得PCB电路板的反面看起来很丑。在做产品的时候,不仅需要良好的性能,美观的外表也很重要。上述这些问题说到底都是经历缺乏所导致的,在以往的学习过程中,我只重视对理论的学习,而忽略了对实践能力的培养,而实践能力的缺乏在这次毕业设计过程中得到了充分的暴露。以前一直都觉得,学好了理论就行,以后我们是做设计工作的,因此,像手工焊接技术、制板技术这一类的实践技能不太重要,因此不需要加以训练。但在这次毕业设计的过程中,现实给了我当头一棒。也让我明白了实践有时候比理论更重要,因为理论上的知识都是建设在较为理想的情况下的,可等到要付诸实践的时候才发现,很多事情其实跟学到的不一样,如果实践经历缺乏的话往往就会瞬间傻眼。我即将走上工作岗位,这种情况是万万不能有的。因为用人单位不仅仅会考察我的理论知识水平,还会考察我的实践动手操作能力,如果只知道纸上谈兵的话是很难找到理想的工作的。毕竟我们是工科生,工科生就是要以实际应用为主。如果实践能力不够强,到了工作岗位上,当面对一个大的工程工程的时候是无法顺利完成任务的,这对我整个的一个职业生涯极为不利。因此我必须加强对实践能力的培养,不能只知道死钻理论。毕竟实践才是检验真理的唯一标准。脱离的实践的理论是很难站得住脚的。而且在设计PCB电路板的过程中,我从同学教师那儿以及各种文献资料中学到了许多设计PCB电路板的小技巧以及本卷须知。以前一直都认为,设计PCB电路板只是用软件对元器件进展一个简单布局,然后只需要把线连起来就行了。但是现在我明白了这项工作并没有这么简单。光是布局中就有许多本卷须知,如果只是随便布布局的话会影响PCB电路板的稳定度,这在工业生产中是绝对不允许的。我还学到了一些焊接的小技巧,以前的我是没有方法焊接表贴的元件的,但是经过这段时间的练习,我已经可以焊接表贴的元器件了,这也算是对实践能力的一种提升吧。致谢四年的大学生活即将步入尾声,我即将进入社会,自食其力。四年的艰辛跋涉,四个月的精心准备,课程设计即将完成,心里理应感到轻松,但是在设计过程中遇到的种种问题经常让我辗转反侧,想到即将步入工作岗位的我,还有如此多缺乏之处,我的心里总是感到重重压力。一次次地泡在图书馆的书海中,一次次地修改程序,一次次地修改PCB电路图,一下下地敲打键盘,其中的艰辛难以诉说。但是,这段时间的艰辛是值得的,我将终生难忘。毕业设计即将完成,需要感谢的人有很多,他们的无私帮助让我瞬间成长了很多。首先,要感谢我的指导教师陈芳教师,我能够顺利完成此次毕业设计,离不开她的悉心指导。虽然工作繁忙,但是陈芳教师从选题、开题、修改到最终完成,她都不厌其烦地启发我,给了我很多帮助以及指点。假设没有陈芳教师的点拨,我将很难完成此次毕业设计任务。在此,我要向陈芳教师致以最衷心的感谢。我也要感谢电子科技大学成都学院所有教育过我的教师,我的知识是你们传授给我的,你们是我不断成长的源动力。感谢我的父母,是他们无微不至的关心以及长期以来的支持支撑着我不断前进,他们就是我的精神支柱。感谢我的室友和同学们,与你们度过了4年的美好时光,给我留下了很多终生难忘的美好回忆。你们在这次毕业设计的过程中也帮了我很大的忙,提供应了我很多文献资料,如果没有你们的资料,我将会走很大的弯路。还要感谢学校给我提供这么好的环境,让我安心求学。感谢论文中设计到的学者们,没有你们的研究成果,我将很难完本钱次毕业设计。最终,我要感谢身边所有的帮助过我的人,感谢你们。参考文献[1]刘和平.PIC16F87X单片机使用软件与接口技术C语言及其应用[M].北京:北京航空航天大学出版社,2002[2]李朝青.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版社,2000[3]刘利民.MCS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,1999[4]康华光.电子技术根基(数字局部第五版),高等教育出版社,2005[5]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编.北京理工大学出版社,2005[6]田良,王尧.综合电子设计与实践.东南大学出版社,2002[7]吴戈,李玉峰.案例学单片机C语言开发.人民邮电出版社,2008[8]刘坤,宋戈,赵红波.51单片机C语言应用开发技术大全.人民邮电出版社,2008[9]侯玉宝,陈忠平,李成群.基于Proteus的51系列单片机设计与仿真.电子工业出版社,2008[10]刘坤,高征红.Protel99SE电路设计实例教程.清华大学出版社,2008[11]郭惠,解书钢.Protel99SE常用功能与应用实例精讲.电子工业出版社,2008[12]8-bitMicrocontrollerWith4KBytesFlashAT89C51.ATMEL,2000[13]8-bitMicrocontrollerWith8KBytesFlashAT89LV51.ATMEL,2000附录附录一:原理图附录二:硬件实物附录三:程序代码#include<REG52.H>unsignedcharRunMode;voidDelay1ms(unsignedintcount){unsignedinti,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}unsignedcharGetKey(void){unsignedcharKeyTemp,CheckValue,Key=0x00;CheckValue=P1&0x07;if(CheckValue==0x07)return0x00;Delay1ms(10);KeyTemp=P1&0x07;if(KeyTemp==CheckValue)return0x00;if(!(CheckValue&0x01))Key|=0x10;if(!(CheckValue&0x02))Key|=0x20;if(!(CheckValue&0x04))Key|=0x40;returnKey;}unsignedintTimerCount,SystemSpeed,SystemSpeedIndex;voidInitialTimer2(void){T2CON=0x00; //16BitAuto-ReloadModeTH2=RCAP2H=0xFC; //重装值,初始值 TL2=RCAP2L=0x18;ET2=1; //定时器2中断允许TR2=1; //定时器2启动EA=1;}unsignedintcodeSpeedCode[]={1,2,3,5,8,10,14,17,20,30,40,50,60,70,80,90,100,120,140,160,180,200,300,400,500,600,700,800,900,1000};//30voidSetSpeed(unsignedcharSpeed){SystemSpeed=SpeedCode[Speed];}voidLEDShow(unsignedintLEDStatus){P2=~(LEDStatus&0x00FF);P0=~((LEDStatus>>8)&0x00FF);}voidInitialCPU(void){RunMode=0x00;TimerCount=0;SystemSpeedIndex=10;}unsignedintLEDIndex=0;bitLEDDirection=1,LEDFlag=1;voidMode_0(void){P2=0xFF;P0=0xFF;}voidMode_1(void){LEDShow(0x0001<<LEDIndex);LEDIndex=(LEDIndex+1)%16;}voidMode_2(void){LEDShow(0x8000>>LEDIndex);LEDIndex=(LEDIndex+1)%16;}voidMode_3(void){if(LEDDirection)LEDShow(0x0001<<LEDIndex);elseLEDShow(0x8000>>LEDIndex);if(LEDIndex==15)LEDDirection=!LEDDirection;LEDIndex=(LEDIndex+1)%16;}voidMode

温馨提示

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

评论

0/150

提交评论