《电子产品设计制作.doc》由会员分享,可在线阅读,更多相关《电子产品设计制作.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实 习 报 告: 电子产品设计制作 : : : : : 2018年7月20日 实习名称专业班级学生姓名学 号指导教师完成时间成 绩 评 定考核内容实习表现实习报告实习成果或答辩综合评定成绩成绩长 春 工 程 学 院第 5 页纪律要求与成绩考核办法(纪律要求与成绩考核办法打印在封皮背面)1实习过程必须听从教师指导,严格遵守安全操作规程。不准违规操作,未经指导教师允许不准启动任何非自用设备、仪器、工具等;操作项目与内容必须按设计要求进行,特别要注意防止电烙铁烧烫伤、不用时要及时切断电源。2实习期间在教室内不准吸烟、吃食物(含零食),不准带无关人员到实习实验室活动,否则扣平时表现分。3参加本次实习时
2、间不足三分之二或旷课3天以上者,不得参加本次考核,按不及格处理。4病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。5过程考核与综合成绩在教师手册中要有记载。6成绩考核由指导教师根据学生平时表现(出勤、遵守纪律情况、学习态度、工作进展等)、实习报告、实习成果、现场操作、答辩等几个方面,结合考核纲要规定各项成绩权重,综合后给出实习总成绩。7成绩评定采用五级分制,即优、良、中、及格、不及格。8实习结束一周内,指导教师提交实习成绩与实习总结。实 习 日 志姓 名学 号专业班级实习地点时间进程实 习 内 容 概 述第一周周一周二周三周四周五第二周周一周二周三周四周五注:实习日志“实习内容概
3、述”要求手写,防止雷同抄袭,不允许打印。电子产品设计制作报告一、设计制作目及意义1通过专项训练,验证所学理论知识与实践技能,为进一步提高专业应用能力提供实践锻炼机会。2在指导教师与技术人员指导下,通过实际项目设计制作与操作,增强工程意识,并使工程技能得到综合训练,加深对专业或课程所学理论认识与理解。3通过具体项目(简易电子琴、数字钟)强化训练与针对性训练,借鉴CDIO工程教育模式,培养学生构思、设计、实现与调试电子产品设计研制综合应用能力,以电子产品设计制作为载体,让学生以主动、实践、课程之间有机联系等方式学习电子产品设计、制作与调试过程。4通过对设计制作过程考核,培养学生观察问题、分析问题与
4、解决问题能力。5通过撰写设计制作报告,培养训练书写规范与文字表达能力。二、设计制作内容(一)八按键简易电子琴设计制作说明及方案论证 (1)任务功能说明采用AT89C2051CPU,设计时钟电路与复位电路,手动复位,3V供电(2节电池);PCB尺寸:长宽=10cm6cm,单面板。具有电子琴输入按键8个,包含17与高音1,一排布局,左边为低音。具有手动复位键1个,播放音乐与弹奏切换功能按键1个,在PCB图上标注“复位”、“功能切换”字样。有发光二极管显示程序运行状态(用1个发光二极管指示对应1个按键,实际是8个发光二极管,只用1个代表)。采用扬声器输出声音信号。实现电子琴功能并且至少有一首存储歌曲
5、(编程文件为.HEX文件,小于2k)。(2)方案论证 电子琴有10个按键,一个作为模式转换按键,一个作为手动复位键,8个作为音符输入,另外实现用户存放自动播放歌曲。8个按键分别代表8个音符,包括中音段全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。实验中每按下一个琴键,单片机能够根据检测到键盘位置,使喇叭发出不同频率(音调)声音,等到按键放开之后,声音停止。然后再继续扫描,看是否有键按下。如此循环,即可实现基本琴键功能。扬声器时钟电路 AT89C2051复位电路LED输入按键图1 简易电子琴电路组成原理框图2.电路原理设计与PCB设计(1)电路原理
6、设计复位电路图2 复位电路AT89C2051复位是由外部复位电路实现复位是单片机初始化操作,只需给AT89C2051复位引脚RST加上大于两个机器周期(即24个时钟震荡周期)高电平就可使AT89C2051AT89C2051进行复位时,PC初始化为0000H,使AT89C2051单片机从程序储存器0000H单元开始执行程序。除了进入系统正常初始化之外,当程序运行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需按复位键即RST脚为高电平,使AT89C2051摆脱“跑飞”或“死锁”状态而重新启动程序。复位电路通常采用上电复位与按钮复位两种方式。时钟电路图3 时钟电路时钟是单片机心脏,单
7、片机各功能部件运行都是以时钟频率为基准,有条不紊一拍一拍地工作。因此,时钟频率直接影响单片机速度,时钟电路质量也直接影响单片机系统稳定性。AT89C2051单片机内部有一个用于构成振荡器高增益反相放大器,该高增益反向放大器输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器与微调电容,就构成一个稳定自激振荡器。按键电路图4 按键输入电路利用所给键盘1,2,3,4,5,6,7,8,9九个键,能够发出8个不同音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别键则发另外一音调声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,
8、然后单片机定时器启动,发出一定频率脉冲,该频率脉冲经喇叭驱动电路放大滤波后,就会发出相应音调。如果在前一个按下键发声同时有另一个按键被按下,则启动中断系统。前面发音停止,转到后按键发音程序。发出后按键音调。声光电路图5 声光电路驱动方式为独立端口驱动,占用P3.4端口。用PNP管来放大,其中发射极接5V电源,集电极接扬声器,LED接P3.7,扬声器发声,LED频闪。(2)PCB设计图6带黄框与文字PCB图图7去掉黄框PCB图图8程序流程图4.硬件调试与存在问题由于电路比较简单,焊接也比较顺利,将硬件做好后,将生成.HEX文件通过烧录器烧录到AT89C2051进行测试,效果比较满意,仿真时出现了
9、一些问题,没有达到预想效果经检查是电路连接错误。尝试了录音播放,没能实现。(二)基于AT89C2051智能数字电子钟设计说明及方案论证(1)任务功能说明全日历计时。12/24小时转换。大、小月,润年,周,自动追踪。具有时间校准功能开关K,按住开关2秒钟后进入校准时间状态及换档与退出,快速点触用于调整时间数值。(2)方案论证时钟电路六位数码管驱动AT89C51按键输入位选图9数字电子钟组成原理框图2.电路原理图设计与PCB设计(1)电路原理设计复位电路图10 复位电路AT89C2051单片机复位是由外部复位电路来实现。上电复位电路是种简单复位电路,只要在RST复位引脚接一个电容到VCC,接一个电
10、阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂高电平信号,这个复位信号随着VCC对电容充电过程而回落,所以RST引脚复位高电平维持时间取决于电容充电时间。为了保证系统安全可靠复位,RST引脚高电平信号必须维持足够长时间。上电自动复位是通过外部复位电路电容充电来实现。只要VCC上升时间不超过1ms,就可以实现自动上电复位。时钟电路图11 时钟电路AT89C2051单片机内部有一个用于构成振荡器高增益反相放大器,该高增益反向放大器输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器与微调电容,就构成一个稳定自激振荡器。数码管显示电
11、路图12智能数字电子钟数码管显示电路显示部分主要器件为3只两位一体共阳极数码管,驱动采用 PNP 型三极管驱动,各端口配有限流电阻,驱动方式为动态扫描,占用P3.5 端口,段码由P1.0P1.7输出。冒号部分采用4个红色发光二极管,驱动方式为独立端口驱动。(2)PCB设计图13 智能数字电子钟PCB3.Proteus仿真说明首先是软件调试,在单片机开发综合实验装置上进行硬件仿真来调试程序是否正确执行。试运行后,根据时钟运行情况来做一些相应修改,比如说,时钟显示不稳定,易乱跳,显示乱码,是由于单片机运行及程序执行不能同步进行造成,如某些需要复位地方单片机没有立即复位就执行下一操作,造成了单片机运
12、行混乱,因此应该将程序做一些修改,尽量减少跳转指令使用而采用调用子程序方法来代替。而在修改了程序之后,时钟运行就稳定了很多。其次是实物调试,测试线路确定无误时连接 5V 电源调试。当连接到 5V 电源时候,数码管显示模糊不清,亮度很小,这是由于单片机管脚输出电流太小不能够完全驱动数码管,因此需要在 P1 每个端口并联一个 1K 电阻使数码管有足够亮度来显示。主要器件简介AT89C51本设计使用是美国 Atmel 公司 AT89C51 单片机1- 5,它作为控制系统核心部件,除了具备数值计算功能外,还具有灵活强大控制功能,以便实时检测系统输入量与控制系统输出量,实现自动控制。LED数码管LED数
13、码管要正常显示,就要用驱动电路来驱动数码管各个段码,从而显示出我们要数位,因此根据LED数码管驱动方式不同,可以分为静态式与动态式两类。动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛一种显示方式之一,动态驱动是将所有数码管8个显示笔划a,b,c,d,e,f,g,dp 同名端连在一起,另外为每个数码管公共极COM增加位元选通控制电路,位元选通由各自独立I/O线控制,当单片机输出字形码时,所有数码管都接收到相同字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路控制,所以我们只要将需要显示数码管选通控制打开,该位元就显示出字形,没有选通数码管就不会亮。透过分时轮流控
14、制各个LED数码管COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管点亮时间为12ms,由于人视觉暂留现象及发光二极体余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描速度足够快,给人印象就是一组稳定显示资料,不会有闪烁感,动态显示效果与静态显示是一样,能够节省大量I/O口,而且功耗更低。三、设计制作总结 通过这次实训设计,我感觉收获了很多:通过这次单片机实训,我加深了对单片机系列知识及其系统认识。但从中表达到了个系统开发设计过程,让我受益匪浅。在这次实训中,让我更进一步提高了动手能力,也重新复习了一次单片机程序编程能力,在这期间,让我更加深刻了体会到了编
15、程思路,加强了对编程能力理解与对相应资料查阅。本次课程设计是用AT89C2051单片机CPU,遇到了不少困难。通过在前期程序编写与几天上机调试,使我又获得了很多新知识,因为前期编写程序时查了很多资料学到了很多知识,这几天调试更时获得很新知识,因为程序中又很多错误,为了修改错误必须看书或向别人请教,在这个过程中无意识获得了很多知识。同时也使我对单片机更感兴趣了,这点我觉得很重要,因为兴趣是最好教师,相信在以后单片机相关学习中会表现更好。本次设计,通过制作电子琴,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。利用单片机产生不同频率来获得我们要求音阶,最终可随意弹奏想要表达
16、音乐。说明一首音乐是许多不同音阶组成,而每个音阶对应着不同频率,这样我们就可以利用不同频率组合,即可构成我们所想要音乐了,于是我们可以利用单片机定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大。并且系统了解了实时时钟设计流程,尤其是硬、软件设计方法,掌握了键盘显示电路基本功能及编程方法,掌握了键盘电路与显示电路一般原理,也进一步掌握了定时器使用与中断处理器程序编程方法。开拓了思路,锻炼了实践动手能力,提高了分析问题,解决问题能力,达到了本次课程设计目。2对本次实习建议。设计题目并不怎么新颖。四、主要参考文献1 林海
17、波,王秀艳.电子工艺实训基础M.北京:中国电力出版社,.2 林卫星.单片机应用系统软硬件开发J.工业控制计算机.2002,9,5-7.附录1附录2#include #define uint unsigned int#define uchar unsigned charuint code ttable=64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217,65252,65283;uchar code jmszl=0x51,0x52,0x31,0x52,0x62,0x13,0x11,0
18、x13,0x32,0x28,0x08,0x28,0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff;sbit led=P37;sbit beep=P34;sbit b=P32;uchar timeh,timel,i;uchar keynum=90,temp,yj;uint soundT;static int s=1;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=19000;y0;y-);void delay1(uint z)uint x,y;for(x=z;x0;x-)for(y=112;y0;y-
19、);void song()uint temp;uchar jp;/jpi=0;while(jmszli!=0xff)temp=jmszli;jp=temp/16;if(jp!=0)timeh=ttablejp/256;timel=ttablejp%256;elseTR0=0;beep=1;delay(temp%16);TR0=0;beep=1;delay1(8);TR0=1;i+;TR0=0;void keytest()temp=P1;switch(temp)case 0x7f: keynum=0; break;case 0xbf: keynum=1; break;case 0xdf: key
20、num=2; break;case 0xef: keynum=3; break;case 0xf7: keynum=4; break;case 0xfb: keynum=5; break;case 0xfd: keynum=6; break;case 0xfe: keynum=7; break;case 0xff: keynum=9; break;default: break;void intinit()TMOD=0x01;TH0=soundT/256;TL0=soundT%256;ET0=1;TR0=0;EX0=1;IT0=1;EA=1;P1=0xff;keynum=9;/beep=0;vo
21、id t0serv() interrupt 1TH0=timeh;TL0=timel;beep=beep;led=led;void duan() interrupt 0if(b=0)delay1(20);if(b=0)s=s;void main()intinit();while(1)if(s=1)keytest();if(keynum!=9)TR0=1;timeh=ttablekeynum/256;timel=ttablekeynum%256;keynum=9;elseTR0=0;beep=1;elsesong();附录3附录4智能数字电子钟源程序#include#define uchar u
22、nsigned charsbit dula=P26;sbit wela=P27;sbit beep=P23;sbit ms=P30;sbit ja=P31;sbit jn=P32;sbit qh=P33;unsigned char s=8,f=30,m=00,msf=1,qhf=1,xz=0;unsigned char a1,a0,b1,b0,c1,c0,j,k;unsigned int pp;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0
23、x71;void delay(unsigned char i)for(j=i;j0;j-)for(k=125;k0;k-);void display(uchar shi2,uchar shi1,uchar fen2,uchar fen1,uchar miao2,uchar miao1)dula=0;P0=tableshi2;dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=tableshi1;dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);P0=0x40;dula=1;dula=0;P0=0x
24、fb;wela=1;wela=0;delay(5);P0=tablefen2;dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(5);P0=tablefen1;dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(5);P0=0x40;dula=1;dula=0;P0=0xdf;wela=1;wela=0;delay(5);P0=tablemiao2;dula=1;dula=0;P0=0xbf;wela=1;wela=0;delay(5);P0=tablemiao1;dula=1;dula=0;P0=0x7f;wela=1;wel
25、a=0;delay(5);voidjsxs24()if(pp=20)pp=0;m+;if(m=60)m=0;f+;if(f=60)f=0;s+;if(s=24) s=0;a0=s%10;a1=s/10;b0=f%10;b1=f/10;c0=m%10;c1=m/10;display(a1,a0,b1,b0,c1,c0);voidjsxs12()int t;if(pp=20)pp=0;m+;if(m=60)m=0;f+;if(f=60)f=0;s+;if(s=24) s=0;t=s;t=t%12;a0=t%10;a1=t/10;b0=f%10;b1=f/10;c0=m%10;c1=m/10;dis
26、play(a1,a0,b1,b0,c1,c0);voidjsxs()a0=s%10;a1=s/10;b0=f%10;b1=f/10;c0=m%10;c1=m/10;displays(a1,a0,b1,b0,c1,c0);void main()TMOD=0x01;TH0=(65536-46080)/256;TL0=(65536-46080)%256;ET0=1;EA=1;while(1)if(ms=1)if(msf=1)TR0=1;if(qh=1)if(qhf=1)/24jsxs24();elsejsxs12();/elseqhf=qhf;while(ms!=1);else TR0=0;if(q
27、h=1)if(xz=0)if(ja=1)if(jn=1)jsxs();elseif(m=0)m=59;while(ja!=1);elsem-;while(ja!=1);elseif(m=59)m=0;while(ja!=1);elsem+;while(ja!=1);else if(xz=1)if(ja=1)if(jn=1)jsxs();elseif(f=0)f=59;while(ja!=1);elsef-;while(ja!=1);elseif(f=59)f=0;while(ja!=1);elsef+;while(ja!=1);else if(xz=2)if(ja=1)if(jn=1)jsxs();elseif(s=0)f=23;while(ja!=1);elses-;while(ja!=1);elseif(s=23)f=0;while(ja!=1);elses+;while(ja!=1);elsexz=0;elsewhile(qh!=1);if(xz3)xz+;elsexz=0;elsemsf=msf;while(ms!=1);void time0() interrupt 1TH0=(65536-46080)/256;TL0=(65536-46080)%256;pp+;
限制150内