#include        //51芯片管脚定义头文件

#include          //内部包含延时函数 _nop_();

#define uchar unsigned char

#define uint  unsigned int

uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};  //四相八拍正转编码

uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};  四相八拍反转编码

sbit  K1   = P3^2;       //正转

sbit  K2   = P3^3;       //反转

sbit  K3   = P3^4;       //停止

sbit  BEEP = P3^6;       //蜂鸣器

/********************************************************/

/*

/* 延时t毫秒

/* 11.0592MHz时钟,延时约1ms

/*

/********************************************************/

void delay(uint t)

{

uint k;

while(t--)

{

for(k=0; k<125; k++)

{ }

}

}

/**********************************************************/

void delayB(uchar x)    //x*0.14MS

{

uchar i;

while(x--)

{

for (i=0; i<13; i++)

{ }

}

}

/**********************************************************/

void beep()

{

uchar i;

for (i=0;i<100;i++)

{

delayB(4);

BEEP=!BEEP;                 //BEEP取反

}

BEEP=1;                    //关闭蜂鸣器

}

/********************************************************/

/*

/*步进电机正转

/*

/********************************************************/

void  motor_ffw()

{

uchar i;

uint  j;

for (j=0; j<8; j++)         //转1*n圈

{

if(K3==0)

{break;}                //退出此循环程序

for (i=0; i<8; i++)       //一个周期转45度

{

P1 = FFW[i];          //取数据

delay(2);            //调节转速

}

}

}

/********************************************************/

/*

/*步进电机反转

/*

/********************************************************/

void  motor_rev()

{

uchar i;

uint  j;

for (j=0; j<8; j++)       //转1×n圈

{

if(K3==0)

{break;}               //退出此循环程序

for (i=0; i<8; i++)     //一个周期转45度

{

P1 = REV[i];          //取数据

delay(2);            //调节转速

}

}

}

/********************************************************

*

*  主程序

*

*********************************************************/

main()

{

uchar r,N=64;             //N 步进电机运转圈数

while(1)

{

if(K1==0)

{

beep();

for(r=0;r

{

motor_ffw();       //电机正转

if(K3==0)

{beep();break;}    //退出此循环程序

}

}

else if(K2==0)

{

beep();

for(r=0;r

{

motor_rev();       //电机反转

if(K3==0)

{beep();break;}    //退出此循环程序

}

}

else

P1 = 0xf0;

}

}

/********************************************************/

单片机控制步进电机程序c语言正反转停止,51单片机步进电机正反转停止实验-C51源代码...相关推荐

  1. 第01课 了解单片机的原理控制一个LED灯的亮和灭-----51单片机C语言试验教程

    第一课,了解单片机及单片机的控制原理和DX516 的用法,控制一个LED 灯的亮和灭 本章学习内容: 单片机基本原理,如何使用DX516 仿真器,如何编程点亮和灭掉一个LED 灯,如何进入KEILC5 ...

  2. c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)

    51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...

  3. 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)

    EA     是 中断总开关, 不管是定时器,串口还是外部中断,都需要打开 EA 才能触发中断; ET0   是 定时器0 的专用中断开关, 也就是说: 打开了EA.而不打开ET0,定时器0是无法触发 ...

  4. 基于51单片机的公交车安全智能检测系统、基于51单片机的金属探测仪控制设计、基于单片机的智能电子密码锁系统设计、基于51单片机酒精浓度检测仪设计【资料转发分享】

    630基于51单片机的公交车安全智能检测系统-设计资料 本资料是基于单片机的公交车安全监测系统 具有如下功能: 1.监测环境的温度,超标报警.可以设置上下限 2.监测是否有火灾以及有毒气体,超标报警, ...

  5. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  6. 台达触摸屏modbusRTU与51单片机通讯台达屏与郭天祥51单片机通讯程序

    台达触摸屏modbusRTU与51单片机通讯台达屏与郭天祥51单片机通讯程序亲测过好用,P1口led显示8个位的状态上传给触摸屏,d2至d7为16数据寄存器能写能读,数码管显示当前写入的数码id=60 ...

  7. 详解步进电机原理及其正反转驱动程序(51单片机)

    一.步进电机基本原理 1.开环 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件. 2.工作状态 非超载时,电机转速.转过的角度取决于脉冲信号的频率和脉冲数. 3.线性关系 给电机施加一个脉冲 ...

  8. 单片机跑马灯程序c语言,MCS-51单片机控制跑马灯的三种方法

    描述 在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的.在并行端口的编程学习中,"跑马灯"是单片机并行端口输出控制的典型实例.所谓跑马灯,是 ...

  9. avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...

    AVR单片机控制8段LED数码管同时显示 这是一个简单的供单片机入门学习者练习用的8段LED数码管控制汇编程序,控制一个两位的数码管同时显示字符(动态刷新).用AVR- Studio-4 开发,在AV ...

  10. 单片机六位抢答器c语言程序,八路电子抢答器(基于51单片机的8路抢答器设计C语言程序)...

    哥,你还有AT89C51单片机8路抢答器的资料吗 哥,你还有AT89C51单片机8路抢答器的资料吗 AT89C51单片机8路抢答器的资料 源程序如下 #include #define uchar un ...

最新文章

  1. AI工程师面试知识点:TensorFlow 框架
  2. java 使用正则表达式从网页上提取网站标题
  3. jQuery和Prototype兼容问题
  4. 前端学习(580):打开开发者工具
  5. 首批国家应用数学中心名单公布,哪些高校获批?
  6. 【人脸识别】FaceNet详解
  7. 使用截图工具FastStone Capture
  8. Brother DCP-1608 Printer共享打印机防坑指南
  9. 北京内推 | 华为诺亚方舟实验室招聘计算机视觉研究实习生
  10. Ubuntu 18.04 安装驱动
  11. 计蒜客--T1212 仙岛求药
  12. php字符串转拼音,php程序如何把中文字符转换为拼音
  13. JAVA查询银行卡信息
  14. N阶行列式计算(JAVA)
  15. (附源码)node.js外卖平台 毕业设计 151448
  16. Android 获取通讯录数据
  17. Eclipse中如何把自己写的方法封装成jar包供其他项目使用
  18. 在Kubernetes上安装Netdata的方法
  19. 国家推行电子货币见解
  20. 国企计算机职称考试都考什么,计算机软考证书哪个含金量高?长什么样?国企有用吗?可以评职称吗?...

热门文章

  1. 苹果手机六位数密码忘记了用计算机,忘记iPhone锁屏密码?三种方法帮你顺利解决!...
  2. ISAPI概述(转)
  3. 利用fiddler抓包工具测试APP及高级应用
  4. 软件测评师--第九小时 web应用测试
  5. 计算机软件研究方法与技术路线,项目的研究方法与技术路线
  6. python开发微信公众号开发教程_python编写微信公众号首图思路详解
  7. 小程序项目:基于微信小程序的培训机构系统——计算机毕业设计
  8. 程序猿的中秋节——浪漫至死不渝!!
  9. (十)stm32 GPIO口复用,重映射 RCC_APB2Periph_AFIO
  10. TI am3352 gpio 驱动