#include<intrins.h>
#define uchar unsigned char
sbit key=P3^2
uchar keyval
void delay(uchar 漏凯ms)
{
uchar i
while(ms--)for(i=0i<120i++)
}
void 仔饥ext0() interrupt 0
{
keyval++
keyval%=2
}
main()
{
EX0=1
IT0=1
EA=1
P1=0xfe
while(1)
{
switch(keyval)
{
case 0:
P1=_crol_(P1,1)
delay(200)
break
case 1:
念搜返 P1=_cror_(P1,1)
delay(200)
break
}
}
}
ORG 0000H 程序开始SJMP START 跳转到START
ORG 0050H START从ROM的0050H开始存储
START: MOVE P1.0,#00000001B 把二进制数00000001B送到P1口
LCALL DELAY 调用延时子程序
MOVE P1.0,#00000010B 把二进制简做蚂数00000010B送到P1口
LCALL DELAY
MOVE P1.0,#00000100B
LCALL DELAY
MOVE P1.0,#00001000B
LCALL DELAY
MOVE P1.0,#00010000B
LCALL DELAY
MOVE P1.0,#00100000B
LCALL DELAY
MOVE P1.0,#01000000B
LCALL DELAY
MOVE P1.0,#10000000B
LCALL DELAY
LJMP START 跳转到START
延时子程序DELAY,改变R5、R6、R7中的值(0到255),可以改变延时时间
DELAY: MOV R5,#20 把20放到寄存器R5中,
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$ 把拦埋寄存器R7中的胡枣内容减1,如果结果不定于0,则跳转到本身,如果等于0,执行下一条程序
DJNZ R6,D2 把寄存器R6中的内容减1,如果结果不定于0,则跳转到本身,如果等于0,跳转到D2
DJNZ R5,D1
RET
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)