欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機(jī)使用兩個(gè)定時(shí)器實(shí)現(xiàn)間隔一段時(shí)間蜂鳴器響不同頻率并循環(huán),但是代碼出現(xiàn)問(wèn)題
[打印本頁(yè)]
作者:
jinchenglei
時(shí)間:
2018-11-26 19:07
標(biāo)題:
51單片機(jī)使用兩個(gè)定時(shí)器實(shí)現(xiàn)間隔一段時(shí)間蜂鳴器響不同頻率并循環(huán),但是代碼出現(xiàn)問(wèn)題
本人想用51單片機(jī)控制蜂鳴器實(shí)現(xiàn):蜂鳴器每間隔一段時(shí)間響一下,每次響的頻率主次升高,5次一循環(huán)。變量loop是大循環(huán)的時(shí)間變量。但是實(shí)際操作時(shí)候發(fā)現(xiàn),不知道為什么loop最大到161就不再增加了,程序陷入死循環(huán)。想了很久也想不出來(lái)為什么,希望大佬不吝賜教,幫我找一下原因,謝謝!
TQ9U04ZMM6S_PTWF14{P.png
(253.72 KB, 下載次數(shù): 29)
下載附件
模擬運(yùn)行結(jié)果
2018-11-26 19:06 上傳
單片機(jī)代碼如下:
/*同時(shí)用兩個(gè)定時(shí)器控制蜂鳴器發(fā)聲,定時(shí)器0控制頻率,
定時(shí)器1控制同個(gè)頻率持續(xù)的時(shí)*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
uchar t=0;
uint f=0,fre=10000,loop=1;
void main()
{
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
TMOD=0x11;
TH0=(65535-fre)/256;
TL0=(65535-fre)%256;
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
beep=1;
while(1);//等待中斷
}
void frequence() interrupt 1//T0,frequence=10000/f
{
ET0=0;
TH0=(65535-fre)/256;
TL0=(65535-fre)%256;
if(t<=20)
{
if(loop>0&&loop<=40)
{
fre=10000;
beep=~beep;
}
if(loop>40&&loop<=80)
{
fre=6000;
beep=~beep;
}
if(loop>80&&loop<=120)
{
fre=3000;
beep=~beep;
}
if(loop>120&&loop<=160)
{
fre=1000;
beep=~beep;
}
if(loop>160&&loop<200)
{
fre=156;
beep=~beep;
P1=0xfe;
}
}
else
beep=1;
ET0=1;
}
void timer() interrupt 3//T1
{
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
t++;
if(t==40)
t=0;
loop++;
if(loop==200)
loop=0;
}
復(fù)制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1