单片基础技术 8_第1页
单片基础技术 8_第2页
单片基础技术 8_第3页
单片基础技术 8_第4页
单片基础技术 8_第5页
已阅读5页,还剩29页未读, 继续免费阅读

下载本文档

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

文档简介

项目三

电子音乐盒的制作项目三

电子音乐盒的制作项目简介0我们人耳所能听到的声音在1KHz----20KHz之间,超了的这个频率,人耳就听不见了。通过编程使单片机的一个引脚输出电平,控制喇叭的通电与否,喇叭就能发出声音,单片机输出电平变化快慢不同,喇叭发出的声音就不同,如果同一种声音持续不同的时间,就形成了节拍。按照乐谱改变单片机引脚输出电平的快慢和持续的时间,单片机就能演奏出音乐。本项目主要讲解单片机演奏音乐的基本技巧,同时进一步理解单片机定时/计数器的使用方法。图3-1所示是各种各样的音乐盒。图3-1各种各样的音乐盒项目三

电子音乐盒的制作

有源蜂鸣器

无源蜂鸣器图3-2

蜂鸣器外形图任务一

单片机发声电路的搭建一、任务描述在本任务中,主要讲解单片机定时/计数器的基本应用和单片机控制蜂鸣器的发声原理。二、相关知识1.蜂鸣器(1)蜂鸣器外形蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、报警器、定时器等电子产品中作发声器件。蜂鸣器根据是否有震荡源(及通电后是否能自动发声)主要分为有源蜂鸣器和无源蜂鸣器,其外观如图3-2所示。

项目三

电子音乐盒的制作任务一单片机发声电路搭建1

(2)蜂鸣器选择

从外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器,高度为9mm,而无源蜂鸣器的高度为8mm。如将两种蜂鸣器的引脚都朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。

判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档R*1档测试:用黑表笔接蜂鸣器“–”引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。

有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁蜂鸣器一样,需要接在音频输出电路中才能发声。在本项目中,我们使用的是无源蜂鸣器。项目三

电子音乐盒的制作任务一单片机发声电路搭建12.定时/计数器的结构及工作原理

MCS-51单片机内部集成了两个16位的定时/计数器,即T0和Tl。从名称上就可以看出来,它们既具有计数功能又具有定时功能,通过设置与它们相关的特殊功能寄存器可以选择工作在定时功能或计数功能。定时/计数器的实质是计数器,它的功能是能对输入脉冲按照一定规律进行计数,如果输入脉冲的周期值是固定的,即计数脉冲的时间间隔相等,那么计数值就代表了时间,从而可以实现定时。

如同往一个水桶里滴水一样,不管水桶有多大,它的容量是有限的,不能无限制地往水桶里滴水,水桶满了以后,再往水桶里滴水就会溢出,单片机中的计数器也是如此,T0和Tl都是16位的计数器,它的容量也是有限的,其计数的最大值为65535(即二进制数111111111111111B)。再输入一个计数脉冲则计满溢出,将对应的溢出标志位置1,这个标志位就是定时器溢出标志位,当中断允许时就会向CPU发出中断申请。项目三

电子音乐盒的制作任务一单片机发声电路搭建1MCS-51单片机内部有两个的定时/计数器,其结构相同,定时/计数器0的结构如图4-3所示。

由图3-3可知,定时/计数器的核心是1个加l计数器,它的输入脉冲有两个来源:一个是外部脉冲信号,通过T0(P3.4)脚或T1(P3.5)输入;另一个是系统时钟脉冲(时钟振荡器经l2分频以后的脉冲信号)。计数器对两个脉冲源之一进行计数,每输入一个脉冲,计数值加1。TH0(或TH1)和TL0(或TL1)是用来存放所计脉冲个数的寄存器。当计数器计满回0后,就从最高位溢出1个脉冲,使特殊功能寄存器TCON中的TF0或TF1置l,作为定时/计数器的溢出标志。如果定时/计数器工作在定时方式,则表示定时的时间到;若工作在计数方式,则表示计数器计满回零。图3-3

MCS-51单片机的定时/计数器0的结构图图3-3中有2个模拟的位开关,右边开关决定了定时/计数器的功能:当开关处于上方时为定时功能,处于下方时为计数功能。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。左边开关受控制信号的控制,它决定了脉冲是否加到计数器输入端,即决定了加l计数器的运行与关闭。项目三

电子音乐盒的制作任务一单片机发声电路搭建12.定时/计数器的方式和控制寄存器MCS-51单片机有2个用于定时/计数器方式和控制的寄存器,分别是TMOD和TCON

TMOD用于计数脉冲源的选择(即决定其工作于计数功能或定时功能)、设置工作方式

TCON用于控制定时/计数器的启动和停止,并包含了定时/计数器的状态。(1)定时器工作方式寄存器TMODTMOD用于选择定时器的工作方式,它的低4位控制定时器T0,高4位控制定时器T1。单片机复位时,TMOD的全部位均被清零。TMOD中各位的定义如表3-1

所示。项目三

电子音乐盒的制作任务一单片机发声电路搭建1由于控制Tl和T0的位名称相同,为了不至于混淆,在使用中TMOD只能按字节操作,不能进行位操作。

TMOD各位含义如下:Ml和M0:工作方式选择位,其具体定义如表3-2所示。C/T:功能选择位。C/T=0时,设置为定时器,对内部时钟脉冲计数;C/T=1时,设置为计数器,对外部输入脉冲计数。CATE:门控位。当GATE=0时,定时/计数器的启动和停止仅受TCON寄存器中的TR0(或TR1)控制;当GATE=1时,定时/计数器的启动和停止由TCON寄存器中的TR0(或TRI)和外部中断引脚(INT0或INT1)上的电平状态共同控制。项目三

电子音乐盒的制作任务一单片机发声电路搭建1(2)定时器控制寄存器TCONTCON控制寄存器各位的定义如表3-3所示。其中和定时/计数器相关的位如下:TR0:定时/计数器0(T0)的启动/停止控制位。当TR0=1时,T0启动计数;当TR0=0时,T0停止计数。TF0:定时/计数器0(T0)的溢出中断标志位。当定时/计数器0计满溢出时,由硬件自动将TF0置1,表示向CPU发出中断请求,当CPU响应该中断进入中断服务程序后,由硬件自动将该位清0,不需用专门的语句将该位清零。TR1:定时/计数器l(T1)的启动/停止控制位。其功能及使用方法同TR0。TF1:定时/计数器l(T1)的溢出中断标志位。其功能及使用方法同TF0。项目三

电子音乐盒的制作任务一单片机发声电路搭建13.定时/计数器的工作方式MCS-51单片机的定时/定时计数器有4种工作方式,分别由TMOD寄存器中的M1,M0两位的二进制编码所决定。(1)工作方式0(M1M0=00)

T0和Tl的工作方式0是完全相同的,都是作为13位的定时/计数器来使用的,由THx(x=0,1)的8位和TLx的低5位构成,TLx的高3位未用。

方式0只是为了保留早期的单片机产品的一种工作方式,其实际工程中应用较少,我们一般只使用方式1而不使用方式0。项目三

电子音乐盒的制作任务一单片机发声电路搭建1(2)工作方式1(M1M0=01)T0和T1的工作方式l也是完全相同的,都是作为16位的定时/计数器来使用的,定时/计数器的低8位产生进位时进到高8位上。高8位产生进位时,即计满溢出,置计满溢出标志位TFx(x=0,1)为1,向CPU申请中断,若CPU响应中断,由系统硬件自动将TFx复位。在工作方式l下,两个定时/计数器的最大计数为216=65536,最长定时时间为65536个机器周期。T0的逻辑结构如图3-4所示。图3-4定时/计数器T0方式1的逻辑电路结构图项目三

电子音乐盒的制作任务一单片机发声电路搭建1我们用这个图3-4来说明几个问题:1)M1M0:定时/计数器一共有四种工作方式,就是用M1

M0来控制的。2)C/T:定时/计数器即可作定时用也可作计数用,如果C/T为0就用做定时器,如果C/T为1就用做计数器。3)GATE:在图3-4中,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去。

GATE=0,分析一下逻辑,CATE非后是l,进入或门,或门总是输出1,和或门的那一个输入端INT0无关,在这种情况下,开关的断开、合上只取决于TR0,只要TR0是1开关就合上,计数脉冲得以畅通无阻,而如果TR0等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR0。GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR0来控制,而且还要受到INT0引脚的控制,只有TR0为1,且INT0引脚也是高电平,开关才合上,计数脉冲才得以通过。项目三

电子音乐盒的制作任务一单片机发声电路搭建1(3)工作方式2(M1M0=10)T0和Tl在工作方式2下都是作为8位的定时/计数器来使用的,定时/计数器的低8位负责计数。高8位不参与计数,只作为计数初始值寄存器,存放低8位的初始值。每当低8位计满溢出时,直接将计满溢出标志位TFx(x=0,1)为1,与此同时,硬件自动将高8位中存放的计数初始值加载至低8位中,所以方式2又叫自动重装载方式。

在工作方式2下,由于只有低8位参与计数,故最大计数为28

=256,最长定时时间为256个机器周期。虽然定时时间缩短了,但由于能够自动加载初始值,故定时时间更为精确。

T0的逻辑结构如图3-5所示。图3-5定时/计数器T0方式2的逻辑电路结构图项目三

电子音乐盒的制作任务一单片机发声电路搭建1(4)工作方式3(M1M0=11)只有T0有方式3,T1在方式3下停止工作。此时T0被分为两个独立的8位定时/计数器来使用。逻辑结构图如图3-6所示。在方式3下,TL0作为不能自动重载初始值的8位定时/计数器来使用,其计数初始值仍需在程序中用相应赋值语句加载;此时,TL0既可以用做定时功能,也可以用做计数功能,由原来控制T0的C/T位来选择;TL0的启动部分仍然由原来控制T0的GATE、TR0、INT0的逻辑组合来控制,启动与停止过程与前面三种工作方式相同;当TL0计满溢出时,直接将TF0置位从而向CPU申请中断,CPU响应中断后,由系统硬件自动将TF0复位;此时,TL0的中断服务程序入口地址即为原来T0的中断服务程序入口地址,中断序号也同样使用T0的中断序号(1)。图3-6定时/计数器方式3的逻辑电路结构图项目三

电子音乐盒的制作任务一单片机发声电路搭建1

在方式3下,TH0也是作为不能自动重载初始值的8位定时器来使用,但它只能用于定时功能,不能用于计数功能,因此没有C/T选择位控制;TH0的启动也仅受原来T1的启动位TR1来控制;当TH0计满溢出时,直接将TF1置位从而向CPU申请中断;此时,TH0的中断服务程序入口地址占用原来T1的中断服务程序入口地址,中断序号也同样使用T1的中断序号(3)。

当T0工作在方式3时,Tl可以工作在方式0、1、2三种工作方式下,但由于TH0占用了原来T1的启动控制位TR1和溢出标志位TFI,所以Tl的工作过程与前述有所变化。在这种情况下,Tl仍然既可以工作在定时功能,又可以工作在计数功能,但计满溢出时不能置位溢出标志,不能申请中断,其计满溢出信号可以送给串行口,此时Tl作为波特率发生器。Tl的启动与停止由其原来的方式字控制,当写入“方式0/l/2”时,Tl即启动,当写入“方式3”时,Tl即停止工作。项目三

电子音乐盒的制作任务一单片机发声电路搭建1和定时/计数器相关的寄存器是TMOD、TCON、IE和IP,另外还有计数寄存器THx(x=0,1)和TLx。使用定时/计数器主要包括初始化和编写中断服务程序。初始化主要包括:

(1)确定工作模式和工作方式(对TMOD赋值):

(2)预置定时或计数的初值(将初值写入TH0、TL0或TH1、TL1);

(3)根据需要开启定时器/计数器中断(对IE寄存器赋值);

(4)启动定时器/计数器(将TR0或TRI置1)。

根据需要对中断源优先级别的设置(对lP寄存器赋值)。

中断服务程序需要根据中断源的具体要求进行编写。

下面讲解如何计算定时器的计数初值问题。定时器/计数器的初值因工作方式的不同而不同。设最大计数值为M,则各种工作方式下的M值如下:方式0:M=213=8192方式1:M=216=65536方式2:M=28

=256方式3:定时器0分成2个8位计数器,所以2个定时器的最大值均为256因定时器/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下:X=M-计数值项目三

电子音乐盒的制作任务一单片机发声电路搭建1如:利用定时器0定时,采用方式1,要求每50ms溢出一次,系统采用12MHz晶振。采用方式l,M=65536。系统采用12MHz晶振,则计数周期T=1us,计数值=50ms/1us=50000,所以,计数初值为:X=M-计数值=65536-50000=15536=0x3cb0THx=(M-t/T)/256TLx=(M-t/T)%256

把0x3c赋给TH0,0xb0赋给TL0,或者把15536对256求模(15536/256)赋给TH0,把15536对256求余(15536%256)赋给TL0。总结以上定时器初值的计算方法,得出如下结论:设机器周期为T,定时器产生一次中断的时间为t,那么需要计数的个数N=t/T,装入THx和TLx中的初值分别为项目三

电子音乐盒的制作任务一单片机发声电路搭建1三、任务实施1.单片机实训板发声电路原理图单片机实训板中发声电路如图3-7

所示,图中LS1为蜂鸣器。2.定时器应用

利用定时器T0的方式l,在P1.3端口上输出周期为1ms的方波,驱动蜂鸣器发出声音,设晶振频率为12MHz。

(1)编程思路要在P1.3得到周期为1ms的方波,需要使P1.3端口每隔0.5ms取反一次即可。我们可以通过定时器作1ms定时,定时时间到,则向CPU申请中断,在中断服务程序中对P1.3取反。1)确定工作模式和工作方式

T0方式1时:MIM0=01,C/T=0,GATE=0,高4位未使用,全部赋0,则TMOD=0x01。

2)计算1ms定时T0的初值。晶振频率12MHz,则机器周期为1us,设T0的初值为X,则:

X=(216-500)=65036=FE0CH因此,TH0的初值为0xfe,TL0的初值为0x0c。

图3-7

单片机发声电路原理图项目三

电子音乐盒的制作任务一单片机发声电路搭建1(2)参考程序如右图所示:程序中对定时器赋初值也可以写作:TH0=(65536-500)/256;TL0=(65536-500)%256;

#include<reg51.h>

sbitsingle=P1^3

;

int

main(void)

{

TMOD=0x01;

TH0

=0xfe

;

TL0

=0x0c

;

EA=1;

ET0

=1;

TR0

=1;

while(1);}

Void

time_0(

)

interrupt1

//T0中断程序{

TH0

=0xfe

;

TL0

=0x0c;

single=!single;}项目三

电子音乐盒的制作任务二

音乐盒电路的制作与定时器程序的应用

声音是由物体的振动产生,正在发声的物体叫声源,声音以波的形式传播,即声波。人耳只能对20~20000Hz的振动产生听觉,20Hz以下的声波称为次声波,20000Hz以上称为超声波。

单片机要想发出声音,需要借助于蜂鸣器这个声源。单片机的I/O接口可以输出高电平和低电平,如果让单片机的某个I/O口线(引脚)按照一定的频率输出的高低电平循环取反,则输出方波信号,把这个方波信号加在蜂鸣器的线圈上,就能推动蜂鸣器发出声音。一、任务描述为了使单片机产生的方波精确且易于控制,一般使用定时/计数器来产生所需要的方波。在本任务中主要完成:1.以按键方式控制蜂鸣器发出音阶2.制作电子音乐盒二、相关知识在音乐中有两个非常重要的参数:音调和节拍。项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用21.音调

声音频率的高低叫音调。音符I(DO)、2(RE)、3(M1)、4(FA)、5(SO)、6(LA)、7(SI)具有不同的音调。

要让单片机发出不同的音符,只要让它发出不同频率的方波信号就可以了,一般采用单片机的定时器中断的方法来产生不同频率的方波信号。

例如,要产生中音1(DO),我们查得它的频率是523Hz,下面我们以12MHz晶振为例,来说明怎样让单片机发出中音1(DO)。

DO的频率f=523Hz,其对应的周期为T=1/f=l/523=1912us。

因此.需要单片机I/O口线输出周期为1912us的方波信号。因为每个周期包括半个周期的高电平和半个周期的低电平,这时只要定时器每隔半个周期(即1912÷2=956us)中断一次,让对应的I/O口线置反,就可以在相应的I/O口线上产生523Hz的方波,如果在该口线上接一个蜂鸣器,该蜂鸣器就发出中音1(DO)。

对于12MHz的晶振,时钟周期是lus,方式l时作956us定时的定时器初值为

定时初值=65536-956=64580项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用2按照同洋方法可以求出其他音调在12MHz晶振下的定时器初值,如表3-4所示。2.节拍

节拍表示每个音符演奏的时间长短。在一首乐曲中,每个音符演奏的时间不尽相同,比如,5为一拍,5/为半拍,5//为1/4拍,5-为2拍。在乐理中,一拍的时间是个相对值,如果规定一拍的时间为400ms,则1/4拍为l00mS。项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用2三、任务实施步骤一:以按键方式控制蜂鸣器发出音阶

1.电路原理图单片机控制蜂鸣器发出音阶电路原理图如图3-8所示。4×4行列键盘对应从低音4(FA)到高音5(SO)共16个音符。图3-8单片机控制蜂鸣器发出音阶电路原理图项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用22.程序设计(1)编程思路本例中,我们可以建立一个数组,用于存放从低音4(FA)到高音5(SO)共16个音符所对应的定时器初值,在键盘扫描程序中,当识别出某按键按下时,将该按键代表的音符所对应的定时器初值装入定时器,同时启动定时,待按键释放后,关闭定时。流程图如图3-9所示。图3-9单片机控制蜂鸣器发出音阶程序流程图项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用2(2)参考程序打开Keil软件,建立“单片机控制蜂鸣器发出音阶”项目并保存。参考下列的源程序输入程序文件。项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用2项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用2步骤二:制作电子音乐盒

步骤二的任务是让单片机按照乐谱上的音符和节拍把音乐自动演奏出来。

此处仍然用一个数组存放所有音符对应的定时器计数初值,而每个音符对应的节拍时间采用带参数的延时子函数实现,子函数的参数值对应不同的节拍时间。为了使程序具有通用性和便于修改,将每首乐谱的音符和节拍按照约定的规则进行编码,存放在一个数组中,这样单片机就可以在程序的控制下,依次从数组中取出编码值,将音符逐个演奏出来。1.电路设计(1)电路原理图

电子音乐盒电路原理图如图3-10所示。按键用于切换乐曲,数码管用于显示当前播放的乐曲编号。图3-10

电子音乐盒电路原理图项目三

电子音乐盒的制作任务二音乐盒电路的制作与定时器程序的应用2(2)元件清单

电子音

温馨提示

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

评论

0/150

提交评论