使单片机交替输出1khz和2khz的方波使蜂鸣器报
答案:2 悬赏:0 手机版
解决时间 2021-12-02 19:24
- 提问者网友:欲望失宠
- 2021-12-02 14:02
使单片机交替输出1khz和2khz的方波使蜂鸣器报
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-12-02 15:35
#include
#define uchar unsigned char
uchar num,flag=0;
sbit pluse=P1^0;
void t0isr() interrupt 1
{
num++;
if(num>200)
{
num=0;
flag=~flag;
}
if(flag)pluse=~pluse;
else
{
if*num%2)pluse=~pluse;
}
}
main()
{
TMOD=0x02;
TH0=6
TL0=6;
TR0=1;
ET0=1;
EA=1;
while(1);
}追问交替时间为1s 用定时器实现 怎么弄追答将num调整一下就可以了。
#include
#define uchar unsigned char
#define uint unsigned int
uchar flag=0;
uint num=0;
sbit pluse=P1^0;
void t0isr() interrupt 1
{
num++;
if(num>4000)
{
num=0;
flag=~flag;
}
if(flag)pluse=~pluse;
else
{
if*num%2)pluse=~pluse;
}
}
main()
{
TMOD=0x02;
TH0=6
TL0=6;
TR0=1;
ET0=1;
EA=1;
while(1);
}追问可以用暂时函数分别对高低电平进行延时吗延时延时函数用定时器T0 工作方式1 帮帮忙追答用延时程序当然也是可以的,但那样的话时间不是很准确。
#define uchar unsigned char
uchar num,flag=0;
sbit pluse=P1^0;
void t0isr() interrupt 1
{
num++;
if(num>200)
{
num=0;
flag=~flag;
}
if(flag)pluse=~pluse;
else
{
if*num%2)pluse=~pluse;
}
}
main()
{
TMOD=0x02;
TH0=6
TL0=6;
TR0=1;
ET0=1;
EA=1;
while(1);
}追问交替时间为1s 用定时器实现 怎么弄追答将num调整一下就可以了。
#include
#define uchar unsigned char
#define uint unsigned int
uchar flag=0;
uint num=0;
sbit pluse=P1^0;
void t0isr() interrupt 1
{
num++;
if(num>4000)
{
num=0;
flag=~flag;
}
if(flag)pluse=~pluse;
else
{
if*num%2)pluse=~pluse;
}
}
main()
{
TMOD=0x02;
TH0=6
TL0=6;
TR0=1;
ET0=1;
EA=1;
while(1);
}追问可以用暂时函数分别对高低电平进行延时吗延时延时函数用定时器T0 工作方式1 帮帮忙追答用延时程序当然也是可以的,但那样的话时间不是很准确。
全部回答
- 1楼网友:往事埋风中
- 2021-12-02 16:07
用定时器可以输出频率的方波追问可以用延时高低电平的时间吧追答延时不是很准
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯