概述
请问一下各位老铁,同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,我编写了一部分程序,但是不知道怎么在主程序里去实现功能。请各位老铁们帮帮忙看看,该怎么操作。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,sum,bee;
//uint flag;
int count;
sbit FM = P2^3;
void main()
{
TMOD = 0x11;//ÉèÖö¨Ê±Æ÷1ºÍ0Ϊ¹¤×÷·½Ê½1
TH0 = (65536-count)/256;
TL0 = (65536-count)%256;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
EA = 1;//¿ª×ÜÖжÏ
ET0 = 1;//¿ª¶¨Ê±Æ÷0ÖжÏ
TR0 = 1;//Æô¶¯¶¨Ê±Æ÷0
TF0 = 0;
ET1 = 1;//¿ª¶¨Ê±Æ÷1ÖжÏ
TR1 = 1;//Æô¶¯¶¨Ê±Æ÷1
TF1 = 0;
FM = bee;
while(1)
{
if(sum == 20)
{
sum = 0;
if(count/10000 == 0)
{
count = 0;
bee = ~bee;
}
}
TR0 = 1;
}
}
void exter1() interrupt 3
{
ET1 = 0;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
TF1 = 0;
sum++;
/* if(sum == 20)
{
sum = 0;
if(count/10000 == 0)
{
count = 0;
bee = 1;
}
}*/
ET1 = 1;
}
void exter0() interrupt 1
{
ET0 = 0;
TH0 = (65536-count)/256;
TL0 = (65536-count)%256;
TF0 = 0;
count++;
/* if(count/10000 == 0)
{
count = 0;
bee = 1;
}*/
//if()
ET0 = 1;
}
最后
以上就是多情小刺猬为你收集整理的同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,的全部内容,希望文章能够帮你解决同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复