444光立方设计报告.docx
《444光立方设计报告.docx》由会员分享,可在线阅读,更多相关《444光立方设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
![444光立方设计报告.docx](https://file1.bdocx.com/fileroot1/2023-6/1/8fc5e7c6-c040-4592-9c21-93cf1b6874b4/8fc5e7c6-c040-4592-9c21-93cf1b6874b41.gif)
444光立方设计报告
444光立方设计报告
第1章摘要......................................1
第2章绪论......................................2
第3章设计目的与要求............................3
3.1设计目的.....................................3
3.2设计要求.....................................3
第4章444光立方基础技术.........................4
4.1STC89C52的标准功能......................................4
4.2STC89C52的主要特性.....................................5
4.3STC89C52的器件参数.....................................6
第5章总体方案设计..............................7
5.1单片机资源分配情况.............................7
5.2复位电路......................................8
5.3时钟电路.....................................8
5.4系统框图和程序流程图............................9
5.5系统的工作原理图..............................10
第6章系统调试与测试...........................13
第7章总结与展望...............................14
第8章致谢辞...................................15
第9章参考文献.................................16
附录(原理图、源程序)..........................17
摘要
当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能价格比,受到人们的重视和关注,应用广泛,发展迅猛。
单片机体积小,质量小,抗干扰能力强,对环境要就不高,价格低廉,灵活性好,已广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。
成为现代生产和生活中不可缺少的一部分。
关键词:
光立方单片机STC89C52
Abstract
Intoday'ssociety,withthecontinuousdevelopmentofelectronicindustry,single-chipmicrocomputerwithitsextremelyhighcostperformance,ispeople'sattentionandconcern,wideapplication,isdevelopingrapidly.SCMsmallsize,smallquality,stronganti-jammingcapability,theenvironmentisnothigh,lowprice,goodflexibility,hasbeenwidelyusedinindustrialautomation,communications,automaticdetection,informationhomeappliances,powerelectronics,aerospaceandotheraspects.Becomeanindispensablepartofmodernproductionandlife.
Keywords:
lightcubemicrocontrollerSTC89C52
绪论
为了让我们更加深入的了解单片机的原理及其内部结构和功能,黄老师让我们用51单片机制作一个小作品,于是,我们组选择了制作4*4*4的光立方。
我们制作的4*4*4是基于STC89C52单片机,STC89C52单片机属于51单片机,它也是单片机中最简单最适于新手入手单片机。
当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能价格比,受到人们的重视和关注,应用广泛,发展迅猛。
单片机体积小,质量小,抗干扰能力强,对环境要就不高,价格低廉,灵活性好,已广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。
成为现代生产和生活中不可缺少的一部分。
对于大二的我们来说,学习单片机也好久了,对单片机有了大体的了解,此次单片机课程设计,我们采用的是STC89C52RC系列的单片机,利用此单片机来控制一个“光立方”。
光立方顾名思义就是一个立方体,我们采用的是4*4*4的模式,将LED灯分成四层,利用程序来编写各种不同的效果来控制LED的亮灭,最终使得整个立方体展现不同的造型和图案,使其变得美轮美奂,绚丽多彩。
第3章设计目的与要求
3.1设计目的
⑴.进一步掌握单片机的原理及其功能。
学会利用单片机做一些课外
电子设计与制作。
⑵.熟悉LED点亮条件及其工作原理。
⑶.熟悉光立方显示的原理及其相关的线路连接。
⑷.通过此次的电路焊接和调试提高自己的动手及其分析问题的能力。
3.2设计要求
⑴.利用单片机控制4*4*4的LED光立方显示一些3D的图形,通过编程编写一些程序控制单片机输出一些高低电平从而控制某个和某些LED等亮和暗,由此来通过灯光显示一些3D图形。
设计内容包括了时钟电路、复位电路、三极管驱动电路、LED光立方电路等几部分的设计。
根据内容画出相应的电路图,再编写出相应的程序。
⑵.编写完程序后,进行实物的焊接,将程序烧写到单片机上,最后进行调试。
第4章444光立方基础技术
4.1STC89C52的标准功能
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
管脚图如下:
标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
4.2STC89C52的主要特性
STC89C52RC单片机:
8K字节程序存储空间;
512字节数据存储空间;
内带4K字节EEPROM存储空间;
可直接使用串口下载;
AT89S52单片机:
8K字节程序存储空间;
256字节数据存储空间;
自带2KB的EEPROM存储空间;
4.3STC89C52的器件参数
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.共3个16位定时器/计数器。
即定时器T0、T1、T2
10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
11.通用异步串行口(UART),还可用定时器软件实现多个UART
12.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
第5章总体设计方案
5.1单片机的资源分配情况
将4*4*4的LED光立方分层4层,分别由单片机的P2.0,P2.1,P2.2,P2.3,四个口来控制每一层,且给低电平有效,再有P0口和P1的总共16个口来控制16列,给高电平有效,P0和P1口加上位排阻,再给每一列加三极管放大,三极管的基极接单片机的P0和P1口,集电极接5V电源,发射极接每一列。
这样就可以通过控制每个口的输出信号来控制每个的亮灭。
5.2复位电路:
通过某种方式,是单片机内部各类寄存器的值变为出事状态的操作称为复位。
单片机的复位是通过外部电路来实现的,复位引脚RET通过一个施密特触发器与复位电路相连接,施密特触发器用作噪声抑制,伟哥机器周期的S5P2时刻,复位电路采样一次施密特输出电平,获得内部复位操作所需要的信号。
单片机的时钟电路正常工作后,CPU在RET/VPD引脚上连续采集到两个机器周期的高电平后就可以完成复位操作了,但实际应用时,复位电平的脉冲宽度一般大于1ms。
复位电路通常采用上电复位、手动按键复位和看门狗复位三种方式,本次采用的是上电复位方式。
5.3时钟电路:
单片机的各个功能部件的运行都是是时钟控制信号为基准,一拍一拍的工作。
因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的可靠性和稳定性。
常用的时钟电路设计为内部时钟方式,单片机内部有一个由反向放大器构成的震荡电路,芯片上的XTAL1和XTAL2分别为震荡电路的输入和输出端。
只要在这两个引脚上接一个石英晶体振荡器和两个微调电容就构成内部方式的振荡器电路,有振荡器产生自激振荡,便构成一个完整的震荡信号发生器。
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1、C2的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
本系统的C1、C2的值为33pf。
单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数,f表示。
图2中的时钟频率为12MHz,即f=12MHz,则时钟周期为1/12us。
5.4系统方框图和程序流程图
系统方框图:
程序流程图:
5.5系统的工作原理图:
光立方一、二层:
光立方三、四层:
单片机口点连接:
三极管放大电路:
总原理图:
第6章系统调试与测试
元器件焊接完成以后,我满怀激动地接上5V的电源,结果打开开关以后一个灯都不会亮,更别提什么炫酷的闪起来了,我和曾靓娜午饭都没吃的想这个问题,终于在我们一一的用万用表测试电路的时候发现输出全是高电平,也就是忘了接地,接上地线以后果然亮了。
但是灯只是全亮,没有按我们自己的编写的程序流,第二个大问题就来了。
。
。
单片机编程没有效果,我们用开发板编了一些简单的测试程序来检测问题到底出在哪里,是程序出了问题还是电路本身就有问题。
重新烧进去测试程序以后,还是和之前一样,单片机没有控制效果。
这时,叶峰建议我测试最小系统,可能是最小系统出了问题。
在精心测试之下终于找到了问题,最小系统里的一部分电路由于焊锡太多挨得太近,短路了,重新焊过之后烧进程序,灯终于闪起来了。
板子调试成功,当时真的好开心。
反正以后焊接电路就要细心,一个小小的环节出了问题就会导致整个制作的失败。
第7章总结与展望
此次为期半个多月的课程设计,让我感受颇深。
最终看到了绚丽多姿,变化多端的LED光立方的图案。
在这半个多月的学习中,在很大程度上培养了自己的独立思考及其动手能力。
学会了自己独立的发现问题、分析问题。
当我们遇到不明白的问题时,是通过上网查阅相关资料、翻阅书籍找出问题的答案。
。
尽管此次设计过程中遇到些问题,但最终还是一步一个脚印过来了。
在我们刚开始烧写程序进去调试时,发现LED灯P0口和P2口控制的两组灯点亮的有点延时,不能够同步显示图案的效果。
检查程序后发现,原来是在送完P0口数据后,就立马加了个延时,再送P2口数据,再延时,这样导致P0口与P2口之间的显示效果在视觉上慢了半拍,达不到预期图案要显示的效果,最后将中间的那个延时程序调到送完P2口数据之后再给其进行延时,通过调试发现能够正常显示。
另外在编写各种图案显示代码的时候,让我深刻的体会到,要想编好相应的代码,光立方的三维空间的想象能力还是比较重要,64个灯到底是要求哪个灯给高电平哪个灯给低电平,还要根据显示要求组合好。
以防出现乱码显示情况。
在汇编程序中,刚开始想用移位指令来实现代码的传送,发现在一些简单的图案还可以(如扫描极有规律的显示),但在复杂一点的立体图就无法使用了,最后还是将其全部统一改写成调用数组的形式送代码,这样既简单又不容易出错。
第8章致谢辞
在此次的设计中,除了之前学习了单片机的相关知识外,几乎是零基础的上手4*4*4的光立方,单从画原理图都耗费了大量的时间,了解每个管脚的作用,每个元器件的作用,三极管的用途,接法,电阻的大小,灯是选择竖共阴还是共阳……等等一系列的问题。
我们制作光立方的过程其实也就是一个很棒的学习的过程,正是在这个制作的过程中我们学到了很多东西。
这一次的光立方制作能够圆满完成,我首先要感谢的是黄老师,正是黄老师这种先进的教学理念造就了现在的我们,是黄老师在悉心知道我们去怎么做,是黄老师早早的就为我们种下制作光立方的种子-单片机知识。
在这里我对黄老师表示衷心的感谢,感谢我们能够遇到黄老师,是黄老师改变了我们的学习模式和学习效率。
其次我要感谢13通信卓越班的全体同学,尤其是几个大神叶峰、王鑫、高新城、钟鹏九,在调试的过程中他们帮了我很多,每一次的制作都离不开他们,哪怕是一个小小的细节,他们都有在帮我们。
我们永远是一个互帮互助的恩爱大集体,我相信以后我们会做的越来越好。
第9章参考文献
1.张毅刚.《新编MCS-51单片机应用设计》.哈尔滨工业大学出版社2003
2.朱兆优、陈坚等.《单片机原理及应用》.电子工业出版社2010
3.秦曾煌.《电工学》高等教育出版社.2009
4.欧阳斌林.《单片机原理及应用》.中国水利水电出版社2006
5.潭浩强.《C程序设计》.北京航空航天出版社
6.付晓光.《单片机原理与实用技术》.清华大学出版社
7.邹寿彬.《电子技术基础》.清华大学出版社
8.许熙文.《电路基础》.高等教育出版社
第9章
附录一:
光立方PCB原理图
附录二:
光立方原理图
附录三:
光立方源程序
#include
#defineucharunsignedchar
#defineuintunsignedint
//由内到外
externucharlie_1[]={0x02,0x02,0x02,0x06,0x46,0x66,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x7F,0xFF};//P0管脚
externucharlie_2[]={0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0xE8,0xEC,0xEE,0xEF,0xFF,0xFF,0xFF};//P1管脚
//外层环绕
externucharlie_3[]={0x10,0x20,0x40,0x80,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x01};//P0管脚
externucharlie_4[]={0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x02,0x04,0x08,0x80,0x00};//P1管脚
voiddelay(uintz)
{
ucharu;
for(z;z>0;z--)
for(u=110;u>0;u--);
}
voidreset(void)
{
delay(100);
P1=0;
P2=0;
}
voidxaunzhuan(void)//由内到外
{
uinti=0;
uintn;
delay(100);
reset();
for(n=0;n<16;n++)
{
delay(100);
P0=lie_1[i];
delay(100);
P2=lie_2[i];
i++;
delay(500);
}
n=0;
i=0;
reset();
}
voidhuan(void)//外层环绕
{
uinti=0;
uintn;
delay(100);
reset();
for(n=0;n<12;n++)
{
delay(100);
P0=lie_3[i];
delay(100);
P2=lie_4[i];
i++;
delay(500);
}
n=0;
i=0;
reset();
}
voidmain(void)
{
while
(1)
{
xaunzhuan();
delay(100);
huan();
}