求助51单片机通过uln2003控制继电器驱动直流电机的C语言和电路图,谢谢了
展开全部
LN2003也是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平,继电器得电吸合。
#include<stc.h>
#define it unsigned int
sbit s0=P3^2;//两个按钮
sbit s1=P3^3;//两个按钮
sbit j0=P3^4;//继电器控制口,这3个IO口要和你实际电路去更改。
void ys(it); //声明延时函数
void main()
{
while(1)
{
if(s0==0) //判断S按键是否按下 {
ys(5000); //延时消抖
if(s0==0) //在次判断按键是否真的按下(在次判断很有必要)
{
j0=1; //让继电器关闭
while(s0==0); //判断S按键是否放开,如果没有放开继续等待。放开后执行下面的代码。
}
}
if(s1==0) //判断S按键是否按下 {
ys(5000);
if(s1==0)
{
j0=0; //让继电器打开
while(s1==0);
}
}
}
}
void ys(it a) //延时函数
{
it x;
for(x=0;x<5000;x++)
for(x=0;x<a;x++);
}
#include<stc.h>
#define it unsigned int
sbit s0=P3^2;//两个按钮
sbit s1=P3^3;//两个按钮
sbit j0=P3^4;//继电器控制口,这3个IO口要和你实际电路去更改。
void ys(it); //声明延时函数
void main()
{
while(1)
{
if(s0==0) //判断S按键是否按下 {
ys(5000); //延时消抖
if(s0==0) //在次判断按键是否真的按下(在次判断很有必要)
{
j0=1; //让继电器关闭
while(s0==0); //判断S按键是否放开,如果没有放开继续等待。放开后执行下面的代码。
}
}
if(s1==0) //判断S按键是否按下 {
ys(5000);
if(s1==0)
{
j0=0; //让继电器打开
while(s1==0);
}
}
}
}
void ys(it a) //延时函数
{
it x;
for(x=0;x<5000;x++)
for(x=0;x<a;x++);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询