您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 两个定时器蜂鸣器-一个控制频率-另一个控制时间
//同时利用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同一个频率持续的时间,间隔300ms依次输出1、10、//50、100、200、400、800HZ的方波#includereg52.h//52单片机头文件#includeintrins.h//包含有左右循环移位子函数的库#defineuintunsignedint//宏定义#defineucharunsignedcharsbitWaveout=P1^0;uchartt;uintfre,flag;uintFreq[]={1,10,50,100,200,400,800,1000}voidmain()//主函数{fre=50000;TMOD=0x11;//设置定时器0,定时器1为工作方式1TH0=(65536-fre)/256;TL0=(65536-fre)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断ET1=1;TR1=1;TR0=1;//启动定时器0while(1)//等待中断产生{if(tt=a){tt=0;Waveout=~Waveout;}}}voidtimer0()interrupt1//定时器0中断{TR0=0;//进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失TH0=(65536-fre)/256;TL0=(65536-fre)%256;tt++;}voidtimer1()interrupt3//定时器1中断用来产生300微秒时间定时{TH1=(65536-50000)/256;TL1=(65536-50000)%256;flag++;if(flag==6){flag=0;freq=Freq[i];}}
本文标题:两个定时器蜂鸣器-一个控制频率-另一个控制时间
链接地址:https://www.777doc.com/doc-1489399 .html