#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;
}
}
希望对你有所帮助,这个亲自试过,可以的!
还有其他控制方式的~
不通用的。
单片机更多的是逻辑代码。
不过对于初学者来讲,单片机的驱动可以帮助你提升硬件接口协议了解,对你将来如果想往驱动发展有很大的帮助。
你是非得要用宏咯,可以定义一个带参数的宏,再用上连接符##,比如:
#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驱动硬件的程序一样吗,能通用吗、单片机接两个一样的设备,接的不同引脚,但驱动程序一样的,如何能共用一个驱动程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)