久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機使用兩個定時器實現間隔一段時間蜂鳴器響不同頻率并循環,但是代碼出現問題
[打印本頁]
作者:
jinchenglei
時間:
2018-11-26 19:07
標題:
51單片機使用兩個定時器實現間隔一段時間蜂鳴器響不同頻率并循環,但是代碼出現問題
本人想用51單片機控制蜂鳴器實現:蜂鳴器每間隔一段時間響一下,每次響的頻率主次升高,5次一循環。變量loop是大循環的時間變量。但是實際操作時候發現,不知道為什么loop最大到161就不再增加了,程序陷入死循環。想了很久也想不出來為什么,希望大佬不吝賜教,幫我找一下原因,謝謝!
TQ9U04ZMM6S_PTWF14{P.png
(253.72 KB, 下載次數: 29)
下載附件
模擬運行結果
2018-11-26 19:06 上傳
單片機代碼如下:
/*同時用兩個定時器控制蜂鳴器發聲,定時器0控制頻率,
定時器1控制同個頻率持續的時*/
#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;
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天堂久久av
|
精品一区二区三区四区外站
|
九九热精
|
日日夜夜精品视频
|
视频羞羞
|
欧美一级二级视频
|
夜夜精品浪潮av一区二区三区
|
亚洲 中文 欧美
|
精品综合
|
中文精品视频
|
不卡一区二区三区四区
|
久久91精品久久久久久9鸭
|
99精品免费视频
|
日本一道本视频
|
爱爱免费视频
|
国产激情免费视频
|
国产在线播
|
一区二区三区日韩精品
|
亚洲综合色网
|
91精品久久久久久久久
|
亚洲精品www久久久久久广东
|
91精品久久久久久久久
|
亚洲成人免费在线观看
|
欧美色综合一区二区三区
|
国产乱码精品一区二三赶尸艳谈
|
射久久
|
国产三区精品
|
国产免费福利小视频
|
成人在线电影网站
|
99热热
|
久久91
|
国产h在线
|
亚洲一区二区免费
|
欧美福利
|
久久99精品久久久久久狂牛
|
一区二区三区国产好的精
|
一区二区三区回区在观看免费视频
|
午夜一区二区三区
|
亚洲+变态+欧美+另类+精品
|
日本免费一区二区三区
|
www日本高清
|