⑴ 請教高手單片機課程設計:先點亮奇數位燈再點亮偶數位燈``````
//流水燈 4 個按鍵 4種 亮法,自己修改 成自己要的 亮法,供參考
#include <REG51.h> //51頭文件
#define DY_PORT P1 //設置LED連接的I/O組
#define DY_SPEED 100 //設置每一個明亮級的停留時間(值域:0~65535)
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
void delay (unsigned int a) // 1ms延時程序
{
unsigned int i;
while( --a != 0)
{
for(i = 0; i < 600; i++);
}
}
void main(void)
{
unsigned int i;
unsigned int temp;
while(1)
{
if(~k1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
DY_PORT=~temp;
delay(DY_SPEED); //調用延時函數
temp<<=1;
}
}
if(~k2)
{
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
DY_PORT=~temp;
delay(DY_SPEED); //調用延時函數
temp>>=1;
}
}
if(~k3)
{
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
DY_PORT=temp;
delay(DY_SPEED); //調用延時函數
temp<<=1;
}
}
if(~k4)
{
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
DY_PORT=temp;
delay(DY_SPEED); //調用延時函數
temp>>=1;
}
}
}
}
⑵ 如何在這個單片機流水燈程序里再加上控制奇數燈亮後偶數燈亮
#include <reg51.h>
#define LED P1
void delay(int);
main()
{
unsigned char i;
LED = 0xfe;
while (1)
{
for (i = 0; i < 7; i++)
{
delay(100);
LED = (LED << 1) | 0X01;
}
for (i = 0; i < 7; i++)
{
delay(100);
LED = (LED >> 1) | 0x80;
}
for (i = 1; i < 7; i += 2)
{
delay(100);
LED = (LED >> 1) | 0x80;
}
for (i = 0; i < 7; i += 2)
{
delay(100);
LED = (LED >> 1) | 0x80;
}
}
}
void delay(int x)
{
int i, j;
for (i = 0; i < x; i++)
for (j = 0; j <= 600; j++)
;
}
⑶ 如何讓單片機的奇數和偶數流水燈輪流點亮
while(1)
{
P0=0x55;P1=0x01; //奇數亮
delay(500); //500ms
P0=0; P1=0; //全部熄滅
delay(200); //200ms
P0=~P0; P1=~P1; //偶數亮
delay(1000); //1000ms
P0=0; P1=0; //全部熄滅
delay(200); //200ms
}
⑷ 單片機控制8個LED燈,完成奇數燈亮偶數燈滅,然後偶數燈亮奇數燈滅,10次,用C語言編程
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchari,j;
for(i=0;i<10;i++)
{
P0=0xaa;
delay(200);
P0=0x55;
delay(200);
}
for(i=0;i<10;i++)
P0=0xfe;
{
for(j=0;j<8;j++){P0=_crol_(P0,1);delay(200);}
}
while(1);
}
⑸ 單片機c語言LED燈奇數亮燈。
//LED低電平點亮
//LED1-LED8分別接P2.0-P2.7
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
void delay(unsigned char a) //延時
{
unsigned char i;
while(a--)
for(i=100;i>0;i--);
}
void main(void)
{
uchar i;
P2=0XFF;
while(1)
{
for(i=0;i<8;i=i+2)
{
P2=~(1<<i);
}
}
}
⑹ 51單片機led燈怎麼亮
要式連接51單片機的LED燈被點亮,攏共需要三步:
搭建好51單片機運行的最小系統,並連接好下載線。
LED燈的正極經過470Ω電阻連接在電源正極上,LED燈的負極連接在單片機的某個介面上,例如連接I/O口P1.0上。
編程使P1.0輸出低電平,將編譯好的程序下載到單片機里,在單片機再次上電後就可以看到LED燈發光亮起了。
⑺ (小白)單片機怎麼接點亮LED談硬體不是程序
LED正極接電源,負極接單片機的一個IO口(比如P1.0),中間要串聯一個限流電阻,阻值在幾百歐到1k之間。
⑻ 如何用單片機點亮LED燈
接好單片機的硬體電路,然後編寫程序,再然後燒寫程序,然後就可以程序了,沒問題的話就可以按你的要求點亮了
⑼ 單片機C語言LED先奇數後偶數點亮
你這樣運行的結果是,亮燈順序編號是:(0.05S)3,(0.25s)5,(0.4s)7,(0.6s)1,(0.8s)4,(1.0s)6,(1.2s)8,(1.4s)2,(1.6s)3,(1.8s)5.............這是這個程序單步運行的結果。。
經試驗查證,P0=0xfe;後要加個延遲,要不就一句程序運行時間太短,馬上就運行底下的了,導致這句程序沒反應出來。底下P0=0xfd,一樣要加延遲。
循環只循環三次就夠了,因為第一次你已經寫出來了,入1已經寫了,那就只要3、5、7就可以了。
所以程序可以是:
#include<reg52.h>
#include<intrins.h>
void delay()
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main()
{
unsigned char i,j;
while(1)
{
P0=0xfe;
delay();
for(i=0;i<3;i++)
{P0=_crol_(P0,2);
delay(); }
P0=0xfd;
delay();
for(j=0;j<3;j++)
{P0=_crol_(P0,2);
delay(); }
}}
⑽ 單片機高手給點撥下,led燈只讓偶數閃爍,奇數不亮,程序如何寫
很好實現的 就是讓偶數led燈亮 延時一段時間後 讓偶數led燈滅 再延時一段時間 循環不斷地重復這2個過程。
整個過程中,奇數led燈不亮。 這樣就會產生偶數led燈閃爍現象。即就是由亮、滅交替產生的。
LLL: MOV P1,#10101010B; 偶數led燈亮
LCALL YS ;延時
MOV P1,#11111111B ;偶數led燈滅
SJMP LLL
YS: MOV R5,#2
YSLL1: MOV R4,#200
YSLL2: MOV R3,#250
DJNZ R3,$
DJNZ R4,YSLL2
DJNZ R5,YSLL1
RET
呵呵 滿意就選滿意回答