导航:首页 > 操作系统 > 单片机控制系统有8个发光二极管

单片机控制系统有8个发光二极管

发布时间:2022-05-31 17:20:27

1. 利用单片机控制8个发光二极管,实现8个灯同时闪烁的控制程序

以51位例,使用P1的八个IO口控制。
先定义:
sbit LED0=P1^0;
sbit LED1=P1^1;
........
以此类推,定义八个。
然后在主循环中:
LED0=0;
延时一段时间;
LED0=1;
就可以看到闪烁了。

2. 某单片机控制系统有8个发光二极管.试画8051与外设的连接图并用汇编语言编程使它们从左到右轮流点亮

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#7FH
LOOP:
MOV P0,A
LCALL DELAY
RR A
SJMP LOOP
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET

3. 用单片机控制8个发光二极管依次发光,产生跑马灯的效果,3种效果循环,要求通过按钮切换效果!

这个程序的关键点是要在显示子程序执行的过程中,多对按键进行检测。检测到有按键按下时,即退出子程序,返回到主函数的按键检测,对num
加一。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^5;
uchar temp;
uchar num;

void delay(uint z)//延时程序
{
uint x ,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void display0()//显示效果1
{
uchar i;
temp=0xfe;
for(i=0;i<8;i++)
{
if(key1==0) break;//对按键进行检测
P1=temp;
temp=_crol_(temp,1);
delay(50);
}
P1=0xff;
temp=0x7f;
for(i=0;i<8;i++)
{
if(key1==0) break;//对按键进行检测
P1=temp;
temp=_cror_(temp,1);
delay(50);
}

}
void display1()//显示效果2
{
uchar i;
temp=0xf8;
for(i=0;i<8;i++)
{
if(key1==0) break;//对按键进行检测
P1=temp;
temp=_crol_(temp,1);
delay(50);
}
P1=0xff;
temp=0x1f;
for(i=0;i<8;i++)
{
if(key1==0) break;//对按键进行检测
P1=temp;
temp=_cror_(temp,1);
delay(50);
}
}
void display2()//显示效果3
{
uchar i;
temp=0x99;
for(i=0;i<8;i++)
{
if(key1==0) break;//对按键进行检测
P1=temp;
temp=_crol_(temp,1);
delay(50);
}
P1=0xff;
temp=0xcc;
for(i=0;i<8;i++)
{
if(key1==0) break;//对按键进行检测
P1=temp;
temp=_cror_(temp,1);
delay(50);
}
}

void anjian()
{
if(key1==0)//按键检测
{
delay(5);//按键消抖延时
if(key1==0)
{
num++;
if(num==3) num=0;
}
while(!key1);
}
}

void main()
{
while(1)
{
anjian();//按键检测并赋num值
switch(num)
{
case 0:display0();break;
case 1:display1();break;
case 2:display2();break;
}
}

}

4. 利用单片机控制8个发光二极管,设计8个灯同时闪烁的控制程序

方法:
1:设定一个变量i,可以从0到3循环的变化
2:检测一个经过消抖处理的按键,按一下,i+1
3:当i值为各个值时,执行相应的花样。
流水灯参考程序
#include
#include
#define uchar unsigned char
uchar j,temp;
void delay(unsigned int ms)
{
uchar t;
while(ms--)
for(t=0;t<123;t++);
}
void main()
{
P1=0xff;
delay(500);
temp=0xfe; //有点怪,led接在P2.3~P2.6
for(j=0;j<4;j++)
{
P1=temp;
delay(500);
temp=_crol_(temp,1);
}
P1=0xff;
while(1);
}

5. 用单片机控制8个发光二极管如流水般先从右往左再从左往右依次亮灭,每个状态持续0.5秒,循环3次后

#include <reg52.h>

#define uchar unsigned char
uchar sum;
uchar a;

/*void delay void()
{
uchar i,j;

for(i=0;i<119;i++)

{
for(j=0;j<50;j++){;}

}
}
*/
void mian(void)
{
a=0x01;
P1=a;

TMOD=0X01;

EA=1;
ET0=1;
TR0=1;

TH0=(65536-50000)/256; //0.05秒,后面增加十倍以达到0.5s
TL0=(65536-50000)%256;
while(1)
{
;
}
}

void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
sum++;
if(sum==10)
{
sum=0;
a=a>>1;
P1=a;
}
}

这是无限第一个循环,再在main里加些控制语句就能左右三次最后全亮

6. 哪位大神帮忙写下程序 利用单片机控制8个发光二极管,设计8个灯同时亮的控制程序怎么写

八个灯接在单片机的P1口(P0,P2,P3,P4都一样)
while(1)
{
delay(你想要延时的时间);
P1=0xff;
delay(你想要延时的时间);
P1=0;
}
注意led最好加驱动,不然单片机会坏的。

7. 用51单片机控制八个发光二极管

// 51单片机控制八个发光二极管 左右循环。

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; // 改变这里 LED 各种花样

uchar t,i;

void main()

{

TMOD=0x10;

TH1=(65535-50000)/256; // 50ms一次

TL1=(65535-50000)%256;

EA=1;

ET1=1;//开定时器1中断

TR1=1;//启动定时器1

t=0;

i=0;

while(1)

{

}

}

void timer1() interrupt 3

{

TH1=(65535-50000)/256; // 50ms一次

TL1=(65535-50000)%256;

t++;

if(t==20)

{

t=0;

P2=TAB[i];

i++;

if(i==18) { i=0;}

}

}

8. 某单片机控制系统有8个发光二极管。试画出89c51与外设的连接图并编程使它们由左向右轮流点亮。

void dly(void)

{unsigned long cnt=2e5;

while(cnt--);

}

void main(void)

{unsigned char flag,cnt=0;

while(1)

{cnt++;

if(cnt>=8)cnt=0;

flag=(0x1<<cnt);

P1=~flag;

dly();

}

}

9. 用单片机控制8个LED发光二极管,从右到左依次亮,时间间隔0.5秒,最后用BCD码表示16

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R2,#8

LOOP:
MOV P1,A

CLR C

RLC A

LCALL DELAY

DJNZ R2,LOOP

MOV P1,#16

SJMP $

DELAY:
MOV R3,#10

DLY1:
MOV R4,#200

DLY2:
MOV R5,#248

DJNZ R5,$

DJNZ R4,DLY2

DJNZ R3,DLY1

RET

END

阅读全文

与单片机控制系统有8个发光二极管相关的资料

热点内容
自己购买云主服务器推荐 浏览:419
个人所得税java 浏览:761
多余的服务器滑道还有什么用 浏览:189
pdf劈开合并 浏览:28
不能修改的pdf 浏览:751
同城公众源码 浏览:488
一个服务器2个端口怎么映射 浏览:297
java字符串ascii码 浏览:78
台湾云服务器怎么租服务器 浏览:475
旅游手机网站源码 浏览:332
android关联表 浏览:945
安卓导航无声音怎么维修 浏览:332
app怎么装视频 浏览:430
安卓系统下的软件怎么移到桌面 浏览:96
windows拷贝到linux 浏览:772
mdr软件解压和别人不一样 浏览:904
单片机串行通信有什么好处 浏览:340
游戏开发程序员书籍 浏览:860
pdf中图片修改 浏览:288
汇编编译后 浏览:491