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

标题: PWM转开关控制程序 [打印本页]

作者: pp1942    时间: 2021-3-18 20:59
标题: PWM转开关控制程序
最近需要高低电平控制外设,飞控的继电器输出没弄明白。刚好手头有闲置单片机,简单写了个PWM转IO控制程序。原程序为STC15F104E(对,就是那个外部中断有问题的单片机),程序仅1个延时参数,如有需要可根据不同单片机自行调整延时参数和扩展输出。
思路:死循环以下内容{内首先定义计数Count为0,输入PWM信号为低电平时无动作,输入PWM信号为高电平时以100us为单位计数,如果计数为15~25之间(1500us至2500us之间),则输出高电平,否则输出低电平}。
修改建议:1、不同单片机、时钟频率需更改100us延时参数;2、根据输出需要,可以将1000us至2000us之间分为若干时间段分别控制不同输出端口。

程序如下:
/*STC1F104E PWM->IO*/
//@11.0592MHz
#include<reg51.h>

sfr  P3M1  = 0xb1 ;
sfr  P3M0  = 0xb2 ;

sbit P_IN  = P3^5 ;
sbit P_OUT = P3^4 ;

unsigned char Count;

void Delay100us()
{
        unsigned char i, j;
        i = 2;
        j = 15;
        do
        {
                while (--j);
        } while (--i);
}

void main()
{
        P3M0 = 0x10 ;
        P3M1 = 0x20 ;

        while(1)
        {
                Count = 0;
                while(P_IN == 0);
                while(P_IN == 1)
                {
                        Count++;
                        Delay100us();
                }
                if(25>Count&&Count>15)
                {
                        P_OUT =1;
                }
                else
                {
                        P_OUT =0;
                }
        }
}

作者: lcw_0504    时间: 2021-3-18 21:06

不错不错,程序够简洁。
我更喜欢STC15W204S-SOP8。
作者: sha_hong    时间: 2021-3-18 22:07
现在片机的高级语言很好用啊。。。
作者: mvp1982    时间: 2021-11-14 09:19
我想把监控摄像头后方得五向按键模拟出来。遥控器可以用飞控模式切换模块,一路PWM控制五路开关分成五段控制分控的五种飞行模式,就是用这个思路,控制五路开关,把监控摄像头的五向案件模拟出来。

作者: 我又来了    时间: 2021-12-13 15:25
多谢楼主的慷慨,对于不会单片机程序来说是个天书,有它的电路图吗?幸苦楼主了!!!






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