if(ledi==8)
{
ledi=0//到了最后一个灯就换到第一个
//每跑一圈灯就根据预定设置的表格来决定下一圈信尺的跑马滑历高速度
speed=speedcode[i]
i++if(i==2)i=0?你的速度设置不仅仅就2个呀(10个预定义的烂慎速度)
}
有两种解决办法:
一个就是将预定的速度加2倍
speedcode[30]={3,3,3,1,1,1,5,5,5,12,12,12,、、、、、、}
二是增加一全局变量uchar z=0在i++前加上如下,前后不改:
、、、、、if(++z==3){z=0i++;}、、、、、、、、、、、
org 0000hajmp start
org 0030h
start:
mov a,#0ffh
clr c
mov r2,#08h 循环八次。
loop: rlc a 带进位左移。
mov p1,a 输出虚高到P1口。
call delay 延时一段时间
djnz r2,loop 反差槐尺复循环
mov r2,#07h 再往回循环。
loop1: rrc a 带进位右移
mov p1,a 输出到P1口。
call delay 延时一段时间
djnz r2,loop1 反复循环
jmp start 重新开明带始
delay: mov r3,#20 延时子程序
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)