最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于单片机的4x4光立方课程设计

来源:动视网 责编:小OO 时间:2025-10-01 02:09:28
文档

基于单片机的4x4光立方课程设计

JIUJIANGUNIVERSITY单片机课程设计报告题目光立方院系电子工程学院专业自动化姓名宋建军学号22班级学号A1032组员吴小康、文坛指导教师丁文斌二、设计目的与要求42.1设计目的42.2设计要求4三、硬件方案设计43.1单片机资源分配情况53.2复位电路53.3时钟电路53.4系统的工作原理图63.5焊接实物图10四、软件设计114.1系统框图114.2程序流程图114.3程序13五、心得体会17六、参考文献17摘要当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能价格比,
推荐度:
导读JIUJIANGUNIVERSITY单片机课程设计报告题目光立方院系电子工程学院专业自动化姓名宋建军学号22班级学号A1032组员吴小康、文坛指导教师丁文斌二、设计目的与要求42.1设计目的42.2设计要求4三、硬件方案设计43.1单片机资源分配情况53.2复位电路53.3时钟电路53.4系统的工作原理图63.5焊接实物图10四、软件设计114.1系统框图114.2程序流程图114.3程序13五、心得体会17六、参考文献17摘要当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能价格比,


JIUJIANG UNIVERSITY

单片机课程设计报告

题    目    光立方                        

院    系    电子工程学院                  

 

专    业    自动化                        

姓    名    宋建军                        

学   号      22                           

班级学号    A1032                         

组     员    吴小康、文坛                  

指导教师    丁文斌                        

二、设计目的与要求    4

   2.1设计目的    4

2.2设计要求    4

三、硬件方案设计    4

3.1单片机资源分配情况    5

3.2复位电路    5

3.3时钟电路    5

3.4系统的工作原理图    6

3.5焊接实物图    10

四、软件设计    11

4.1系统框图    11

4.2程序流程图    11

4.3程序    13

五、心得体会    17

六、参考文献    17

摘要

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

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

二、设计目的与要求

2.1设计目的   

 .进一步掌握单片机的原理及其功能。学会利用单片机做一些课外电子设计与制作。

       .熟悉LED点亮条件及其工作原理。

       .熟悉光立方显示的原理及其相关的线路连接。

  .通过此次的电路焊接和调试提高自己的动手及其分析问题的能力。

2.2设计要求

   .利用单片机控制4*4*4的LED光立方显示一些3D的图形,通过编程编写一些程序控制单片机输出一些高低电平从而控制某个和某些LED等亮和暗,由此来通过灯光显示一些3D图形。设计内容包括了时钟电路、复位电路、三极管驱动电路、LED光立方电路等几部分的设计。根据内容画出相应的电路图,再编写出相应的程序。

  .编写完程序后,进行实物的焊接,将程序烧写到单片机上,最后进行调试。

2.3小组分工情况

 吴小康主要负责硬件部分,主要工作是焊接电路。宋建军主要负责软件部分,主要工作是编写程序,画电路图。文坛主要负责报告的撰写,一起完成了本次课程设计的任务。

三、硬件方案设计

3.1单片机资源分配情况

将4*4*4的LED光立方分层4层,分别由单片机的P2.0,P2.1,P2.2,P2.3,四个口来控制每一层,且给低电平有效,再有P0口和P1的总共16个口来控制16列,给高电平有效,P0和P1口加上位排阻,再给每一列加三极管放大,三极管的基极接单片机的P0和P1口,集电极接5V电源,发射极接每一列。这样就可以通过控制每个口的输出信号来控制每个的亮灭。

3.2复位电路

  通过某种方式,是单片机内部各类寄存器的值变为出事状态的操作称为复位。单片机的复位是通过外部电路来实现的,复位引脚RET通过一个施密特触发器与复位电路相连接,施密特触发器用作噪声抑制,伟哥机器周期的S5P2时刻,复位电路采样一次施密特输出电平,获得内部复位操作所需要的信号。单片机的时钟电路正常工作后,CPU在RET/VPD引脚上连续采集到两个机器周期的高电平后就可以完成复位操作了,但实际应用时,复位电平的脉冲宽度一般大于1ms。复位电路通常采用上电复位、手动按键复位和看门狗复位三种方式,本次采用的是上电复位方式。

  

3.3时钟电路

 单片机的各个功能部件的运行都是是时钟控制信号为基准,一拍一拍的工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的可靠性和稳定性。常用的时钟电路设计为内部时钟方式,单片机内部有一个由反向放大器构成的震荡电路,芯片上的XTAL1和XTAL2分别为震荡电路的输入和输出端。只要在这两个引脚上接一个石英晶体振荡器和两个微调电容就构成内部方式的振荡器电路,有振荡器产生自激振荡,便构成一个完整的震荡信号发生器。

 一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。本系统的C1、C2的值为33pf。

单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,f表示。图2中的时钟频率为12MHz,即f=12MHz,则时钟周期为1/12us。

3.4系统的工作原理图

  光立方一、二层:

光立方三、四层:

单片机口点连接:

 

三极管放大电路:

总原理图:

3.5 焊接实物图

四、软件设计

3.1系统方框图

3.2程序流程图

元器件清单:

名称数量
大LED灯

70个

ATS521片

按键1
901316个

102排阻

2个

1K电阻

16个

20pF瓷片电容

2个

12MHz晶振

1个

10uF电容

1个

330电阻

1个

4.7K电阻

1个

3.3 C语言程序

#include

 #define uchar unsigned char

 void delay100ms(uchar data1ms)

 {uchar i,j,m; 

for(i=0;i for(j=0;j<110;j++)

        for(m=0;m<100;m++)

         ;

 }

 void disp(uchar ceng,uchar lie1,uchar lie2 )

 {

  delay100ms(7);

 P1=ceng;

 P2=lie1;

 P0=lie2;

 

 }

 void main(void)

 {unsigned char hang,shu1;

 unsigned char code C1[][16]={

 {0x07,0x0B,0x0D,0x0E,0x0E,0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00},

 {0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00,0x08,0x0C},

 {0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E},

 {0x0C,0x08,0x00,0x00,0x08,0x0C,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x0E,0x0F,0x0E,0x0C,0x08,0x00},

 {0x00,0x00,0x00,0x00,0x00,0x0D,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}

 };

  unsigned char code L1[][16]={

 {0xFF,0xFF,0xFF,0xFF,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x96,0x96,0x96,0x96,0x96},

 {0x96,0x96,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC},

 {0x01,0x03,0x07,0x0F,0x8E,0x8C,0x88,0x80,0x00,0x00,0x00,0x10,0x30,0x70,0x70,0x60},

 {0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xCC,0x0F,0x33,0x66,0xCC,0xF0,0x33,0x66,0xCC},

 {0x66,0x33,0xF0,0xCC,0x66,0x33,0xF0,0xCC,0xCC,0xCC,0xCC,0xCC,0x60,0x60,0x60,0x60},

 {0xE8,0x74,0x32,0x11,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,0x10,0x80,0xC0},

 {0x60,0x60,0x60,0x60,0x,0x60,0x30,0x10}

//  {0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//列扫描

     };

  

  unsigned char code L2[][16]={

  {0xFF,0xFF,0xFF,0xFF,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x69,0x69,0x69,0x69,0x69},

  {0x69,0x69,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x33,0x33,0x33,0x33,0x33,0x33,0x33},

  {0x00,0x00,0x00,0x00,0x00,0x08,0x88,0xC8,0xE8,0xF0,0x71,0x31,0x11,0x10,0x04,0x06},

  {0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x33,0xF0,0xCC,0x66,0x33,0x0F,0xCC,0x66,0x33},

  {0x66,0xCC,0x0F,0x33,0x66,0xCC,0x0F,0x33,0x33,0x33,0x33,0x33,0x06,0x06,0x06,0x06},

  {0x8E,0x47,0x23,0x11,0x00,0x00,0x00,0x06,0x06,0x06,0x66,0x60,0x00,0x00,0x06,0x06},

  {0x06,0x66,0x60,0x00,0x08,0x0C,0x06,0x66,0x06,0x06,0x06,0x06,0x03,0x01,0x00,0x08},

  {0x04,0x,0x06,0x06,0x06,0x06,0x03,0x01}

//  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10}

  };

 while(1) 

 { 

for(hang=0;hang<8;hang++)

{for(shu1=0;shu1<16;shu1++)

 disp(C1[hang][shu1],L1[hang][shu1],L2[hang][shu1]);

 }

// for(hang=0;hang<1;hang++)

//  {

// for(shu1=0;shu1<16;shu1++)

//  {shu2=0;

//  disp(C1[shu2][shu2],L1[hang][shu1],L2[hang][shu1]);

//   }

//   }

    }

     }

六.心得体会

此次为期半个多月的课程设计,让我感受颇深。最终看到了绚丽多姿,变化多端的LED光立方的图案。在这半个多月的学习中,在很大程度上培养了自己的思考及其动手能力。学会了自己的发现问题、分析问题。老师还为我们提供了网络,遇到不明白的问题,首先是通过上网查阅相关资料、翻阅书籍找出问题的答案。而且还有老师在实验室指导我们的设计,在查阅资料仍找不到但答案的还可以请教老师。尽管此次设计过程中遇到些问题,但最终还是一步一个脚印过来了。

本次我主要的是负责程序的编写。在刚开始烧写程序进去调试时,发现LED灯P0口和P2口控制的两组灯点亮的有点延时,不能够同步显示图案的效果。检查程序后发现,原来是在送完P0口数据后,就立马加了个延时,再送P2口数据,再延时,这样导致P0口与P2口之间的显示效果在视觉上慢了半拍,达不到预期图案要显示的效果,最后将中间的那个延时程序调到送完P2口数据之后再给其进行延时,通过调试发现能够正常显示。另外在编写各种图案显示代码的时候,让我深刻的体会到,要想编好相应的代码,光立方的三维空间的想象能力还是比较重要,54个灯到底是要求哪个灯给高电平哪个灯给低电平,还要根据显示要求组合好。以防出现乱码显示情况。在汇编程序中,刚开始想用移位指令来实现代码的传送,发现在一些简单的图案还可以(如扫描极有规律的显示),但在复杂一点的立体图就无法使用了,最后还是将其全部统一改写成调用数组的形式送代码,这样既简单又不容易出错。

此次设计在丁老师的指导下完成的,老师扎实的专业知识,让我觉得自己还有好多的知识需要去学习。在这大学的时间,要好好的提升自己的相关技能。

七.参考文献

1.张毅刚.《新编MCS-51单片机应用设计》.哈尔滨工业大学出版社 2003

2.朱兆优、陈坚等.《单片机原理及应用》.电子工业出版社2010

3.秦曾煌.《电工学》高等教育出版社.2009

4.欧阳斌林.《单片机原理及应用》.中国水利水电出版社 2006

5.潭浩强.《C程序设计》.北京航空航天出版社

6.付晓光.《单片机原理与实用技术》.清华大学出版社

7.邹寿彬.《电子技术基础》.清华大学出版社

8.许熙文.《电路基础》.高等教育出版社

文档

基于单片机的4x4光立方课程设计

JIUJIANGUNIVERSITY单片机课程设计报告题目光立方院系电子工程学院专业自动化姓名宋建军学号22班级学号A1032组员吴小康、文坛指导教师丁文斌二、设计目的与要求42.1设计目的42.2设计要求4三、硬件方案设计43.1单片机资源分配情况53.2复位电路53.3时钟电路53.4系统的工作原理图63.5焊接实物图10四、软件设计114.1系统框图114.2程序流程图114.3程序13五、心得体会17六、参考文献17摘要当今社会,随着电子行业的不断发展,单片机凭借着其极高的性能价格比,
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top