5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 航模灯控 求大佬改下这个51单片机代码 [打印本页]

作者: 瓢万猖先生    时间: 2019-8-4 21:52
标题: 航模灯控 求大佬改下这个51单片机代码
这是航模灯带控制器的代码,只需要三个元件,原贴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; //否则是低电平,输出关闭
}
}
}

(, 下载次数: 3)
(, 下载次数: 11)
(, 下载次数: 1)
(, 下载次数: 5)
(, 下载次数: 1)

作者: fobyellow    时间: 2019-8-5 10:07
楼主,这种级别的编程可以看下最简单的教程,估计一个下午就可以摸清楚的,还可以多学一门技术
作者: grzsn    时间: 2019-8-5 10:49
源代码要经过汇编,编译成二进制文件,然后才能由烧写器写入单片机。
作者: myisdk    时间: 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++);
}
                              
作者: 瓢万猖先生    时间: 2019-8-5 12:23
myisdk 发表于 2019-8-5 11:26
你这个就是用定时器捕获PWM 信号嘛,高与1500就开,低了就关    很简单啊,加个延时程序就搞定了,   if(PW ...

谢谢,晚上回去试试





欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/) Powered by Discuz! X3.3