单片机课程设计报告

发布 2022-10-06 07:38:28 阅读 3030

题目基于单片机的光立方设计

院系信息科学与技术学院。

专业计算机科学与技术。

姓名曹嘉宇。

学号 20122301

指导教师蒋朝根。

摘要。当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能**比,受到人们的重视和关注,应用广泛,发展迅猛。单片机体积小,质量小,抗干扰能力强,对环境要就不高,**低廉,灵活性好,已广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。

成为现代生产和生活中不可缺少的一部分。

对于大二的我们来说,学习单片机也一个学期了,对单片机有了大体的了解,此次单片机课程设计,我们采用的是stc89c52rc系列的单片机,利用此单片机来控制一个“光立方”。光立方顾名思义就是一个立方体,我们采用的是16*16*16的模式,将led灯分成八层,利用程序来编写各种不同的效果来控制led的亮灭,最终使得整个立方体展现不同的造型和图案,使其变得美轮美奂,绚丽多彩。

1.1课题研究的背景:

光立方”一词正逐渐引起了全国人民的关注,并得到了全球的高度肯定。由此,也掀起了光立方的设计与学习热潮,在原有的基础上不断增加难度,增加变换花样,吸引电子爱好者对其研究、创新。

事实上,“光立方”已经渗透到以下几个方面:照明类led光效——户外景观照明展开的视觉装饰活动;信息传播类led光效——各种类型的大屏幕点缀着人们的生活;光立方制作所需材料较常见,成本低廉、性价比高等优点具有较高的研究价值。

1.2课题研究的意义:

本次毕业设计一改传统的平面流水灯的风格,而是从平面向立体发展,通过更宽广的三维空间呈现出更加绚丽的效果,直接冲击着人们审美视觉,不在停留在乏味的平面成像。3d8光立方主体部分由512led灯组成,在制作过程中锻炼学习动手焊接能力,并以低成本,智能化产品对实现经济利益、商业价值的形成具有积极的推动作用。

1.3 **研究内容与结构安排。

本文研究的内容如下:

单片机控制模块:采用89c52控制核心,其它相关的外围电路构成本系统的模块;

时钟信号电路:采用普通晶体时钟源,其中晶体用11.0592mhz的石英晶振;

显示模块:通过对单片机编程,利用程序来控制led的亮灭,以达到动画的效果。

具体介绍内容安排如下:

第二章主要阐述系统方案的选择与论证,将系统分为主控模块、驱动模块、显示模块等,并分别对各模块方案进行了选择与论证。

第三章主要介绍了个硬件电路的设计,还对各单元实现的功能以及芯片引脚功能特点进行说明。

同时阐述整个系统的设计思路以及搭建方法。

第4章主要阐述主程序的编写以及整个软件的框架。

第5章阐述的是整个光立方系统的调试过程以及在调试过程**现的软件、硬件问题。并阐述了解决这些问题的办法。

第六章主要对整个毕业设计的设计过程进行总结,并阐述了在制作过程中的收获和心得。

本设计以stc12c5a60s2单片机为控制核心设计一个由512个蓝色led灯组成的光立方。系统主要由主控、驱动、显示等模块构成。系统模块框图如图2-1:

图2-1 系统结构框图。

本电路是由stc12c5a60s2单片机为控制核心,其和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是flash工艺的,具有串口烧写编程功能,低功耗[1];时钟源电路有很多种,比如阻容低速时钟源、普通晶体时钟源、带缓冲放大的晶体时钟源等等,考虑到电路稳定及材料选购等方面,决定采用普通晶体时钟源,其中晶体用12mhz的石英晶振[12]。显示部份由显示部份由512个雾面led灯组成来进行显示。

单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对89c51单片机来说, 最小系统一般应该包括: 单片机、时钟电路、复位电路、输入/ 输出设备等[7](见图3-1)。

单片机的最小系统如下图所示:

图3-1单片机最小系统框图。

图3-2 单片机最小系统。

3.2.1时钟电路。

在设计时钟电路之前,让我们先了解下单片机上的时钟管脚:

xtal1(19 脚) :芯片内部振荡电路输入端。

xtal2(18 脚) :芯片内部振荡电路输出端。

xtal1 和xtal2 是独立输入和输出反相放大器,它可以被配置为使用石英晶振的片内振荡器。

内部方式的时钟电路如图3-3(a)所示,在xtal1、xtal2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡[9]。经过综合考虑,本设计中采用了11.0592m 的石英晶振。

和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。一般情况下选取33pf 的陶瓷电容就可以了。[8]

外部方式的时钟电路如图3-3(b)所示,rxd接地,txd接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12mhz的方波信号。[15]

a)内部方式时钟电路 (b)外部方式时钟电路。

图3-3 时钟电路。

另外值得一提的是检测晶振是否能够起振的方法可使用示波器能看到xtal2 输出的非常好看的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)xtal2 和地之间的电压时,可以看到2v 左右一点的电压。[13]

3.3.1led灯排序方式设计。

将每层的led排序如图3-8,d0,d1,d2,d3…d62,d63分别为64个led阵列实际排序方式,也就是光立方的俯视图,对应下图分别是其数据信号0, 1, 2, 3…62, 63;

图3-8 3d8光立方效果图。

3.3.2 led灯接法方式设计。

1.“光立方”是由8层这样布局的led组成,每层位置排列全部一致,如图3-9 。每层led的所有正极全部接到一起,然后连接74hc595的行扫描驱动电路,通过74hc595译码确定使能哪一层。

3.各层同一位置led的负极连接都一起,例如第一层的d0和第。

二、三、四…等层的d0的负极都连接一起,然后再把它们接到0上面,如图3-10。

图3-9 led层与层的连接方。

式图 3-10 led负极与输出端连接方式。

3.5光立方搭建方法。

3.5.1将led从点到线的搭建。

首先制作一块搭建用的木板如图3-11,木板孔与孔直接的距离为22.86mm,必须与电路板上的两空距离一致。将led灯逐个安在板上,并对led的脚进行折弯使正极引脚与负极的夹角为直角。

最后将8个led的阴极焊接在一起,如图3-12。注意:弯折阴极脚时弯曲处尽量靠近灯体不要留太长,这样焊接阳极时不容易造成短路。

图3-11搭建木板图3-12 已搭好的8个led灯。

3.5.2将led从线到面的搭建。

进行八次上诉焊接后接下来就是将8束的led焊接起来。在从点到线时是将所有led的阴极连在一起,而这次则是将所有led阳极弯折并依次连接,如图3-13。注意:

由于焊接过程中将产生静电容易将led烧坏,因此本项工作完成后请认真检查每个灯的好坏,可以用万用笔等工具检测。同时检测灯与灯之间有没虚焊情况。

图3-13 已搭好的8排led灯。

3.5.3将led从面到体的搭建。

最后一个步骤是将已焊好的8个面进行焊接,其方法是将之前8个面上的阴极对应位置依次焊接,最后留出的8个阴极与输出端进行连接,led的64阳极则与74hc595的数据输出端依次。

连接,如图3-14。

图3-14 已搭好的8层led灯。

4 系统软件设计。

程序主函数运行流程框图如图4-1。

图4-1 主程序框图。

首先,将系统所需要的文件的宏定义文件包含进来。定义:74hc595控制输入模块 p0口;驱动模块 p1;74hc595控制输出模块 p2口。

初始化定时器0,延时5us,开中断,使其处于等待中断状态。接着,初始化光立方体,驱动光立方,利用扫描形式使光立方体的led灯逐个点亮形成动画。

3d8光立方主要是通过程序来控制光立方体从而达到多种动画变化的效果。由于要形成多样的3d动画,在变成过程中也出现了不少的问题。最后经过多次的细心修改,顺利的完成了编程工作。

主要问题有:

1、烧入程序后,不能显示完整的动画。

解决方法:重新检查程序,检查对应的引脚定义有没错。再者检查延时是否过快导致动画不明显。

2、第一次烧入程序时用<>作为头文件名,发现程序溢出编译不通过并且检查程序无错误。

解决方法:该问题可能是52单片机为8k内存,而本光立方设计程序达到35k远远超出52单片机的内存,于是将头文件名改为<>,并配合keil4进行编译,编译通过。

本设计通过硬件设备和软件完美配合,总共呈现十一个连续的动画效果。经过多次的反复测试与分析,所呈现的动画与程序中预期的效果吻合,符合设计要求。在软硬件测试过程中让我们对原先设计的电路的原理及功能进一步熟悉,并对各电路模块和相关的芯片联合工作更加了解。

在这个调试的过程中虽然挺枯燥无味,但锻炼我们发现问题并解决问题的能力,对我们的专业知识起到了温故知新的作用。

此次为期两个礼拜的课程设计,让我感受颇深。最终看到了绚丽多姿,变化多端的led光立方的图案。在这半个多月的学习中,在很大程度上培养了自己的独立思考及其动手能力。

学会了自己独立的发现问题、分析问题。老师还为我们提供了网络,遇到不明白的问题,首先是通过上网查阅相关资料、翻阅书籍找出问题的答案。而且还有老师在实验室指导我们的设计,在查阅资料仍找不到但答案的还可以请教老师。

尽管此次设计过程中遇到些问题,但最终还是一步一个脚印过来了。

本次我主要的是负责程序的编写。在刚开始烧写程序进去调试时,发现led灯p0口和p2口控制的两组灯点亮的有点延时,不能够同步显示图案的效果。检查程序后发现,原来是在送完p0口数据后,就立马加了个延时,再送p2口数据,再延时,这样导致p0口与p2口之间的显示效果在视觉上慢了半拍,达不到预期图案要显示的效果,最后将中间的那个延时程序调到送完p2口数据之后再给其进行延时,通过调试发现能够正常显示。

另外在编写各种图案显示**的时候,让我深刻的体会到,要想编好相应的**,光立方的三维空间的想象能力还是比较重要,那么多灯到底是要求哪个灯给高电平哪个灯给低电平,还要根据显示要求组合好。以防出现乱码显示情况。在汇编程序中,刚开始想用移位指令来实现**的传送,发现在一些简单的图案还可以(如扫描极有规律的显示),但在复杂一点的立体图就无法使用了,最后还是将其全部统一改写成调用数组的形式送**,这样既简单又不容易出错。

单片机课程设计报告

单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....

单片机课程设计报告

韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...

单片机课程设计报告

南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...