㈠ 8051單片機,用P0口控制8個LED實現循環彩燈.循環顯示規律為:全亮,全滅,依次點亮全滅。 間隔時間1秒。
#include<reg51.h>
#define uchar unsigned char
uchar times,cnt;
uchar led[]={0x00,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
times++;
if(times>=40)
{
times=0;
P0=led[cnt];
cnt++;
cnt%=11;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
//程序很簡單,你自己加註釋和完成其他工作吧。
㈡ 用89S52單片機構件建一個彩燈控制系統,系統用P1口外接8個發光二極體。
用89S52單旦運片機構件建一個彩燈控制系統,系統用P1口外接8個發光二極體,沒有鍵按下時,8支彩燈每隔0.5s全亮全滅一次。
按K1時,8支彩燈從左至右循環點亮。
按K2時,8支彩燈從右至左循環點亮。
按K3時,8支彩燈先右循環點亮後左循環點亮。
同時按下K1和K2時塌塌,8支彩燈從中間向外循環點亮。
同時按下K2和K3時,8支彩燈從兩端向內循環點亮。
同時按下K1和K3時,8支彩燈從左到右依次點亮後從右到左依次熄滅,反復循環。
同時按模衫梁下三個鍵時,0、2、4、6、1、3、5、7循環點亮。
㈢ 用單片機設計彩燈控制器設計
8路彩燈也可以呀電路圖很簡單照課本抄
程序如下
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#21H;設定T0為16位定時模式T1為8位自動重裝計數模式
SETB TR0;開定時器
SETB TR1
MOV R7,#4;設置N路彩燈這里設置為4路
MOV R6,#4
MOV R5,#4
MOV A,#00H
LOOP:
MOV P1,A;從做到右逐次點亮
RL A
INC A
ACALL MAIN0;調用延時
DJNZ R7,LOOP
MAIN1:MOV A,#0FFH
MOV P1,A
RR A
SUBB A,#08H;各路彩燈在這里設置立即數不同
ACALL MAIN0
DJNZ R6,MAIN1
MAIN2:MOV A,#00H
MOV P1,A
CPL A
ACALL MAIN0
DJNZ R5,MAIN2
LJMP MAIN
MAIN0:MOV DPTR,#15536;設定T0定時50ms的初值
MOV TL0,DPL
MOV TH0,DPH
MOV TL1,#236;設定t1計數20次即20*50ms=1s
MOV TH1,#236
JNB TF0,$;?0ms未到等待
CLR TF0;?0ms到清除標志位
CPL P3.5
JNB TF1,MAIN0;20次未到繼續計數
CLR TF1
RET
這個寫的急沒調試如果不可以下面的順序要自己調也就是先閃爍再逐個點亮熄滅延時都是一秒……
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV P1,#0FFH
MOV A,#0FFH
MOV R4,#8
MOV R3,#9
MAIN1:
CPL A
MOV P1,A
LCALL AA
DJNZ R4,MAIN1
MAIN2:
RL A
INC A
MOV P1,A
LCALL AA
DJNZ R3,MAIN2
MOV R3,#9
MAIN3:
RR A
MOV P1,A
DEC A
LCALL AA
DJNZ R3,MAIN3
LJMP MAIN
AA:
MOV R7,#2
AA1:MOV R6,#250
AA2:MOV R5,#250
AA3:
NOP
NOP
DJNZ R5,AA3
DJNZ R6,AA2
DJNZ R7,AA1
RET
㈣ 怎麼設這單片機彩燈一個一個亮
應該是單片機最簡單的應用這一段指令就可以實現八個燈的控制,四個亮四個
㈤ 基於51單片機16個彩燈從左到右再從右左循環閃爍的匯編程序
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int //16位
#define uchar unsigned char//8位
sbit led=P2^0;
sbit k0=P1^0;
sbit k1=P1^1;
void delay(uint z);
void youyi();
void zuoyi();
uchar i;
uchar temp1=0x01;//0000 0001
uchar temp2=0x80;//1000 0000
uchar flag0=0;
uchar flag1=0;
void main()
{
while(1)
{
if(k0==0)//左移
{
flag0=1;
}
if(k1==0)//右移
{
flag1=1;
}
if(flag0==1)
{
zuoyi();
temp2=0x80;
}
if(flag1==1)
{
youyi();
temp1=0x01;
}
}
}
void zuoyi()
{
for(i=0;i<7;i++)//i++ i=i+1
{
P2=temp1;
temp1=_crol_(temp1,1);//0000 0010
delay(500);
}
}
void youyi()
{
for(i=0;i<7;i++)//i++ i=i+1
{
P2=temp2;
temp2=_cror_(temp2,1);//1000 0000
delay(500);
}
}
void delay(uint z)
{
uint x , y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
㈥ 用51單片機寫程序,4個按鍵燈控制8個彩燈切換九種燈光效果
P1口接8個LED燈,P3口接4個按鍵K1~K4,用於控制流水燈的四種效果,模擬圖如下。