LJMP MAIN
ORG 0030H
MAIN:
MOV A,P0
ANL A,#1EH
CJNE A,#02H,MAIN1
SETB P1.1
CLR P1.2
CLR P1.8
SJMP MAIN
MAIN1:
CJNE A,#04H,MAIN2
CLR P1.1
SETB P1.2
CLR P1.8
SJMP MAIN
MAIN2:
CJNE A,#1EH,MAIN3
CLR P1.1
CLR P1.2
SETB P1.8
SJMP MAIN
MAIN3:
CLR P1.1
CLR P1.2
CLR P1.8
LJMP MAIN
END
可以修改为以下状态ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV P2,#0
LOOP:
MOV R2,#6
MOV A,#01H
LOOP1:
MOV P2,A
LCALL DELAY
DJNZ R2,LOOP1
SJMP LOOP
DELAY:
MOV R7,#0
DLY:
MOV R6,#0
DJNZ R6,$
DJNZ R7,DLY
RET
END(1)修改的程序就只用了P2口,其余未处理,原程序用其余口,应该有其他条件
(2)一次置0就可以了,从程序看是高有效。
(3)main中的lcall delay只是延时约130毫秒左右
(4)如果要控制灯清运亮的间隔,一是改变lcall delay指令的数目 二是改变delay 中的r7或R6的值
(5)改变间隔时间最好的方法是加传递参数,延时程序稍加修改就可以让慧。
(6)tt这只是一个标号,含与延时函数中
(7)delay延迟的时间的计算按指令执行坦正答周期和循环次数就可以计算了
(8)p2口有8个引脚,而实验单片机电路板只有6个灯,所以上面程序稍稍做了修改。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)