
<reg52.h>
void
delay(int
a)
//延迟程序
{
while(a--)
}
main(){
P1=0x01
//P1口初始0000
0001
while(1){
while(P1!=0x80){
//当p1口不是
1000
0000时
P1口左移一位,本来起初是0000
0001,500毫
秒后变成
0000
0010,然后0000
0100,直到变成1000
0000
P1=P1<<1
delay(5000)
}
while(P1!=0x01){
//同理
1000
0000
右移
变成0100
0000,因为P1口接led,高电位时点亮
P1=P1>>1
delay(5000)
}
}
}
ORG 0000HMAIN:
MOV A,#0FEH
MOV R2,#8
LP1:左移
MOV P0,A
RL A
LCALL DELAY
DJNZ R2,LP1
MOV R2,#8
LP2:右移
MOV P0,A
RR A
LCALL DELAY
DJNZ R2,LP2
MOV R2,#8
LP3:闪烁右移
MOV P0,A
RR A
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
DJNZ R2,LP3
MOV R2,#8
LP4:闪烁左移
MOV P0,A
RL A
LCALL DELAY
MOV P0,#0FFH
LCALL DELAY
DJNZ R2,LP4
LJMP MAIN
END
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)