点击查看 :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驱动 步进电机相关推荐

  1. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  2. 51单片机控制二相四线步进电机

    步进电机按定子上绕组来分,有二相.三相和五相等系列.最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好.该种电机的基本步距角为1.8°/步,配上半步驱 ...

  3. Proteus8仿真:51单片机使用ULN2003A控制步进电机

    51单片机使用ULN2003A控制步进电机 元器件 原理图部分 代码 main.c 工程文件 实验内容: 使用按键控制步进电机正反转. 元器件 元器件 名称 电阻 RES 51单片机 AT89C51 ...

  4. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  5. GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  6. ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  7. 基于51单片机的OLED驱动方式(iic通讯方式)

    基于51单片机的OLED驱动方式(iic通讯方式) 前言: 本人从事硬件开发,自学软件,因为发现在学习过程中,有很多问题对于没有项目实战经验的新手来讲太难解决了,可以说基本上是无从下手.现将自己学习过 ...

  8. 51单片机通过按钮控制步进电机正反转角度

    51单片机通过按钮控制步进电机正反转角度

  9. 51单片机 IIC OLED驱动显示通用程序模板

    51单片机 IIC OLED驱动显示通用程序模板 本模板是通过中景园OLED屏幕资料中提取保留ASCII字符集,点阵大小:6x8和8X16. 汉字取模方式 取模软件:pctolcd2002 /汉字取模 ...

最新文章

  1. mybatis mapper配置 bigint_SpringBoot基础架构1(SpringBoot、MyBatis-Plus与Thymeleaf)
  2. 虚拟dom_虚拟DOM发展的前世与今身
  3. @cacheable 是否缓存成功_DNS缓存中毒攻击
  4. python方差选择样本_两个样本方差比的分布(来自Python的实验)
  5. java 批量验证_正则表达式批量验证函数
  6. 数字图像处理(拓展)
  7. dba_segments和dba_tables的不同
  8. 解析OpenShift的存储规划
  9. Python_生成器Generator
  10. python游戏开发框架_2018年Python主流框架有哪些?最流行的Python框架
  11. 为企业发展赋能,让零散数据资源变为企业数据资产
  12. Android下磁盘分区表损坏,硬盘分区表修复,教您硬盘分区表损坏怎么修复
  13. drupal7 php版本,为内置PHP 5.4服务器提供Drupal 7
  14. 【Linux 4】定时任务调度与进程服务管理
  15. mysql索引,索引结构,索引类型,索引失效
  16. 手机盾验证失败是什么意思_腾讯手机安全验证失败怎么回事
  17. c语言求1平方根,c语言求平方根公式
  18. 概率分布,独立同分布在图像分类与检测中到底代表什么?
  19. ios 判断应该用pop返回还是dismis返回
  20. Java基础(数组)对象数组

热门文章

  1. 人类心智探秘的哲学之路
  2. Java并发之AQS详解
  3. 短视频推广应该怎么做?实体商家如何通过小魔推在流量风口站稳脚跟?
  4. 天天seo免费伪原创工具生成器
  5. 2022年西式面点师(初级)理论题库模拟考试平台操作
  6. 【真】华为云计算HCIE实验-FCD环境搭建
  7. Mesos-容器编排
  8. java模拟登录qq网站,实现一键签到等等功能
  9. extjs模板的使用
  10. 新基于交互视频的智慧旅游解决方案