51单片机 通过 tb6600驱动 步进电机
点击查看 :tb6600驱动步进电机模块接线及原理介绍
驱动代码
#include "reg52.h"typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;//定义电机控制步进电机管脚
sbit pwm1=P2^0;
sbit dianyuan1=P2^2;
sbit fangxiang1=P2^1;//定义电机控制步进电机管脚
sbit pwm2=P2^3;
sbit dianyuan2=P2^5;
sbit fangxiang2=P2^4;//定义独立按键控制脚
sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;//使用宏定义独立按键按下的键值
#define KEY1_PRESS 1
#define KEY2_PRESS 2
#define KEY3_PRESS 3
#define KEY4_PRESS 4
#define KEY_UNPRESS 0int i = 1;/*******************************************************************************
* 函 数 名 : delay_10us
* 函数功能 : 延时函数,ten_us=1时,大约延时10us
* 输 入 : ten_us
* 输 出 : 无
*******************************************************************************/
void delay_10us(u16 ten_us)
{while(ten_us--);
}/*******************************************************************************
* 函 数 名 : delay_ms
* 函数功能 : ms延时函数,ms=1时,大约延时1ms
* 输 入 : ten_us
* 输 出 : 无
*******************************************************************************/
void delay_ms(u16 ms)
{u16 i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);
}/*******************************************************************************
* 函 数 名 : key_scan
* 函数功能 : 检测独立按键是否按下,按下则返回对应键值
* 输 入 : mode=0:单次扫描按键mode=1:连续扫描按键
* 输 出 : KEY1_PRESS:K1按下KEY2_PRESS:K2按下KEY3_PRESS:K3按下KEY4_PRESS:K4按下KEY_UNPRESS:未有按键按下
*******************************************************************************/
u8 key_scan(u8 mode)
{static u8 key=1;if(mode)key=1;//连续扫描按键if(key==1&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0))//任意按键按下{delay_10us(1000);//消抖key=0;if(KEY1==0)return KEY1_PRESS;else if(KEY2==0)return KEY2_PRESS;else if(KEY3==0)return KEY3_PRESS;else if(KEY4==0)return KEY4_PRESS; }else if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1) //无按键按下{key=1; }return KEY_UNPRESS;
}/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{ u8 key=0;dianyuan1=1;
fangxiang1=1;dianyuan2=1;
fangxiang2=1;while(1){ pwm1 = 0 ;pwm2 = 0 ;delay_10us(i);pwm1 = 1 ;pwm2 = 1 ;delay_10us(i);key=key_scan(0);if(key==KEY1_PRESS)//换向{fangxiang1=!fangxiang1 ;fangxiang2=!fangxiang2 ; }else if(key==KEY2_PRESS)//加速{i = 5 ; }else if(key==KEY3_PRESS)//减速{i =1 ; }else if(key==KEY4_PRESS)//减速{dianyuan1=!dianyuan1;dianyuan2=!dianyuan2;}else{} }
}
51单片机 通过 tb6600驱动 步进电机相关推荐
- 51单片机控制TB6600驱动器驱动42步进电机
51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...
- 51单片机控制二相四线步进电机
步进电机按定子上绕组来分,有二相.三相和五相等系列.最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好.该种电机的基本步距角为1.8°/步,配上半步驱 ...
- Proteus8仿真:51单片机使用ULN2003A控制步进电机
51单片机使用ULN2003A控制步进电机 元器件 原理图部分 代码 main.c 工程文件 实验内容: 使用按键控制步进电机正反转. 元器件 元器件 名称 电阻 RES 51单片机 AT89C51 ...
- 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真
基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...
- GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...
- ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...
- 基于51单片机的OLED驱动方式(iic通讯方式)
基于51单片机的OLED驱动方式(iic通讯方式) 前言: 本人从事硬件开发,自学软件,因为发现在学习过程中,有很多问题对于没有项目实战经验的新手来讲太难解决了,可以说基本上是无从下手.现将自己学习过 ...
- 51单片机通过按钮控制步进电机正反转角度
51单片机通过按钮控制步进电机正反转角度
- 51单片机 IIC OLED驱动显示通用程序模板
51单片机 IIC OLED驱动显示通用程序模板 本模板是通过中景园OLED屏幕资料中提取保留ASCII字符集,点阵大小:6x8和8X16. 汉字取模方式 取模软件:pctolcd2002 /汉字取模 ...
最新文章
- mybatis mapper配置 bigint_SpringBoot基础架构1(SpringBoot、MyBatis-Plus与Thymeleaf)
- 虚拟dom_虚拟DOM发展的前世与今身
- @cacheable 是否缓存成功_DNS缓存中毒攻击
- python方差选择样本_两个样本方差比的分布(来自Python的实验)
- java 批量验证_正则表达式批量验证函数
- 数字图像处理(拓展)
- dba_segments和dba_tables的不同
- 解析OpenShift的存储规划
- Python_生成器Generator
- python游戏开发框架_2018年Python主流框架有哪些?最流行的Python框架
- 为企业发展赋能,让零散数据资源变为企业数据资产
- Android下磁盘分区表损坏,硬盘分区表修复,教您硬盘分区表损坏怎么修复
- drupal7 php版本,为内置PHP 5.4服务器提供Drupal 7
- 【Linux 4】定时任务调度与进程服务管理
- mysql索引,索引结构,索引类型,索引失效
- 手机盾验证失败是什么意思_腾讯手机安全验证失败怎么回事
- c语言求1平方根,c语言求平方根公式
- 概率分布,独立同分布在图像分类与检测中到底代表什么?
- ios 判断应该用pop返回还是dismis返回
- Java基础(数组)对象数组