求用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发光管进行演示,实际控制继电器时通断间隔不能过短,否则会烧线圈的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-20
控制继电器吸合是控制高低电平吗?如果是,就是控制管脚输出高低
for循环5次
{ 管脚置1
延时
管脚置0
延时}追问

for 语句怎么写?是for(i=5;i>0;i--),这样好像不行。 我昨天才开始买了套实验板开始用,只能模拟最简单的语句。见笑了。

追答

你这样写有什么现象?继电器有反应吗?for这么写是没错

追问

刚才写过,不行啊,灯一直闪亮的。

追答

灯闪亮是什么?继电器一直在接通和断开之间跳动?你贴代码吧

追问

太长超出范围。谢谢您!

用单片机控制继电器的C语言语句怎么写: 六个输入 六个输出 开机置低电...
P0=0xff;(继电器动作)}

用c51单片机控制一个闪光灯循环闪光5次以后熄灭不再闪光,用C语言编程...
Voiddelay(Void)//Void表示没有返回值,也没有传递参数。{ Unsignedint我;定义一个最大值为65535的无符号整数。For (I = 0;我< 20000;i++) \/\/执行20000个空循环。;//什么也不做,等待一个机器周期。} /*** 函数函数:主函数(C语言规则必须有且只能有一个主函数)。***/...

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

求单片机C语言流水灯程序,能只让第五个和第八个灯亮着,其他灯不亮_百 ...
低电平点亮,先取反0x90再"与"运算,即可清除位

单片机c语言如何控制第五只数码管亮显示p
0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, P, H, Y 共阴极数码管码段(带小数点):{0xbf ,0x86,0xdb,0xcf, 0xeb,0xed,0xfd, 0x87, 0xff, 0xef, 0xf7,0xfc, 0x99,0xde,0xf9, 0x...

单片机控制八路继电器
上图是一路继电器接在单片机P10口,其它七路接法一样,假设接在P11~P17 include<reg52.h> void delay(int t){int i;while(t--)for(i=0;i<125;i++) {} } main(){while(1){P1=0X80;delay(1000);P1=0X40;delay(1000);P1=0X20;delay(1000);P1=0X10;delay(1000);P1=0X08;...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
5. 点亮P0.6和P0.7:P0 = 0x03,延时1000毫秒 文章还提到了另一种方法,使用定时器0中断来实现LED的交替点亮,通过定时器的定时和中断,配合变量t0和t1控制LED的点亮顺序。这种方法更为复杂,但可以实现更精细的时间控制。总结来说,本文提供了使用C语言控制单片机P1口实现LED交替点亮的完整代码示例...

单片机控制交流电机正反转的C语言程序
这个很简单,我教你怎么玩,下面是思路和方式 思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;PS:显示那块我不...

关于51单片机控制步进电机编程(c语言),求助
sbit rw=P2^5;void delay(int tt){ while(tt--);} void w_cmd(uchar dd){ rs=0;rw=0;e=0;delay(50);P0=dd;e=1;delay(50);e=0;delay(50);} void w_dat(uchar dd){ rs=1;rw=0;e=0;delay(50);P0=dd;e=1;delay(50);e=0;} void init(uchar smg4[],uchar time[]...

用C语言编写一个单片机控制LED灯闪烁三次的程序,急求!
P1上接LED等。include "reg51.h"void delayms(unsigned int x){ int i,j;for(i=x;i>0;i--)for(j=0;j<120;j++);} void main(void){ char i;for(i=0;i<6;i++){ P1 = ~P1;delayms(1000);} while(1);}

相似回答