51单片机如何用C语言控制继电器??

如题所述

①继电器属于电平控制类型的输出设备,单片机可以通过 IO 电平输出去控制继电器。但继电器的工作电流(线圈端)相对单片机来讲,比较大,多数都超出单片机限制电流总和,所以一般都需要通过驱动电路去控制继电器(如使用:NPN三极管、达林顿管(ULN2003)等)。
②多数继电器的电压都高于单片机的电压,单片机的输出无法与 继电器的 电平逻辑匹配,这也需要驱动电路进行转换(如上述例子)
③继电器还有不同种类,如交流/直流继电器、固态继电器等,上面的描述,都是针对常用 的 直流继电器说明的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-05
建议不要用单片机口直接驱动继电器,对ad有影响,用npn三极管(2412)控制,i/0口=1,继电器吸合;=0,断开;如果需要隔离加上光藕;
第2个回答  2011-06-05
用一个引脚接继电器的控制引脚 然后就是根据需要把这个脚拉高还是拉低啦
第3个回答  2011-06-05
判断继电器线包的工作电流是否小于I/O口的允许电流?线包和单片机工作电压是否一致?是,可用I/O直接控制:I/o置输出口,线包一端接VDD,I/O置1则电器不动,置0继电器动作;否,需通过三极管控制,控制逻辑相反。
第4个回答  2011-06-05
51单片机如何用C语言控制继电器??
一干二净除旧习 五讲四美树新风 辞旧迎春 五湖四海皆春色 万水千山尽得辉 万象更新 本回答被提问者采纳

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
本文详细介绍了如何使用C语言在五一单片机上编程,控制P1口实现八个发光二极管的交替点亮。首先,我们定义了一个延时函数delay(),通过两个for循环实现毫秒级的延时。在主函数中,程序初始化P0口为全灭状态,然后进入一个无限循环,每隔一秒,将P0口的特定位设置为1,点亮两个LED,延时1秒后切换到下一个...

PC通过485与51单片机通讯去控制继电器,如何编单片机C语言程序?
51对于继电器的控制,只用高低电平就可以了。关键是,你在你的程序里要有一个判断子程序,判断单片机从PC机(通过RS485)穿过来的是什么数据,从而对单片机的某位置位或者复位。比如:你可以用一个if语句,如果收到的数据时11111,在置位,如果收到的数据时00000,则复位,相应的继电器就会动作了。

单片机如何控制继电器开关,就是测试结束后继电器就闭合,C语言程序
假如你用的是51,再假如你用的是P11口控制,再假如你用的是低电平触发继电器,再假如你的测试时间是5秒。程序将如下:main(){P1^1=0;DELAY_S(5);P1^1=1;while(1);} 一个程序必须有开头的要求,有结尾的要求,只给出中间,不知道怎样算开始测试,不知道怎样算结束测试,不知道继电器测试...

求助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口要和你实际电路...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
一、#include<reg51.h> void delay(unsigned char Xms)\/\/延时Xms { int i,j;for(X = i; X>0; X--)for(j=110;j>0;j--);} void main(){ P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P...

51单片机使用T0和T1外部脉冲计数,C语言如何编程?
使用T0和T1外部脉冲计数,控制两个电机,到1700个脉冲电机停止,--统计脉冲个数,用外部中断更好。--T0和T1,留着定时用。用四个按键控制,按键1控制电机正转,按键2控制电机反转,按键3控制电机1正转,按键4控制电机2正转,怎么用C语言编程?--编程前,要先设计出来电路。

用单片机控制继电器的C语言语句怎么写: 六个输入 六个输出 开机置低电...
单片机的I\/O口通过三极管控制继电器的线圈通断 控制的话很简单啊 汇编如下:ORG 0010H main:...mov p0,#0;(继电器不动作)...mov p0,#0ffh;(继电器动作)...end C 语言:void main(){ ...P0=0x00;(继电器不动作)...P0=0xff;(继电器动作)} ...

关于51单片机控制步进电机编程(c语言),求助
include <reg52.h> define uchar unsigned char define uint unsigned int uchar key_l,key,i;uchar code temp1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar code temp2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};uchar code aa[16]=" :";uchar code smg[...

51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
include<reg51.h> sbit k1=P1^0;define uint16 unsigned int define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ uint16 i=1000;while(i--);} void main(){ uchar n ;P2=0xfe;P1=0xff;while(1){ if...

51单片机的c语言 左移右移怎么用?想用来控制流水灯,请帮忙写个完整的c...
void delay02s(void) \/\/ 延时0.2s子程序 { unsigned char i,j,k;for ( i=2;i>0;i-- )for (j=200;j>0;j-- )for (k=250;k>0;k-- );} void main (void) \/\/ 主函数 { uchar i,j;while (1) \/\/ 死循环 { j=0x01; \/\/ j初始化为0x01,左...

相似回答