STC89C52小车PWM控制直流电机详细代码
main.c
#include <reg52.h>
#include "pwm.h"
#include "dcmotor.h"unsigned int k=20;//定义占空比的变量, 全局变量void main()
{unsigned int t=0;Car_Straight();Timer0_init();EA=1;while(1){;}
}
dcmotor.h
#ifndef __DCMOTOR_H__
#define __DCMOTOR_H__#include <reg52.h>
void Car_Straight();#endif
dcmotor.c
#include "dcmotor.h"sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA1=P1^4;//使能sbit IN3=P1^2;
sbit IN4=P1^3;
sbit ENA2=P1^5;//使能void Car_Straight()
{IN1=1;IN2=0;IN3=1;IN4=0;}
pwm.h
#ifndef __PWM_H__
#define __PWM_H__
#include <reg52.h>
extern unsigned int k;//定义占空比的变量
void Timer0_init(void);
#endif
pwm.c
#include "pwm.h"sbit PWM0=P1^4;//P1.4输出pwm
sbit PWM1=P1^5;//P1.5输出pwmunsigned int time=0;void Timer0_init(void) //0.5毫秒@11.0592MHz
{TMOD &= 0xcd; //设置定时器模式TL0 = 0xd4; //设置定时初值TH0 = 0x28; //设置定时初值TF0 = 0; //清除TF0标志 ET0 = 1; //打开定时器0中断允许TR0 = 1; //定时器0开始计时}void time0() interrupt 1
{TR0=0;//赋初值时,关闭定时器TH0=0xd4;//TL0=0x28;//TR0=1;//打开定时器time++;if(time>=100){time=0;}if(time<=k) //占空比%50,可改{PWM0=1;PWM1=1;}else{PWM0=0;PWM1=0;}
}
STC89C52小车PWM控制直流电机详细代码相关推荐
- PWM控制直流电机(单片机实验)
PWM控制直流电机(单片机实验) 有问题欢迎私信哦 一.题目 设计电路,使用定时器实现PWM对直流电机的转速控制,并且实现按键切换转动方向.并进行软件仿真,做出实物. 二.基本要求 1.设置按键控制直 ...
- STM32智能小车------PWM驱动直流电机
文章目录 一.硬件连接 1.器件清单: 2.接线: 3.驱动电机 二.软件驱动代码编写 1.初始化代码 2.电机驱动代码 总结 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的普通大学生. ...
- PWM控制直流电机的正转、反转、加速和减速
文章目录 一.设计要求 二.设计思路 三.仿真电路设计 四.KeilC51程序设计 1. 初始化参数 2. LCD显示 3. 主程序初始化 4. 主程序 5. 延时子程序 6. 按键处理程序 7. 中 ...
- 基于PWM控制直流电机调速的设计
实验现象:通过S2,S3按键,增加/减小PWM,控制LED灯组的亮灭,同时当高于或低于PWM时,蜂鸣器将工作. #include <reg52.h> #define uchar unsig ...
- 玩转树莓派---详解树莓派的系统烧录,基础使用及基于树莓派制作手势控制的小车(附详细代码及演示效果)
目录 一.写在前面 二.系统实现: Author:qyan.li Date:2022.6.10 Topic:详解树莓派的使用及基于树莓派制作手势控制的小车 Reference:如何给树莓派安装操作系统 ...
- STC89C52 小车-舵机转向/蓝牙控制/寻迹,有PCB有讲解,更新
推荐单片机:STC89C52或51(尽量52 还有提供可用于测试直接烧录的89单片机文件(hex),不需要重新编译. 还是老话: 源代码可以直接编译通过. 本人是自学,原创内容--转载请务必说明!! ...
- Arduino教程-09.L298N控制直流电机(避障小车)
目录 3.1 电机 3.2 控制直流电机 PWM – 控制速度 H桥 – 控制转动方向 L298N 电机驱动芯片 技术规格 L298N 电机驱动器模块引脚排列 电源引脚 输出引脚 方向控制引脚 速度控 ...
- 基于STM32使用PWM调速控制直流电机
PWM调速控制直流电机 网上找的历程,实现可以,但是无法随我自己的意愿改变速度,还是有问题. 代码如下: #include "delay.h" #include "sys ...
- 【51单片机STC89C52】IO口模拟PWM控制SG90舵机
一.PWM PWM ,英文名 Pulse Width Modulation ,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进 行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编 ...
最新文章
- 基于Spark的机器学习实践 (九) - 聚类算法
- Linux安装Elasticsearch+Kibana(7.10.2)
- T-SQL and XML
- MySQL 视图简析
- Qt文档阅读笔记-windowOpacity官方解析及实例(两种方法使得程序渐变出现)
- 关于使用scrapy框架时出现 No module named 'win32api问题
- iphone怎么长截屏_涨知识了!原来苹果手机也可以长截屏,还不知道的,快来学一学...
- ASP.NET 访问项目网站以外的目录文件
- JAVA疫苗接种预约系统毕业设计 开题报告
- oracle常用sql语句查询语句,Oracle常用sql语句
- 凡是能用钱买来的时间就是便宜的;凡是能用时间换来的注意力持续就是有价值的。
- Windows定时关机小程序
- 佛法在世间不离世间觉离世求佛法犹如觅兔角
- 如何快速查询京东快递物流正在派送中的单号
- Python编程基础:用户输入若干个分数,求所有分数的平均分。每输入一个分数后询问是否继续输入下一个分数,回答“yes”就继续输入下一个分数,回答“no”就停止输入分数。
- 成都市住房公积金提取指南办理手续流程
- ubuntu 16.04 deepin.com.wechat 微信登录提示版本过低解决方案
- 哲理故事与管理之道(11)-让自己成为领袖和榜样
- 服务器固态硬盘raid没了,HP服务器磁盘阵列坏了怎么办,数据如何恢复?
- Change Log of Joomsport: Remove Undesired HTML(Synchronized with Server)
热门文章
- C Primer Plus 第6版 中文版 勘误表
- ble系统知识介绍(较为完整,持续更新中)
- commvault备份mysql数据库_Oracle数据库的备份和恢复-Commvault.PDF
- 实验室常用培养基配置 LB LA
- Debian11(Bullseye)系统安装docker及启动失败问题解决
- The requested URL was not found on the server. If you entered the URL manually please check your spe
- kd-tree和八叉树的概念及相关算法
- 暴涨彰显市场做多情绪
- 100首经典英文歌曲
- 谷粒商城--SPU和SKU(属性分组、规格参数、销售属性)