最新自动化生产实习报告单片机演奏国歌.docx
- 文档编号:17327334
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:19
- 大小:334.47KB
最新自动化生产实习报告单片机演奏国歌.docx
《最新自动化生产实习报告单片机演奏国歌.docx》由会员分享,可在线阅读,更多相关《最新自动化生产实习报告单片机演奏国歌.docx(19页珍藏版)》请在冰点文库上搜索。
最新自动化生产实习报告单片机演奏国歌
河北联合大学
电气工程学院
生产实习报告
专业
姓名
学号
指导教师
2012年6月17日
时间
2012.6.4-2012.6.17
地点
河北联合大学电工电子实验基地
实习目的与内容
一.实习目的
本次实习旨在掌握单片机的结构和原理,实践并熟练掌握电子元器件的焊接技术,学习使用单片机应用开发技术的相关软件(如keil,protel99se,avrfighter等),练习使用c语言编程并调试实现单片机的简单功能,并完成本组的程序设计任务(用蜂鸣器演奏国歌)。
二.实习内容
1、完成单片机试验开发板的焊接
将数码管、发光二极管、按钮开关、蜂鸣器、串行接口、插座、继电器、电容、电阻、三极管等器件按电路板上的PCB图准确无误的焊接完好。
元器件在电路板焊接的工艺要求:
(1)元器件在电路板焊接的顺序是先低后高,先小后大,先轻后重,先易后难,先一般元器件后特殊元器件,且上道工序安装后不能影响下道工序的焊接。
(2)有极性的元器件极性应严格按照图纸上的要求安装,不能错装。
(3)元器件在电路板上的插装应分布均匀,排列整齐美观,不允许斜排、立体交叉和重叠排列;不允许一边高、一边低,也不允许引脚一边长、一边短。
本次实习还特别学习了贴片元件的焊接。
贴装元器件焊接规范
(1)用镊子小心地将贴片元件放到PCB板上,注意不要损坏引脚。
使其与焊盘对齐,要保证芯片摆放在正中央,放置方向正确,元件摆放不要歪斜,摆放时要注意与PCB板上标号一一对应,有极性的贴片元件的摆放应注意极性方向。
(2)在焊接之前先在焊盘上涂上助焊剂,用烙铁处理一遍,以免焊盘镀锡不良或被氧化,造成不好焊,芯片则一般不需处理。
(3)上锡要适中,锡丝不能碰撞元件的引脚,烙铁头要保持光滑,不能有毛刺。
(4)在焊接时要保持烙铁尖与被焊引脚并行,防止因焊锡过量发生搭接。
(5)在使用烙铁拖焊时,烙铁只能轻轻在引脚上滑过,否则就要碰弯贴片元件的引脚。
(6)焊完所有的引脚后要对电路板上的焊点质量的检查,焊点应光滑、饱满、发亮,不要虚焊、漏焊。
2、绘制单片机开发板电路图,了解电子器件相关知识
根据给出的单片机试验开发板用protel99se软件画出其原理图和PCB图,并分析单片机的结构与原理,了解开发板上其他电子元件的基本常识。
(a)AT89S52简介
AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S52主要功能列举如下:
(1)拥有灵巧的8位CPU和在系统可编程Flash
(2)晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
(3)内部程序存储器(ROM)为8KB
(4)内部数据存储器(RAM)为256字节
(5)32个可编程I/O口线
(6)8个中断向量源
(7)三个16位定时器/计数器
(8)三级加密程序存储器
(9)全双工UART串行通道
AT89S52各引脚功能介绍:
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。
AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
(b)JH51多功能单片机实验板简介
板上安装了4位共阳数码管;8个发光二极管;四个按钮开关;一个简单的音响电路;RS232串行接口;1602字符型LCD插座;继电器试验电路;带有标准ISP插座,可用下载线对AT89S5X单片机编程;去掉笨重的变压器采用USB供电;全部资源都引出的多功能扩展接口;所有的资源全部都可以使用跳线选择,方便明了;主芯片安装位留有足够位置,既可以安装芯片插座,也可以安装ZIF插座(配合下载线可将该板作为编程器用);有扩展接口,可方便地扩展其他串行接口芯片。
使用这块实验板可以进行流水灯、人机界面程序设计、音响、计数器等基本编程练习,1602液晶字符型液晶接口技术、与PC机进行串行通讯等目前较为流行的技术。
(c)所用元器件
我组任务主要用到的器件为单片机、音响接口、晶振电路、复位电路、ISP下载口,现分别简介如下:
(1)音响接口
电路板上的三极管驱动一个有源蜂鸣器,构成一个简单的音响电路,该电路利用单片机的P3.7脚引脚作为音源,经三极管放大后发声。
注意:
在进行音响实验时,要讲SPEAKER跳线用短路冒进行短路。
蜂鸣器电路
(2)晶振电路
单片机晶体振荡电路
(3)复位电路
单片机复位电路
(4)ISP下载口
与单片机相连的ISP下载口
(d)单片机开发板原理图与PCB图
原理图如下:
PCB图如下:
3、编写程序
用keil软件编写本组任务的C程序并进行调试。
附:
我组任务:
用蜂鸣器演奏国歌。
设计思路:
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,一多半采取一个三极管来放大驱动蜂鸣器。
蜂鸣器的正极接到Q1的集电极C极上面,蜂鸣器的负极地,三极管发射极E极接电源VCC,基极B经过限流电阻R33后由单片机的P1.7引脚控制,当P1.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P1.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
乐谱种不同的音调,是有不同的频率产生的,通过单片机产生不同的频率的脉冲信号,由蜂鸣器放出,即产生了国歌的曲调。
要产生某音频的脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。
利用AT89S52的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:
计数脉冲值与频率的关系公式为N=Fi/2/Fr
(N:
计数值,Fi:
内部计时一次为1uS,故其频率为1MHz,Fr:
要产生的频率)。
其计数值的求法为T=65536-N=65536-Fi/2/Fr。
各音符频率与计数值T的对照表:
音符频率(Hz)T值 音符频率(Hz)T值
低1DO26263628#1DO#27763731
高1DO104665058 #1DO#110965085
#1DO#55465085中1DO52364580
低2RE29463835 #2RE#31163928
高2RE117565110 #2RE#124565124
中2RE57865103#2RE#62265134
低3M33064103 高3M131865157
中3M65965157#4FA#74064860
低4FA34964103 #4FA#37064260
高4FA139765178 #4FA#148065198
中4FA69865178#5SO#83164923
中5SO78464898 低5SO39264260
#5SO#41564331 高5SO156865377
#5S0#166165385中6LA88064968
#6LA#93264994 低6LA44064400
#646664463高6LA176065394
#6LA#186565402中7SI98865030
低7SI49464524高7SI197665409
"#"表示半音,用于上升或下降半个音。
每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。
但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。
假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。
所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。
节拍码对照表
1/4节拍
节拍码节拍数节拍码节拍数
11/4拍82拍
22/4拍92又1/4拍
33/4拍A2又1/2拍
41拍B2又3/4拍
51又1/4拍C3拍
61又1/2拍D3又1/4拍
71又3/4拍E3又1/2拍
F3又3/4拍
一般的歌曲,有3/8、2/4、3/4、4/4等节拍类型,但不管有几拍,基本上是在C调下演奏的。
如果是C调,则音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。
但是,并不是所有的歌曲都是在C调下演奏的,还有D调、E调、F调、G调等。
所要演奏的国歌为G调,C调下的音名G在D调下唱Fa。
即G调下的对照表如下:
Do
Re
Mi
Fa
So
La
Ti
G
A
B
C
D
E
F#
高、中、低音的音符频率存在倍频关系,比如1其低音频率是262Hz,中音频率是523Hz,中音是低的2倍频率,高音频率是1045Hz,高音又是中音的2倍频率,所以,我们可以根据其中的12个音符频率来推算出其它的音符频率。
这种可推算的频率关系有利于我们在程序采用运算方法来确定音符的频率。
音长最多由三位数字组成:
个位表示音符的时值,其对应关系是:
数值(n):
0123456
几分音符:
1248163264
十位表示音符的演奏效果(0-2):
0-普通,1-连音,2-顿音
百位是符点位:
0-无符点,1-有符点
曲谱存贮格式unsignedcharcodeMusicName{音高,音长,音高,音长....,0,0};
末尾:
0,0表示结束(Important)
音高由三位数字组成:
个位是表示1~7这七个音符
十位是表示音符所在的音区:
1-低音,2-中音,3-高音;
百位表示这个音符是否要升半音:
0-不升,1-升半音。
C程序:
/*************************************************************
程序功能:
51单片机演奏单音乐曲
硬件接法:
P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率
**************************************************************/
#include"REG52.H"//包含所选单片机的定义头文件
sbitSPEAKER=P2^0;//定义音乐输出口
sbitled=P1^0;
typedefstruct//定义音符结构
{unsignedintmFreq;//发声频率(对应的定时器初值)
unsignedintmDelay;//发声时值
}CNote;
unsignedcharReloadH;//定义定时器T1重装值
unsignedcharReloadL;
/************************************************************
函数:
T1_ISR()
功能:
定时器T1中断服务函数,产生音乐振荡频率
*************************************************************/
voidT1_ISR()interrupt3
{TR1=0;
TH1=ReloadH;
TL1=ReloadL;
TR1=1;
SPEAKER=!
SPEAKER;//音乐声频的半个波
}
/*************************************************************
函数:
Delay()
功能:
延时0.001~65.536s
参数:
t>0时,延时(t*0.001)s
t=0时,延时65.536s
*************************************************************/
voidDelay(unsignedintt)
{do
{TH0=0xFC;//定时器赋初值,定时1ms
TL0=0x66+17;
TR0=1;//启动定时器
while(!
TF0);//等待定时器溢出
TR0=0;//关闭定时器
TF0=0;//清除溢出标志
}while(--t!
=0);//循环t次
}
/***********************************************************
函数:
Sound()
功能:
演奏一个音符
参数:
*note,音符指针,指向要演奏的音符
***********************************************************/
voidSound(CNote*note)
{//利用定时器T1发出音符的频率
if(note->mFreq!
=0)
{ReloadH=(unsignedchar)(note->mFreq>>8);
ReloadL=(unsignedchar)(note->mFreq);
TH1=0xFF;
TL1=0xF0;
TR1=1;
}
Delay(note->mDelay);//发声延时
TR1=0;//停止发声
TF1=0;
SPEAKER=1;
Delay(5);
}
/************************************************************
函数:
Play()
功能:
演奏一段乐曲
参数:
music[],要演奏的乐曲
*************************************************************/
voidPlay(CNotemusic[])
{unsignedintn=0;
while
(1)
{if(music[n].mDelay==0)break;
Sound(&(music[n]));
n++;
}
}
/*定义音符表*/
//音频变量名定时器初值音频率值音名
#defineA0xEFA3//110.000HzA
#defineAs0xF08E//116.541HzA#
#defineB0xF16C//123.471HzB
#definec0xF23D//130.813Hzc
#definecs0xF303//138.591Hzc#
#defined0xF3BE//146.832Hzd
#defineds0xF46E//155.563Hzd#
#definee0xF514//164.814Hze
#definef0xF5B1//174.614Hz
#definefs0xF645//184.997Hzf#
#defineg0xF6D1//195.998Hzg
#definegs0xF755//207.652Hzg#
#definea0xF7D1//220.000Hza
#defineas0xF847//233.082Hza#
#defineb0xF8B6//246.942Hzb
#definec10xF91F//261.626Hzc1(中央C)
#definec1s0xF982//277.183Hzc1#
#defined10xF9DF//293.665Hzd1
#defined1s0xFA37//311.127Hzd1#
#definee10xFA8A//329.628Hze1
#definef10xFAD9//349.228Hzf1
#definef1s0xFB23//369.994Hzf1#
#defineg10xFB68//391.995Hzg1
#defineg1s0xFBAA//415.305Hzg1#
#definea10xFBE9//440.000Hza1(标准音)
#definea1s0xFC24//466.164Hza1#
#defineb10xFC5B//493.883Hzb1
#definec20xFC8F//523.251Hzc2
#definec2s0xFCC1//554.365Hzc2#
#defined20xFCEF//587.330Hzd2
#defined2s0xFD1B//622.254Hzd2#
#definee20xFD45//659.255Hze2
#definef20xFD6C//698.456Hzf2
#definef2s0xFD91//739.989Hzf2#
#defineg20xFDB4//783.991Hzg2
#defineg2s0xFDD5//830.609Hzg2#
#definea20xFDF4//880.000Hza2
#definea2s0xFE12//932.328Hza2#
#defineb20xFE2D//987.767Hzb2
#definec30xFE48//1046.500Hzc3
#definec3s0xFE60//1108.730Hzc3#
#defined30xFE78//1174.660Hzd3
#defined3s0xFE8E//1244.510Hzd3#
#definee30xFEA3//1318.510Hze3
#definef30xFEB6//1396.910Hzf3
#definef3s0xFEC9//1479.980Hzf3#
#defineg30xFEDA//1567.980Hzg3
#defineg3s0xFEEB//166
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 自动化 生产 实习 报告 单片机 演奏 国歌