单片机编程题

来源:百度知道 编辑:UC知道 时间:2024/07/01 13:08:20
用MCS-51系统使LED灯按13572468亮 并有连续循环与延迟

一般都是共阳的接法,就假设是共阳的吧。接在P1口上。
汇编:
ORG 0000H
MOV A,#0FEH
MOV P1,A
LOOP:
ACALL DELAY
RL A
RL A
MOV P1,A
CJNE A,#7FH,NEXT1
RR A
AJMP NEXT2
NEXT1:
CJNE A,#0BFH,NEXT2
RL A
NEXT2:
AJMP LOOP
DELAY:
MOV R0,#255
MOV R1,#255
D1:DJNZ R1,$
DJNZ R0,D1
RET
END

c语言:
#include <reg51.h>
#include <intrins.h>
void delay()
{
int i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
main()
{
unsigned char Data=0xfe;
while(1)
{
P1=Data;
if(Data==0xBF)
Data=_crol_(Data,3);
else
if(Data==0x7f)
Data=_crol_(Data,1);
else
Data=_crol_(Data,2);
delay();
}
}
电路图:
http:/