《基于STC51单片机光立方设计与实现(共32页).doc》由会员分享,可在线阅读,更多相关《基于STC51单片机光立方设计与实现(共32页).doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上毕业论文(设计)题目: 基于STC51单片机的光立方设计与实现 姓 名 : 黄健 学 号 : 层 次 : 本科 专 业 : 软件工程 班 级 : 12级(13)班 指导教师: 纪宠兴 专心-专注-专业独创性声明 一、本论文是本人独立完成; 二、本论文没有任何抄袭行为; 三、 若有不实,一经查出,请答辩委员会取消本人答辩资格。 承诺人(签名): 年 月 日 摘要 本设计使用51系列的单片机STC15F2K60S2作为整个设计的控制,每层的64个LED通过层共阴的形式连接起来。每束的8个LED通过共阳的形式连接起来。使用74HC593控制各束LED的阳极,使用ULN280
2、3控制各层的阴极。组成一个由512个LED、规格为8*8*8的立方体。同时介绍了STC15F2K60S2、74HC573、ULN2803的使用方法及选用原因。同时介绍了在调试过程中,遇到的软、硬件方面的问题以及解决方法。对光立方的原理进行了详细的阐述,并详细的介绍了光立方在应用方面的意义。关键词 光立方;74HC593;STC15F2K60S2;ULN2803;LEDSummary This design uses 51 series microcontrollers STC15F2K60S2 as the control of the entire design, form each of
3、64 LED by connecting the common cathode layer. Each bundle of eight LED connected through common anode form. Use 74HC593 control each beam LED anode, cathode layers using ULN2803 control. Composition consisting 512 LED, specifications for the cube 8 * 8 * 8. Also introduced STC15F2K60S2,74HC573, ULN
4、2803 to use and selection reasons. Also introduced the problem in the debugging process, encountered software and hardware and solutions. Light cube principle set forth in detail, and describes in detail the significance of light cube applications.Keywords light cube;74HC593;STC15F2K60S2;ULN2803;LED
5、目 录1 前言1.1研究的背景在高速的信息、商业发展过程中,LED点阵广告显示器得到了广泛的应用,LED点阵显示屏已逐步取代传统的大尺寸纸质广告,在大街小巷常见的LED点阵显示屏都得益于LED灯的发明。通过学习模拟电路了解到我们常说的LED就是发光二极管,发光二极管必须在一定的电压和电流区间才能点亮,而且不同的发光二极管所需电压和电流也不相同。通过对单片机、数字电路的学习,懂得了单片机的拥有处理功能强、速度快、低电压、低功耗等优点。在点阵显示课程的学习中,懂得把LED灯通过共阴或共阴的接法,再通过动态扫描、静态扫描就可以把LED灯点亮,且使用动态扫描的方式,有节省I/O口的优点。在学习过程中得
6、知动态扫描是常用的LED显示方法。使用动态扫描,需要有驱动器对LED灯进行控制,而LED灯有需要在特定的电压、电流区间才能点亮。LED灯有着高亮度、低功耗的有点。由LED点阵组成的显示屏可以显示各种想要的文字、图案。但常见的LED点阵显示屏都是平面显示屏,平面显示屏有一个明显的不足:无立体感。1.2研究的意义本设计提出使用LED灯构成8*8*8光立方显示屏。本设不仅拥有显示文字、图案的功能,增加了立体显示的功能。本光立方的设计克服了平面LED点阵显示屏的缺点,及立体和动态于一体,动态、立体的显示方式更能吸引眼球,本设计应用于商业广告时,可以得到更好的宣传效果。特别是厂商在产品推广的时候,需要使
7、用多张图片对一个产品的结构进行展示,然而这种展示方式,不仅耗费版面,而且只展示了特定的部位。使用光立方显示屏,可以把产品以立体的方式展现给消费者,消费者可从不同的角度对产品进行观察,使得消费者对产品外形有具体的认识。1.3研究内容和结构本设计主要研究基于STC51单片机的光立方设计与实现。主要研究内容如下:根据自己的要求提出并做出总体设计方案。研究三维点阵Led的硬件电路设计,包括:电源电路、串口电路、8*8*8 LED光立方驱动电路、显示模块电路等设计。研究光立方显示的软件设计,包括:显示程序、延时程序、串口通信等设计。对硬件电路、软件程序进行调试,并解决出现的问题。控制模块的设计:控制电路
8、部分包括STC单片机和电源电路,串口电路等。STC单片机具数据处理功能强,运算速度快的有点,适合运行光立方控制程序。通过RXD、TXD口与PC机通信,即可下载控制程序。本文的结构安排如下:第2章:详细叙述本系统的工作原理以及结构特点,对不同方案的分析和选择,详细介绍各个模块。第3章:对硬件电路的布局进行设计,并说明各部分的主要作用。详细叙述所选用芯片的引脚分布、引脚功能、以及对引脚的使用进行规划。叙述整个光立方系统焊接搭建的过程以及过程中应该注意的问题。第4章:主要介绍了软件设计的思路,以及软件所要实现的功能。第5章:主要叙述整个光立方在后期调试中遇到的软、硬件问题,以及寻找问题、解决问题的方
9、法。第6章:主要叙述在本次毕业设计中的收获。2 总体设计2.1 系统的设计方案及工作原理光立方的总体设计方案包括了硬件设计和程序设计。硬件主要分为三个模块:控制模块,驱动模块,显示模块。其中,控制模块使用单片机作为控制核心。借鉴点阵显示的原理,使用层驱动、行驱动,控制光立方的各个发光二极管的亮灭亮灭。显示模块由512个发光二极管组成。通过控制模块控制驱动模块,驱动模块控制显示模块,显示模块动态扫描显示的方式达到控制显示的目的。系统结构图如图2-1所示。图2-12.2 各模块元件选择对控制模块、驱动模块、显示模块元件进行分析和选。2.2.1 控制模块元件的选择控制模块的元件有两个选择方案。方案一
10、:选用ATMEL公司的AT89S52单片机,其片内有8 KB Flash储存器,为12T单片机。方案二:选用STC公司的STC15F2K60S2,拥有60 KB Flash 程序储存器,内部集成高精度R/C时钟,为1T单片机。方立方显示程序的数据量大,8KB的储存空间将对显示图案的样式带来限制,且光立方采用动态扫描的方式显示,对单片机的数据处理速度有较高要求。因此本设计选择采用STC15F2K60S2单片机作为控制模块的核心元件。选用此单片机可以免去外部时钟电路,可达到精简电路、节省成本的目的。2.2.2 驱动模块元件的选择由于本设计采用分别控制LED阴极、阳极的方法达到控制LED的目的。此次
11、需对阳极驱动模块以及阴极驱动模块使用的元件进行选择。其中阴极的驱动模块选用的元件有两个方案:方案一:选用8个8050 NPN三极管,该三极管集电极所能承受的最大电流为500(mA)。方案二:选用1片ULN2803。由8个NPN达林顿晶体管构成,输出电流为500(mA)。若选用8个NPN三极管将造成零件的增加,使电路变得复杂,基于电路简洁的考虑,本设计选用1个UNL2803作为阴极的驱动模块。阳极的驱动模块选8片拥有8路3态输出的74HC573。2.2.3 显示模块元件的选择显示模块元件有两个选择方案:方案一:选用蓝色圆头LED,规格为5(mm)。方案二:选用方形雾状蓝色LED,规格为2*5*7
12、(mm)。由LED灯构成的显示模块,需要考虑亮度、聚光性、视觉效果等方面的因素。方形雾状蓝色LED具有高亮度,聚光的优点。因此,本方案选用方案二作为显示模块的元件。3 硬件电路设计与实现3.1 硬件电路布局设计使用的元件确定以后,需对元件的布局进行设计。在确定布局后,通过焊接的方式把相关线路焊接起来。硬件布局如图3-1所示。图3-13.2 控制模块电路的设计本设计使用的STC15F2K60S2单片机,内置高精度的R/C时钟和复位电路。因此控制模块的不需要外部时钟电路和外部复位电路,只需电源电路、串口选择电路。其中电源电路为整个设计提供电源。串口选择电路为系统运行时,是否能通过串口控制光立方提供
13、选择。在控制模块电路的设计中,需对单片机引脚的使用进行规划,并对电源电路、串口选择电路进行规划。3.2.1 单片机的说明及引脚规划在对控制模块进行焊接之前,需对单片机引脚的使用进行规划。在本设计中使用的STC15F2K60S2单片机可通过设置PxM0、PxM1的值,把任意I/0口的模式设置为强推挽模式或准双向模式或开漏模式或高阻高阻。本设计中,使用的I/O口模式为准双向,由于各个I/O口的模式都可以设置为准双向模式,因此P0口不需连接上拉电阻。引脚P0连接驱动模块中74HC573的输入引脚,P2引脚连接各个74HC573的LE锁存使能引脚。P1引脚连接ULN2803的输入端。P41引脚连接串口
14、通信选择的按键,P42引脚连接串口通信选择指示灯。3.2.2 电源电路的设计使用手机充电器(5V,1A)作为系统电源。在VCC与GND之间加入一个47F电解电容和一个0.1F的瓷片电容,可去除电源噪声,降低对系统的影响,从而系统的抗干扰能力得到提高。为了能方便地观察到电源电路的闭合,加入一个由蓝色雾状LED作为电源指示灯,加入一个100的电阻进行压降,使得LED工作时的电压为3.2V,起到防止LED击穿的作用。电源电路的电路图如图3-2所示。图3-23.2.3 串口选择电路的设计在本设计中,有内置光立方显示数据和串口传输光立方传输显示数据两种方式控制光立方的显示。在通过串口传输数据时,为了确保
15、内置显示数据不再显示,以及保证串口中断为开。因此需要设置串口选择按键,以供选择是否通过串口传输光立方显示数据。串口选择按键的两个接口分别连接在单片机的P4.1口和GND。同时添加一个串口开指示灯,在串口中断为开时,指示灯亮。指示灯为蓝色发光二极管,阳极接在VCC,阴极接在单片机的P4.2口,由于VCC的电压为5V,因此需并串联一个100电阻,以保障发光二极管的稳定运行。电路图如图3-3所示。图3-33.2.4 程序下载及串口通信电路的设计本设计使用的是STC的单片机,可使用STC公司提供的stc-isp软件把程序下载到单片机。在进行程序下载和串口通信时。需使用到单片机的Txd、Rxd、GND接
16、口。因此这三个接口需用排针引出,以方便程序下载和串口通信时使用。本设计中,使用PL2033下载线进行程序下载和串口通信。3.3 驱动模块电路的设计驱动模块电路使用了ULN2803和74HC573两种元件。驱动模块分为层驱动、行驱动。把光立方的每一层的阴极连接在一起,此称为层共阴接法,再把每一层的阴极接到,层驱动模块的输出端口。使用ULN2803作为层驱动,若要选通某一层,只需通过ULN2803的输入引脚控制与该层相连的ULN2803输出口为低电平,即可选通该层。把光立方的每层中同行同列的发光二极管的阳极连接在一起组成一束LED,即每一束发光二极管共阳,再把各束连接到行驱动模块。使用8个74HC
17、573作为行驱动模块,通过74HC573控制光立方各层中相同的行。由于光立方各束是共阳的,且同一行的各束连接在同一个74HC573的不同输出口中,当74HC573输出高电平时,与之相连的束的阳极都为高电平,再通过层选通的方式,就可控制各个LED的亮灭。通过这样的控制方式,即可达到控制各个LED及驱动LED的目的。3.3.1 ULN2803的说明及引脚规划ULN2803共有18个引脚,其中1至8引脚为输入端,11-18引脚为输出端,9引脚接为接地端,10引脚接VCC。输出击穿电压为50(V) ,输出电流为 500(mA)。ULN2803的1B至8B引脚(即输入引脚)接单片机的P1.0至P1.7引
18、脚,1C至8C引脚(即输出引脚)接光立方的1层至8层,9引脚接GND,由于本设计为非驱动感性负载,10引脚不接VCC,如图3-4所示。图3-43.3.2 74HC573的说明及引脚规划本设计使用的74HC573是拥有八路输出的透明锁存器,共有20个引脚,其中D0至D7引脚为输入引脚,Q1至Q7引脚为输出引脚,OE引脚为使能端,低电平时,74HC573输出数据,LE引脚为锁存控制端,VCC引脚接电源VCC。在本设计中,共使用8个74HC573,各个74HC573的D0至D7引脚接单片机的P0.0至P0.7引脚,输出引脚Q0至Q7依次接光立方的同一行中的1至8束,第一个至第八个74HC573的LE
19、引脚依次接到单片机的P2.0至P2.7引脚,所有的74HC573的OE引脚连接至GND,所有的74HC573 的VCC引脚接至电源VCC,详细的布线如图3-5所示。图3-53.4 显示模块电路的设计本设计的显示模块由发光二极管和电阻构成。使用8*8*8的方案作为本设计的显示模块,即显示模块一共八层,每层由64颗发光二极管构成。每一层的发光二极管的阴极连在一起,各层中同行同列的发光二极管的阳极连在一起组成束。由于本设计选用的是蓝色雾状发光二极管,规格为规格为2*5*7(mm),IF:20(mA),VF:3.0-3.2(V)。由于本设计使用5V电源供电,为了保证LED的正常工作,需添加一个电阻进行
20、压降,根据串联分压不分流的原理,根据欧姆定律R=U/I,可得出1.8(v)/20(mA)=90(),根据此计算结果,本设计中,在每束LED的阳极串联一个100电阻。图 3-6LED的连接方式如图3-6所示,黄色线表示同一层的LED的阴极连在一起组成层共阴,红色线表示各层中,同行同列的LED的阳极连在一起组成束共阳。3.5 光立方搭建方法硬件布局及各模块电路设计好后,需要进行硬件电路的搭建,本设计中,使用18*30(CM)波纤喷锡万用板作为焊接板,在此板上根据硬件布局及各模块电路进行光立方的搭建。3.5.1 弯折LED的引脚显示模块一共使用了512颗LED。搭建的第一步是对LED的引脚进行弯折,
21、以方便下一步的焊接。为了整个显示模块更加美观,各个LED弯折的的角度、长度必须保持一致,为了达到这一要求,本设计进行引脚弯折时,使用自制的夹具对引脚进行弯折。自制夹具由如图3-7所示,由六个排针构成,使用尖嘴钳把第三行的两个排针向右稍微弯曲,这样做的目的是,在弯曲LED引脚时,可使LED阳极引脚头处向外微折,方便焊接。图3-7LED引脚的弯折过程如图3-8所示。LED的长引脚为阳极,把阳极引脚朝下,插在第二、第三行的排针上,把阳极引脚往右弯曲与阴极引脚垂直。完成后取下LED,接着把LED阳极引脚朝下并插在第一行和第二行的排针上,把阳极引脚向下弯曲,与阴极引脚平行,此时,完成了阳极引脚的弯曲,此
22、时可观察到,阳极引脚的头微向外弯曲。接着把阴极引脚向右弯曲与阳极引脚弯曲,这样就完成了一颗LED的引脚弯曲。图3-83.5.2 光立方的焊接首先焊接光立方显示模块,光立方显示模块由512颗LED和64个100电阻构成。由于LED容易被静电击穿,因此,在焊接的过程中,要保证电烙铁良好接地,且焊接时,温度不可过高。先焊接出8个面,再通过八个面组成一个一个立方体。为了每个面焊接的美观,需使用双排针和万用完焊接成一个模具,以保证各个面的一致性。焊接模具如图3-9所示。图3-9在焊接的过程中,为了方便焊接,先竖着排LED,然后使用电烙铁把阳极引脚连接起来。接着在右边继续竖着摆放一排LED,摆放好后焊接阳
23、极引脚,阳极引脚焊接完成后,把第二排阴极引脚与第一排的阴极引脚一一对应地焊接起来。如图3-10所示。图3-10本设计的显示模块共使用了512颗LED,并使用电烙铁进行焊接,而LED灯容易被静电击穿以及不耐高温。因此,在进行完每一板LED焊接后,需使用万用表的二极管档位对LED进行测试,把损坏的LED及时更换,确保所有LED完好后再接入万用板,这样可以保证显示模块的整齐美观。3.5.3 元器件的焊接本设计使用的STC15F2K60S2单片机、74HC573、ULN2803分别为DIP40、DIP20、DIP18封装,若直接把元件焊接到万用板上,元件有可能因为焊接温度过高而损坏,且直接焊接到万用板
24、,也不利于日后元件损坏时的更换。因此本设计选择把DIP-40脚IC插座、DIP-20脚IC插座、DIP-10脚IC插座,根据硬件布局图焊接在万用板上。整个光立方焊接完成后,再把相应元件插到IC座中。本设计使用的 DC005电源插座共有3个引脚,自锁开关共有6个引脚、轻触开关共有4各引脚,在焊接前需确定所使用的引脚。各个元器件引脚之间的连接,采用跳线进行连接,在焊接跳线时,需使用剪刀先把跳线两头的绝缘层,并在裸露的导线上添加焊锡,这样可以轻易地把跳线焊接到元件引脚上。ULN2803输出引脚与光立方层之间的导线由于会裸露在显示模块上,因此,ULN2803输出引脚与光立方层之间的导线选用细漆包线,这
25、样可以使光立方更加美观。由于使用的不是免刮漆包线,因此在焊接漆包线时,需把漆包线两头的绝缘漆使用小刀刮掉。在万用板上焊接显示模块时,先在万用板上焊接好上下左右间距为的圆孔母座,以方便把把焊接好的LED插入。在焊接完圆孔母座时,在各个圆孔母座的旁边焊接一个100的电阻,电阻的一端与圆孔母座相连,另一端则与相应的74HC573输出口相连。4 软件设计软件是光立方系统必不可少的一部分,本设计使用keil C51进行光立方运行程序的编写,在编程语言方面,可以选择汇编语言或C语言。由于C语言有着简洁灵活、移植性好、编译简单、执行效率高、循环的使用方便等优点,因此本设计选用C语言作为编程语言。本设计的软件
26、设计核心是显示程序,显示程序中使用的数据,可来自于串口接收,以及程序内置的显示数据。4.1显示程序的设计光立方的显示是参考了点阵动态扫描显示的方式,即光立方显示时,从第一层显示至第八层,各层是从第一行到第八行逐行显示。利用人眼的余晖效应,光立方可产生动态画面的效果。显示程序定义一个八行八列的二维数组存储待显示数据,这样的优点是二维数组的行对应着光立方的层,二维数组的列对应着光立方的行。由于采用的是动态扫描的方式显示,且使用了8个74HC573控制一层的LED,在编写程序是,只需把显示数组中一行的八个显示数据分别传递到74HC573中,73HC573对数据进行锁存,当一层的显示数据保存完成后,打
27、开与该层相应的ULN2803输出端口,即可显示该层。为了保证各层LED显示亮度一致,需要使得各层的显示时间一致,而单片机提供了定时器中断的功能,因此,把显示程序放在定时器中断处理函数中,即可达到每层显示时间一致的目的。代码如下:void timer0_isr(void) interrupt 1CENG=0;CKPD(); for (i=0;i8;i+)HANG=(0x01i);/行选择DATA=displaylayi;/列赋值HANG=0;CENG=(0x017) /完成八层扫描,重新回到第一层进行扫描lay=0;4.2 光立方的显示数据光立方显示的数据的来源可分为程序内置显示数据和串口接收显
28、示数据。4.2.1 内置显示数据光立方显示的每一帧使用一个八行八列的二维数组保存,因此,光立方开机自动显示的画面,只需用二维数组保存好每一个画面的数据,即可把显示的数据内置到单片机中。在显示内置数组是,只需把显示数据赋值给显示程序中的待显示数组,即可达到显示内置显示数据的目的。在显示数据赋值完成后,添加一个延时程序,即可控制下一个显示数据传值到待显示数组的时间间隔,通过这样的控制方式,即可控制光立方显示动态画面或者静态画面。若显示静态画面延时长,动态画面延时短。本设计存储内置的显示数据时,字符数据用二维数组存储,二维数组的Y轴代表第几个字符数组。而动画数据用三维数组存储,三维数组的Z轴代表第几
29、个画面。内置数据显示代码如下:/字母/for(zzj=0;zzj6;zzj+)if(ES=0)for(yyj=0;yyj8;yyj+)for(xxj=3;xxj5;xxj+)/光立方的第三、四层显示字符。displayyyjxxj=ZMzzjyyj; /依次存入显示数组;Delay250ms();/动画/for(zzj=0;zzj30;zzj+)if(ES=0)for(yyj=0;yyj8;yyj+)for(xxj=0;xxj8;xxj+)displayyyjxxj=cubezzjyyjxxj; /依次存入显示数组;Delay100ms();if (zzj=29) /一轮显示完成,清除待显示数
30、组for(qy=0;qy8;qy+)for(qx=0;qx=2) /串口第一个数据为显示命令不接收temp=SBUF;/接收串口数据displayyyxx=temp; /依次存入显示数组xx+;if(xx=8)xx=0;yy+;if(yy=8)yy=0;if(rxcnt=65)rxcnt=0;4.2.3 显示数据来源的选择上文中提到,光立方可显示内置的数据,和串口接收的数据,那么单片机必须判断显示内置数据还是串口接收的数据,因此,在软件设计中,需添加一个内置数据显示与串口接收数据显示的判断函数。由于单片机接收到串口数据时,会判断串口中断是否为开,若为开时,即进入串口中断函数。而本设计中,显示串
31、口接收数据时,正是通过串口中断处理函数,把串口接收的数据赋值给待显示数组,因此可通过外部按键设置串口中断的开与关,即可达到显示数据来源的选择。本设计中,有一个串口选择功能的轻触开关,其一端连接单片机的P4.1引脚,一端连接GND。单片机只需通过判断该引脚的状态,即可判断是否改变显示数据的来源。即若P4.1的引脚为低电平时,则串口中断标志位ES取反,即可达到显示数据来源的选择。本设计中,单片机开机时,串口中断为关,把对P4.1引脚状态的判断放在定时器中断函数中,即每进行一次线束数据扫描时,就对P4.1引脚的状态进行判断。若P4.1的引脚为低电平,即显示数据的来源发生改变,若变成来自于串口接收的数
32、据,需对计数串口接收数据个数的变量以及用于控制数据存储位置的行、列变量进行置零,以保证光立方的正常显示,并且置P4.2引脚为0即低电平,串口指示灯点亮,提示光立方显示的数据来自于串口。若改变为来自内置的数据,需对待显示数组内的数据进行置零,消除对显示内置数据时的影响,同时P4.2引脚置1,串口指示灯灭。代码如下:void CKPD()if(AJ=0)/串口选择按键判断Delay250ms();ES=(ES);if(ES=1)AJD=0; /串口指示灯xx=0;yy=0;rxcnt=0;elseuchar qx,qy;AJD=1;for(qy=0;qy8;qy+) /清空待显示数组for(qx=
33、0;qx8;qx+)displayqyqx=0;4.3 显示数据的获取光立方的显示就如点阵显示一样,通过控制每个LED的亮灭,得到一个预想的画面。而控制LED的亮灭是通过显示数据来控制的。上文中已经提到,本设计使用八行八列的二维数组存储显示数据,显示数据的行对应着层,列对应着光立方相应层的行。各行通过74HC573控制,当输出为1时,LED点亮。因此可通过预想得到的图案,计算出相应的十六进制数值,并发在二维数组中相应的行列中。如点亮第第一层第一行第一个LED时,只需把显示数组的第一行第一列赋值为0x01即可。还可以使用8*8点阵取模软件,对光立方的每一层取模。5 测试和问题分析在整个光立方制作
34、完成后,需进行光立方的运行进行测试。以下是在测试过程中发现的问题及问题的解决方法: 1、使用串口控制光立方时,通过上位机控制光立方全亮,光立方有一束不亮。解决方法:使用万用表测量该束所连接的74HC573输出引脚的电压,发现电压为5V,电压正常。同时发现与该引脚连接的导线脱落了,从新焊接该导线,问题得以解决。2、使用串口控制光立方时,发现光立方有时闪烁,且显示的画面与预期不相符。解决方法:怀疑是传输显示数据时出现了问题,检查串口线与单片机连接,发现光立方系统中,GND排针的焊点脱落,重新焊接就解决了问题。3、 在进行程序运行时,发现光立方的第一层第一行,不受控制,亮灭无规律。解决方法:检查线路
35、,发现控制该行的74HC573的LE引脚连接到单片机P2.0旁边的P4.4引脚。重新焊接,将该LE引脚连接到单片机的P2.0引脚,问题解决。4、程序运行时,光立方的亮度偏暗。解决方法:逐步加大各层显示时的延时时间,调试出效果最佳的延时时间,2、用keil编写完软件发现无法编译通过,显示无STC15.H头文件。解决方法:经对文件的检查,发现重STC-ISP导出的头文件丢失,使用STE-ISP重新导出,并命名为STC15.H,问题解决。3、程序编译完成后,编译也通过了,没有产生.HEX文件。解决方法:对Keil C51的设置进行检查,发现软件中没有选择产生.HEX文件,在设置里勾选产生.HEX文件
36、。问题得以解决。4、串口选择按键按下后,未成功切换光立方显示数据的来源。解决方法:经过检查,发现是单片机运行速度太快,若按键按下时间太长,则软件认为进行了两次按键。在按键判断函数中,添加延时,问题得以解决。6结论本设计分为硬件设计和软件两部分。硬件部分的主要工作是元件的选择、引脚规划以及硬件的焊接。软件部分的主要工作是:软件的编程以及对延时进行调整。光立方集合了美学、研究、观赏于一体。在确定本设计使用的元件前,需到网上、图书馆查阅相关的元件,通过这个过程,对相关元件有了更深刻的认识。通过焊接的过程,可以很好地锻炼焊接能力且可以提高自己的动手能力,通过本次毕业设计,理论知识得到了巩固,所学的知识
37、得到了应用,并且学会了分析问题、解决问题的方法。本次毕业很有意义,从中受益匪浅。附录实物图运行效果图:原理图:参考文献1C语言程序设计(第四版) 谭浩强著 清华大学出版社,2010年;2微机原理与接口技术 顾晖 良惺彦著 电子工业出版社,2013年; 3单片机原理及应用 李毅刚著 高等教育出版社,2012年 ;4数字电子技术基本教程 阎石著 清华大学出版社, 2007年;5模拟电子技术基础(第四版) 童诗白著 高等教育出版社,2006年;6跟我学用单片机 肖洪兵著 北京航空航天大学出版社,2002年7.单片机C语言应用100例 王东峰著 电子工业出版社,2009年8新编单片机原理与应用潘永雄著 西安电子科技大学出版社,2003年致谢语本设计是在导师纪老师的细心指导下进行的。纪老师在百忙之中抽空讲解设计过程中遇到的问题,才使得我的设计顺利地完成。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了纪老师很多的宝贵时间和精力,在此向导师表示衷心地感谢!导师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生终生受益!最后,感谢家人、朋友、老师们给予的支持及帮助,在此,我衷心地说一声,谢谢。
限制150内