|
===========代碼(Keil uVision4編輯,編譯)=========================
#include<reg51.h>
#define u8 unsigned char
#define u16 unsigned int
#define temp_ON 0xc0
#define temp_OFF 0xff
u8 U_TO_D[8]={0xfb,0xf1,0xe0,0xc0,0xf7,0xe3,0xc1,0xc0};
u8 D_TO_U[8]={0xdf,0xce,0xc4,0xc0,0xfe,0xdc,0xc8,0xc0};
u8 temp,temp1,temp2;
void delay_ms(u16 n)
{
u16 i,j;
for(i=0;i<n;i++)
for(j=0;j<113;j++)
;
}
void all_OFF()
{
P0=temp_OFF;
P1=temp_OFF;
P2=temp_OFF;
P3=temp_OFF;
}
void up_to_down()
{
u16 i;
for(i=0;i<4;i++)
{
P0=U_TO_D[i];
P3=U_TO_D[i+4];
delay_ms(300);
}
temp1=0xfe,temp2=0xdf;
for(i=0;i<6;i++)
{
P1=temp1,P2=temp2;
delay_ms(300);
temp1=temp1-(2<<i);
temp2=temp2-(16>>i);
}
all_OFF();
delay_ms(300);
}
void down_to_up()
{
u16 i;
temp1=0xdf,temp2=0xfe;
for(i=0;i<6;i++)
{
P1=temp1,P2=temp2;
delay_ms(300);
temp1=temp1-(16>>i);
temp2=temp2-(2<<i);
}
for(i=0;i<4;i++)
{
P0=D_TO_U[i];
P3=D_TO_U[i+4];
delay_ms(300);
}
all_OFF();
delay_ms(300);
}
void left_to_right()
{
u16 i;
temp1=0xdf,temp2=0xfe;
for(i=0;i<6;i++)
{
P0=temp1,P1=temp2;
delay_ms(300);
temp1=temp1-(16>>i);
temp2=temp2-(2<<i);
}
temp1=0xdf,temp2=0xfe;
for(i=0;i<6;i++)
{
P3=temp1,P2=temp2;
delay_ms(300);
temp1=temp1-(16>>i);
temp2=temp2-(2<<i);
}
all_OFF();
delay_ms(300);
}
void right_to_left()
{
u16 i;
temp1=0xfe,temp2=0xdf;
for(i=0;i<6;i++)
{
P3=temp1,P2=temp2;
delay_ms(300);
temp1=temp1-(2<<i);
temp2=temp2-(16>>i);
}
temp1=0xfe,temp2=0xdf;
for(i=0;i<6;i++)
{
P0=temp1,P1=temp2;
delay_ms(300);
temp1=temp1-(2<<i);
temp2=temp2-(16>>i);
}
all_OFF();
delay_ms(300);
}
void clockwise()
{
u16 i;
temp=0xfe;
for(i=0;i<6;i++)
{
P0=temp;
delay_ms(300);
temp=temp-(2<<i);
}
temp=0xfe;
for(i=0;i<6;i++)
{
P1=temp;
delay_ms(300);
temp=temp-(2<<i);
}
temp=0xfe;
for(i=0;i<6;i++)
{
P2=temp;
delay_ms(300);
temp=temp-(2<<i);
}
temp=0xfe;
for(i=0;i<6;i++)
{
P3=temp;
delay_ms(300);
temp=temp-(2<<i);
}
all_OFF();
delay_ms(300);
}
void anticlockwise()
{
u16 i;
temp=0xdf;
for(i=0;i<6;i++)
{
P3=temp;
delay_ms(300);
temp=temp-(16>>i);
}
temp=0xdf;
for(i=0;i<6;i++)
{
P2=temp;
delay_ms(300);
temp=temp-(16>>i);
}
temp=0xdf;
for(i=0;i<6;i++)
{
P1=temp;
delay_ms(300);
temp=temp-(16>>i);
}
temp=0xdf;
for(i=0;i<6;i++)
{
P0=temp;
delay_ms(300);
temp=temp-(16>>i);
}
all_OFF();
delay_ms(300);
}
void main()
{
while(1)
{
up_to_down();
down_to_up();
left_to_right();
right_to_left();
clockwise();
anticlockwise();
}
}
|
-
led1_1.jpg
(790.86 KB, 下載次數: 25)
下載附件
2018-9-18 05:00 上傳
-
-
led1_1.zip
2018-9-18 05:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
141.29 KB, 下載次數: 20, 下載積分: 黑幣 -5
心形燈源文件
|