第五章-单片机定时器与计数器---副本..

上传人:艳*** 文档编号:178665994 上传时间:2022-12-29 格式:PPT 页数:47 大小:1.09MB
收藏 版权申诉 举报 下载
第五章-单片机定时器与计数器---副本.._第1页
第1页 / 共47页
第五章-单片机定时器与计数器---副本.._第2页
第2页 / 共47页
第五章-单片机定时器与计数器---副本.._第3页
第3页 / 共47页
资源描述:

《第五章-单片机定时器与计数器---副本..》由会员分享,可在线阅读,更多相关《第五章-单片机定时器与计数器---副本..(47页珍藏版)》请在装配图网上搜索。

1、LOGO第五章第五章 单片机定时器单片机定时器 与计数器与计数器 Company Logo单片机定时器与计数器单片机定时器与计数器定时器定时器/计数器结构计数器结构1定时器定时器/计数器工作方式计数器工作方式2定时器定时器/计数器应用举例计数器应用举例3定时器定时器/计数器结构计数器结构1Company Logo一、定时一、定时/计数器结构计数器结构MCS-51MCS-51单片机定时器单片机定时器/计数器的逻辑结构如图计数器的逻辑结构如图5-15-1所示。所示。主要由工作方式寄存器主要由工作方式寄存器TMODTMOD、控制寄存器、控制寄存器TCONTCON和初值寄存器和初值寄存器TLXTLX、

2、THXTHX等等工作部件组成。工作部件组成。Company Logo等效逻辑结构图等效逻辑结构图Company Logo1 1工作方式寄存器(工作方式寄存器(TMOD 89H)TMOD 89H)位位D7D6D5D4D3D2D1D0位符号位符号GATEC/TM1M0GATEC/TM1M0T1方式字段方式字段T0方式字段方式字段 GATEGATE:门控位。:门控位。GATE=0 GATE=0 启动不受启动不受 /INT0/INT0或或 /INT1/INT1的控制;的控制;GATE=GATE=1 1 启动受启动受 /INT0/INT0 或或 /INT1/INT1 的控制。的控制。C/C/:外部计数器

3、外部计数器 /定时器方式选择位。定时器方式选择位。C/=0 C/=0 定时方式;定时方式;C/C/=1=1 计数方式。计数方式。M1M0M1M0:工作模式选择位。:工作模式选择位。TTTTMODCompany LogoM1M0:工作模式选择位。:工作模式选择位。M1M1 M0M0工作方式工作方式 方式说明方式说明 0 0 0 0方式方式0 01313位定时器位定时器/计数器计数器 0 0 1 1方式方式1 11616位定时器位定时器/计数器计数器 1 1 0 0方式方式2 2具有自动重装初值的具有自动重装初值的8 8位定位定时器时器/计数器计数器 1 1 1 1方式方式3 3T0T0为两个独立

4、的为两个独立的8 8位计数器,位计数器,T1T1为波特率发生器为波特率发生器Company Logo2、初值寄存器、初值寄存器 TH0,TL0,TH1,TL151子系列单片机内有子系列单片机内有两个两个十六位十六位增一增一 定时定时/计数器计数器TH0计数值高八位计数值高八位TL0计数值低八位计数值低八位TH1计数值高八位计数值高八位TL1计数值低八位计数值低八位最大计数器值最大计数器值M65535Company Logo3 3定时定时/计数器控制寄存器(计数器控制寄存器(TCON 88H)TCON 88H)位位D7D6D5D4D3D2D1D0位符号位符号TF1TR1TF0TR0IE1IT1I

5、E0IT0TR0TR0:定时:定时 /计数器计数器0 0运行控制位。软件置位运行控制位。软件置位/复位。与复位。与GATEGATE有关有关分两种情况:分两种情况:GATE=0 GATE=0 时:若时:若TR0=1TR0=1,开启,开启T0T0;若;若TR0=0TR0=0,停止,停止T0T0。GATE=1 GATE=1 时:若时:若TR0=1 TR0=1 且且/INT0=1/INT0=1时,开启时,开启T0T0;若若TR0=1 TR0=1 但但 /INT0=0/INT0=0,则不能开启,则不能开启T0T0。若若TR0=0TR0=0,停止停止T0T0计数。计数。TR1TR1:定时:定时 /计数器计

6、数器1 1运行控制位。用法与运行控制位。用法与TR0TR0类似。类似。TF0/TF1:TF0/TF1:定时定时/计数溢出标志。计数溢出标志。1:有溢出,:有溢出,0:无溢出:无溢出IE0/IE1:IE0/IE1:外部中断请求标志。外部中断请求标志。1 1:有请求,:有请求,0 0:无请求:无请求IT0/IT1:IT0/IT1:外部中断触发方式。外部中断触发方式。1 1:下降沿,:下降沿,0 0:低电平:低电平Company Logo二、定时器二、定时器/计数器的工作方式计数器的工作方式工作方式工作方式 M1M0=00M1M0=00 工作方式工作方式0 0:1313位计数。位计数。THTH的的8

7、 8位和位和TLTL的低的低5 5位位Company Logo在工作方式在工作方式0 0下,计数器的计数值由下式确定:下,计数器的计数值由下式确定:2 21313-X=8192-X-X=8192-X计数值范围是:计数值范围是:1 181928192(2 21313)定时器的定时值由下式确定:定时器的定时值由下式确定:T=NT=N*Tcy=(8192-X)Tcy=(8192-X)*TcyTcy 例:单片机晶振频率例:单片机晶振频率fosc=12MHZ定时器定时器0定时定时1MS,采用,采用方式方式0时,时,TCON,TMOD,TH0,TL0的值分别是:的值分别是:TCON=0 x10TMOD=0

8、 x00TH0=(81921000)/32TL0=(81921000)%32Company Logo工作方式的应用工作方式的应用:【例】设单片机晶振频率设单片机晶振频率fosc=6MHZfosc=6MHZ,使用定时,使用定时器器1 1以方式以方式0 0产生周期为产生周期为600s600s的等宽方波脉冲,的等宽方波脉冲,并由并由P1.7P1.7输出,以输出,以查询方式查询方式完成。完成。解:(1)计算计数初值计算计数初值.欲产生周期为欲产生周期为600s600s的等的等宽方波脉冲,只需在宽方波脉冲,只需在P1.7P1.7端以端以300s300s为周期交替为周期交替输出高低电平即可,因此定时时间应

9、为输出高低电平即可,因此定时时间应为300s300s。设待求计数初值为设待求计数初值为N N,则:,则:(2 21313-N-N)2 21010-6-6=300=3001010-6-6N=8042=1F6AHN=8042=1F6AH01010B B用用T1T1实现。将低实现。将低5 5位位01010B=0A01010B=0A写入写入TL1TL1,将高,将高8 8位位有效值有效值11111011B=FBH11111011B=FBH写入写入TH1TH1中。中。Company Logo(2 2)TMODTMOD初始化初始化为把定时为把定时/计数器计数器1 1设定为方式设定为方式0 0,则,则M1M0

10、=00M1M0=00。为实现定时功能应使。为实现定时功能应使C/T=0C/T=0,为实现,为实现内部定时器启动应使内部定时器启动应使GATE=0GATE=0,因此设定工作方,因此设定工作方式控制寄存器式控制寄存器TMOD=00HTMOD=00H。(3 3)由)由TR1TR1启动和停止定时器启动和停止定时器TR1=1TR1=1为启动,为启动,TR1=0TR1=0为停止为停止Company LogoC语言参考程序语言参考程序 v#include /包含特殊功能寄存器库包含特殊功能寄存器库v sbit P1_7=P17;/定义定义P1.7口,程序中用口,程序中用P1_7代替代替/P1.7。v voi

11、d main()/主函数主函数v v IE=0 x00;/关中断关中断v TMOD=0 x00;/工作方式设定工作方式设定v TR0=1;/启动定时启动定时v for(;)/无限循环体无限循环体v v TH1=0 xFB;TL1=0 x0A;/计数初值设定计数初值设定v do while (!TF1)/查询是否溢出查询是否溢出,当当TF0=1时溢出来,则时溢出来,则跳出跳出do-while循环。循环。v P1_7=!P1_7;TF1=0;/溢出,溢出,P1.7取反,中断标志取反,中断标志TF1清清0。v v Company Logo中断方式中断方式完成完成v#include /包含特殊功能寄存

12、器库包含特殊功能寄存器库v sbit P1_7=P17;/定义定义P1.7口,程序中用口,程序中用P1_7代替代替P1.7。v void main()/主函数主函数v v TMOD=0 x00;/工作方式设定工作方式设定v TR0=1;v TH1=0 xFB;v TL1=0 x0A;v ET0=1;v EA=1;v while(1);v/启动定时启动定时v Void T_0()interrupt 1 using 3v P1_7=!P1_7;v TH1=0 xFB;v TL1=0 x0A;v Company Logo2.2.定时定时/计数器工作方式计数器工作方式1 1 M1M0=01 P3.4P

13、3.2Company Logov在工作方式在工作方式1 1下,计数器的计数值由下式确定:下,计数器的计数值由下式确定:2 21616-X=65536-X-X=65536-X计数值范围是:计数值范围是:1 16553665536(2 21616)定时时间长;定时时间长;时器的定时值由下式确定:时器的定时值由下式确定:T=NT=N*Tcy=(65536-X)Tcy=(65536-X)*TcyTcy 定时计数器的工作方式1与方式0基本相同,区别只是方式0是13位计数器,而方式1为了16位计数器。当要求定时时间较长,13位计数器不能满足要求时,可改用方式1,用16位计数器计数。Company Logo

14、工作方式1 应用【例】设单片机晶振频率fosc=6MHZ,使用定时器1以方式1产生周期为600s的等宽方波脉冲,并由P1.7输出,以查询方式完成。该题目就是用方式1实现例5-1的功能。原理与例5-1相似,只需修改工作方式和计数初值设置即可。Company Logov(1)计算计数初值计算计数初值v欲在欲在P1.7引脚输出周期为引脚输出周期为600s的等宽方波脉冲,只需在的等宽方波脉冲,只需在P1.7端交替输端交替输出出300s的高低电平即可,因此定时时间应为的高低电平即可,因此定时时间应为300s。设计数初值为。设计数初值为N,则:则:v(65536-N)210-6=30010-6vN=653

15、86v将计数初值将计数初值N的低的低8位位6AH写入写入TL1;将计数初值;将计数初值N的高的高8位位1FH写入写入TH1。v(2)TMOD初始化初始化v题目要求定时器题目要求定时器/计数器计数器1为工作方式为工作方式1,所以,所以M1M0=01;为实现定时功;为实现定时功能应使能应使C/=0;为实现定时器内启动,应使;为实现定时器内启动,应使GATE=0。此题目不涉及定时。此题目不涉及定时器器/计数器计数器0,为方便起见,设其各控制位均为,为方便起见,设其各控制位均为0。则工作方式控制寄存器。则工作方式控制寄存器TMOD=10H。v(3)启动和停止控制启动和停止控制v因为定时器因为定时器/计

16、数器计数器1作定时器,故当作定时器,故当TR1=1时,启动计数;当时,启动计数;当TR1=0时,时,停止计数。停止计数。v(4)中断的开放中断的开放/禁止禁止v题目中要求用查询方式检查题目中要求用查询方式检查T1的计数溢出状态,故设置的计数溢出状态,故设置IE=00H,以关中,以关中断。断。Company Logo3 3、定时、定时/计数器工作方式计数器工作方式2 2 M1M0=10初值自动重装,将初值自动重装,将TH中的数值装入中的数值装入TL中。中。Company Logov工作在方式下,计数器的计数值由下式确定:工作在方式下,计数器的计数值由下式确定:2 28 8-X=256-X-X=2

17、56-X 计数范围为计数范围为:1 1256256 定时准确定时准确v定时器的定时值由下式确定:定时器的定时值由下式确定:T=NT=N*Tcy=(256-X)Tcy=(256-X)*TcyTcy Company Logo工作方式的应用工作方式的应用【例例】使用定时器使用定时器T0T0以方式以方式2 2产生产生200200微秒定时,在微秒定时,在P1.0P1.0输出周期为输出周期为400400微秒的连续方波。已知晶振频率微秒的连续方波。已知晶振频率fosc=6MHzfosc=6MHz。(1 1)计算计数初值)计算计数初值(256-N256-N)2 21010-6-6=200=2001010-6-

18、6 N=156=9CHN=156=9CH(2 2)TMODTMOD初始化初始化工作方式工作方式2 2时,时,M1M0=10M1M0=10,实现定时功能,实现定时功能C/T=0C/T=0,内部启动内部启动GATE=0GATE=0。定时器。定时器1 1不用,无关位设定为不用,无关位设定为0 0,可得可得TMOD=02HTMOD=02H。(3)允许中断)允许中断(4)TR0 启动定时启动定时Company Logov C语言参考程序:语言参考程序:v#include /包含特殊功能寄存器库包含特殊功能寄存器库v sbit P1_0=P10;/定义定义P1.0口,程序中用口,程序中用P1_0代替代替P

19、1.0。v void main()/主函数主函数v TCON=0 x00 /清清TCON,定时器,定时器中断标志清零及不允许计数中断标志清零及不允许计数v TMOD=0 x02;/设定时器设定时器T0工作方式工作方式2v TH0=0 x9c;TL0=0 x9c;/设初值设初值v EA=1;ET0=1;/开中断开中断v TR0=1;/启动计数启动计数v while(1);/无限循环无限循环,结束主函数结束主函数v v void time0_int(void)interrupt 1 /中断函数中断函数v P1_0=!P1_0;Company Logo、定时、定时/计数器工作方式计数器工作方式 功能

20、多功能多当当M1M1,M0=11M0=11时,定时时,定时/计数器处于工作方式计数器处于工作方式3 3,此时,定时此时,定时/计数器的等效电路如图所示计数器的等效电路如图所示 Company Logo当当T0T0工作于方式工作于方式3 3时,时,T1T1只能工作在方式只能工作在方式0 0、方式、方式1 1或或方式方式2 2,并且由于已没有计数溢出标志位,并且由于已没有计数溢出标志位TF1TF1可供使可供使用,只能把计数溢出直接送给串行口,作串行口的用,只能把计数溢出直接送给串行口,作串行口的波特率发生器使用。等效电路图如下波特率发生器使用。等效电路图如下 波波特特率率发发生生器器Company

21、 Logo在使用定时在使用定时/计数器时,应做好计数器时,应做好4件事:v 设置设置TMODTMOD以选择工作方式;以选择工作方式;v 计算并设置计数初值计算并设置计数初值THX,TLXTHX,TLX;v 设置设置IEIE、IPIP以规定中断的开放以规定中断的开放/禁止及优先级;禁止及优先级;v 设置设置TCONTCON以启动以启动/停止定时停止定时/计数器的工作计数器的工作。Company Logo工作方式的应用工作方式的应用【例】假设有一个用户系统中已使用了两个外部中断假设有一个用户系统中已使用了两个外部中断源源,并置定时器并置定时器 T1 T1 于方式于方式 2,2,作串行口波特率发作串

22、行口波特率发生器用生器用,现要求再增加一个外部中断源现要求再增加一个外部中断源,当有中断当有中断时,累加器加时,累加器加1 1。并由。并由P1.0 P1.0 口输出一个口输出一个5KHz5KHz的方波的方波(假设晶振频率为(假设晶振频率为 6 MHz6 MHz)。)。Company Logo思路思路 在不增加其它硬件开销时,可把定时/计数器T0置于工作方式3,利用外部引脚T0端作附加的外部中断输入端,把TL0预置为0FFH,这样在T0端出现由1至0的负跳变时,TL0溢出,申请中断,相当于边沿触发的外部中断源。在方式3下,TH0总是作8位定时器用,可以靠它来控制由P1.0输出的5kHz方波。由P

23、1.0输出5kHz的方波,即每隔100s使P1.0求反一次。则TH0的初始值:(256-N)210-6=10010-6 N=206Company LogovC语言参考程序:语言参考程序:v#include /包含特殊功能寄存器库包含特殊功能寄存器库vsbit P1_0=P10;/定义定义P1.0口,程序中用口,程序中用P1_0代替代替P1.0vvoid main()/主函数主函数vvTMOD=0 x27;/置置T0工作方式工作方式3,TL0计数器方式;计数器方式;TH0为为8位定位定时器时器vTL0=0 xFF;/送初值,用于外部引脚送初值,用于外部引脚T0口(口(P3.4)做新增外部中)做新

24、增外部中断断vTH0=206;/送定时送定时100s的初值的初值vTL1=BAUD;/BAUD是根据波特率要求设置的常数是根据波特率要求设置的常数vTH1=BAUD;vTCON=0 x55;/启动定时器启动定时器 T0、T1,置边沿触发置边沿触发vIE=0 x9F;/开放全部中断开放全部中断vwhile(1);/无限循环,结束主函数无限循环,结束主函数vvvoid TL0INT(void)interrupt 1 /中断函数中断函数,处理新增的外部中断处理新增的外部中断源源vvTL0=0 xFF;/外部引脚外部引脚T0引起中断处理程序引起中断处理程序v vvoid TH0INT(void)int

25、errupt 3 /中断函数中断函数,处理输出处理输出5kHz的方的方波波 v v TH0=206;/重送初值重送初值v P1_0=!P1_0;/P1.0口取反口取反v Company Logo5.5.计数器功能计数器功能v当当C/T1时,多路开关接通计数器引脚时,多路开关接通计数器引脚TX,外,外部计数脉冲由引脚输入。部计数脉冲由引脚输入。v每一个脉冲过来,计数器的寄存器单元加一。每一个脉冲过来,计数器的寄存器单元加一。v加满之后溢出,满值会根据不同的方式而各不相加满之后溢出,满值会根据不同的方式而各不相同。同。v计数方式也受计数方式也受GATE位控制。位控制。v计数溢出后需重装初值。计数溢

26、出后需重装初值。Company Logo例:例:T0控制控制LED实现二进制计数实现二进制计数 v本例对按键的计数不本例对按键的计数不使用查询法,不使用使用查询法,不使用外部中断函数,不使外部中断函数,不使用定时或计数中断函用定时或计数中断函数。而是启用了计数数。而是启用了计数器,连接在器,连接在T0引脚的引脚的按键每次按下时,会按键每次按下时,会使计数寄存器的值递使计数寄存器的值递增,其值通过增,其值通过LED以以二进制形式显示二进制形式显示 Company Logov#includev void main()v vTMOD=0 x05;/定时器定时器0为计数器,工作方式为计数器,工作方式1

27、,最大计数值,最大计数值65535vTH0=0;/初值为初值为0vTL0=0;vTR0=1;/启动定时器启动定时器vwhile(1)vvP1=TH0;vP2=TL0;vv Company Logo练习:计数器练习:计数器v对对P3.5端口进行脉冲计数,计数满端口进行脉冲计数,计数满100次后产次后产生中断,在生中断,在P1端口输出端口输出100的二进制值。的二进制值。Company LogoMCS51单片机有两个定时器计数器,当它们选择计数工作方式时,T0或T1引脚上的负跳变将使T0或T1计数器加1,若把定时器计数器设置成计数工作方式,计数初值设定为满量程,一旦计数从外部引脚输入一个负跳变信号

28、,计数器To或T1加1,产生溢出中断,这样,便可把外部计数输入端T0(P34)或T1(P35)扩展为外部中断源输入。Company Logov C语言参考程序:语言参考程序:v#include /包含特殊功能寄存器库包含特殊功能寄存器库v#define uchar unsigned char /定义数据类型定义数据类型v uchar i;/定义变量定义变量i,作为存放中断函数中加作为存放中断函数中加1的记录。的记录。v void main()/主函数主函数v v TMOD=0 x60;/T1方式方式2,计数器,计数器v TL1=0 xFF;/设初值满量程设初值满量程v TH1=0 xFF;v

29、TR1=1;/启动启动T1计数计数v ET1=1;/T1中断允许中断允许v EA=1;/CPU中断开放中断开放v while(1);/无限循环,结束主函数无限循环,结束主函数v v void INT(void)interrupt 3 /中断函数中断函数v v i+;/中断加中断加1处理处理v P1=i;/将结果送将结果送P1口口v Company Logo四、全自动洗衣机定时控制四、全自动洗衣机定时控制Proteus仿真仿真v洗衣机中所需的定时功能并不复杂,可以利用单洗衣机中所需的定时功能并不复杂,可以利用单片机提供的定时器方便实现。设洗衣机有三段定片机提供的定时器方便实现。设洗衣机有三段定时

30、时间,分别为:进水阶段定时时时间,分别为:进水阶段定时2秒,洗涤阶段秒,洗涤阶段定时定时4秒,甩干阶段定时秒,甩干阶段定时2秒。并分别用三个秒。并分别用三个LED发光二极管表示进水、洗涤、甩干三个环节发光二极管表示进水、洗涤、甩干三个环节的工作状态。其中如果发光二极管的工作状态。其中如果发光二极管A亮,表示进亮,表示进水工作正在进行;发光二极管水工作正在进行;发光二极管B亮,表示洗涤工亮,表示洗涤工作正在进行;发光二极管作正在进行;发光二极管C亮,表示甩干工作正亮,表示甩干工作正在进行。发光二极管熄灭时,说明相应的定时已在进行。发光二极管熄灭时,说明相应的定时已到,工作停止。图到,工作停止。图

31、5-7给出了给出了Proteus仿真电路仿真电路图。图。Company LogoCompany Logov图图5-6中,中,S表示洗衣机启动开关,开关按表示洗衣机启动开关,开关按下洗衣机开始工作。首先是进水定时控制,下洗衣机开始工作。首先是进水定时控制,表示正在进水的表示正在进水的LED发光二极管发光二极管A点亮。当点亮。当进水控制的定时时间到时,进水工作停止,进水控制的定时时间到时,进水工作停止,发光二极管发光二极管A灭灯;接着开始洗涤工作定时,灭灯;接着开始洗涤工作定时,发光二极管发光二极管B点亮;洗涤工作结束后,开始点亮;洗涤工作结束后,开始甩干工作定时,发光二极管甩干工作定时,发光二极

32、管C点亮。当洗衣点亮。当洗衣功能结束时,三个指示灯都熄灭,表示洗衣功能结束时,三个指示灯都熄灭,表示洗衣工作结束,并接通扬声器工作结束,并接通扬声器LS1鸣声提醒。鸣声提醒。Company LogoC语言参考程序语言参考程序 v#include /包含包含51单片机寄存器单片机寄存器定义的头文件定义的头文件v sbit P20=P20;/将将P20位定义为位定义为P2.0引脚引脚v sbit P37=P37;/将将P37位定义为位定义为P3.7引脚引脚v unsigned char Countor;/设置全局变量,储存定时器设置全局变量,储存定时器T1中中断次数断次数v unsigned ch

33、ar f=0;/设置全局变量,作为区设置全局变量,作为区分不同阶段的定时分不同阶段的定时v void delay1()/延时函数延时函数v v int q;v for(q=0;q500;q+);v v void main(void)/主函数主函数v v if(P20=0)/若若P2.0=0,说明键按下,执行语句,否说明键按下,执行语句,否则一直等待。则一直等待。v v delay1();/有键按下,延时去抖动有键按下,延时去抖动v if(P20=0)/再判有键按下再判有键按下Company Logov v P1=0 x0e;/A灯亮,开始放水定时灯亮,开始放水定时v EA=1;/开总中断开总中

34、断v ET0=1;/定时器定时器T0中断允许中断允许 v TMOD=0 x01;/使用定时器使用定时器T0的模式的模式1v TH0=(65536-46083)/256;/定时器定时器T0的高的高8位赋初值位赋初值,定定时时50msv TL0=(65536-46083)%256;/定时器定时器T0的高的高8位赋位赋初值初值v TR0=1;/启动定时器启动定时器T0v v while(1);/无限循环等待中断无限循环等待中断 v v v void Time0(void)interrupt 1 using 0Company Logov v if(f=0)/f为标志变量,为标志变量,若若f=0,执行第

35、,执行第1阶段定时(放水功能)阶段定时(放水功能)v v Countor+;/Countor加加1v if(Countor=40)/若累计满若累计满40次,即计时满次,即计时满2sv v P1=0 x0d;/A灯灭,结束放水,灯灭,结束放水,B灯亮,开始洗涤灯亮,开始洗涤v Countor=0;/将将Countor清清0,重新从,重新从0开始计数开始计数v f+;/f加加1,准备第,准备第2阶段的定时阶段的定时v v v if(f=1)/若若f=1,执行第,执行第2阶段定时(洗涤功能)阶段定时(洗涤功能)v v Countor+;/Countor加加1v if(Countor=80)/若累计满

36、若累计满80次,即计时满次,即计时满4Sv v P1=0 x0B;/B灯灭,结束洗涤,灯灭,结束洗涤,C灯亮,开始甩干灯亮,开始甩干v Countor=0;/将将Countor清清0,重新从,重新从0开始计数开始计数v f+;/f加加1,准备第,准备第3阶段的定时阶段的定时v v v if(f=2)/若若f=2,执行第,执行第3阶段定时(甩干功能)阶段定时(甩干功能)Company Logov v Countor+;/Countor加加1v if(Countor=40)/若累计满若累计满60次,即计时次,即计时满满3Sv v P1=0 x07;/灯全灭,洗衣机结束工作灯全灭,洗衣机结束工作v

37、Countor=0;/将将Countor清清0,重新从,重新从0开始计数;开始计数;v f+;/f加加1,准备进入第,准备进入第4阶段。阶段。v v Company Logov if(f=3)/若若f=3,执行进入第,执行进入第4阶段工作(扬声器提醒)阶段工作(扬声器提醒)v v P1=0 x07;/灯全灭,洗衣机结束工作灯全灭,洗衣机结束工作v P37=P37;/扬声器提醒扬声器提醒v Countor=0;/将将Countor清清0,重新从,重新从0开始计数;开始计数;v v TH1=(65536-46083)/256;/定时器定时器T1的高的高8位重新赋初值位重新赋初值v TL1=(655

38、36-46083)%256;/定时器定时器T1的低的低8位重新赋初位重新赋初值值v Company Logo单片机音乐单片机音乐 声音的频谱范围为声音的频谱范围为20Hz-200KHz20Hz-200KHz,人的,人的耳朵能辨别的声音频率大概在耳朵能辨别的声音频率大概在200Hz-200Hz-20KHz20KHz。音符音符 1 2 3 4 5 6 71 2 3 4 5 6 7节拍节拍 1/8 1 2 4 1/8 1 2 4结束符和休止符结束符和休止符:00H FFH:00H FFHC调中音调中音 1 的频率为的频率为 523HzCompany LogoC调音符与定时方式调音符与定时方式1初值,

39、时钟频率初值,时钟频率12MHz音符音符C调调低音低音频率频率Hz计数器计数器初值初值H中音中音频率频率Hz计数器计数器初值初值H高音高音频率频率Hz计数器计数器初值初值H1262F88B523FC431045FE211#277F8F2553FC781106FE3C2293F95B586FCAB1171FE552#311F9B7621FCDB1241FE6D3329FA14658FD081316FE844349FA466697FD331393FE994#370FAB9739FD5B1476FEAD5392FB03783FD811563FEC05#415FB4A830FDA51658FED264

40、40FB8F879FDC71755FEE36#466FBCF931FDE71860FEF37494FC0B987FE051971FF02Company LogoCompany Logo图6-7 音乐驱动Company Logov用用T0T0方式方式1 1产生指定频率,通过产生指定频率,通过P2.5P2.5驱动蜂驱动蜂鸣器,演奏指定音符,晶振频率为鸣器,演奏指定音符,晶振频率为6MHz6MHz。v用用T1T1方式方式1 1控制音符节拍,节拍以控制音符节拍,节拍以1/81/8拍为拍为基准,长度由基准,长度由BASE BASE1BASE BASE1决定。其它节拍决定。其它节拍为该节拍的为该节拍的N N倍,用循环倍,用循环N N次次1/81/8基准节拍实基准节拍实现。现。v表表6-16-1列出了列出了C C调各音符频率与调各音符频率与T0T0初值初值N N的对的对照表。照表。v建立音调初值表建立音调初值表TONETONE,节拍初值表,节拍初值表BEATBEAT

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!