第2个回答 2014-04-12
ORG 0000h
mov p1 ,#00000000b ;点亮P1口所有的灯 。0为低点位 点亮灯 ,共8个口
lcall ys1s ;调用延时程序让上的灯点亮一定时间
mov p1,#11111111b ;关闭P1口全部的灯,1为高点位 关闭 灯
lcall ys1s ;调用延时程序让上的灯熄灭一定时间
mov p1 ,#00000000b ;和上面的一样 共全亮全灭2次
lcall ys1s
mov p1,#11111111b
lcall ys1s
xf:
mov p1 ,#01111110b ;让P1.0和P1.7的两端为0 ,点亮两端的灯
lcall ys1s ;将上面状态保持一定时间
mov p1, #00111100b ;让P1.0 P1.1 P1.6P P1.7 两端的4个灯为0 点亮
lcall ys1s ;将上面状态保持一定时间
mov p1 ,#00011000b ;以下就不说啦 ,这些花样显示 自己可以随便改,或添加
lcall ys1s
mov p1, #00000000b
lcall ys1s
ljmp xf ;让程序返回到 XF 处循环无限执行
ys1s: mov r1,#0ffh ;延时程序, 延时时间为R1乘R2乘R3的内容,根据需要自己调节
ys1s1: mov r2,#0ffh
ys1s2: mov r3,#0ffh
ys1s3: djnz r3,$
djnz r2,ys1s2
djnz r1,ys1s1
END
好几年没有写汇编了,自己在调试一下把。