- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
彩色光立方创新实践
目 录1 彩色光立方的背景和意义22 设计原理及方案22.1 设计原理22.2 设计方案53 焊接及实现83.1 底板焊接83.2 LED焊接83.3 实现检测134 结论13触控彩色3*3*3光立方1 彩色光立方的背景和意义“联欢晚会三样法宝,光立方为最。”自从国庆60周年联欢晚会开始演练后,一个全新的名词“光立方”,吸引了全国人民的关注。光立方简单讲就是用单片机控制很多规则排列的LED的亮和灭。它有多种颜色可以变化,控制方式也有很多种,声控,触控,光控,按键等。光立方由过个小的彩灯组成,可以组成不同的图案,幻化出不同的色彩,视觉上给人以极大的震撼,因而刚一面世随即受到人们很大的喜爱,在各种场合得到大量的使用,尤以晚会为多。 本次所设计彩色光立方为3*3*3立体结构,有红,蓝两种色彩,可组合变幻出不同图案及闪亮方式,可以触控,也可以通过吹动空气来触发色彩变幻。2 设计原理及方案2.1 设计原理 设计结构图如下图1:电路图如下图2:元件清单:U1: STC15F204EAC1 C2 : 104电容C3: 220uF 电容R1-R18: 1K 102 R19和R21: 10K 103R20: 2K 202R22 R23: 1M 105MIC: 驻极体话筒LR: 光敏电阻 J1: mini USB插座管脚说明如下表1:2.2 设计方案本次设计方案分三步。首先焊接PCB板底板,将各元器件焊接完好并检查有无虚链或者短路链接。其次焊接背面彩光等,将其按照PCB板的指定位置焊接成3*3*3的立体结构,然后连接电路,将每层的灯串联起来,三层并联起来,最后,通电检查成品。本次硬件设计使用已烧制好的PCB板。其烧制程序如下:#includereg51.h#includeintrins.hsfr IAP_CONTER=0X07;sbit MCU_START_LED=P1^7;#define RELOAD_COUNT 0xfb;void series_initinal();void send_uart(unsigned char);void uart_interrupt_receive(void);void soft_reset_isp_monitor(void);void delay(void);void display_mcu_led(void);void uart_interrupt_receive(void) interrupt4{unsigned char k=0;if(RI==1){RI=0;K=SBUF;If(k==self_define_ISP_dowmload_commomd) //自定义下载命令{delay(1);Soft_reset_to_ISP_monitor(); //软复位到ISP监控区}send uart(k);}else{TI=0;}}void soft_reset_to_ISP_monitor(void){IAP_CONTER=0X60;}void delay(){Int j=0,g=0;for(j=0;j5;j++){for(g=0;g60000;g++){_nop_();_nop_();_nop_();_nop_();_nop_();}}}void serial_port_initinal(void){ SCON=0X50; TMOD=0X21; TH1 =RELOAD_COUNT; TL1 =RELOAD_COUNT; TR=1; //开定时器1 ES=1; //允许串口中断 EA=1; //开总中断}void send_uart(char i){ ES=0; //关串口中断 TI=0; //清零串口发送,完成串口中断标志 SBUF=I;while(TI==0) TI=0;ES=1}void display_mcu_start_led(void){ unsigned char i=0; for(i=0;i3;i++){ mcu_start_led=0; delay(); mcu_start_led=1; delay(); mcu_start_led=0;}}void main(void){ unsigned char i=0,j=0; unsigned char idata *itata_point;seritial_port_initial(); //串口初始化display_mcu_start_led(); //电量发光灯表示开始工作send_uart(0x34); //串口发送数据表示串口开始工作send_uart(0xa7); //串口发送数据表示串口开始工作idata_point=0xf1;for(j=0;j6;j++) { i=
文档评论(0)