📄 jiaotong.asm
字号:
**********************************************************************************
* jiaotong.asm v1.00 交通灯程序 *
* 版权(c) 2004- 北京百科融创科技有限公司 *
* 设计者: 赵治心 *
* 邮箱: ourui.wl@263.net *
**********************************************************************************
r16 .set 280h
r17 .set 282h
r18 .set 284h
r21 .set 286h
r22 .set 288h ;r22 为调用显示一次的列数
r23 .set 28ah ;r24显示起始页
r24 .set 28ch ;r24显示起始列
r25 .set 28eh ;r25显示结束页
r26 .set 294h
pbdatdir .set 709ah
dp_user .set 5h
dp_pf2 .set 0e1h
padatdir .set 7098h
pcdatdir .set 709ch
mcra .set 7090h
mcrb .set 7092h
mcrc .set 7094h
pedatdir .set 7095h
passtime .set 20
flashtime .set 5
.data
numtable:
.word 77h,14h,0b3h,0b6h,0d4h,0e6h,0e7h,34h,0f7h,0f6h
.include "240xa.inc"
.def _c_int0
.text
_c_int0
clrc INTM
clrc SXM
clrc OVM
clrc CNF
ldp #dp_pf2-1
lacl #0E01h
sacl SCSR1
nop
ldp #0e0h
splk #0e8h,WDCR
ldp #0
splk #0h,IMR
splk #0ffffh,IFR
ldp #dp_user
splk #0,r22
out r22,WSGR
ldp #dp_user
lar ar3,#passtime
call init
call showtime
loop1
ldp #dp_user
lacl #066h
sacl r16
out r16,3000h
status1
call showtime
call delay
call delay
mar *,ar3
lar ar0, #flashtime
sbrk #1h
cmpr 00
bcnd status1,NTC
status2
call showtime
call delay
ldp #dp_user
lacl #00h
sacl r16
out r16,3000h
call delay
ldp #dp_user
lacl #66h
sacl r16
out r16,3000h
call showtime
mar *,ar3
lar ar0,#00h
sbrk #1h
cmpr 00
bcnd status2,NTC
call showtime
call delay
call delay
lar ar3,#passtime
ldp #dp_user
lacl #099h
sacl r16
out r16,3000h
status3
call showtime
call delay
call delay
mar *,ar3
lar ar0, #flashtime
sbrk #1h
cmpr 00
bcnd status3,NTC
status4
call showtime
call delay
ldp #dp_user
lacl #00h
sacl r16
out r16,3000h
call delay
ldp #dp_user
lacl #099h
sacl r16
out r16,3000h
call showtime
mar *,ar3
lar ar0,#00h
sbrk #1h
cmpr 00
bcnd status4,NTC
call showtime
call delay
call delay
lar ar3,#passtime
b loop1
ret
;*************************************************************************
delay:
lar ar2,#2
delay2: mar *,ar5
lar ar5,#0fFffh
lar ar0,#00h
delay1: sbrk #1h
nop
cmpr 00
bcnd delay1,NTC
mar *,ar2
sbrk #1
cmpr 00
bcnd delay2,NTC
ret
;*************************************************************************
showtime:
sar ar3, r18
ldp #dp_user
splk #0,r22
splk #0,r23
splk #0,r24
lar ar2,#0
lacl r18
mar *,ar2
comph
sub #10
sacl r24
sach r23
lacl r22
add #1
sacl r22
lacc r23,16
add r24
bcnd comph,geq
add #10
add #numtable
sacl r23
tblr r23
out r23, 2002h
out r23, 2006h
lacl r22
add #numtable-1
sacl r23
tblr r23
out r23, 2001h
out r23, 2005h
ret
;**************************************************************************
init:
ldp #dp_user
lacl #80h
sacl r16
out r16,2000h
out r16,2001h
out r16,2002h
out r16,2003h
out r16,2004h
out r16,2005h
out r16,2006h
out r16,2007h
ret
;**************************************************************************
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -