单片机控制步进电机程序c语言正反转停止,51单片机控制步进电机正反转并实现调速的程序设计…

单片机控制步进电机程序c语言正反转停止,51单片机控制步进电机正反转并实现调速的程序设计…这是一款51单片机控制步进电机正反转的程序,同时还能实现调速。#include”reg51.h“#include“intrins.h”#defineucharunsignedchar#defineuintunsignedint#definedelayNOP();{_nop_();_nop_();_nop_();_nop_();};unsignedcharcodeFFW[8]…

大家好,又见面了,我是你们的朋友全栈君。

这是一款51单片机控制步进电机正反转的程序,同时还能实现调速。

#include”reg51.h“

#include “intrins.h”

#define uchar unsigned char

#define uint unsigned int

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //??

unsigned char code REV[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //??

//unsigned char code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //??

//unsigned char code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //??

90f34ab3e75d4a6eaaa7fa1719efa93d.png

sbit K1 = P3^2; //?????

sbit K2 = P3^3; //????

sbit K3 = P3^4; //????

sbit K4 = P3^5; //????

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;

sbit LCD_EN = P2^2;

bit on_off=0; //???????

bit direction=1; //????

bit rate_dr=1; //????

bit snum_dr=1; //????

uchar code cdis1[ ] = {“NO.0738230126 ”};

uchar code cdis2[ ] = {“ 2012/5/24”};

uchar code cdis3[ ] = {“ STOP ”};

uchar code cdis4[ ] = {“NUM: RATE: ”};

uchar code cdis5[ ] = {“ RUNNING ”};

uchar m,v=0,q=0;

uchar number=0,number1=0;

uchar snum=20,snum1=20; //?????

uchar rate=3; //?????

uchar data_temp,data_temP0,data_temp2;

void delay(uint t)

{

uchar k;

while(t–)

{

for(k=0; k《124; k++)

{ }

}

}

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

{

uchar i;

while(x–)

{

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

{ }

}

}

bit lcd_busy()

{

bit result;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

delayNOP();

result = (bit)(P0&0x80);

LCD_EN = 0;

return(result);

}

void lcd_wcmd(uchar cmd)

{

while(lcd_busy());

LCD_RS = 0;

LCD_RW = 0;

LCD_EN = 0;

_nop_();

_nop_();

P0 = cmd;

delayNOP();

LCD_EN = 1;

delayNOP();

LCD_EN = 0;

}

void lcd_wdat(uchar dat)

{

while(lcd_busy());

LCD_RS = 1;

LCD_RW = 0;

LCD_EN = 0;

P0 = dat;

delayNOP();

LCD_EN = 1;

delayNOP();

LCD_EN = 0;

}

void lcd_init()

{

delay(30);

lcd_wcmd(0x38); //16*2??,5*7??,8???

delay(5);

lcd_wcmd(0x38);

delay(5);

lcd_wcmd(0x38);

delay(5);

lcd_wcmd(0x0c); //???,???

delay(5);

lcd_wcmd(0x06); //????

delay(5);

lcd_wcmd(0x01); //??LCD?????

delay(5);

}

void lcd_pos(uchar pos)

{

lcd_wcmd(pos | 0x80); //????=80+????

}

void LCD_init_DIS()

{

delay(10); //??

lcd_init(); //???LCD

lcd_pos(0); //????????????1???

m = 0;

while(cdis1[m] != ‘’)

{ //????

lcd_wdat(cdis1[m]);

m++;

}

lcd_pos(0x40); //???????????1???

m = 0;

while(cdis2[m] != ‘’)

{

lcd_wdat(cdis2[m]); //????

m++;

}

delay(3000); //??

lcd_pos(0); //????????????1???

m = 0;

while(cdis3[m] != ‘’)

{ //????

lcd_wdat(cdis3[m]);

m++;

}

lcd_pos(0x40); //???????????1???

m = 0;

while(cdis4[m] != ‘’)

{

lcd_wdat(cdis4[m]); //????

m++;

}

for(m=0;m《2;m++)

{

lcd_pos(0x0c+m); //??????

lcd_wdat(0x3e);

}

}

void data_conv()

{

data_temP0=data_temp/10; //??

if(data_temP0==0)

{data_temP0=0x20;} //???0???

else

{data_temP0=data_temP0+0x30;}

data_temp2=data_temp; //??

data_temp2=data_temp2+0x30;

}

void data_dis()

{

data_temp = snum; //????

data_conv();

lcd_pos(0x44);

lcd_wdat(data_temP0);

lcd_pos(0x45);

lcd_wdat(data_temp2);

data_temp = rate; //????

data_conv();

lcd_pos(0x4d);

lcd_wdat(data_temP0);

lcd_pos(0x4e);

lcd_wdat(data_temp2);

}

void motor_DR()

{

if(di

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146240.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Win知识 – 程序是怎样跑起来的(合集)

    Win知识 – 程序是怎样跑起来的(合集)操作系统的硬件控制功能,通常是通过一些小的函数集合体的形式来提供的。这些函数及调用函数的行为统称为系统调用(systemcall),也就是应用对操作系统(system)的功能进行调用(call)的意思。在前面的程序中用到了time()及printf()等函数,这些函数内部也都使用了系统调用。这里之所以用“内部”这个词,是因为在Windows操作系统中,提供返回当前日期和时刻,以及在显示器中显示字…

    2022年6月28日
    31
  • 微信自动回复机器人使用手册怎么设置_自动回复机器人手机版

    微信自动回复机器人使用手册怎么设置_自动回复机器人手机版微信也能自动回复啦?没错,微信自动回复机器人正式上线了!今天勤劳的小编就整理了一份微信自动回复机器人的使用手册,希望对小伙伴们有所帮助。工具米云微信自动回复机器人下载/安装登录www.miyunchuanmei.com网站,下载安装Microsoft.NetFramework4.5,,下载安装米云微信自动回复机器人。登陆微信输入账号和密码,点击“登陆”按钮,即可完成登…

    2022年10月1日
    2
  • SQL Server中的sp_executesql系统存储过程

    SQL Server中的sp_executesql系统存储过程sp_executesql语法 sp_executesql[@stmt=]stmt[    {,[@params=]N@parameter_name  data_type[,…n]}    {,[@param1=]value1[,…n]}] 参数[@stmt=]stmt 包含 Transact-SQL 语

    2022年5月21日
    33
  • NOIPD2T2 – 宝藏 题解

    NOIPD2T2 – 宝藏 题解

    2022年4月2日
    36
  • Pytest(14)pytest.ini配置文件

    Pytest(14)pytest.ini配置文件前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月30日
    9
  • C语言流水灯程序_51流水灯c语言程序

    C语言流水灯程序_51流水灯c语言程序0x01是数字,十六进制的数字。其结果等效于1。在数学上就是1,只不过在计算机上用2进制和十六进制较多,所以用十六进制表示。if(i&0x01)printf("奇数\n");elseprintf("偶数\n");system("pause");.0x01代表十六进制数也就是十进制数的01,&是把这些数转化为二进制数然后进行按位与运算info>>(…

    2025年6月8日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号