;8255 端口地址-pa:00h,pb:01h,pc:02h,control:03h
;r2:交换发球个数寄存器,r3:左方得分寄存器,r4:右方得分寄存器,r5:
秒计时常数
;51h:p1 口缓冲区
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0000h
jmp main
org 0040h
main:
mov r6,#10
x: call d20ms
djnz r6,x
mov sp,#60h ;设置堆栈地址
mov r0,#03h ;control 地址
mov a,#89h ;pa,pb 作输出,pc 作输入
movx @r0,a ;设置 8255 的工作方式
mov scon,#00h ;串口工作于方式 0,移位寄存器方式
clr 00h ;左方击球人的标记
clr 01h ;右方击球人的标记
clr 02h
clr 03h
clr p1.3 ;左方获胜灯清零
clr p1.4 ;右方获胜灯清零
clr p1.5 ;左方发球灯清零
clr p1.6 ;右方发球灯清零
mov r0,#00h
mov r1,#01h
mov a,#00h
movx @r0,a
movx @r1,a ;乒乓球灯熄灭
GO: mov a,p1
mov 51h,a
anl a,#03h
mov 40h,#00h
mov 41h,#00h
call disp ;比分显示 0:0
mov r3,#00h
mov r4,#00h
mov r2,#00h
jnz sp1
dec a
jnz sp2
dec a