单片机C程序:怎么让单片机输出一个方波的脉冲,并且它的高电平持续时间可以控制,是不是还要接D/A。。。
就是那种入门学习时用的51单片机,高电平的时间可以用延时,但怎么进行控制啊。。。请高人指点下,,急...
就是那种入门学习时用的51单片机,高电平的时间可以用延时,但怎么进行控制啊。。。请高人指点下,,急
展开
4个回答
展开全部
其实你说 的就是PWM方波,高电平宽度可以调节。
用定时器实现就可以了。
也可以用有PWM输出的单片机来实现。例如C8051F340等等。
用定时器实现就可以了。
也可以用有PWM输出的单片机来实现。例如C8051F340等等。
追问
再请问下你说的PWM方波是???定时器控制啊,好像很有理,,能不能帮我写下关键点的程序啊,呵呵呵,,,谢谢了
追答
sbit PWM_PIN= P1^0; //举例定义PWM输出为P1.0
uchar pwm_cnt; //用于计数
uchar pwm_level; //用于设置高电平宽度,100表示全高电平,0表示全低电平,50表示各占一半
定时器初始化:
TMOD =0X21;
TL0=0X8A;
TH0=0X00;
TR0=1;
EA=1;
/**********************************************************
T0中断函数
**********************************************************/
void time0(void) interrupt 1 using 1
{
TR0=0;
//-----------------------------------------------------
TH0 =(65536-2000)/256;
TL0 =(65536-2000)%256;
TR0=1;
pwm_cnt++;
if(pwm_cnt>=100)
{
pwm_cnt=0;
}
if(pwm_cnt<pwm_level)
{
PWM_PIN=1; //输出高电平,PWM_PIN可定义为你想要的管脚。
}
else
{
PWM_PIN=0; //输出低电平
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
51单片机只能通过控制i/o口输出电平高低输出方波了,不用D/A就可以实现啊,接俩按键,一个是高电平时间增加一个是减少,,,,动脑筋想想,不难实现的,祝你成功
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方波,是指高电平、低电平宽度相同的。
持续时间可控,即周期可控,也就是控制频率。
你找找单片机电子琴方面的资料吧。
我的百度空间里面也有。
持续时间可控,即周期可控,也就是控制频率。
你找找单片机电子琴方面的资料吧。
我的百度空间里面也有。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以选带PWM调制的51单片机,简单好用。附上份资料。重点第十章(295页)
追问
我点下载怎么没反应啊,,不知道下到哪里了,,,,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询