找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1786|回复: 0
打印 上一主题 下一主题
收起左侧

求助 怎么样使遥控小车行走更流畅?走起来一卡一卡的

[复制链接]
跳转到指定楼层
楼主
ID:232530 发表于 2017-11-14 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//走起来一卡一卡的//
#include<reg52.h>//单片机头文件
sbit zuo1=P0^0;//左电机控制端1
sbit zuo2=P0^1;//左电机控制端2
sbit you1=P0^2;//右电机控制端1
sbit you2=P0^3;//右电机控制端2
sbit bz0=P0^4;
sbit bz1=P0^5;//信号端
sbit bz2=P0^6;//信号端
sbit bz3=P0^7;//信号端
int n=0;
void init()        //初始化函数
{
        IE=0X82;//1000 0010
        TMOD=0X02;    //0000 0010选择定时器0的工作方式2,8位自动重装
        TH0=156;
        TL0=156;
        TR0=1; //开启定时器0
}
void qian()//前进
{
        you1=0;
        you2=1;
        zuo1=0;
        zuo2=1;         
}
void hou()//huotui
{
        you1=1;
        you2=0;
        zuo1=1;
        zuo2=0;         
}
void you()//右转
{
        you1=1;
        you2=0;
        zuo1=0;
        zuo2=1;
}
void zuo()//左转
{
        you1=0;
        you2=1;
        zuo1=1;
        zuo2=0;
        
}
void ting()
{
        you1=0;
        you2=0;
        zuo1=0;
        zuo2=0;        
}

void main()//主函数
{
        init();
        while(1)//单片机不间断监测 (是个死循环)
        {                                                            
                if(n==0) ting();//ting
                else if(n==1)qian();//qian        
                else if(n==2)zuo();                       
                else if(n==3)hou();               
                else if(n==4)you();               
        }                                
}


void timer0() interrupt        1 //定时器0中断服务程序
{
        if(bz0==0&&bz1==0&&bz2==0&&bz3==0) n=0;
        if(bz0==0&&bz1==0&&bz2==0&&bz3==1) n=1;
        if(bz0==0&&bz1==0&&bz2==1&&bz3==0) n=2;
        if(bz0==1&&bz1==0&&bz2==0&&bz3==0) n=3;
        if(bz0==0&&bz1==1&&bz2==0&&bz3==0) n=4;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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