一、Proteus设计电路
1、电路设计
2、导入Keil生成的hex文件,即可运行
二、Keil
1、C语言实现
#include <reg51.h>
#include <intrins.h>
//延迟
void delay_ms(int a)
{
int i,j;
for(i=0;i<a;i++)
{
for(j=0;j<1000;j++) _nop_();
}
}
void main(void)
{
while(1)
{
P0=0xfe;
delay_ms(50);
P0=0xfd;
delay_ms(50);
P0=0xfb;
delay_ms(50);
P0=0xf7;
delay_ms(50);
P0=0xef;
delay_ms(50);
P0=0xdf;
delay_ms(50);
P0=0xbf;
delay_ms(50);
P0=0x7f;
delay_ms(50);
}
}
效果
2、汇编实现
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV SP, #60H
MOV A, #0FEH;
LOOP:
INC R0;
RR A ;
MOV P1,A ;
ACALL DELAY;
AJMP LOOP;
AJMP $;
DELAY:
MOV R4, #20;
DEL1:
MOV R6, #100;
DEL2:
MOV R7, #250;
DJNZ R7,$;
DJNZ R6,DEL2;
DJNZ R4,DEL1;
RETI ;
END
效果
三、参考
1.https://blog.csdn.net/HowBigAreYou/article/details/130251473
2.https://blog.csdn.net/ssj925319/article/details/108929227