要求控制8个电机可完成启动,停止,故障处理,启动为从前往后间隔5s依次启动,停止相反,故障处理为故障的那颗从最后一个依次停止 问过老师故障可以直接用按键代替 毕竟我选的小电机 没那么小的电流感应装置。
现在我选的
芯片为at89c52,l9110s推挽桥式做驱动,其中我在p1.0-p1.1接了两个开关,接地,做启动,和停止,p0.0-p0.7接l9110s(网上买的接口全引出模块)其中ia口全部接入,ib口全部接入p3.0-p3.7,输出直接接直流电机。并且把控制直流电机的正极直接拉下来接一个常闭开关一端接地,一端接p2.0-p2.7.{{{
这里我有疑问,电机正极电流进过放大,接入at89c51会有问题吗?如果有问题的话我就直接p2.0口假装电机坏了。}}}老师后面说要给电机状态加上led状态灯,我试过5v给电机串联led供电时电机不会转动,对了电机为3-6v一个直流小电机。
请问这个led怎么加。
以下是程序 编译有一个错误 我找不到有点难过。能帮我看一下这个程序能不能实现我的功能。O(∩_∩)O谢谢,只可惜前三年没好好学。
#include <reg51.h>
sbit k1=p1^0;
sbit k2=p1^1;
unsigned char
time,temp1,Sign1;
void InitTimer1()//50ms定时器初始化
{
TMOD = 0x10;
TH1 = 0x3C;
TL1 = 0x0B0;
EA = 1;
ET1 = 1;
TR1 = 1;
}
void delay()
{
unsigned char i,j,k;
for(i=25;i>0;i--)
for(j=13;j>0;j--)
for(k=147;k>0;k--)
}
main()
{
InitTimer1();
temp1=0xff;
while(1)
{
if(k1==0)Sign1=1; //k1按下
if(Sign1)P0=temp1;
if(k2==0)
{
Sign1=0;
P0=temp1;
}
}
}
void Timer1Interrupt() interrupt 3
{
TH1 = 0x3C;
TL1 = 0x0B0;
if(Time<250)Time++;//中断250次=5s
else
{
Time=0;
if(Sign1==1&&temp1>0)temp1=temp1>>1;//低电平右移
if(Sign1==0&&temp1!=0xff)P0=P0<<1;
}
}
一周热门 更多>