《基于单片机的4x4光立方课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的4x4光立方课程设计.docx(9页珍藏版)》请在优知文库上搜索。
1、Jiujianguniversity单片机课程设计报告题目光立方院系电子工程学院专业自动化姓名宋建军学号22班级学号A1032组员吴小康、文坛指导教师丁文斌目录一、摘要错误!未定义书签。二、设计目的与要求4设计目的4设计要求4三、硬件方案设计4单片机资源分配情况51. 2复位电路53. 3时钟电路54. 4系统的工作原理图65. 5焊接实物图10四、软件设计116. 1系统框图117. 2程序流程图11程序13五、心得体会17六、参考文献17摘要当今社会,随着电子行业的不断开展,单片机凭借着其极高的性能价格比,受到人们的重视和关注,应用广泛,开展迅猛。单片机体积小,质量小,抗干扰能力强,对环境
2、要就不高,价格低廉,灵活性好,己广泛的应用在工业自动化、通信、自动检测、信息家电、电力电子航空航天等各个方面。成为现代生产和生活中不可缺少的一局部。对于大三的我们来说,学习单片机也好久了,对单片机有了大体的了解,此次单片机课程设计,我们采用的是STC89C52RC系列的单片机,利用此单片机来控制一个光立方。光立方顾名思义就是一个立方体,我们采用的是4*4*4的模式,将LED灯分成四层,利用程序来编写各种不同的效果来控制LED的亮灭,最终使得整个立方体展现不同的造型和图案,使其变得美轮美奂,绚丽多彩。二、设计目的与要求(1) .进一步掌握单片机的原理及其功能。学会利用单片机做一些课外电子设计与制
3、作。(2) .熟悉LED点亮条件及其工作原理。(3) .熟悉光立方显示的原理及其相关的线路连接。(4) .通过此次的电路焊接和调试提高自己的动手及其分析问题的能力。(1) .利用单片机控制4*4*4的LED光立方显示一些3D的图形,通过编程编写一些程序控制单片机输出一些上下电平从而控制某个和某些LED等亮和暗,由此来通过灯光显示一些3D图形。设计内容包括了时钟电路、复位电路、三极管驱动电路、LED光立方电路等几局部的设计。根据内容画出相应的电路图,再编写出相应的程序。(2) .编写完程序后,进行实物的焊接,将程序烧写到单片机上,最后进行调试。2.3小组分工情况吴小康主要负责硬件局部,主要工作是
4、焊接电路。宋建军主要负责软件局部,主要工作是编写程序,画电路图。文坛主要负责报告的撰写,一起完成了本次课程设计的任务。三、硬件方案设计将4*4*4的LED光立方分层4层,分别由单片机的P2.0,P2.LP2.2,P2.3,四个口来控制每一层,且给低电平有效,再有PO口和PI的总共16个口来控制16列,给高电平有效,PO和Pl口加上位排阻,再给每一列加三极管放大,三极管的基极接单片机的PO和Pl口,集电极接5V电源,发射极接每一列。这样就可以通过控制每个口的输出信号来控制每个的亮灭。3.2 复位电路通过某种方式,是单片机内部各类存放器的值变为出事状态的操作称为复位。单片机的复位是通过外部电路来实
5、现的,复位引脚RET通过一个施密特触发器与复位电路相连接,施密特触发器用作噪声抑制,伟哥机器周期的S5P2时刻,复位电路采样一次施密特输出电平,获得内部复位操作所需要的信号。单片机的时钟电路正常工作后,CPU在RET/VPD引脚上连续采集到两个机器周期的高电平后就可以完成复位操作了,但实际应用时,复位电平的脉冲宽度一般大于1ms。复位电路通常采用上电复位、手动按键复位和看门狗复位三种方式,本次采用的是上电复位方式。3.3 时钟电路单片机的各个功能部件的运行都是是时钟控制信号为基准,一拍一拍的工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的可靠性和稳定性。常用的时钟电
6、路设计为内部时钟方式,单片机内部有一个由反向放大器构成的震荡电路,芯片上的XTALl和XTAL2分别为震荡电路的输入和输出端。只要在这两个引脚上接一个石英晶体振荡器和两个微调电容就构成内部方式的振荡器电路,有振荡器产生自激振荡,便构成一个完整的震荡信号发生器。一般选用石英晶体振荡器。此电路在加电大约延迟IOms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容Cl、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。本系统的Cl、C2的值为33pf。单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单
7、元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,f表示。图2中的时钟频率为12MHz,即f=12MHz,那么时钟周期为l/12us03.4 系统的工作原理图光立方一、二层:光立方三、四层:单片机口点连接:三极管放大电路:总原理图:3.5 焊接实物图四、软件设计3.1 系统方框图3.2 程序流程图开始元器件清单:名称数量大LED灯70个AT89S521片按键1901316个102排阻2个IK电阻16个20pF瓷片电容2个12MHZ晶振1个IOuF电容1个330电阻1个1个3.3C语言程序#include#defineucharunsignedcharvoiddelay100ms(uc
8、hardata1ms)uchari,j,m;for(i=OJdata1ms;i+)for(j=0;jlIO;j+)for(m=0;m100;m+)voiddisp(ucharceng,ucharlie1,ucharlie2)Idelay100ms;Pl=ceng;P2=liel;P0=lie2;voidmain(void)unsignedcharhang,shuI;unsignedcharcodeCl16=0x07,OxOB,OxOD,OxOE,OxOE,OxOC,0x08,0x00,0x00,0x08,OxOC,OxOE,OxOC,0x08,0x00,0x00,0x08,0x0C,0x0E,
9、0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00,0x08,OxOC,0x0E,OxOE,0x0E.0x0E,0x0E,OxOE,0x0E,0x0E.0x0E,0x0E,0x0E,OxOE,0x0E,0x0E,0x0E,0x0E,OxOC,Ox08,0x00,0x00,0x08,OxOC,OxOE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,OxOO,0x00,OxOO,OxOO,0x00,0x00,0x00,0x00,0x00,0x08,OxOC,0x0E.0x0F,OxOE,0x0C.0x08,
10、OxOO,0x00,0x00,0x00,0x00,0x00,OxOD,0x0D,0x0D,0x05,0x09,0x09,0x09,0x0D,0x0D,0x0D,0x05,0x09,0x09,0x09,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09;unsignedcharcodeLl16=OxFF,OxFF,OxFEOxFF,0x60,0x60,0x60.0x60,0x60,0x60.0x60,0x96.0x96,0x96,0x96,
11、0x96,0x96,0x96,0x33,0x33,0x33,0x33,0x33,0x33,0x33,OxCC,OxCC,OxCC,OxCC,OxCC,OxCC,OxCCOxO1,0x03,0x07,OxOF,0x8E,0x8C,0x88,0x80,0x00,OxOO,OxOO,Ox10,0x30,0x70,0x70,0x60.0x60,0x60,0x60,0x60,0x60,0x60,0x60,OxCC,OxOF,0x33,0x66,0xCC,0xF0,0x33,0x66,OxCC,0x66,0x33,OxFO,0xCC,0x66,0x33,0xF0,OxCC,OxCC,OxCC,OxCC,O
12、xCC,0x60,0x60,0x60,0x60,0xE8,0x74,0x32,Ox11,0x00,0x06,0x66,0x60,0x60,0x60,0x00,0x00,0x06,0x66,0x60,0x60,0x60,0x00,0x00,0x00,0x80,0x40,0x20,0x20,0x20,0x60,0x62,0x60,0x30,Ox10,0x80,OxCO,0x60,0x60,0x60,0x60,0x64,0x60,0x30,Ox10/OxO1,0x02,0x04,0x08,0x80,0x40,0x20,Ox10,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,O
13、xOO,/列扫描;unsignedcharcodeL216=0xFF,0xFF,OxFF,OxFF,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0XCC,0XCC,OXCCQXCC,OXCC,OXCCQXCC,0x33,0x33,0x33,0x33,0x33,0x33,0x330x00,Ox00,0x00,0x00,0x00,0x08,0x88,0xC8,0xE8,0xF0,0x71,0x3l,0xll,Ox10,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0
14、6,0x33,OxFO,OxCC,0x66,0x33,0x0F,OxCC,0x66,0x33,0x66,0XCC,OxOF,0x33,0x66,OxCC,OxOF,0x33,0x33,0x33,0x33,0x33,0x06,0x06,0x06,0x06,0x8E,0x47,0x23,Ox11,0x00,0x00,0x00,0x06,0x06,0x06,0x66,0x60,0x00,0x00,0x06,0x06,0x06,0x66,0x60,0x00,0x08,OxOC,0x06,0x66,0x06,0x06,0x06,0x06,0x03,OxO1,0x00,0x08,0x04,0x64,0x0
15、6,0x06,0x06,0x06,0x03,0x01/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x80,0x40,0x20,Ox10;while(l)for(hang=0;hang8:hang+)for(shu1=O;shul16;shu1+)disp(Clhangshul,Llhangshul,L2hangshu1);/for(hang=0;hang1;hang+)/fbr(shul=O;shu116;shu1+)/shu2=0;/disp(Clshu2shu2,Llhangshul,L2hangshul);六 .心得体会此次为期半个多月的课程设计,让我感受颇深。最终看到了绚丽多姿,变化多端的LED光立方的图案。在这