📄 wr_cmd.asm
字号:
; 子程序 write_command.asm
.global _write_command
.include MMRegs.h
.ref ms_delay , us_delay ,t_delay1,t_delay2
_write_command:
; CS=1 write "1 1 1 1 1 " ;IO2=CS IO1=ECLK IO0=SID
; ld #1,dp
stm #0x2900,ST1
nop
nop
stm #0005h,ar6
portw ar6,000fh
call t_delay1
stm #0007h,ar6
portw ar6,000fh
call t_delay1
stm #0005h,ar6
portw ar6,000fh
call t_delay1
stm #0007h,ar6
portw ar6,000fh
call t_delay1
stm #0005h,ar6
portw ar6,000fh
call t_delay1
stm #0007h,ar6
portw ar6,000fh
call t_delay1
stm #0005h,ar6
portw ar6,000fh
call t_delay1
stm #0007h,ar6
portw ar6,000fh
call t_delay1
stm #0005h,ar6
portw ar6,000fh
call t_delay1
stm #0007h,ar6
portw ar6,000fh
call t_delay1
;write "RW" =0
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
;write "RS" =0
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
;write "0"
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay2
;===================================================
;===================================================
;send D7-D4:
;send D7
ldm ar5,a
and #0080h,a
or #0200h,a
sftl a,-7
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay2
;send D6
ldm ar5,a
and #0040h,a
or #0100h,a
sftl a,-6
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay2
;send D5
ldm ar5,a
and #0020h,a
or #0080h,a
sftl a,-5
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay2
;send D4
ldm ar5,a
and #0010h,a
or #0040h,a
sftl a,-4
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay1
;=====================================================
;=====================================================
;send "0000"
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay2
;====================================================
;====================================================
;send D3-D0
;send D3
ldm ar5,a
and #0008h,a
or #0020h,a
sftl a,-3
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay2
;send D2
ldm ar5,a
and #0004h,a
or #0010h,a
sftl a,-2
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay2
;send D1
ldm ar5,a
and #0002h,a
or #0008h,a
sftl a,-1
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay2
;send D0
ldm ar5,a
and #0001h,a
or #0004h,a
stl a ,AR6
portw AR6,000fh
call t_delay2
and #0001h,a
or #0006h,a
stl a,AR6
portw AR6,000fh
call t_delay1
;===================================================
;===================================================
;send "0000"
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #0004h,ar6
portw ar6,000fh
call t_delay1
stm #0006h,ar6
portw ar6,000fh
call t_delay1
stm #1,ar3 ;delay 1ms
call ms_delay
stm #0004h,ar6
portw ar6,000fh
stm 0x6100,ST1
nop
nop
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -