我的想法是一个按键控制,一组是8个流水灯,一组是两个LED,还有另外一组也是两个LED,按一下流水灯亮,在按一下加亮一组LED,再按一下再加亮一组LED,最好按第四下能全关了。您能弄一个吗,谢谢帮助。
追答定义一个变量a,没按下一次就a++,判断a的值,如果a==1就8个流水灯,a==2就两个led,以此类推,谢谢。仿照上面的思路完全没为题
本回答被网友采纳51单片机控制1组流水灯2组LED的方法(能给个代码最好)
\/\/定义第二个LED灯\/\/主函数,C语言的入口函数: void main(void){ while(1){ \/\/循环扫描按键 if(key1==0) \/\/按键1按下,LED1灯亮 led1=0; if(key2==0) \/\/按键2按下,LED1灯灭 led1=1; if(key3==0) \/\/按键3按下,LED2灯亮 led2=0; if(key4==0) \/\/...
51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:ORG 0000H;复位启动AJMP START;ORG 001BH;T1中断AJMP T1INT;;定义变量===YSJSEQU 30H;延时计数器LEDEQU 31H;LED控制缓冲器 ;主程序===START:MOV LED,#0FEH;初始化数据MOV YSJS,#0;MOV TMOD,#10H;定时器1工作于方式1,16位定时...
51单片机流水灯程序
sbit led1 = P2^0;sbit led2 = P2^1;sbit led3 = P2^2;sbit led4 = P2^3;sbit led5 = P2^4;sbit led6 = P2^5;sbit led7 = P2^6;sbit led8 = P2^7;void main(){ int i,j;\/\/点亮第一个灯 led1 = 1;led2 = 0;led3 = 0;led4 = 0;led5 = 0;led6 = 0;led...
单片机流水灯代码
单片机流水灯代码:#include<reg51.h>\/\/51头文件void delay(int t)\/\/定义延时函数{int j;while(t--){for(j=0;j<500;j++);}}void main(){int i;while(1){for(i=0;i<7;i++)\/\/循环点亮LED,到第7个LED延时一会就结束循环。在这个单片机流水灯代码中,假设使用的是8051...
C51单片机编程,按键控制流水灯
\/\/若run=dir=1,自上而下流动 if(dir)for(i=0;i<=3;i++){ P2=led[i];delay(200);} else for(i=3;i>=0;i--){ \/\/run=1,dir=0,自下而上流动 P2=led[i];delay(200);} else P2=0xff; \/\/若run=0,全部灯灭 } } ...
51单片机流水灯,第一轮每次亮一个灯流水,第二轮每次亮两个灯流水...
void delay(unit z){ unit x, y;for(x = 100; x > 0; x--) for(y = z; y > 0; y--);} void main(){ uchar temp, i;temp = 0xfe;while(1) { for (i = 0; i < 8; i++) { P1 = temp; delay(300); temp = _crol_(temp, 1);} temp <<= 1...
51单片机LED流水灯怎么实现从两边同时逐个点亮到中间,又从中间逐个熄灯...
回答:如果只用一个端口的话,你可以建一个表,如果LED是高电平点亮的话,里面存放数据0x81,0x42,0x24,0x18 如果LED是低电平点亮的话,里面存放数据 0x7e,0xbd,0xdb,0xe7 然后在循环里一直按照数组下标0到3递增3到0递减将数组里面的数赋给端口即可。 即一个大循环里面再加两个小循环即可,具体多少次...
51单片机C程序实验LED灯:[2]左到右的流水灯
依旧是基础的LED灯部分的实验 说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 电路图的连接方法 程序清单 说明:本例有两种程序写法 第一种是入门级别比较基础的写法 先是依旧延时子...
怎么用51单片机点亮流水灯
花样流水灯的玩法,一个51单片机8位端口轮流输出16颗灯珠,
51单片机流水灯用C语言编写的设计程序???
include<intrins.h> define uchar unsigned char define uint unsigned int void delay(uint z);main(){ uchar aa;while(1){ aa=0xfe;P1=aa;delay(100);while(1){ aa=_crol_(aa,1);P1=aa;delay(100);} } } void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0...