pwm调速流程图小车_51单片机智能小车《pwm调速按键控制小车动作》

本文档详细介绍了使用51单片机通过PWM调速控制小车前进、后退、左右转向及调整电机转速的流程。通过P1口控制小车的电机,使用四位按键进行速度调节,并利用数码管显示当前速度等级。通过定时器配置实现100us的PWM周期,使用中断处理来更新电机的占空比。
摘要由CSDN通过智能技术生成

//P1.0~P1.7分别对应小车1N1~1N8。

#include           //头文件

#define uint unsigned int  //宏定义

#define uchar unsigned char

#define left_moto_go   {P1_0=1,P1_1=0,P1_2=1,P1_3=0;}         //小车方位定义,左边两个电机正转(前进)

#define left_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;}∥左后退

#define left_moto_stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;}∥左停止

#define right_moto_go    {P1_4=1,P1_5=0,P1_6=1,P1_7=0;}

#define right_moto_back  {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}

#define right_moto_stop  {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}

#define left_moto_pwm   P1_1   //pwm信号端定义

#define left_moto_pwm1  P1_3

#define right_moto_pwm   P1_5

#define right_moto_pwm1  P1_7

sbit key0=P3^2;                //四位按键位声明

sbit key1=P3^3;

sbit key2=P3^4;

sbit key3=P3^5;

uchar T0RH,T0RL;   // 定时器配置

//uchar time;                   // pwm周期变量

uchar keybuf;           // 按键

uchar code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};  //共阳数码管显示数字0~9

uchar code dis[]={0XF7,0XFB,0XFD,0XFE};         //数码管位选

uchar disbuf[4]={0}; //数码管中间变量

uchar pwm_val_left=0;        //         占空比有关变量

uchar push_val_left=0;        //        左电机占空比  N/10

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值