系统程序:
org 00h ljmp start org 30h
start: mov sp,#60h mov p0,#0ffh jnb p1.0,paoma jnb p1.1,zyc jnb p1.2,zbc jnb p1.3,gdjo sjmp start
paoma: mov p0,#0feh restart:mov r7,#7 loop: mov a,p0 rl a lcall delay mov p0,a jb p1.0,start djnz r7,loop sjmp restart ret
键跑马子程序XI
;1
zyc: mov p0,#0feh ;2键左右循环 mov a,p0 restart1: mov mov loop3: ; mov jb rl lcall mov djnz loop4: rr lcall mov djnz sjmp ret
zbc: loop5:
r5,#7 r4,#7 a,p0 p1.1,start a delay p0,a r5,loop3 a delay p0,a r4,loop4 restart1 mov p0,#0c3h mov a,p0
;3键中边循环 XII
jb p1.2,start swap a lcall delay mov p0,a sjmp loop5 ret
gdjo: mov swap lcall mov mov loop6: jb rl lcall mov sjmp ret
delay: mov loop2: loop1:
mov p0,#0f0h a,p0 a delay p0,a p0,#55h mov a,p0 p1.3,start a delay p0,a loop6 r6,#200 mov r7,#250 nop
键高低奇偶交替 ;延时 XIII
;4
nop
djnz r7,loop1 djnz r6,loop2 ret end
3.3 方式一程序设计
当按下一号键时,主程序跳到方式一子数,彩灯循环点亮.
开 始 给r7赋值为7 将P0赋值给a 调用延时程序 Y R7=0? N 图3.2 方式一流程图
XIV
方式一子程序:
paoma: mov p0,#0feh ;1键跑马子程序 restart:mov r7,#7 loop: mov a,p0 rl a lcall delay mov p0,a jb p1.0,start djnz r7,loop sjmp restart ret
3.4 方式二程序设计
当二号键按下时,主函数跳转到方式二的子程序执行,使彩灯的变换方式为右左到右循环点亮再由右向左循环点亮.
XV