第一讲,关于LED的操作
//点亮第一个LED,进行亮灭闪烁操作
#include <STC12C5A60S2.H>
void Delayms(int ms);
void main(void)
{
P2=0xA0;P0=0x00;P2=0x80;P0=0xFF;//初始化
while(1)
{
P00=0;
Delayms(200);
P00=1;
Delayms(200);
}
}
void Delayms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=845;j>0;j--);
}
//LED 进行位移操作,每次亮150ms,灭150ms
#include <STC12C5A60S2.H>
unsigned char LED;
Delayms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=845;j>0;j--);
}
void main(void)
{
P2=0xA0;P0=0x00;
P2=0x80;P0=0xFF;//初始化
while(1)
{
for(LED=8;LED>0;LED--)
{
P0=~0;
Delayms(150);
P0=~(0x01<<LED);
Delayms(300);
}
}
}
LED先左移,再右移,然后全部闪烁四遍
#include <STC12C5A60S2.H>
unsigned char LED;
Delayms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=845;j>0;j--);
}
void main(void)
{
P2=0xA0;P0=0x00;
P2=0x80;P0=0xFF;//初始化
while(1)
{
for(LED=0;LED<8;LED++)
{
P0=~(0x01<<LED);
Delayms(200);
}
for(LED=8;LED>0;LED--)
{
P0=~(0x01<<LED);
Delayms(300);
}
for(LED=5;LED>0;LED--)
{
P0=0x00;
Delayms(1000);
P0=0xff;
Delayms(1000);
}
}
}
//LED右循环,每次点亮灯数加1
#include <STC12C5A60S2.H>
#include <reg52.h>
#include <intrins.h>
unsigned int LED,L;
unsigned int temp;
int a[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};
void Delayms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=845;j>0;j--);
}
void main(void)
{
P2=0xA0;P0=0x00;
P2=0x80;P0=0xFF;
while(1){
for(LED=0;LED<8;LED++)
{
temp=a[LED];
for(L=8;L>0;L--)
{
P0=temp;
temp=_crol_(temp,1);
Delayms(300);
}
}
}
}
//LED 奇数偶数灯亮灭变换循环3次,左移右移循环3次,从左右两边向中间靠拢循环三遍,从中间向两边靠拢循环三遍,进行全灯亮灭操作三遍
#include <reg52.h>
#include <intrins.h>
int temp;
int a[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
int b[]={0x7E,0xBD,0xDB,0xE7};
void Delayms(int ms)
{
int i,j;
for(i=0;i<ms;i++)
for(j=845;j>0;j--);
}
void main(void)
{
P2=0xA0;P0=0x00;
P2=0x80;P0=0xFF;
{
int m,n,k,l,x,y,z,c,v;
for(m=0;m<3;m++)
{
P0=0xAA;
Delayms(300);
P0=0x55;
Delayms(300);
}
for(l=3;l>0;l--){
for(n=0;n<8;n++)
{
temp=a[n];
P0=temp;
// temp=_crol_(temp,1);
Delayms(300);
}
for(k=7;k>=0;k--)
{
temp=a[k];
P0=temp;
// temp=_cror_(temp,1);
Delayms(300);
}
}
for(x=3;x>0;x--){
for(y=0;y<4;y++)
{
temp=b[y];
P0=temp;
Delayms(300);
}
}
for(z=3;z>0;z--)
{
for(c=3;c>=0;c--)
{
temp=b[c];
P0=temp;
Delayms(300);
}
}
for(v=3;v>0;v--)
{
P0=0x00;
Delayms(300);
P0=0xFF;
Delayms(300);
}
}
while(1);
}