音乐演奏器设计课件_第1页
音乐演奏器设计课件_第2页
音乐演奏器设计课件_第3页
音乐演奏器设计课件_第4页
音乐演奏器设计课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

知识分布网络

定时/计数器基本结构定时器组成工作方式0:13位工作方式定时器工作原理定时器TMOD和TCON工作方式1:16位工作方式2:8位工作方式3:8位项目四音乐演奏器设计

知识分布网络定基本结构定时器组成工作方式0:13位工作方式1项目四音乐演奏器设计

项目四音乐演奏器设计2定时或延时功能实现的一般方法:

1.软件定时:程序

2.不可编程的硬件定时:时基电路555,外接定时部件-电阻和电容

3.可编程的定时器任务1音乐门铃

定时或延时功能实现的一般方法:任务1音乐门铃3循环程序设计1S延时程序程序:voiddelay1s() //子函数体{ uinti,j;//定义局部变量 for(i=1000;i>0;i--)//i=1000,即延时约1000ms=1s for(j=110;j>0;j--);}任务1音乐门铃

循环程序设计1S延时程序程序:任务1音乐门铃4相关知识:定时/计数器1、定时器0和定时器1(1)定时/计数器的组成框图图4-18051定时器/计数器逻辑结构图P3.4P3.5任务1音乐门铃

相关知识:定时/计数器1、定时器0和定时器1(1)定时/计数5由图4-1可知,8051单片机定时器/计数器由定时器0(T0)、定时器1(T1)、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。

16位的加1计数器(高8位、低8位)T0、T1

TMOD-定时/计数器方式寄存器,工作方式设置;

TCON-定时/计数器控制寄存器,启动、停止及设置溢出标志。任务1音乐门铃

由图4-1可知,8051单片机定时器/计数器由定时6(2)定时/计数器的工作原理由TMOD中的控制位(C/T)来决定T0和T1是工作在定时器方式还是计数器方式。定时功能----计数脉冲信号:内部振荡电路经12分频后输出的脉冲进行加1计数。∴计数频率是振荡频率的1/12—fc=1/12*fosc。2.计数功能----计数脉冲信号:来自外部输入引脚-(T0为P3.4,T1为P3.5)的负跳变信号进行加1计数—

fc=1/24*fosc。任务1音乐门铃的分析与仿真(2)定时/计数器的工作原理由TMOD中的控制位(C/T7(3)定时/计数器的方式寄存器和控制寄存器1)定时/计数器控制寄存器TCON(88H)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0低电平1下降沿0停止1启动任务1音乐门铃

(3)定时/计数器的方式寄存器和控制寄存器1)定时/计数器控82)工作方式控制寄存器TMOD(89H)T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE——门控位。

GATE=0启动由TR0(或TR1)一位控制;

GATE=1启动受

TR0和/INT0(或TR1和/INT1)两位控制。

C/T——外部计数器/定时器方式选择位

C/T=0定时方式;

C/T=1计数方式。

M1M0——工作模式选择位(编程可决定四种工作模式)。

任务1音乐门铃的分析与仿真2)工作方式控制寄存器TMOD(89H)T1控制T0控制M09M1M0工作方式功能说明

00方式013位计数器

01方式116位计数器

10方式2自动再装入8位计数器

11方式3定时器0:分成两个8位计数器定时器1:停止计数表4-1定时器方式选择任务1音乐门铃

M1M0工作方式功能说明00方10(1)方式0—13位方式

TF0T0TR0GATEINT01≥1&C/T=1振荡器1/12C/T=0TL0TH08位低5位13位计数器中断TCON定时时间:t=(213-定时器初值)×12/fosc(μs)2、定时器/计数器的工作方式任务1音乐门铃

(1)方式0—13位方式TF0T0TR0GATEINT011(2)方式1—16位方式

定时时间:t=(216-定时器初值)×12/fosc(μs)振荡器1/12TL0TH0TF01≥1&T0TR0GATEINT0C/T=0C/T=18位8位16位计数器中断任务1音乐门铃

(2)方式1—16位方式定时时间:t=(216-定时器初12(3)方式2—8位自动装入时间常数方式TF0振荡器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TH0中断定时时间:t=(28-定时器初值)×12/fosc(μs)任务1音乐门铃

(3)方式2—8位自动装入时间常数方式TF0振荡器1/113(4)方式3—2个8位计数器方式仅T0可以工作在方式3—此时T0分成2个独立的计数器—TL0和TH0:前者用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)。INT0TF0T0TR0GATE1≥1&C/T=1振荡器1/12C/T=0TL0中断振荡器1/12TF1TH0中断TR1(P3.4)(P3.2)定时/计数器固定为定时器任务1音乐门铃

(4)方式3—2个8位计数器方式仅T0可以工作在方式3—14二者的定时时间分别是:TL0:t=(28-TL0初值)×12/fosc(μs)TH0:t=(28-TH0初值)×12/fosc(μs)此时定时器T1仍然可设置成方式0、1或2,但TR1和TF1被定时器T0占用,一般用作串行口波特率发生器或不需要中断的场合。任务1音乐门铃

二者的定时时间分别是:TL0:t=(28-TL0初值)×1215例4-1假设晶振频率是12MHz,用定时器1方式0实现1s的延时。解:因方式0采用13位计数器,其最大定时时间为:213×1s=8192×1s=8.192ms,因此,可选择定时时间为5ms,再循环200次。

1、(213-X)×12/12=5×103

X=8192-5000=3192=01100011

11000

B(TH1)=63H(TL1)=18H2、TMOD:00000000--00H任务1音乐门铃

例4-1假设晶振频率是12MHz,用定时器1方式0实现116可编得1s延时子程序如下:voiddelay1s() //1s延时函数-定时器5ms,循环200次{uchari;//设置为字符型变量TMOD=0x00; //T0为工作方式0--M1M0=00for(i=0;i<0xc8;i++) //循环200次

{TH1=(8192-5000)/32; //延时50ms的初值—6318HTL1=(8192-5000)%32;TR1=1;//启动T1while(!TF1);//TF1由0变为1,定时时间到TF1=0;//50ms定时时间到,将TF1清零

}}

任务1音乐门铃

可编得1s延时子程序如下:voiddelay1s() 17编程练习:

定时50ms,循环20次-定时器T1方式1

方式1:65.536msDELAY:MOV

R3,#14H;(20)

MOVTMOD,#10H

;设T1工作于方式1定时

MOVTL1,#0B0H

;装入计数值低8位

MOVTH1,#3CH

;装入计数值高8位

SETBTR1

;启动定时器

LP1:JBC

TF1

,LP2;查询计数溢出SJMPLP1

LP2:

MOVTL1,#0B0H;重装初值

MOVTH1,#3CH

DJNZR3,LP1RET

1、(216-X)×12/12=50×103

X=65535-50000=15536=0011110010110000B(TH1)=3CH(TL1)=B0H2、TMOD:00010000--10HM0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7T1控制T0控制定时时间:t=(216-定时器初值)×12/fosc(μs)编程练习:

定时50ms,循环20次-定时器T1方式1

方式18可编得1s延时子程序如下:voiddelay1s() //1s延时函数-定时器50ms,循环20次{uchari;//设置为字符型变量

TMOD=0x10; //T1为工作方式1--M1M0=10for(i=0;i<0x14;i++) //循环20次

{TH1=(65536-50000)/256; //延时50ms的初值--3CB0HTL1=(65536-50000)%256;TR1=1;while(!TF1); //TF1由0变为1,定时时间到TF1=0; //查询方式时,TF*必须由软件清零

}}任务1音乐门铃

可编得1s延时子程序如下:voiddelay1s() 19例4-2假设晶振频率是12MHz,用定时器1方式2实现1s延时。解:因为方式2是8位计数器,其最大定时时间为:256×1s=256s,为实现1s延时,可选择定时时间为250s,再循环4000次。1、(28-X)×12/12=250

X=256-250=6=00000110B(TH1)=06H(TL1)=06H2、TMOD:00100000--20H任务1音乐门铃

例4-2假设晶振频率是12MHz,用定时器1方式2实现120可编得1s延时子程序如下:voiddelay1s() //1s延时函数-定时器250us,循环4000次{uinti; //设置为整型变量,范围为0-65535TMOD=0x20; //T1为工作方式2--M1M0=10TH1=6; //延时250us的初值--6TL1=6;//放在for循环之外

for(i=0;i<4000;i++) //循环4000次

{ TR1=1; //启动T1 while(!TF1); //TF1由0变为1,定时时间到

TF1=0; //250us定时时间到,将TF1清零

}}任务1音乐门铃

可编得1s延时子程序如下:voiddelay1s() 211.方式0—13位方式定时器使用时定时时间:

t=(213-定时器初值)×12/fosc(μs)2.方式1—16位方式t=(216-定时器初值)×12/fosc(μs)3.方式2—8位自动装入时间常数方式t=(28-定时器初值)×12/fosc(μs)4.方式3—2个8位计数器方式TL0:t=(28-TL0初值)×12/fosc(μs)TH0:t=(28-TL1初值)×12/fosc(μs)总结任务1音乐门铃

1.方式0—13位方式定时器使用时定时时间:t=(2122例:在P3.0上产生周期为10ms的方波,设fosc=12MHz.(要求分别以查询方式和中断方式设计程序-T0方式1)

3、定时器/计数器的编程和应用5000us5000us定时时间:t=(216-定时器初值)×12/fosc(μs)1、(216-X)×12/12=5×103X=60536=1110110001111000B(TH0)=0ECH(TL0)=78H2、TMOD:0000

0001--01H任务1音乐门铃

例:在P3.0上产生周期为10ms的方波,设fosc=1223/*------------------------------------------------定时器中断子程序------------------------------------------------*/voidTimer0(void)interrupt1using1{TH0=(65536-5000)/256;//重新赋值12M晶振计算,指令周期1uS,TL0=(65536-5000)%256;//10mS方波半个周期5000uS,即定时5000次//溢出然后输出端取反OUT=~OUT;//用示波器可看到方波输出}任务1音乐门铃

/*----------------------------24/*-----------------------------------------------------------------------

名称:定时器0

内容:通过定时产生10mS方波---方式1、中断方式------------------------------------------------------------------------*/#include<reg52.h>//包含头文件sbitOUT=P3^0;//定义OUT输出端口/*------------------------------------------------

主程序------------------------------------------------*/main(){TMOD=0x01; //使用模式1,16位定时器,

EA=1;//总中断打开

ET0=1;//定时器中断打开

TR0=1;//定时器开关打开

while(1);}任务1音乐门铃

/*----------------------------25编程方法②计算计数器的计数初值:编程时将计数初值送THi、TLi(i=0或i=1);可编程器件T0、T1在使用前需要进行初始化:①确定TMOD控制字:编程时将控制字送TMOD;③(如果使用中断方式)开中断:编程时置位EA、ETi(如果使用查询方式)观察TFi④

TRi位置位控制定时器的启动和停止。任务1音乐门铃

编程方法②计算计数器的计数初值:可编程器件T0、T1在使用前261.方式0—13位方式计数器使用时:

定时器初值=213-计数值2.方式1—16位方式3.方式2、3—8位方式定时器初值=216-计数值定时器初值=28-计数值任务1音乐门铃

1.方式0—13位方式计数器使用时:定时器初值=21271、声音的产生

声音是由物体振动产生的,振动的频率不同,发出的声音也就不同,有规律的振动发出的声音叫“乐音”。乐谱中的每一个音符都与某一特定频率相对应。

利用定时器/计数器工作在16位定时(方式1),通过改变THi、TLi的值,就可以产生不同频率的方波。

2、原理:

通过控制定时器来产生不同频率的方波,驱动喇叭发出不同音节的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。

单片机的晶振频率为12MHz,乐谱中的音符、频率及定时常数的关系如下:

式中f为音符对应的频率;ti为内部计时一半所用的时间(即半个周期)返回知识拓展:定时器发声原理1、声音的产生

声音是由物体振动产生的,振动的频率不同,28音符(低音)频率/Hz定时初值音符(中音)频率/Hz定时初值音符(高音)频率/Hz定时初值1DO262F88C(63628)

1DO523FC44(64580)1DO1046FE22(65058)2RUI294F95B(63835)2RUI587FCAC(64684)2RUI1175FE56(65110)3MI330FA15(64021)3MI659FD09(64777)3MI1318FE85(65157)4FA349FA67(64103)4FA698FD34(64820)4FA1397FE9A(65178)5SO392FB04(64260)5SO784FD82(64898)5SO1568FEC1(65217)6LA440FB90(64400)6LA880FDC8(64968)6LA1760FEE4(65252)7XI494FC0C(64524)7XI988FE06(65030)7XI1976FF03(65283)方式1:(216-X)*12/12=956usX=64580---FC44H(TL0=44HTH0=0FCH)中音DO:T=(1/523)=1.912ms方波:1.912ms/2=0.956ms=956us—定时器定时时间(半个周期)表1乐曲中的音符、频率及定时常数三者之间的关系(fosc=12MHz)定时器发声原理定时初值1DO262F88C(63628)1DO529各节拍与时间的设定如表所示曲调值1/4拍时间(ms)1/8拍时间(ms)调4/412562调3/418794调2/4250125定时器发声原理各节拍与时间的设定如表所示1/4拍时间1/8拍时间(ms)调30相关知识:键盘1、键盘工作原理

(1)按键的分类1)按键按照结构原理可分为两类:①触点式开关按键,如机械式开关、导电橡胶式开关等;②无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,单片机系统中最常见的是触点式开关按键。2)按键按照接口原理可分为:①编码键盘。编码键盘主要是用硬件来实现对键的识别。②非编码键盘。非编码键盘主要是由软件来实现键盘的定义与识别。任务2

音乐演奏器相关知识:键盘1、键盘工作原理(1)按键的分类1)按键按照31任务二音乐演奏器的设计与实现(2)键输入原理1)键盘接口的基本功能①键扫描:监测有无键按下。判别是否有键按下的方式有中断方式和查询方式两种:中断方式:当键按下时,就向CPU发出中断请求。CPU响应后,对键盘扫描,进行识别,取出键值,作相应处理。查询方式:每隔一定时间,CPU扫描键盘一次,查询有无键按下。若有键按下,则再查键值,作相应处理。②去抖动:一个电压信号通过机械触点的开/关过程中,由于机械触点的弹性作用,在开关瞬间均有抖动过程,会出现一系列的负脉冲,图4-2

机械触点的开/关过程

任务二音乐演奏器的设计与实现(2)键输入原理1)键盘接32任务二音乐演奏器的设计与实现a)硬件去抖硬件消抖可以采用R-S触发器或单稳电路构成去抖电路,分别如图4-18所示。硬件消抖因为要增加硬件开销,造成电路复杂,除了在数字电路里使用外,在单片机系统中不太采用。b)软件去抖在检测到有键按下时,执行一个10ms的延时程序后,再确认该键是否保持闭合状态。另外一种方法是连续判断按键所在线路的电平,如果连续100次(甚至更多)都出现低电平(一般按键都是低电平表示按下),就认为按键已经稳定,可以进行识别,这是企业实际开发产品中常用的方法。图4-3

硬件去抖电路

任务二音乐演奏器的设计与实现a)硬件去抖图4-333任务二音乐演奏器的设计与实现③键识别:确定是哪一个键按下,取出键值。每一个按键都要确定一个键值,以便实现按键功能的转移。散转指令就是要根据这个键值来转移。④其它可靠的逻辑处理办法:一次锁定:不管一次按键的时间有多长,仅作一次处理。2)键输入操作的基本框图图4-4

键输入框图

任务二音乐演奏器的设计与实现③键识别:确定是哪一34设计方案

选用AT89C51单片机芯片、时钟电路、复位电路、电源和按键和一个扬声器构成门铃电路控制的最小系统

。任务实施并行接口AT89C51单片机电源时钟电路复位电路扬声器图4-5

系统方案设计框图

按键任务1音乐门铃

设计方案选用AT89C51单片机芯片、时钟电路、复35任务1音乐门铃

图4-6

音乐门铃电路原理图

任务1音乐门铃图4-6音乐门铃电路原理图36设计方案

选用AT89C51单片机芯片、时钟电路、复位电路、电源和8个按键,按键采用矩阵式键盘,8个按键代表do,rui,mi,fa,so,la,xi,do等8个音阶,可弹奏不同声音。任务实施并行接口AT89C51单片机电源时钟电路复位电路查询式键盘图4-7

系统方案设计框图扬声器任务2

音乐演奏器设计方案选用AT89C51单片机芯片、时钟电路、复37任务2

音乐演奏器图4-8

系统方案设计框图

任务2音乐演奏器图4-8系统方案设计框图38知识梳理与总结1、单片机定时器的概念;

2、单片机定时器的工作方式;3、C语言函数的定义和调用;4、C语言定时器中断函数的设计。项目四音乐演奏器设计

知识梳理与总结1、单片机定时器的概念;2、单片机定时器的工作39知识分布网络

定时/计数器基本结构定时器组成工作方式0:13位工作方式定时器工作原理定时器TMOD和TCON工作方式1:16位工作方式2:8位工作方式3:8位项目四音乐演奏器设计

知识分布网络定基本结构定时器组成工作方式0:13位工作方式40项目四音乐演奏器设计

项目四音乐演奏器设计41定时或延时功能实现的一般方法:

1.软件定时:程序

2.不可编程的硬件定时:时基电路555,外接定时部件-电阻和电容

3.可编程的定时器任务1音乐门铃

定时或延时功能实现的一般方法:任务1音乐门铃42循环程序设计1S延时程序程序:voiddelay1s() //子函数体{ uinti,j;//定义局部变量 for(i=1000;i>0;i--)//i=1000,即延时约1000ms=1s for(j=110;j>0;j--);}任务1音乐门铃

循环程序设计1S延时程序程序:任务1音乐门铃43相关知识:定时/计数器1、定时器0和定时器1(1)定时/计数器的组成框图图4-18051定时器/计数器逻辑结构图P3.4P3.5任务1音乐门铃

相关知识:定时/计数器1、定时器0和定时器1(1)定时/计数44由图4-1可知,8051单片机定时器/计数器由定时器0(T0)、定时器1(T1)、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。

16位的加1计数器(高8位、低8位)T0、T1

TMOD-定时/计数器方式寄存器,工作方式设置;

TCON-定时/计数器控制寄存器,启动、停止及设置溢出标志。任务1音乐门铃

由图4-1可知,8051单片机定时器/计数器由定时45(2)定时/计数器的工作原理由TMOD中的控制位(C/T)来决定T0和T1是工作在定时器方式还是计数器方式。定时功能----计数脉冲信号:内部振荡电路经12分频后输出的脉冲进行加1计数。∴计数频率是振荡频率的1/12—fc=1/12*fosc。2.计数功能----计数脉冲信号:来自外部输入引脚-(T0为P3.4,T1为P3.5)的负跳变信号进行加1计数—

fc=1/24*fosc。任务1音乐门铃的分析与仿真(2)定时/计数器的工作原理由TMOD中的控制位(C/T46(3)定时/计数器的方式寄存器和控制寄存器1)定时/计数器控制寄存器TCON(88H)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0低电平1下降沿0停止1启动任务1音乐门铃

(3)定时/计数器的方式寄存器和控制寄存器1)定时/计数器控472)工作方式控制寄存器TMOD(89H)T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE——门控位。

GATE=0启动由TR0(或TR1)一位控制;

GATE=1启动受

TR0和/INT0(或TR1和/INT1)两位控制。

C/T——外部计数器/定时器方式选择位

C/T=0定时方式;

C/T=1计数方式。

M1M0——工作模式选择位(编程可决定四种工作模式)。

任务1音乐门铃的分析与仿真2)工作方式控制寄存器TMOD(89H)T1控制T0控制M048M1M0工作方式功能说明

00方式013位计数器

01方式116位计数器

10方式2自动再装入8位计数器

11方式3定时器0:分成两个8位计数器定时器1:停止计数表4-1定时器方式选择任务1音乐门铃

M1M0工作方式功能说明00方49(1)方式0—13位方式

TF0T0TR0GATEINT01≥1&C/T=1振荡器1/12C/T=0TL0TH08位低5位13位计数器中断TCON定时时间:t=(213-定时器初值)×12/fosc(μs)2、定时器/计数器的工作方式任务1音乐门铃

(1)方式0—13位方式TF0T0TR0GATEINT050(2)方式1—16位方式

定时时间:t=(216-定时器初值)×12/fosc(μs)振荡器1/12TL0TH0TF01≥1&T0TR0GATEINT0C/T=0C/T=18位8位16位计数器中断任务1音乐门铃

(2)方式1—16位方式定时时间:t=(216-定时器初51(3)方式2—8位自动装入时间常数方式TF0振荡器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TH0中断定时时间:t=(28-定时器初值)×12/fosc(μs)任务1音乐门铃

(3)方式2—8位自动装入时间常数方式TF0振荡器1/152(4)方式3—2个8位计数器方式仅T0可以工作在方式3—此时T0分成2个独立的计数器—TL0和TH0:前者用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)。INT0TF0T0TR0GATE1≥1&C/T=1振荡器1/12C/T=0TL0中断振荡器1/12TF1TH0中断TR1(P3.4)(P3.2)定时/计数器固定为定时器任务1音乐门铃

(4)方式3—2个8位计数器方式仅T0可以工作在方式3—53二者的定时时间分别是:TL0:t=(28-TL0初值)×12/fosc(μs)TH0:t=(28-TH0初值)×12/fosc(μs)此时定时器T1仍然可设置成方式0、1或2,但TR1和TF1被定时器T0占用,一般用作串行口波特率发生器或不需要中断的场合。任务1音乐门铃

二者的定时时间分别是:TL0:t=(28-TL0初值)×1254例4-1假设晶振频率是12MHz,用定时器1方式0实现1s的延时。解:因方式0采用13位计数器,其最大定时时间为:213×1s=8192×1s=8.192ms,因此,可选择定时时间为5ms,再循环200次。

1、(213-X)×12/12=5×103

X=8192-5000=3192=01100011

11000

B(TH1)=63H(TL1)=18H2、TMOD:00000000--00H任务1音乐门铃

例4-1假设晶振频率是12MHz,用定时器1方式0实现155可编得1s延时子程序如下:voiddelay1s() //1s延时函数-定时器5ms,循环200次{uchari;//设置为字符型变量TMOD=0x00; //T0为工作方式0--M1M0=00for(i=0;i<0xc8;i++) //循环200次

{TH1=(8192-5000)/32; //延时50ms的初值—6318HTL1=(8192-5000)%32;TR1=1;//启动T1while(!TF1);//TF1由0变为1,定时时间到TF1=0;//50ms定时时间到,将TF1清零

}}

任务1音乐门铃

可编得1s延时子程序如下:voiddelay1s() 56编程练习:

定时50ms,循环20次-定时器T1方式1

方式1:65.536msDELAY:MOV

R3,#14H;(20)

MOVTMOD,#10H

;设T1工作于方式1定时

MOVTL1,#0B0H

;装入计数值低8位

MOVTH1,#3CH

;装入计数值高8位

SETBTR1

;启动定时器

LP1:JBC

TF1

,LP2;查询计数溢出SJMPLP1

LP2:

MOVTL1,#0B0H;重装初值

MOVTH1,#3CH

DJNZR3,LP1RET

1、(216-X)×12/12=50×103

X=65535-50000=15536=0011110010110000B(TH1)=3CH(TL1)=B0H2、TMOD:00010000--10HM0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7T1控制T0控制定时时间:t=(216-定时器初值)×12/fosc(μs)编程练习:

定时50ms,循环20次-定时器T1方式1

方式57可编得1s延时子程序如下:voiddelay1s() //1s延时函数-定时器50ms,循环20次{uchari;//设置为字符型变量

TMOD=0x10; //T1为工作方式1--M1M0=10for(i=0;i<0x14;i++) //循环20次

{TH1=(65536-50000)/256; //延时50ms的初值--3CB0HTL1=(65536-50000)%256;TR1=1;while(!TF1); //TF1由0变为1,定时时间到TF1=0; //查询方式时,TF*必须由软件清零

}}任务1音乐门铃

可编得1s延时子程序如下:voiddelay1s() 58例4-2假设晶振频率是12MHz,用定时器1方式2实现1s延时。解:因为方式2是8位计数器,其最大定时时间为:256×1s=256s,为实现1s延时,可选择定时时间为250s,再循环4000次。1、(28-X)×12/12=250

X=256-250=6=00000110B(TH1)=06H(TL1)=06H2、TMOD:00100000--20H任务1音乐门铃

例4-2假设晶振频率是12MHz,用定时器1方式2实现159可编得1s延时子程序如下:voiddelay1s() //1s延时函数-定时器250us,循环4000次{uinti; //设置为整型变量,范围为0-65535TMOD=0x20; //T1为工作方式2--M1M0=10TH1=6; //延时250us的初值--6TL1=6;//放在for循环之外

for(i=0;i<4000;i++) //循环4000次

{ TR1=1; //启动T1 while(!TF1); //TF1由0变为1,定时时间到

TF1=0; //250us定时时间到,将TF1清零

}}任务1音乐门铃

可编得1s延时子程序如下:voiddelay1s() 601.方式0—13位方式定时器使用时定时时间:

t=(213-定时器初值)×12/fosc(μs)2.方式1—16位方式t=(216-定时器初值)×12/fosc(μs)3.方式2—8位自动装入时间常数方式t=(28-定时器初值)×12/fosc(μs)4.方式3—2个8位计数器方式TL0:t=(28-TL0初值)×12/fosc(μs)TH0:t=(28-TL1初值)×12/fosc(μs)总结任务1音乐门铃

1.方式0—13位方式定时器使用时定时时间:t=(2161例:在P3.0上产生周期为10ms的方波,设fosc=12MHz.(要求分别以查询方式和中断方式设计程序-T0方式1)

3、定时器/计数器的编程和应用5000us5000us定时时间:t=(216-定时器初值)×12/fosc(μs)1、(216-X)×12/12=5×103X=60536=1110110001111000B(TH0)=0ECH(TL0)=78H2、TMOD:0000

0001--01H任务1音乐门铃

例:在P3.0上产生周期为10ms的方波,设fosc=1262/*------------------------------------------------定时器中断子程序------------------------------------------------*/voidTimer0(void)interrupt1using1{TH0=(65536-5000)/256;//重新赋值12M晶振计算,指令周期1uS,TL0=(65536-5000)%256;//10mS方波半个周期5000uS,即定时5000次//溢出然后输出端取反OUT=~OUT;//用示波器可看到方波输出}任务1音乐门铃

/*----------------------------63/*-----------------------------------------------------------------------

名称:定时器0

内容:通过定时产生10mS方波---方式1、中断方式------------------------------------------------------------------------*/#include<reg52.h>//包含头文件sbitOUT=P3^0;//定义OUT输出端口/*------------------------------------------------

主程序------------------------------------------------*/main(){TMOD=0x01; //使用模式1,16位定时器,

EA=1;//总中断打开

ET0=1;//定时器中断打开

TR0=1;//定时器开关打开

while(1);}任务1音乐门铃

/*----------------------------64编程方法②计算计数器的计数初值:编程时将计数初值送THi、TLi(i=0或i=1);可编程器件T0、T1在使用前需要进行初始化:①确定TMOD控制字:编程时将控制字送TMOD;③(如果使用中断方式)开中断:编程时置位EA、ETi(如果使用查询方式)观察TFi④

TRi位置位控制定时器的启动和停止。任务1音乐门铃

编程方法②计算计数器的计数初值:可编程器件T0、T1在使用前651.方式0—13位方式计数器使用时:

定时器初值=213-计数值2.方式1—16位方式3.方式2、3—8位方式定时器初值=216-计数值定时器初值=28-计数值任务1音乐门铃

1.方式0—13位方式计数器使用时:定时器初值=21661、声音的产生

声音是由物体振动产生的,振动的频率不同,发出的声音也就不同,有规律的振动发出的声音叫“乐音”。乐谱中的每一个音符都与某一特定频率相对应。

利用定时器/计数器工作在16位定时(方式1),通过改变THi、TLi的值,就可以产生不同频率的方波。

2、原理:

通过控制定时器来产生不同频率的方波,驱动喇叭发出不同音节的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。

单片机的晶振频率为12MHz,乐谱中的音符、频率及定时常数的关系如下:

式中f为音符对应的频率;ti为内部计时一半所用的时间(即半个周期)返回知识拓展:定时器发声原理1、声音的产生

声音是由物体振动产生的,振动的频率不同,67音符(低音)频率/Hz定时初值音符(中音)频率/Hz定时初值音符(高音)频率/Hz定时初值1DO262F88C(63628)

1DO523FC44(64580)1DO1046FE22(65058)2RUI294F95B(63835)2RUI587FCAC(64684)2RUI1175FE56(65110)3MI330FA15(64021)3MI659FD09(64777)3MI1318FE85(65157)4FA349FA67(64103)4FA698FD34(64820)4FA1397FE9A(65178)5SO392FB04(64260)5SO784FD82(6

温馨提示

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

评论

0/150

提交评论