89C52单片机驱动步进电机的C程序

89C52单片机驱动步进电机的C程序,第1张

#include "reg52h"

//Motor

sbit F1 = P1^0;

sbit F2 = P1^1;

sbit F3 = P1^2;

sbit F4 = P1^3;

///////////////////////////////////////

//步进电机驱动

unsigned char MotorStep=0;

unsigned int MotorTimer = 0;

unsigned int TIM,CT;

void InitMotor()

{

F1 = 1;

F2 = 1;

F3 = 1;

F4 = 1;

}

void SetMotor()

{

// if(Speed == 0) return;

switch(MotorStep)

{

case 0:

if(TIM)

{

F1 = 0;

F2 = 0;

F3 = 1;

F4 = 1;

MotorStep = 1;

TIM=0;

}

break;

case 1:

if(TIM)

{

F1 = 1;

F2 = 0;

F3 = 0;

F4 = 1;

MotorStep = 2;

TIM=0;

}

break;

case 2:

if(TIM)

{

F1 = 1;

F2 = 1;

F3 = 0;

F4 = 0;

MotorStep = 3;

TIM=0;

}

break;

case 3:

if(TIM)

{

F1 = 0;

F2 = 1;

F3 = 1;

F4 = 0;

MotorStep = 0;

TIM=0;

}

break;

}

}

void system_Ini()

{

TMOD|= 0x11;

TH0=0xDC; //110592M

TL0=0x00;

IE = 0x8A;

TR0 = 1;

}

main()

{ system_Ini();

InitMotor();

while(1)

{

SetMotor();

}

}

/

[ t1 (05ms)中断] 中断中做 PWM 输出

------------1000/(002ms250)=200Hz

/

void Tzd(void) interrupt 1

{

TH0 = 0xfe; //110592

TL0 = 0x33;

if( CT++==20)

{TIM=1;

CT=0;

}

}

希望对你有所帮助,这个亲自试过,可以的!

还有其他控制方式的~

不通用的。

单片机更多的是逻辑代码。

而linux驱动程序,需要整个 *** 作系统的支撑。

不过对于初学者来讲,单片机的驱动可以帮助你提升硬件接口协议了解,对你将来如果想往驱动发展有很大的帮助。

你是非得要用宏咯,可以定义一个带参数的宏,再用上连接符##,比如:

#define DA(X) P1##X

然后程序里直接调用:

DA(1) = 1;

DA(2) = 1;

上面两句就相当于

P11 = 1;

P12 = 1;

是你所要知道的吧?

最后,补充一点,养成良好的编程习惯,头文件里不要定义执行语句。只放一些宏或者函数、变量的声明即可。

1、JavaScript

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,即使是开发简单的程序,也必须设计对象;而JavaScript是一种直译式脚本语言,它本身提供了非常丰富的内部对象供设计人员使用。

2、Python

Python对初学者来说也是一个入门级编程语言。Python可用于Web开发的应用程序和桌面应用程序,这种动态语言支持OOP编程、过程式编程和函数式编程。

另外,它是开源语言,这意味着它可以免费入手,有着相当活跃的社区。JoelLee细述了为何Python很有用。

3、

简称TC文件管理器,一款功能强大的全能文件管理软件,能够极大地提高文件处理工作的效率,以其使用高效方便、稳定可靠、扩展性与可配置性强征服了无数电脑老鸟。

4、Androidstudio

对UI界面设计和编写代码有更好地支持,可以方便地调整设备上的多种分辨率。同样支持ProGuard工具和应用签名。不过,目前版本的AndroidStudio不能在同一窗口中管理多个项目。

5、WebStorm

jetbrains公司旗下一款JavaScript开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScriptIDE”等。与IntelliJIDEA同源,继承了IntelliJIDEA强大的JS部分的功能。

广州华电

#include<reg51h>

sbit s2=P3^4;

sbit led=P1^0;

void main()

{

while(1) //通过大循环不断扫描按键状态

{

if(s2==0)

led=0;

else

led=1;

}

}

怀疑是你系统问题,一般搞单片机的大部分都是跑32位系统的,比如XP。。而且CH340这个芯片不是多新的芯片,不好说他的驱动和高级系统兼容是不是有问题。。你可以找个XP系统装上试试怎么样,如果XP下可以识别,那应该就是系统兼容问题,要么你找个64位系统下的驱动程序,要么换了你现在的系统。。。

以上就是关于89C52单片机驱动步进电机的C程序全部的内容,包括:89C52单片机驱动步进电机的C程序、单片机驱动硬件程序和linux驱动硬件的程序一样吗,能通用吗、单片机接两个一样的设备,接的不同引脚,但驱动程序一样的,如何能共用一个驱动程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9968657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存