首先pwm调速主要运用的是定时器和中断的知识,此段代码运用的是定时器0,8位自动重装模块

下面了解pwm是如何控制速度的

调速的本质就是通过定时器控制小车的左右两轮使能;对小车的轮子转的时间和停的时间进行控制专业的名字叫占空比,而脉冲其实就是单片机上晶振发出的

 

此代码运用的频率为100HZ;最大占空比为256,频率为100HZ,f=1/T;周期为0.01秒;周期=定时器溢出时间*占空比;定时器溢出时间=0.0000390625秒约等于39微秒;单片机机器周期为1.085微秒;用溢出时间除以单片机周期得到定时器加多少次溢出,得到满足溢出时间36微秒

#include <REGX52.H>
#include <QXA51.H>unsigned char pwm_left_val=210;
unsigned char pwm_right_val=210;
unsigned char pwm_t;/*小车前进*/
void forward()
{left_motor_go;//左电机前进right_motor_go;//右电机前进
}//定时器中断
void timer0() interrupt 1
{pwm_t++;if(pwm_t==255)pwm_t=EN1=EN2=0;if(pwm_left_val==pwm_t)EN1=1;if(pwm_right_val==pwm_t)EN2=1;
}
void main()
{TMOD|=0x02;//八位重装模块TH0=220;TL0=220;//11.0592M晶振下最大比值是256,输出100HZTR0=1;//启动定时器0ET0=1;//允许定时器0中断EA=1;//总中断允许while(1){forward();//前进}
}

THO=220是怎么来的呢;执行36次满足脉冲占空比,最大值为256;所以初值为220;八位重装模式下TLO也为220

TMOD为什么为0x02呢因为定时器0要后两位为10

然后就是启动定时器启动定时器中断

接下来就是一些宏定义和单片机引脚的位定义

#ifndef __QXA51_H__
#define __QXA51_H__/*电机驱动IO定义*/
sbit IN1=P1^2; //为1 左电机反转
sbit IN2=P1^3; //为1 左电机正转
sbit IN3=P1^6; //为1 右电机正转
sbit IN4=P1^7; //为1 右电机反转
sbit EN1=P1^4; //为1 左电机使能
sbit EN2=P1^5; //为1 右电机使能#define left_motor_en         EN1=1 //左电机使能
#define left_motor_stops        EN1=0 //左电机停止
#define right_motor_en        EN2=1 //右电机使能
#define right_motor_stops       EN2=0 //右电机停止#define left_motor_go         IN1=0,IN2=1 //左电机正转
#define left_motor_back       IN1=1,IN2=0 //左电机反转
#define right_motor_go        IN3=1,IN4=0 //右电机正转
#define right_motor_back        IN3=0,IN4=1 //右电机反转#endif

接线时要分别将单片机的P1^2-P1^7和PCB板上的P1^2-P1^7连接,vcc,gnd连接

51智能小车pwm调速相关推荐

  1. 智能小车PWM调速原理

    电机驱动电路 智能小车电机的驱动芯片采用L293D.L293D是一款单片集成的高电压.高电流.4通道电机驱动,设计用于连接标准DTL或TTL逻辑电平,驱动电感负载(诸如继电线圈.DC和步进电机)和开关 ...

  2. pwm调速流程图小车_求智能小车 PWM调速?

    1. PWM原理 2.调制器设计思想 3.具体实现设计 一. PWM(脉冲宽度调制Pulse Width Modulation)原理: 脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成,其占空比与信号 ...

  3. STM32应用开发实践教程:智能小车电机调速模块的应用开发

    3.3.1 任务分析 本任务要求设计一个可实现智能小车电机调速的应用程序,具体要点说明如下. ① 电机驱动部分选用德州仪器(Texas Instruments,TI)公司的 DRV8848 芯片(也可 ...

  4. 小车PWM调速-模式选择

    小车PWM调速-模式选择 写好程序后,接上蓝牙模块,打开手机蓝牙助手,小车运行效果:首先进行模式选择,有快速模式.中速模式.慢速模式,按下模式选择,小车接收到串口信号后(串口接收指示灯会闪一下),便可 ...

  5. 【Proteus仿真】51单片机+直流电机PWM调速实验

    [Proteus仿真]51单片机+直流电机PWM调速实验 Proteus仿真 采用L293驱动直流电机 -PWM是采用定时器中断实现 /******************************** ...

  6. 小车PWM调速-串口控制

    小车PWM调速-串口控制 串口控制调速,即通过串口修改speed的值, 1.将上节PWM调速用到的定时器0源文件和头文件引入进来,工程文件如下 mian.c:主函数 Motor.c:小车前进.后退.左 ...

  7. 小车PWM调速-左右轮差速转弯

    小车PWM调速-左右轮差速转弯 之前写的左转和右转函数都是一个轮子停止,另一个轮子转动,才实现了转弯效果,那差速就是,两个轮子都转动,只不过一个轮子快,一个轮子慢,这样就实现了较平滑的转弯 左转:右轮 ...

  8. 104、基于51单片机智能风扇pwm调速红外遥控无线遥控风扇温控风扇系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.Protues仿真 六.流程图 七.程序源码 八.资料包括 摘要 随着气温的逐渐上升, ...

  9. 基于51单片机直流电机PWM调速设计

    具体实现功能 系统由STC89C52单片机.LCD1602液晶显示屏.霍尔测速传感器.3V直流电机.按键模块构成. 具体功能: 1.采用霍尔传感器非接触式测电机转速: 2.LCD1602液晶显示当前的 ...

最新文章

  1. 手把手教你如何制作可视化大屏!
  2. 计算机书籍-机器学习中的经典算法
  3. csdn如何在开头生成目录
  4. 基于Kafka实现分布式事件驱动
  5. TreeView的复选框隐藏 重新整理
  6. docker删除none镜像_Docker容器相关命令
  7. HFileOutputFormat与TotalOrderPartitioner
  8. 大数据分块_空间数据库基础理论 GIS空间数据处理分析涉及的基本概念
  9. Nginx——安装详解
  10. java持久层框架mybatis如何防止sql注入
  11. HTML中       等6种空白空格的区别
  12. pyecharts查看版本_pyecharts的版本问题
  13. 常见数学建模方法学习总结及资料汇总
  14. Delphi7--运算符和表达式
  15. mysql 分库分表中间件 mycat_Mysql—分库分表中间件(Mycat)
  16. 如何实现镜像网站内容的同步
  17. Ubuntu安装搜 狗输入法,最完整的步骤
  18. Java基础学习(二十七)之IO流
  19. python如何计算成绩平方根_python 使用二分法计算平方根
  20. Educoder/头歌JAVA——jQuery动画

热门文章

  1. MySQL安全分析:缓解MySQL零日漏洞
  2. 计算机组成原理 好学吗,计算机组成原理太难了(计算机编程解释)
  3. 5V降压1.5V的几款极大电流IC,超简单的LDO芯片
  4. 《软技能》读书笔记——生产力篇
  5. VC浏览器相关的学习(五)(在BHO中建立对话框)--解决CreateDialog的1813错误
  6. sql 数据存在包含关系的查询
  7. 看《大明王朝1566》聊分布式中的CAP和BASE理论
  8. IBM ECM平台助力泰康人寿集约化经营
  9. IC卡密码的破解方法浅谈
  10. 7z001怎么解压在安卓手机上面_安卓手机用户换iPhone11怎么转移手机便签内容?...