① 用51单片机控制固态继电器的通断的C语言程序
..........
int key_number=0;
while(这里填判断你按键按下的代码)
{
if(key_number=0) //第一次按下
{
..... // 省略处根据自己的要求补上你的代码
key_number+=1;
}
else if(key_number=1) //第二次按下
{
.....
key_number+=1;
}
else if(key_number=2) //第三次按下
{
.....
key_number+=1;
}
}
.........
大概是这样
② 单片机怎么控制继电器
继电器有个电压线圈,只要那个线圈通电,继电器就会闭合,或者断开,从而控制大电压的触点断开或者闭合
③ PC通过485与51单片机通讯去控制继电器,如何编单片机C语言程序
51对于继电器的控制,只用高低电平就可以了。关键是,你在你的程序里要有一个判断子程序,判断单片机从PC机(通过RS485)穿过来的是什么数据,从而对单片机的某位置位或者复位。比如:你可以用一个if语句,如果收到的数据时11111,在置位,如果收到的数据时00000,则复位,相应的继电器就会动作了。
④ 求用C语言让单片机控制继电器只吸合5次的代码 或方法。
简单的循环就能实现但要有点技巧:例如,设P1.0口低电平经4.7K电阻控制S8550三极管驱动5V继电器;
*****//头文件声明
unsigned char t;//设一个标志变量
sbit jc=P1^0;
void delay(uchar p)
{****}//写一个延时函数
main()
{
t=0;
jc=1;
while(1)
{
unsigned char n;
if(t==0)
{
for(n=0;n<5;n++)
{
jc=0;
delay(?);
jc=1;
delay(?);
}
t=1;
}}}
假如没有t标志的介入,它在主循环下永远循环,就不可能只动5次,想必你遇到的就是这个问题,依上诉程序运行后每次上电复位(或RST引脚开关复位)就只动作5次,记得调试时延时时间长些,延时成功后再按需要的间隔时间缩短,开始时可以只在I/O口上经470Ω电阻接一个红色LED发光管进行演示,实际控制继电器时通断间隔不能过短,否则会烧线圈的。
⑤ 用51单片机做一个驱动继电器的电路,C程序救助。
如 一个继电器控制 ,数字量信号输入 P20 , 按键 P10 , 继电器控制 P00
if ( P20==1) // 数字量信号输入 为 1
{
if ( P10==0) // 按键 按下
{
if ( PBZ0==0)
{
PBZ0=1; // 设置一个标志,这样可以按键 按一次 执行一次。
P00=~P00; // 继电器 取反,就是原来 开 就 关,原来 关 就 开。
}
}
if ( P10==1) // 按键 释放
{
PBZ0=0; // 按键释放 标志 清零。
}
}
if ( P20==0) // 数字量信号输入 为 0
{
P00=0; // 关闭继电器
}
⑥ 用单片机控制继电器的C语言语句怎么写: 六个输入 六个输出 开机置低电平 继电器高电平时运作
单片机的I/O口通过三极管控制继电器的线圈通断
控制的话很简单啊
汇编如下:
ORG 0010H
main:
......
mov p0,#0;(继电器不动作)
......
mov p0,#0ffh;(继电器动作)
.....
end
C 语言:
void main()
{
....
P0=0x00;(继电器不动作)
.....
P0=0xff;(继电器动作)
}
⑦ 51单片机控制一个小灯和一个继电器,用C语言
系统设置如下 p1.0 按键1 p1.1 按键2 p1.2按键3
p2.0 p2.1 p 2.2 分别接一个继电器和LED
IO口 初始化均为高电平
程序
main()
{
while(1)
{
if(p1.0==0)
{p2。0=1;}
if(p1.1==0)
{p2。1=1;}
if(p1.2==0)
{p2。2=1;}
}
⑧ 51单片机如何用C语言控制继电器
①继电器属于电平控制类型的输出设备,单片机可以通过 IO 电平输出去控制继电器。但继电器的工作电流(线圈端)相对单片机来讲,比较大,多数都超出单片机限制电流总和,所以一般都需要通过驱动电路去控制继电器(如使用:NPN三极管、达林顿管(ULN2003)等)。
②多数继电器的电压都高于单片机的电压,单片机的输出无法与 继电器的 电平逻辑匹配,这也需要驱动电路进行转换(如上述例子)
③继电器还有不同种类,如交流/直流继电器、固态继电器等,上面的描述,都是针对常用 的 直流继电器说明的。
⑨ 求个基于单片机的红外线遥控器控制多路继电器C程序~谢谢。
单片机输出控制多路继电器的程序很简单,直接PX.X=0x##;就行
至于单片机接收红外指令的部分,也不算难,将一红外接受管接至单片机的某个输入口线,然后在程序中采用中断的形式进行数据采样,找个数据编码的信息头,其后接收的数据便是指令编码,根据约定的控制协议,接收的编码是几就控制输出就可以了。
懒得弄硬件接线图,所以程序也就没法详细写了,你参考一下实现思路吧。
⑩ 51单片机控制继电器
你的仿真图有问题,继电器是不会吸合的。发光二极和串联的电阻阻值也大,LED不能亮。
仿真应该如下图这样画
汇编程序
RELAY BIT P2.0 ;继电器控制位
RESET:LJMP MAIN
ORG 000BH
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2 ,BACK
MOV R2 ,#20 ;中断20次,1秒到,继电器吸合或断开一次
CPL RELAY
BACK: RETI
MAIN: MOV TMOD,#01H
MOV TH0,#3CH; 晶振频率为12M,定时50ms
MOV TL0,#0B0H
MOV IE ,#82H
SETB TR0
MOV R2 ,#20
CLR RELAY
AJMP $
请采纳