自动化生产实习报告(单片机演奏国歌).doc_第1页
自动化生产实习报告(单片机演奏国歌).doc_第2页
自动化生产实习报告(单片机演奏国歌).doc_第3页
自动化生产实习报告(单片机演奏国歌).doc_第4页
自动化生产实习报告(单片机演奏国歌).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北联合大学电气工程学院生产实习报告专 业 姓 名 学 号 指导教师 2012年6月17日时间2012.6.4-2012.6.17地点河北联合大学电工电子实验基地实习目的与内容一 实 习 目 的 本次实习旨在掌握单片机的结构和原理,实践并熟练掌握电子元器件的焊接技术,学习使用单片机应用开发技术的相关软件(如keil,protel99se,avr fighter等),练习使用c语言编程并调试实现单片机的简单功能,并完成本组的程序设计任务(用蜂鸣器演奏国歌)。2 实 习 内 容1、完成单片机试验开发板的焊接将数码管、发光二极管、按钮开关、蜂鸣器、串行接口、插座、继电器、电容、电阻、三极管等器件按电路板上的PCB图准确无误的焊接完好。元器件在电路板焊接的工艺要求: (1)元器件在电路板焊接的顺序是先低后高,先小后大,先轻后重,先易后难,先一般元器件后特殊元器件,且上道工序安装后不能影响下道工序的焊接。 (2)有极性的元器件极性应严格按照图纸上的要求安装,不能错装。 (3)元器件在电路板上的插装应分布均匀,排列整齐美观,不允许斜排、立体交叉和重叠排列;不允许一边高、一边低,也不允许引脚一边长、一边短。本次实习还特别学习了贴片元件的焊接。贴装元器件焊接规范(1)用镊子小心地将贴片元件放到PCB板上,注意不要损坏引脚。使其与焊盘对齐,要保证芯片摆放在正中央,放置方向正确,元件摆放不要歪斜,摆放时要注意与PCB板上标号一一对应,有极性的贴片元件的摆放应注意极性方向。(2)在焊接之前先在焊盘上涂上助焊剂,用烙铁处理一遍,以免焊盘镀锡不良或被氧化,造成不好焊,芯片则一般不需处理。 (3)上锡要适中,锡丝不能碰撞元件的引脚,烙铁头要保持光滑,不能有毛刺。(4)在焊接时要保持烙铁尖与被焊引脚并行,防止因焊锡过量发生搭接。(5)在使用烙铁拖焊时,烙铁只能轻轻在引脚上滑过,否则就要碰弯贴片元件的引脚。 (6)焊完所有的引脚后要对电路板上的焊点质量的检查,焊点应光滑、饱满、发亮,不要虚焊、漏焊。2、绘制单片机开发板电路图,了解电子器件相关知识根据给出的单片机试验开发板用protel 99se软件画出其原理图和PCB图,并分析单片机的结构与原理,了解开发板上其他电子元件的基本常识。(a)AT89S52简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有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为英文External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0P3.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值低1DO 262 63628 #1DO# 277 63731高1DO 1046 65058#1DO# 1109 65085#1DO# 554 65085 中1DO 523 64580 低2RE 294 63835 #2RE# 311 63928 高2RE 1175 65110#2RE# 1245 65124中2RE 578 65103 #2RE# 622 65134 低3M 330 64103 高3M 1318 65157中3M 659 65157 #4FA# 740 64860低4FA 349 64103#4FA# 370 64260高4FA 1397 65178#4FA# 1480 65198中4FA 698 65178 #5SO# 831 64923 中5SO 784 64898低5SO 392 64260 #5SO# 415 64331高5SO 1568 65377 #5S0# 1661 65385 中6LA 880 64968#6LA# 932 64994 低6LA 440 64400 #6 466 64463 高6LA 1760 6 5394 #6LA# 1865 65402 中7SI 988 65030低7SI 494 64524 高7SI 1976 65409 #表示半音,用于上升或下降半个音。每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。 节拍码对照表1/4节拍 节拍码 节拍数 节拍码 节拍数1 1/4拍 8 2拍 2 2/4拍 9 2又1/4拍 3 3/4拍 A 2又1/2拍 4 1拍 B 2又3/4拍 5 1又1/4拍 C 3拍6 1又1/2拍 D 3又1/4拍7 1又3/4拍 E 3又1/2拍 F 3又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调等。所要演奏的国歌为调, C调下的音名G在D调下唱Fa。即调下的对照表如下:DoReMiFaSoLaTiGABCDEF#高、中、低音的音符频率存在倍频关系,比如 1 其低音频率是 262Hz,中音频率是 523Hz,中音是低的 2 倍频率,高音频率是 1045Hz,高音又是中音的 2 倍频率,所以,我们可以根据其中的 12 个音符频率来推算出其它的音符频率。这种可推算的频率关系有利于我们在程序采用运算方法来确定音符的频率。音长最多由三位数字组成:个位表示音符的时值,其对应关系是:数值(n):0 1 2 3 4 5 6几分音符: 1 2 4 8 16 32 64十位表示音符的演奏效果(0-2):0-普通,1-连音,2-顿音百位是符点位: 0-无符点,1-有符点曲谱存贮格式 unsigned char code MusicName音高,音长,音高,音长., 0,0;末尾:0,0 表示结束(Important)音高由三位数字组成:个位是表示 17 这七个音符十位是表示音符所在的音区:1-低音,2-中音,3-高音;百位表示这个音符是否要升半音: 0-不升,1-升半音。C程序:/*程序功能:51单片机演奏单音乐曲硬件接法:P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率*/#include REG52.H /包含所选单片机的定义头文件sbit SPEAKER = P20; /定义音乐输出口sbit led = P10;typedef struct /定义音符结构unsigned int mFreq;/发声频率(对应的定时器初值)unsigned int mDelay; /发声时值CNote;unsigned char ReloadH; /定义定时器T1重装值unsigned char ReloadL;/*函数:T1_ISR()功能:定时器T1中断服务函数,产生音乐振荡频率*/void T1_ISR() interrupt 3TR1 = 0;TH1 = ReloadH;TL1 = ReloadL;TR1 = 1;SPEAKER = !SPEAKER; /音乐声频的半个波/*函数:Delay()功能:延时0.00165.536s参数:t0时,延时(t*0.001)s t=0时,延时65.536s*/void Delay(unsigned int t)doTH0 = 0xFC;/定时器赋初值,定时1msTL0 = 0x66+17;TR0 = 1;/启动定时器while ( !TF0 );/等待定时器溢出TR0 = 0;/关闭定时器TF0 = 0;/清除溢出标志 while ( -t != 0 );/循环t次/*函数:Sound()功能:演奏一个音符参数:*note,音符指针,指向要演奏的音符*/void Sound(CNote *note) /利用定时器T1发出音符的频率if ( note-mFreq != 0 )ReloadH = (unsigned char)(note-mFreq 8);ReloadL = (unsigned char)(note-mFreq);TH1 = 0xFF;TL1 = 0xF0;TR1 = 1;Delay(note-mDelay); /发声延时TR1 = 0; /停止发声TF1 = 0;SPEAKER = 1;Delay(5); /*函数:Play()功能:演奏一段乐曲参数:music,要演奏的乐曲*/void Play(CNote music)unsigned int n = 0;while(1)if ( musicn.mDelay = 0 ) break;Sound(&(musicn);n+;/* 定义音符表 */ 音频变量名 定时器初值 音频率值 音名 #define A 0xEFA3 / 110.000Hz A#define As 0xF08E / 116.541Hz A#define B 0xF16C / 123.471Hz B#define c 0xF23D / 130.813Hz c#define cs 0xF303 / 138.591Hz c#define d 0xF3BE / 146.832Hz d#define ds 0xF46E / 155.563Hz d#define e 0xF514 / 164.814Hz e#define f 0xF5B1 / 174.614Hz #define fs 0xF645 / 184.997Hz f#define g 0xF6D1 / 195.998Hz g#define gs 0xF755 / 207.652Hz g#define a 0xF7D1 / 220.000Hz a#define as 0xF847 / 233.082Hz a#define b 0xF8B6 / 246.942Hz b#define c1 0xF91F / 261.626Hz c1 (中央C)#define c1s 0xF982 / 277.183Hz c1#define d1 0xF9DF / 293.665Hz d1#define d1s 0xFA37 / 311.127Hz d1#define e1 0xFA8A / 329.628Hz e1#define f1 0xFAD9 / 349.228Hz f1#define f1s 0xFB23 / 369.994Hz f1#define g1 0xFB68 / 391.995Hz g1#define g1s 0xFBAA / 415.305Hz g1#define a1 0xFBE9 / 440.000Hz a1(标准音)#define a1s 0xFC24 / 466.164Hz a1#define b1 0xFC5B / 493.883Hz b1#define c2 0xFC8F / 523.251Hz c2#define c2s 0xFCC1 / 554.365Hz c2#define d2 0xFCEF / 587.330Hz d2#define d2s 0xFD1B / 622.254Hz d2#define e2 0xFD45 / 659.255Hz e2#define f2 0xFD6C / 698.456Hz f2#define f2s 0xFD91 / 739.989Hz f2#define g2 0xFDB4 / 783.991Hz g2#define g2s 0xFDD5 / 830.609Hz g2#define a2 0xFDF4 / 880.000Hz a2#define a2s 0xFE12 / 932.328Hz a2#define b2 0xFE2D / 987.767Hz b2#define c3 0xFE48 / 1046.500Hz c3#define c3s 0xFE60 / 1108.730Hz c3#define d3 0xFE78 / 1174.660Hz d3#define d3s 0xFE8E / 1244.510Hz d3# #define e3 0xFEA3 / 1318.510Hz e3#define f3 0xFEB6 / 1396.910Hz f3#define f3s 0xFEC9 / 1479.980Hz f3#define g3 0xFEDA / 1567.980Hz g3#define g3s 0xFEEB / 1661.220Hz g3#define a3 0xFEFA / 1760.000Hz a3#define a3s 0xFF09 / 1864.660Hz a3# #define b3 0xFF17 / 1975.530Hz b3/定义发声时值/T*4全音符,T*2二分音符,T四分音符,T/2八分音符,T/4十六分音符#define T625code CNote MusicTab =0,T/2,d2,T/2,g2,T+T/2,g2,T/2,g2,T/2,g2,T/2,d2,T/3,e2,T/3,f2s,T/3,g2,T,g2,T,0,T/2,b2,T/2,g2,T/2,a2,T/4,b2,T/4,d3,T,d3,T,b2,T/2+T/4,b2,T/4,g2,T/2,b2,T/2,d3,T/2+T/4,b2,T/4,a2,T,a2,2*T,e3,T,d3,T,a2,T,b2,T,d3,T/2,b2,T/2,0,T/2,d3,T/2,b2,T/2,a2,T/4,b2,T/4,g2,T,b2,T,0,T,d2,T/2+T/4,e2,T/4,g2,T/4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论