电气工程学院基于无线供电的旋转LED显示课程设计学号:姓名:同组人:指导教师:设计时间:设计地点:基于无线供电的旋转LED显示课程设计任务书学生姓名:指导教师:一、课程设计题目:基于无线供电的旋转LED显示二、课程设计要求1. 根据具体设计课题的技术指标和给定条件,独立进行方案论证和电路设计,要求概念清楚、方案合理、方法正确、步骤完整;2. 查阅有关参考资料和手册,并能正确选择有关元器件和参数,对设计方案进行仿真;3. 完成预习报告,报告中要有设计方案,设计电路图,还要有仿真结果;4. 进实验室进行电路调试,边调试边修正方案;5. 撰写课程设计报告——最终的电路图、调试过程中遇到的问题和解决问题的方法。
三、进度安排2.执行要求微机原理与接口技术课程成绩优秀的可以自拟题目,其余的同学都是指定题目。
,每组不得超过2人,要求学生在教师的指导下,独力完成所设计的详细电路(包括计算和器件选型)。
严禁抄袭,严禁两篇设计报告雷同。
【摘要】本作品是一个由电动机带动主板旋转的LED显示屏,根据视觉暂留原理,可显示16行、列可控的字符和图案。
通过逆变振荡电路和整流滤波电路以及两级线圈给主板无线供电。
同时,为了使显示更加稳定,设置了电机调速装置,能随时对电机进行调速。
【关键词】无线供电 LED显示电机调速目录第一章系统方案设计 (5)第二章仿真 (7)第三章调试 (8)第四章心得体会与建议 (18)参考文献 (19)附录1:元器件清单 (20)第一章系统方案设计1、设计原理旋转时钟利用了视觉暂留原理。
视觉暂留现象(Visual staying phenomenon,duration of vision):人眼在观察景物时,光信号传人大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像” ,视觉的这一现象则被称为“视觉暂留” ,其原因是由视神经的反应速度造成的,其时值是二十四分之一秒,通常情况下,视觉残留会保持0.1~0.4 秒,也就是说以0.1~0.4 秒间隔闪烁的图像,被人眼观察,会被认为是连续的图像。
视觉残留是动画、电影等视觉媒体形成和传播的根据。
2、硬件设计旋转LED显示屏主要由供电装置,驱动装置,LED显示电路及其控制构成。
电机驱动电路:采用L298N驱动模块控制电机转速。
控制电路:采用STC89C52单片机控制led的亮灭,控制电机的调速。
显示电路:采用16个led并成一排,通过电机的旋转构成一个平面,从而显示图像。
无线供电电路:利用电磁耦合原理,用磁线圈对主板进行供电。
利用互补正反馈振荡电路将直流电转化成高频交流信号,通过线圈(线圈内有铁氧体磁芯,提高效率),将交流信号输送到旋转的主电路板上,主电路板上利用5.1v的稳压二极管,将接收到的交流信号变成5.1v直流电,通过220uF的电解电容滤波,供给单片机,使单片机能正常工作(互补正反馈由三极管B772 PNP型、9014 NPN型和阻值分别为470 Ω、 470 Ω、62KΩ功率为 1/8W的电阻,还有一只2A681的涤纶电容组成)第二章仿真此图为multisim对无线模块的仿真,可以看出从初级线圈的输入端输入的波形为高频震荡的波形。
第三章调试1、无线模块及实际波形2、电源模块以及电机调试模块(包括L298驱动)3、整体构架及效果图显示为“电气让生活更美好”5、PCB板的绘制(参考书如下)第一部分(无线供电模块)第二部分显示部分第三部分电机驱动6、程序部分A、显示部分#include<reg52.h>#define uchar unsigned char#define uint unsigned intuint i=0;uchar code LED[]={ //灯亮给低电平,上灯P1口0xFF,0xFF,0x07,0x77,0x77,0x77,0x77,0x00,0x77,0x77,0x77,0x77,0x07,0xFF,0xFF,0xFF,0xFF,0x FF,0xFF,0xFF,0xDF,0xEF,0xB3,0xB8,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0xAB,0x2B,0xFB,0xFB,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,0xBF,0xBF,0xBD,0x33,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xBF,0xBF,0xBF,0xBF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,0x7F,0xBF,0xCF,0xE1,0xEF,0xEF,0xEF,0x00,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xEF,0x9F,0xFD,0x73,0xFF,0xDF,0xDB,0xDB,0xDB,0x01,0xDD,0xDC,0xDD,0xDF,0xDF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0x0D,0x6D,0x6D,0x6D,0x6D,0x01,0x6D,0x6D,0x6D,0x6D,0x0D,0xFD,0xFD,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xDB,0xDB,0xDA,0xD9,0xDB,0x03,0xDB,0xD9,0xDA,0xDB,0xDB,0xFB,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,0xEF,0xEF,0x0F,0xE0,0xEF,0x0F,0xFF,0x7F,0x7D,0x7D,0x1D,0x6D,0x75,0x79,0x7F,0xFF,0xFF, 0xFF,0xFF,0xFF,} ;uchar code LED1[]={//下面的灯P0口0xFF,0xFF,0x07,0xEF,0xEF,0xEF,0xEF,0x01,0xEE,0xEE,0xEE,0xEE,0x06,0xFE,0xF0,0xFF,0xF F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xF3,0xFD,0xF0,0xFF,0xFF,0 xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xF5,0xED,0xFD,0xFD,0xFD,0x01,0xFD,0xFD,0xFD,0xFD,0xFD,0xFF,0 xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xBD,0xBD,0xBD,0xBD,0xBD,0x01,0xBD,0xBD,0xBD,0xBD,0xBD,0xFD,0xFD,0 xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0x81,0x7F,0xFF,0xFF,0x80,0xBD,0xBD,0x3D,0xBD,0xBD,0x80,0xFF,0xFF,0xFF,0x FF,0xFF,0xFF,0xFF,0xFE,0xFE,0x1E,0xCD,0xD5,0xDB,0xD3,0x0D,0xDD,0xDD,0xDE,0xDE,0x1E,0xFE,0xFE,0xF F,0xFF,0xFF,0xFF,0xFF,0x7E,0x6E,0x6E,0x6D,0x6D,0x6B,0x67,0x0F,0x67,0x6B,0x6D,0x6D,0x6E,0x6E,0x7E,0xFF,0xF F,0xFF,0xFF,0xFF,0xFD,0xBB,0x57,0xEF,0x97,0x79,0xFF,0xFF,0xFD,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF ,0xFF,0xFF,0xFF,};void delay (uint z){uint x,y;for(x=z;x>0;x--)for(y=1;y>0;y--);}void ex0_isr(void) interrupt 0 {i=0;}void main(){IT0=1;EX0=1;EA=1;while(1){for(i=0;i<160;i++)//20个{P1=LED[i];P0=LED1[i];delay(14);}}}B、控制电机驱动部分#include<reg51.h>#include<math.h>#define KeyPort P2#define uchar unsigned char#define uint unsigned intsbit en1=P1^0;sbit en2=P1^1;sbit s1=P1^2;sbit s2=P1^3;sbit s3=P1^4;sbit s4=P1^5;uchar t=0;uchar m1=0;uchar m2=0;uchar tmp1,tmp2;unsigned char KeyScan(void);void DelayMs(unsigned char t); void DelayUs2x(unsigned char t); void motor(uchar index, char speed) {if(speed>=-100 && speed<=100) {if(index==1){m1=abs(speed);if(speed<0){s1=0;s2=1;}else{s1=1;s2=0;}}if(index==2){m2=abs(speed);if(speed<0){s3=0;s4=1;}else{s3=1;s4=0;}}}}void main(){unsigned char num;int t=10,m=-40;TMOD=0x02;TH0=0x9B;TL0=0x9B;EA=1;ET0=1;TR0=1;while (1){num=KeyScan();if(num==1){motor(1,t=t+3);motor(2,t=t+3);}if(num==2){motor(1,t=t-3);motor(2,t=t-3);}}}void timer0() interrupt 1{if(t==0){tmp1=m1;tmp2=m2;}if(t<tmp1) en1=1; else en1=0; if(t<tmp2) en2=1; else en2=0;t++;if(t>=100) t=0;}void DelayUs2x(unsigned char t) {while(--t);}void DelayMs(unsigned char t) {while(t--){DelayUs2x(245);DelayUs2x(245);}}unsigned char KeyScan(void){unsigned char keyvalue;if(KeyPort!=0xff){DelayMs(20);if(KeyPort!=0xff){keyvalue=KeyPort;while(KeyPort!=0xff);switch(keyvalue){case 0xfe:return 0;break;case 0xfd:return 1;break;case 0xfb:return 2;break;case 0xf7:return 4;break;case 0xef:return 5;break;case 0xdf:return 6;break;case 0xbf:return 7;break;case 0x7f:return 8;break;default:return 0;break;}}}return 0;}第四章心得体会与建议通过本次的电子测量课程设计,我更加熟练掌握了Multisim仿真软件,基本元器件搭接成我们想要的功能,焊接电路元件,布线以及应用Altium Designer 画PCB的基本操作。