求单片机控制八个led灯随意亮灭别且想有几个亮就亮几个的程序!!!!

如题所述

第1个回答  2013-04-14
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int// 宏定义变量
#define uchar unsigned char//宏定义变量
uchar temp;
void delay(uint z);//声明延时变量
void main()
{
temp=0xfe;//11111110想第几个管脚的二极管亮,就将那个管脚设0
P1=temp;//低电平有效,第一个管脚的二极管亮
while(1) //进入循环
{
delay(3000);//延时1秒
temp=_crol_(temp,1); //向左移,一位
P1=temp;//将temp的值赋给P1口
}
}
void delay(uint z)//z等于1表示延时1毫秒
{
uint x,y; //
for(x=z;x>0;x--)//x初值为z,不为0执行下一个,x
for(y=110;y>0;y--);//y取110是因为晶振11MH,110个周期时间为1毫秒。
}追问

这个不行啊 我需要的是一个上位机给信号 给一个固定的信号对应的灯亮 同样感谢你

本回答被网友采纳
第2个回答  2013-04-14
#define dBIN(a,b,c,d,e,f,g,h) ((1<<7)+(1<<6)+(1<<5)+(1<<4)+(1<<3)+(1<<2)+(1<<1)+(1)

//控制函数

void Cor8LED( undigned char out)
{
//假设为P0口控制8个灯,高电平亮

P0 = out;

}

//调用函数控制灯:
//假设1、3、5、8亮(0:灭,1:亮)
Cor8LED( dBIN(1,0,1,0,1,0,0,1));追问

最上面那个是什么意思啊

追答

宏定义,将a,b,c,d,e,f,g,h 8个参数代表的8个灯状态转换为 8位二进制。

第3个回答  2013-04-14
随意亮灭别、且想有几个亮就亮几个的程序!
----
想?
有一帮人在看这个 LED,由谁来想?
第4个回答  2013-04-14
用意念控制吗?追问

就是想让几个亮就几个亮 想让哪个亮就哪个亮

追答

那很简单,只要控制端口的高低电平就可以想让几个亮就几个亮 想让哪个亮就哪个亮,楼上的程序应该就可以实现。

追问

给一个固定的信号对应的灯亮也可以实现吗

追答

你的意思是不用再改程序,用外面按钮或开关就可以控制灯亮或灭,是这样吗?
那可以在P1口接8个拨动开关,控制P1口的数值(0~255),在P0口接8个LED+上拉电阻,灌电流驱动(低电平有效,LED负极接P1口),用程序先读取P1口数据,再把数据输出到P0口,就可以了。程序也很简单,自己编一下,实际就是读按钮和端口输出。

第5个回答  2013-04-14
啥叫随意呀,就是随机吗?追问

就是想让几个亮就几个亮 想让哪个亮就哪个亮

追答

用逻辑操作呗

求单片机控制八个led灯随意亮灭别且想有几个亮就亮几个的程序!!!
uchar temp;void delay(uint z);\/\/声明延时变量 void main(){ temp=0xfe;\/\/11111110想第几个管脚的二极管亮,就将那个管脚设0 P1=temp;\/\/低电平有效,第一个管脚的二极管亮 while(1) \/\/进入循环 { delay(3000);\/\/延时1秒 temp=_crol_(temp,1); \/\/向左移,一位 P1=temp;\/\/将temp的...

利用单片机控制八个led灯,要求:四亮四灭 (各四次),全亮全灭(各四次...
\/\/ 单片机控制八个led灯, 仿真实例 可以改为 各种花样。include<reg52.h> define uchar unsigned char define uint unsigned int unsigned char TAB[]= {0xff,0xaa,0xff,0xaa,0xff,0xaa,0xff,0xaa,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0xff,0xff}; \/\/ 改变这里 LED 各...

keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)
P1=0xef; \/\/点亮第五个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xdf; \/\/点亮第六个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xbf; \/\/点亮第七个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0x7f; \/\/点亮第八个LED for(i=...

单片机 8个LED灯随机闪烁怎么做?
1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图所示,输入以下代码。5、接着输入对输出取反,最后调用延迟函数,如下图所示就完...

要求用51单片机控制8个LED亮灭的原理图+程序+解说?
1、依次亮,依次灭:从一个灯亮到全亮,再到全灭,每次改变一个灯亮灭 2、奇偶号灯间隔亮灭:隔一个灯亮一个灯亮灯时间为1s,没有灯全灭的时候 3、依次闪烁、切换时间为3秒,闪烁时间为2秒,我理解的是,没三秒钟有一个灯在闪烁,其中有一秒钟是灭灯状态 程序中使用了P1口与8个发光二极管...

求单片机设计8个led灯同时闪烁的程序,
请设计一个8个led同时全部闪烁的程序 include <reg51.h> main (){int i;while (1){for (i=0;i<=30000;i++);P1=~P1;} }

单片机控制8个灯依次亮,全亮了,再依次灭的c语言流程图,顺便加上解释...
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。

利用单片机控制八个led灯,要求:全亮全灭 ,四亮四灭,以从右到左的 流 ...
LED=(LED<<1)|0x01; \/*最低位LED灯左移一位后进行或运算使得最低位不会为“0”*\/ } for(i=0;i<7;i++){ delay(100);LED=(LED>>1)|0x80; \/*最低位LED灯右移一位后进行或运算使得最高位不会为“0”*\/ } LED=0xff;for(i=0;i<4;i++){ delay(300);LED=~LED; \/*所有...

单片机点亮八个led灯
在编程时,你需要将P1端口设置为输出模式,然后通过对P1端口写入相应的数据来控制LED灯的亮灭。例如,要同时点亮所有八个LED灯,可以将P1端口的值设置为0xFF(二进制为11111111),这样P1端口的每个引脚都会输出高电平,从而使连接的LED灯点亮。具体代码实现(以C语言为例,针对51单片机)可能如下:```c...

单片机怎么实现一个开关控制八个灯按一下亮一个按八下八个灯都亮汇编...
用一个寄存器做变量就可以。假如按键是一个开个,接在P1.0,八个灯在P0,低电平灯亮 程序是这样的 MOV 30H ,#00 LOP :SETB P1.0 JNB P1.0, PRESS AJMP LOP PRESS:INC 30H MOV A,30H CJNE A,#9,L_NEXT MOV 30H,#1 L_NEXT:JNB P1.0,MOV A,30H CJNE A,#1 ,LED1...

相似回答