第1个回答 2011-12-13
用这个,LED 接在P1口,12M晶振 大约0.5秒一位。
ORG 0300H
MOV A,#1
LOOP:MOV P1,A
LCALL DELAY
SETB C
RLC A
JNC LOOP
CLR C
RRC A
LOOP1:MOV P1,A
LCALL DELAY
CLR C
RRC A
JC LOOP1
SETB C
RLC A
SJMP LOOP
DELAY:NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R1DELAY
DJNZ R2,DELAY
第2个回答 2011-12-13
#include<reg52.h>
unsigned char code temp[9]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
void delay()
{
int a,b;
for(a=0;a<50;a++)
for(b=0;b<1000;b++);
}
void main()
{
char a;
while(1)
{
for(a=0;a<9;a++)
{
P1=temp[a];
delay();
}
for(a=8;a>=0;a--)
{
P1=temp[a];
delay();
}
}
}
第4个回答 2011-12-13
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void main()
{
uchar i;
P2=0x01;
while(1)
{
for(i=7;i>0;i--)
{
P2=_crol_(P2,1);
DelayMS(150);
}
for(i=7;i>0;i--)
{
P2=_cror_(P2,2);
DelayMS(150);
}
}
}