标题: 无线遥控PT2262/2272M4连接单片机程序问题 [打印本页]

作者: 亡羊补牢    时间: 2019-2-11 21:02
标题: 无线遥控PT2262/2272M4连接单片机程序问题
我把无线非锁接收板接到单片机,,来控制PWM的发射和终止。但是按一下有时候可以发出,有时候按好几下都发不出,请高手解决,

#include "pwm_register.h"
#include "stdbool.h"
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
int n;

#define uchar unsigned char
        uchar i;
sbit D0 = P0^0;
sbit D1 = P0^1;
sbit D = P2^7;
sbit D3 = P0^3;
sbit VT=P0^4;
void LED_init()
{
              ENLED=0;
              ADDR3=0;
              ADDR2=0;
              ADDR1=0;
              ADDR0=0;
}
delay(uchar);
wb_int0() interrupt 0
{
  if(VT==0)
        {
          i=D;
        }
}
void main()
{

        EA=1;
        EX0=1;
        IT0=1;
        
        
        
        
         LED_init();
        while(1)
        {
               
        if(i==1)
        {
                delay(5);
                if(i==1)
                {        
        
                n++;
                        delay(10);
                if(n==1)
                {
        enable_xsfr();
        pwm_clock_speed(0);
  set_pwm_period(0x1000);
        set_pwm0_T1_T2_point(0x200,0x700);
        enable_pwm0();
        disable_xsfr();
  enable_pwm();
                }
               
                if(n==2)
        {
        disable_pwm();
        disable_pwm0();        
                n=0;
               
        }
        while(!D);
        delay(10);
        while(!D);
                }
        
        }
        }
}
delay(uchar x)
{
        uchar a,b;
        for(a=x;a>0;a--)
                for(b=200;b>0;b--);

}




作者: devcang    时间: 2019-2-12 10:42
按键的处理。。。。
作者: 亡羊补牢    时间: 2019-2-12 14:25
devcang 发表于 2019-2-12 10:42
按键的处理。。。。

是按键去消抖吗?
作者: 亡羊补牢    时间: 2019-2-12 20:17
devcang 发表于 2019-2-12 10:42
按键的处理。。。。

#include "pwm_register.h"
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
int n;
sbit D0        = P0^0;
sbit D1        = P0^1;
sbit D2        = P0^2;
sbit D3        = P0^3;
void LED_init()
{
        ENLED=0;
        ADDR3=1;
        ADDR2=1;
        ADDR1=1;
        ADDR0=0;
}

void delay10ms(void)
{
unsigned char a,b,c;
        for(c=1;c>0;c--)
           for(b=38;b>0;b--)
        for(a=130;a>0;a--);
}
void main()
{
        LED_init();

        while(1)
        {
                if(D0==1)
                {
                delay10ms();
                        if(D0==1)
                        {
                                n++;
    if(n==1)
                {
                enable_xsfr();
        pwm_clock_speed(0);
  set_pwm_period(0x1000);
        set_pwm0_T1_T2_point(0x200,0x700);
        enable_pwm0();
        disable_xsfr();
  enable_pwm();
       
                }                       
                if(n==2)
                {
                disable_pwm0();
         disable_pwm();
   n=0;
                }
                while(!D0);
                        delay10ms();
                        while(!D0);
                }
               
       
        }
               
               
        }
}
写了消抖的程序还是不行,能帮我看下主函数有问题没有谢谢
作者: areyouok    时间: 2019-2-12 22:55
消抖程序写了还是不行,
作者: yfpc2006    时间: 2019-2-13 00:44
个人建议您将4+1个接收输出通过限流电阻接一个发光二极管到GND,然后看一下遥控接收的状态是不是正确?如果这一部分没有问题的话,再去看单片机软件和硬件及连接。缩小问题范围。

另外看一下单片机输入端口是不是需要上拉电阻或下拉电阻。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1