跪求。。。。用C51单片机输出频率及占空比可调的方波,分别用两个按键调增大和减小,并用三个八位数码管显
一,频率可调,调整范围从2Hz到400Hz,分别用两个按键增加和减小(步进单位待定),用三个8段数码管显示频率,一,宽度可调,调整范围从0.01ms到0.5ms,分别用两...
一, 频率可调,调整范围从2Hz到400Hz,分别用两个按键增加和减小(步进单位待定),用三个8段数码管显示频率,
一, 宽度可调,调整范围从0.01ms到0.5ms,分别用两个按键增加和减小(步进单位待定),用三个8段数码管显示脉冲宽度,
要求调节频率和宽度互不影响 展开
一, 宽度可调,调整范围从0.01ms到0.5ms,分别用两个按键增加和减小(步进单位待定),用三个8段数码管显示脉冲宽度,
要求调节频率和宽度互不影响 展开
3个回答
展开全部
这个程序很简单的,提示你一下,但是不会给你写,因为会害了你,频率是定时器控制的
TH0=(65536-50000)/256;
TL1=(65536-50000)%256;
这样就能计时50ms;
{
//中断里这样写
a++;
}
if(a<=n)
{
P0.1=1;
//用按键控制n的值就能实现脉宽
}
if(a<(m-n)&&a>n)
{
P0.1=0;
//用按键去控制m就能实现周期也就是频率的控制
}
a用完了清零
这样你就能完成你要的功能了
至于按键扫描,或者是数码管显示,还有定时器的初始化配置以及中断程序,自己解决吧
TH0=(65536-50000)/256;
TL1=(65536-50000)%256;
这样就能计时50ms;
{
//中断里这样写
a++;
}
if(a<=n)
{
P0.1=1;
//用按键控制n的值就能实现脉宽
}
if(a<(m-n)&&a>n)
{
P0.1=0;
//用按键去控制m就能实现周期也就是频率的控制
}
a用完了清零
这样你就能完成你要的功能了
至于按键扫描,或者是数码管显示,还有定时器的初始化配置以及中断程序,自己解决吧
追问
嗯,十分谢谢,我就是想找人给点提示,不过能给我解释下这两个IF语句的意思吗?再次谢谢
if(an)
为啥这样用?
追答
在每次进入中断的时间是50ms的情况下是不是高电平时间就是n*50ms而低电平时间就是(m-n)*50ms,这样m*50ms就是每个周期的时间而n*50ms是每个周期高电平时间,哪(m-n)*50自然及时每个走起低电平的时间,你通过更改m,n的值不就能调整周期和脉宽了么
展开全部
你这个程序说实话不怎么好写,网上的朋友一般不会花时间帮你写的,建议你找你们朋友中搞程序方面比较在行的帮你写。。。
更多追问追答
追问
朋友里都没搞这个的,能给点提示怎么设计么?
追答
上网搜“基于单片机的波形发生器”,会有些相类似的设计方案,希望对你有帮助。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想完全可以.
追问
怎样设计呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询