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

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

改下这段51单片机代码实现led闪烁

[复制链接]
跳转到指定楼层
楼主
发表于 2019-8-5 08:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么在这段航模灯控代码加一个闪烁!实现led灯带频闪


#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 09:10 | 只看该作者
void main()
{
        char n=0;
        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;              //中断标志清零
                        n++;
                        if(n>=50)//50个脉冲约1秒的周期
                                n=0;
                        if((PWM_IN==1)&&(n<25))       //1.5ms后检测PWM脉冲是不是高电平,
                                LED_OUT=1;  //如果是高电平,且n是前半周期,输出打开
                        else
                                LED_OUT=0;     //否则是低电平,输出关闭
                }
        }
}
3
 楼主| 发表于 2019-8-5 12:22 | 只看该作者
lcw_0504 发表于 2019-8-5 09:10
void main()
{
        char n=0;

谢谢,感谢,晚上去试试
来自安卓客户端来自安卓客户端
4
发表于 2019-8-5 14:21 | 只看该作者
66666666666666666666666666666
5
 楼主| 发表于 2019-8-6 23:22 | 只看该作者
lcw_0504 发表于 2019-8-5 09:10
void main()
{
        char n=0;

大佬能帮能输出个hex文件吗,,,,我自己编译不知道怎么总报错!是stc15f104e的头文件
来自安卓客户端来自安卓客户端
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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