《电子产品设计制作》.docx
《《电子产品设计制作》.docx》由会员分享,可在线阅读,更多相关《《电子产品设计制作》.docx(23页珍藏版)》请在冰豆网上搜索。
《电子产品设计制作》
实习报告
实习名称:
电子产品设计制作
专业班级:
学生姓名:
学号:
指导教师:
完成时间:
成绩评定
考核内容
实习表现
实习报告
实习成果或答辩
综合评定成绩
成绩
长春工程学院
纪律要求和成绩考核办法
纪律要求和成绩考核办法打印在封皮背面)
1.实习过程必须听从教师指导,严格遵守安全操作规程。
不准违规操作,未经指导教师允许不准启动任何非自用设备、仪器、工具等;操作项目和内容必须按设计要求进行,特别要注意防止电烙铁烧烫伤、不用时要及时切断电源。
2.实习期间在教室内不准吸烟、吃食物(含零食),不准带无关人员到实习实验室活动,否则扣平时表现分。
3.参加本次实习时间不足三分之二或旷课3天以上者,不得参加本次考核,按不及格
处理。
4.病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。
5.过程考核和综合成绩在教师手册中要有记载。
6.成绩的考核由指导教师根据学生的平时表现(出勤、遵守纪律情况、学习态度、工作进展等)、实习报告、实习成果、现场操作、答辩等几个方面,结合考核纲要规定的各项成绩权重,综合后给出实习总成绩。
7.成绩评定采用五级分制,即优、良、中、及格、不及格。
8.实习结束一周内,指导教师提交实习成绩和实习总结。
实习日志
姓名
学号专业班级
实习地点
时间进程
实习内容概述
第一周周一
周二
周三
周四
周五
第二周周一
周二
周三
周四
周五
注:
实习日志“实习内容概述”要求手写,防止雷同抄袭,不允许打印
一、设计制作目的与意义(小四黑体,顶格写,字体要求打印时删除,下同)正文内容如有雷同抄袭,返工重写,成绩直接降为及格或不及格,下同。
(正文内容:
5号宋体,1.5倍行间距,下同)电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S52单片机
为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。
主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。
并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。
当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。
二、设计制作内容(小四黑体,顶格写)
(一)八按键简易电子琴的设计制作(小四黑体,顶格写,下同)
1.任务功能说明与方案论证(首行缩进2字符,小四黑体,下同)
(1)任务功能说明(首行缩进2字符,五号宋体,下同)
采用AT89C2051CPU设计时钟电路和复位电路,手动复位,3V供电(2节电池);PCB尺寸:
长X宽=10cmx6cm,单面板。
具有电子琴输入按键8个,包含1〜7和高音1,一排布局,左边为低音。
具有手动复位键1个,播放音乐和弹奏切换功能按键1个,在PCB图上标注“复位”、“功能切换”字样。
有发光二极管显示程序运行状态(用1个发光二极管指示对应的1个按键,
实际是8个发光二极管,只用1个代表)。
采用扬声器输出声音信号。
实现电子琴功能并且至少有一首存储歌曲。
(2)方案论证(首行缩进2字符,五号宋体,1.5倍行间距,下同)电子琴设有10个按键,其中8个作为音符输入,另外一个作为模式转换按键,一个作为手动复位键,实现用户存放的自动播放歌曲。
8个按键分别代表8个音符,包括中音段的全部音符,通过软硬件设计,模式转换按键触发外部中断,中断使程
序跳转,实现模式转换,启动电子琴。
实验中每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置,通过程序来控制,使喇叭发出不同频率(音调)的声音,声音延迟一
段时间,等到按键放开之后,声音停止。
然后再继续扫描,看是否有键按下。
如此循环,即可实现基本的琴键功能。
功能选择
(弹奏/播放)
图1电路组成原理框图
AT89C2051单片机是AT89C51系列中结构最紧凑,体积最小的单片机,它的片内有2k字节
闪烁存储器,管脚封装为20引脚,与8751相比只去掉P0口、P2口,片内多一个模拟电压比较器。
用它设计产品,外围元器件少,接口技术简单,缩小电路板面积,成本低,开发容易,可广泛应用于小型简单不需很多I/O口控制的各种智能产品设计,现已得到开发人员广泛认可。
fo/(N-O.5)
—Id2分频器
fo/(2N-1)Q(5分频)
说明电路结构组成,画出电路组成框图(正文五号宋体,1.5倍行间距,下同)
异或门模N计数器
fo=5MHZ
.0UTCLK(2.分频)
图1通用半整数分频器电路组成原理框图
(正文内容:
五号宋体,1.5倍行间距;正文中如果有图,要求图居中,图片下部多余部分
Q五分频)
裁除,有图号、图名,图号图名字体字号为宋体五号,按顺序排图号;图号、图名之间空一格,
下同)。
例如:
2.电路原理设计和PCB设计(首行缩进2字符,小四黑体,下同)
(1)电路原理设计(首行缩进2字符,五号宋体,下同)
时钟电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。
通常在引脚XTALI和XTAL2跨接
石英晶体和两个补偿电容构成自激振荡器,结构图中丫1、C1、C2。
时钟电路用于产生AT89C2051
单片机工作时所必须的控制信号。
AT89C2051单片机的内部电路正是在时钟信号的控制下,严格
地按时序执行指令进行工作。
图2时钟电路
复位电路
AT89C2051的复位是由外部的复位电路实现的复位是单片机的初始化操作,只需给
AT89C2051的复位引脚RST加上大于两个机器周期(即24个时钟震荡周期)的高电平就可使
AT89C2051复位。
如图3-2所示.当AT89C2051进行复位时,PC初始化为0000H使AT89C2051单片机从程序储存器的0000H单元开始执行程序。
除了进入系统的正常初始化之外,当程序运行
出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需按复位键即RST脚为高电
平,使AT89C2051摆脱“跑飞”或“死锁”状态而重新启动程序。
复位电路通常采用上电复位和按钮复位两种方式。
图3复位电路
按键输入
利用所给键盘的1,2,3,4,5,6,7,8,9九个键,能够发出8个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。
如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。
前面的发音停止,转到后按的键的发音程序。
发出后按的键的音调。
图4按键输入电路图5发声器电路发声器电路
用PNP管来放大,其中发射极接5V电源,集电极接扬声器,电路中的电容是用来隔离直流
电用的。
PNP管放大原理:
当PNP管的VC三极电流满足IE=IB+IC=IB(1+IB)。
即,基极电流可以控制集电极电流,这种控制作用就称为管子的放大作用。
阐述单片机小系统的设计过程,分别说明复位电路、晶振电路及外围接口电路的设计过程(正
文五号宋体,1.5倍行间距,下同)
(2)PCB设计(首行缩进2字符,五号宋体,下同)
图6带黄框和文字的PCB图
图7去掉黄框的PCB图
3.软件设计与调试说明
绘制程序流程图,说明程序流程图工作过程,
软件设计仿真调试方法或过程,程序源代码以
附录形式提供。
4.硬件调试和存在的问题
•HEX文件通过烧录器烧
由于电路比较简单,焊接的也比较顺利,将硬件做好后,将生成的录到AT89C2051惊醒测试,效果比较满意。
(二)基于AT89C2051的智能数字电子钟设计1.任务功能说明与方案论证
1.实现功能
(1)全日历计时。
(2)12/24小时转换。
(3)大、小月,润年,周,自动追踪。
(4)具有时间校准功能开关K按住开关2秒钟后进入校准时间状态及换档和退出,快速点触用于调整时间数值。
2•设计要求
(1)数字钟的基本要求是绘制出电路原理图和PCB板图,并进行Proteus仿真,不要求制作实物,每个人之间不要雷同。
(2)设计双面PCB板,PCB尺寸:
长X宽=10cmX8cm,沿长度方向放置数码管,一排布局,
时、分、秒均采用2位一体式数码管,数码管尺寸为0.56英寸,数码管物理间距1mm
正文五号宋体,1.5倍行间距,下同
2.电路原理图设计和PCB设计
(1)电路原理设计(首行缩进2字符,五号宋体,下同)
时钟电路
C2
100]?
F|
口Y1
100pI;
2
P3J
3
4
5
PX2
6
P3J
71
PM4
S
P3.5
9
RST
P3.0CRXD]
P3KTXD)
XTAL2
XTAL1
PM2
P工3
P34
AT89C205仲片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1输出端为引脚XTAL2这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
复位电路
AT89C2051单片机的复位是由外部的复位电路来实现的。
上电复位电路是一种
简单的复位电路,只要在RST复位引脚接一个电容到VCC接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高
VCI
Cl
R]
||»GND
4.7K
电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
上电自动复位是通过外部复位电路的电容充电来实现的。
只要VCC的上升时间不超过1ms,就可以实现自动上电复位
lOOpl-
ul
RST
1
A1
数码管驱动显示电路
显示部分主要器件为3只两位一体共阳极数码管,驱动采用PNP型三极管驱动,各端口配有限流电阻,驱动方式为动态扫描,占用P3.0〜P3.5端口,段码由P1.0〜P1.6输出冒号部分采用4个①3.0的红色发光二极管,驱动方式为独立端口P1.7驱动。
11
川川
■J■
日日:
日日:
日日1
1
■"K
片齐C
也皿芒1_
阐述单片机小系统的设计过程,分别说明复位电路、晶振电路及外围接口电路的设计过程(正
文五号宋体,1.5倍行间距,下同)
(2)PCB设计(首行缩进2字符,五号宋体,下同)
3.Proteus仿真说明
注:
报告内容要求有系统原理说明,调试过程,主要器件简介等。
三、设计制作总结(小四黑体)
1.实习过程中遇到的问题及解决措施、学到了那些知识。
通过这次实训设计,我感觉收获了很多:
通过这次的单片机实训,我加深了对单片机系列知识及其系统的认识。
但从中体现到了个系统开发设计的过程,让我受益匪浅。
在这次的实训中,让我更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了编程的思路,加强了对编程能力的理解和对相应资料的查阅。
本次课程设计是用AT89C2051单片机CPU遇到了不少困难。
通过在前期的程序编写和几天的上机调试,使我又获得了很多新的知识,因为前期编写程序时查了很多资料学到了很多知识,这几天的调试更时获得很新的知识,因为程序中又很多的错误,为了修改错误必须看书或向别人请教,在这个过程中无意识的获得了很多知识。
同时也使我对单片机更感兴趣了,这点我觉得很重要,因为兴趣是最好的老师,相信在以后的单片机相关的学习中会表现的更好。
本次设计,通过制作电子琴,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大。
并且系统的了解了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了定时器的使用和中断处理器程序的编程方法。
开拓了思路,锻炼了实践动手能力,提高了分析问题,解决问题的能力,达到了本次课程设计的目的。
2.对本次实习的建议。
这个设计题目并不怎么新颖,
报告内容如有雷同抄袭,返工重写,成绩直接降为及格或不及格。
四、主要参考文献(小四黑体)
参考文献字体字号要求:
宋体,小五
期刊顺序:
[序号]著者题名[J].期刊名称•出版年,(卷号或期号):
起始页码(英文标点)•
书籍顺序:
[序号]著者.书名[M].出版地:
出版单位,出版年.(英文标点).
示例如下:
[1]林海波,王秀艳.电子工艺实训基础[M].北京:
中国电力出版社,2009.7.
[2]林卫星.单片机应用系统的软硬件开发[J].工业控制计算机.2002,9,5-7.
附录1
附录2
#include
#defineuintunsignedint
#defineucharunsignedchar
uintcodettable[]={64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217,65252,65283};
ucharcodejmszl[]={0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,
0x28,0x08,0x28,
0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff};
sbitled=P3A7;
sbitbeep=P3A4;
sbitb=P3A2;
uchartimeh,timel,i;
ucharkeynum=90,temp,yj;
uintsoundT;
staticints=1;
voiddelay(uintz)
{uintx,y;
for(x=z;x>0;x--)
for(y=19000;y>0;y--);
}
voiddelay1(uintz)
{uintx,y;
for(x=z;x>0;x--)
for(y=112;y>0;y--);
voidsong()
{
uinttemp;
ucharjp;//jp?
?
®?
xi=0;
while(jmszl[i]!
=0xff)
{
temp=jmszl[i];
jp=temp/16;
if(jp!
=0)
{
timeh=ttable[jp]/256;
timel=ttable[jp]%256;
}
else
{
TR0=0;
beep=1;
}
delay(temp%16);
TR0=0;
beep=1;
delay1(8);
TR0=1;
i++;
}
TR0=0;
}
voidkeytest()
{
temp=P1;
switch(temp)
}
sbitja=P3A1;
sbitjn=P3A2;
sbitqh=P3A3;
unsignedchars=8,f=30,m=00,msf=1,qhf=1,xz=0;
unsignedchara1,a0,b1,b0,c1,c0,j,k;
{
case0x7f:
keynum=0;break;case0xbf:
keynum=1;break;case0xdf:
keynum=2;break;case0xef:
keynum=3;break;case0xf7:
keynum=4;break;case0xfb:
keynum=5;break;case0xfd:
keynum=6;break;case0xfe:
keynum=7;break;case0xff:
keynum=9;break;default:
break;
}
}
voidintinit()
{
TMOD=0x01;TH0=soundT/256;
TL0=soundT%256;
ET0=1;TR0=0;
EX0=1;
IT0=1;EA=1;
P1=0xff;keynum=9;
//beep=0;
}
voidt0serv()interrupt1
{
TH0=timeh;TL0=timel;
beep=~beep;led=~led;
}
voidduan()interrupt0
{
附录3
#include#defineucharunsignedcharsbitdula=P2A6;
sbitwela=P2A7;sbitbeep=P2A3;
sbitms=P3A0;
if(b==0)
{delay1(20);
if(b==0)
s=~s;
}
}
voidmain()
{
intinit();
while
(1)
{
if(s==1)
{
keytest();
if(keynum!
=9)
{
TR0=1;
timeh=ttable[keynum]/256;
timel=ttable[keynum]%256;
keynum=9;
}
else
{
TR0=0;
beep=1;
}
}
else
song();
}
}unsignedintpp;
unsignedcharcode
P0=0xef;table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,wela=1;
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}wela=0;
;delay(5);
voiddelay(unsignedchari)P0=0x40;
{dula=1;
for(j=i;j>0;j--)dula=0;
for(k=125;k>0;k--);P0=0xdf;
}wela=1;
delay(5);P0=table[miao2];dula=1;dula=0;
P0=0xbf;
wela=1;
wela=0;
delay(5);
P0=table[miao1];dula=1;
dula=0;
P0=0x7f;
wela=1;
wela=0;
P0=0xfd;wela=1;wela=0;delay(5);
P0=0x40;dula=1;dula=0;
P0=0xfb;
wela=1;
wela=0;delay(5);
P0=table[fen2];
dula=1;dula=0;
P0=0xf7;wela=1;wela=0;
delay(5);
delay(5);
}
void
{
if(pp==20)
{
m++;
if(m==60)
{
m=0;
f++;
if(f==60)
{
f=0;
s++;
if(s==24){s=0;
}
jsxs24()
pp=0;
voiddisplay(ucharshi2,ucharshi1,ucharwela=0;
fen2,ucharfen1,ucharmiao2,ucharmiao1){dula=0;
P0=table[shi2];
dula=1;
dula=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[shi1];
dula=1;
dula=0;
P0=table[fen1];}
dula=1;}
b0=f%10;
b1=f/10;
c0=m%10;
c1=m/10;
displays(a1,a0,b1,b0,c1,c0);
}
voidmain()
{
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)//24D?
e些?
{
jsxs24();}
else
{
jsxs12();/}
}
else
{
qhf=~qhf;
while(ms!
=1);
}
}
else
{
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(){
intt;
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;display(a1,a0,b1,b0,c1,c0);
}
voidjsxs(){
a0=s%10;
a1=s/10;
TR0=0;if(qh==1){if(xz==0)
{if(ja==1)
{if(jn==1)
{jsxs();}else
{if(m==0){m=59;while(ja!
=1);}else{m--;while(ja!
=1);}
}
}