尝试一下发代码的功能

单片机飞行控制器程序
#include <STC12C5A60S2.h>
#include <intrins.h>
#include "IO.h"
#include "delay.h"
#include "pwm.h"
#include "ADC.h"
#include "function.h"
#include "uart.h"

#define uchar unsigned char
#define uint unsigned int
 
float a0,a1;


void main()
{
    uint i;
    PWM_init();                               //PWM初始化
    init();                                   //串口初始化
    while(1)
    {     
        
        STC_ADC();                        //ADC初始化函数
                                //*************AD数据处理 ***********
        for(i=0;i<50;i++)
        { 
            a0=a0+ADC_Get0();
            delay(5);
            a1=a1+ADC_Get1();
        }
        a0=a0/50.0;
        a1=a1/50.0;
        a0=(a0*5.0)/256.0;
        a1=(a1*5.0)/256.0;
                                //************************************
    
        if(a0>2.95&&a0<3.05&&a1>2.45&&a1<2.5)
        {
        PWM0_set_left (0);                //左桨pwm为0(不转)
        PWM1_set_right (0);                //右桨pwm为0(不转)
        left_r=0;                        //左桨方向
        left_b=1;                        //左桨刹车0是刹车
        right_r=0;                        //右桨方向
        right_b=1;                        //右桨刹车0是刹车
        }
        if(zidong_shoukong==1)            //手动判断
        {
            if(fan==0)                    //方向判断(该边视角判断)
            {
                pwm_straight0();          //向前走直线函数0
                pwm_back0();              //向后走直线函数0
                turn_left0();              //左转弯函数0
                turn_right0();              //右转弯函数0
                up_down();                  //上升下降函数
                left_right0();              //横桨的正转与反转0(左平移右平移)
            }
    
            if(fan==1)                    //方向判断(该边视角判断)
            {
                pwm_straight1();           //向前走直线函数1
                pwm_back1();               //向后走直线函数1
                turn_left1();               //左转弯函数1
                turn_right1();               //右转弯函数1
                up_down();                   //上升下降函数
                left_right1();               //横桨的正转与反转1(左平移右平移)
            }
        }
        if(zidong_shoukong==0)               //自动判断
        {
            if(flag==1);
            {
                ES=0;
                if(table=='0')               //串口接收'0'电机全部停转
                {
                between_b=0;     
                }
                if(table=='1')               //串口接收'1'直走
                {
                      PWM0_set_left (80);
                    PWM1_set_right (80);
                    left_r=0;
                    left_b=1;
                    right_r=0;
                    right_b=1;
                }
                if(table=='2')              //串口接收'2'后退
                {
                      PWM0_set_left (80);
                    PWM1_set_right (80);
                    left_r=1;
                    left_b=1;
                    right_r=1;
                    right_b=1;
                }
                if(table=='3')              //串口接收'3'左转
                {
                      PWM0_set_left (80);
                    PWM1_set_right (80);
                    left_r=1;
                    left_b=1;
                    right_r=0;
                    right_b=1;    
                }            
                if(table=='4')              //串口接收'4'右转
                {               
                      PWM0_set_left (80);
                    PWM1_set_right (80);
                    left_r=0;
                    left_b=1;
                    right_r=1;
                    right_b=1;    
                }
                if(table=='5')              //串口接收'5'左平移
                {
                       between_p=0;
                       between_r=0;
                    between_b=1;
                }
                if(table=='6')              //串口接收'6'右平移
                {
                       between_p=0;
                       between_r=1;
                    between_b=1;
                }
                flag=0;
                ES=1;                                        
            }
        }
    }    
}

转载于:https://www.cnblogs.com/cuisine/p/3348323.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值