bit LED1;bit LED2;LED1=1;LED2=0;while (1){ delay(2000);LED1=!LED1;LED2=!LED2;}
include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==
交替闪烁就是在循环中让两个LED端口交替高低电平。循环中加入延时。延时函数我用循环实现。题目没有要求精准延时,如精准需用中断。include
sbit LED1=P2^0;sbit LED2=P2^1;// STC的下载工具中,有延时的计算例子,再使用循环延时 void Delay100ms(){ //@11.0592MHz unsigned char i, j;i = 180;j = 73;do{ while (--j);} while (--i);}
} 单片机驱动LED灯的源程序:include
在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该
c语言控制led灯交替闪烁
并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内部加入一个延时操作,等待一定时间再进入下一次循环。
void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义无符号整数,最大取值范围65535。for(i=0;i<20000;i++) //做20000次空循环。; //什么也不做,等待一个机
include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==
else{led1=0;led2=0;} }
在线等,急,用C语言编程,实现单片机控制两个LED灯:当S1开关闭合时,两个LED灯交替闪烁?
C语言实现LED灯闪烁控制配套51单片机开发板。include //包含单片机寄存器的头文件 /***函数功能:延时一段时间 / void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义
单片机C51编程问题:要实现一个开关控制两个灯,按要求两个灯有3种状态,就要声明一个变量,每按一下开关,变量加一,且变量取值为1,2,3,大于3再回1,又重复控制两个灯亮灭变化。变量加一后,就根据变量的三个值,
led1=0;led2=1;while(key==0);TR0=0;} void t0isr() interrupt 1 { TH0=(65536-50000)/256;TL0=(65536-50000)%256;time++;if(time>=20){ time=0;led1=~led1;led2=~led2;} } main(){ TMOD=0x01;
LED = ~LED; //每达到一定时间就更改LED灯状态 cnt = 0;} TF0 = 0;} void main(){ unsigned int temp;TMOD = 0x01; //设置T0为模式1 TH0 = 0xF8; //设置计时初值,到达此计时器将复位 TL0 = 0x
交替闪烁就是在循环中让两个LED端口交替高低电平。循环中加入延时。延时函数我用循环实现。题目没有要求精准延时,如精准需用中断。include
void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组 { TH1 = 0XFE; //定时器1定时时间=500us TL1 = 0X0C;if(YSJS1!=0){ YSJS1--;} else LED1=1;if(YSJS2!=0){ YSJS2--;} else
include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==
求单片机c51的C语言编程:设当开关为1时,控制2个led交替闪烁,闪烁时间为5秒
C语言实现LED灯闪烁控制配套51单片机开发板。include //包含单片机寄存器的头文件 /***函数功能:延时一段时间 / void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义
那你把两盏led灯并联,用一个口联接就行了,例如用P2口的1脚 include
交替闪烁就是在循环中让两个LED端口交替高低电平。循环中加入延时。延时函数我用循环实现。题目没有要求精准延时,如精准需用中断。include
如果是PC机需要配置一块MOXA的TTL板卡来实现高低电瓶输出:1、先设定LED灯是低电平亮还是高电瓶亮,这里假设低电平;2、设置一个定时器,在定时器里面写代码,分别发送高、低电瓶值可实现交替闪耀;例程:include
LED2=!LED2;}
while(1){ LED1=~LED1;LED2=~LED2;for(n=0; n<20; n++){ Delay100ms();} } }
用C语言编写程序,要求实现两盏LED灯交替闪烁,间隔时间为2秒。
你根据你的单片机硬件接线图,把小灯的端口对应改一下就可以了 #include #define uint unsigned int #define uchar unsigned char uchar count; sbit led_1 = P2^1; sbit led_2 = P2^2; void main() { TMOD =0x01; TH0 = (65535-46080)/256;//50ms TL0 = (65535-46080)%256; EA = 1; ET0 = 1; TR0 = 1; while(1) { if(TF0 == 1) { TF0 = 0; TH0 = (65535-46080)/256;//50ms TL0 = (65535-46080)%256; count++; if(count == 40) { led_1 = 1; led_2 = 0; } if(count == 80) { count = 0; led_2 = 1; led_1 = 0; } } } }#include#defineucharunsignedcharuchartimes,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==0xff)l
不知你怎么想的,51单片机和晶振写几行程序就行的,没看见线路板,不好说的。如果你是外行,说了你也不好理解,
最容易理解的写法:设置b1、b2、b3、reset四个按钮(按下为0)和对应的LED1、LED2、LED3三个灯(点亮为0)int reset, b1,b2,b3,LED1,LED2,LED3;while(1){(读取reset) if(reset==0) { LED1=LED2=LED3=1; read=1; } if(read==1) { (读取b1, b2, b3); if(b1==0) { LED1=0; read=0; } elseif(b2==0) { LED2=0; read=0; } elseif(b3==0) { LED3=0; read=0 } else LED1=LED2=LED3=1; }}
假设高电平点亮led while(1) { if(s1==0){ led1=0;led2=1;delayms(200);led1=1;led2=0;delayms(200);} else{led1=0;led2=0;} }
如果是PC机需要配置一块MOXA的TTL板卡来实现高低电瓶输出:1、先设定LED灯是低电平亮还是高电瓶亮,这里假设低电平;2、设置一个定时器,在定时器里面写代码,分别发送高、低电瓶值可实现交替闪耀; 例程: #include sbit led1 = P0^0;sbit led2 = P0^1; void delayms(unsigned int nMS){ unsigned char i,j; while (nMS--) { for (i = 12; i>0; i--) { for (j = 246; j>0; j--); } }} void main(){ while(1) { led1 = 0; led2 = 1;//一亮一灭 delayms(100); led1 = 1; led2 = 0;//交换亮灭 delayms(100); }}