5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 1024|回复: 4
打印 上一主题 下一主题

航模灯控 求大佬改下这个51单片机代码

[复制链接]
跳转到指定楼层
楼主
发表于 2019-8-4 21:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这是航模灯带控制器的代码,只需要三个元件,原贴http://www.moz8.com/forum.php?mod=viewthread&tid=38765
我已经焊好,刷好程序成功了,第五通道可以开关,输出4.5v,但是,我想给他做成会闪烁吧,请问代码在哪里改!求大神
程序也很简单,如下:

#include<REG52.H> //51单片机头文件
#define count 1500 //定时1.5毫秒
#define TH_M1 (65536-count)/256 //定时器T0模式1,高8位初值
#define TL_M1 (65536-count)%6 //定时器T0模式1,低8位初值
sbit PWM_IN=P3^4; //PWM波形输入端口
sbit LED_OUT=P3^3; //LED控制端口
//*************主函数**************
void main()
{
IE=0x82; //启用T0中断
TMOD=0x01; //定时器T0工作模式1
LED_OUT=0; //先设置LED输出为关

while(1) //无限循环检测
{
if(!PWM_IN) //如果脉冲是低电平
{

while(!PWM_IN); //等待脉冲到高电平
TH0=TH_M1; //初始定时器高8位
TL0=TL_M1; //初始定时器低8位
TR0=1; //启动定时器
while(!TF0); //等待1.5ms后定时器中断
TF0=0; //中断标志清零
if(PWM_IN==1) //1.5ms后检测PWM脉冲是不是高电平
{
LED_OUT=1; //如果是高电平,输出打开
}
else LED_OUT=0; //否则是低电平,输出关闭
}
}
}






欢迎继续阅读楼主其他信息

来自安卓客户端来自安卓客户端
沙发
发表于 2019-8-5 10:07 | 只看该作者
楼主,这种级别的编程可以看下最简单的教程,估计一个下午就可以摸清楚的,还可以多学一门技术
3
发表于 2019-8-5 10:49 | 只看该作者
源代码要经过汇编,编译成二进制文件,然后才能由烧写器写入单片机。
4
发表于 2019-8-5 11:26 | 只看该作者
你这个就是用定时器捕获PWM 信号嘛,高与1500就开,低了就关    很简单啊,加个延时程序就搞定了,   if(PWM_IN==1) //1.5ms后检测PWM脉冲是不是高电平
{
LED_OUT=1; //如果是高电平,输出打开
  for (x=0; x<1000;x++);//开一会
LED_OUT=0;
  for (x=0; x<1000;x++);
}
                              
5
 楼主| 发表于 2019-8-5 12:23 | 只看该作者
myisdk 发表于 2019-8-5 11:26
你这个就是用定时器捕获PWM 信号嘛,高与1500就开,低了就关    很简单啊,加个延时程序就搞定了,   if(PW ...

谢谢,晚上回去试试
来自安卓客户端来自安卓客户端
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表