?? exx.asm
字號:
************************************************
* FileName: ex8.asm *
* Description: 液晶屏 *
* Copyright(C) SanZhi Electronic, Author Zpin *
************************************************
.title "exx"
.global _c_int00
.mmregs
LCDAWD .set 7009h ;液晶屏片選1寫數據
LCDARO .set 700Ah ;液晶屏片選1讀狀態
LCDAWO .set 7008h ;液晶屏片選1寫命令
LCDBWD .set 6009h ;液晶屏片選2寫數據
LCDBRO .set 600Ah ;液晶屏片選2讀狀態
LCDBWO .set 6008h ;液晶屏片選2寫命令
STATE .set 60h ;STATE
CONTROL .set 61h ;CONTROL
DAT .set 62h ;DATA
XPOS .set 66h ;列指針
YPOS .set 67h ;行指針
VXPOS .set 68h
VYPOS .set 69h
.data
;.word 2100h,0900h,1100h,2400h,2200h,0100h,0900h,2000h,2400h
;.byte 000H,010H,008H,006H,001H,082H,008cH,040H,030H,00cH,003H,00cH,010H,060H,0c0H,040H,000H,004H,034H,0c4H,04H,0c4H,03cH,020H,010H,00fH,0e8H,008H,008H,028H,018H,000H ;歡
.byte 14h,24h,44h,84h,64h,1Ch,20h,18h,0Fh,0E8h,08h,08h,28h,18h,08h,00h,20h,10h,4Ch,43h,43h,2Ch,20h,10h,0Ch,03h,06h,18h,30h,60h,20h,00h
.byte 40h,41h,0CEh,04h,00h,0FCh,04h,02h,02h,0FCh,04h,04h,04h,0FCh,00h,00h,40h,20h,1Fh,20h,40h,47h,42h,41h,40h,5Fh,40h,42h,44h,43h,40h,00h
.byte 40h,20h,0F0h,1Ch,07h,0F2h,94h,94h,94h,0FFh,94h,94h,94h,0F4h,04h,00h,00h,00h,7Fh,00h,40h,41h,22h,14h,0Ch,13h,10h,30h,20h,61h,20h,00h
.byte 00h,00h,00h,0FEh,22h,22h,22h,22h,0FEh,22h,22h,22h,22h,0FEh,00h,00h,80h,40h,30h,0Fh,02h,02h,02h,02h,0FFh,02h,02h,42h,82h,7Fh,00h,00h
.byte 00h,04h,84h,84h,84h,84h,84h,84h,84h,84h,84h,84h,84h,04h,00h,00h,00h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,00h
.byte 40h,0A0h,98h,8Fh,88h,0F8h,88h,88h,00h,0F8h,08h,08h,08h,0F8h,00h,00h,80h,40h,20h,18h,07h,02h,04h,18h,00h,7Fh,10h,10h,10h,3Fh,00h,00h
.byte 08h,0F8h,08h,08h,08h,10h,0E0h,00h,00h,00h,00h,00h,00h,00h,00h,00h,20h,3Fh,20h,20h,20h,10h,0Fh,00h,00h,00h,00h,00h,00h,00h,00h,00h
.byte 00h,70h,88h,08h,08h,08h,38h,00h,00h,00h,00h,00h,00h,00h,00h,00h, 00h,38h,20h,21h,21h,22h,1Ch,00h,00h,00h,00h,00h,00h,00h,00h,00h
.byte 08h,0F8h,08h,08h,08h,08h,0F0h,00h,00h,00h,00h,00h,00h,00h,00h,00h,20h,3Fh,21h,01h,01h,01h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
.byte 00h,10h,0Ch,04h,4Ch,0B4h,94h,05h,0F6h,04h,04h,04h,14h,0Ch,04h,00h,00h,82h,82h,42h,42h,23h,12h,0Ah,07h,0Ah,12h,0E2h,42h,02h,02h,00h
.byte 02h,0FAh,82h,82h,0FEh,80h,40h,60h,58h,46h,48h,50h,20h,20h,20h,00h,08h,08h,04h,24h,40h,3Fh,22h,2Ch,21h,2Eh,20h,30h,2Ch,23h,20h,00h
.byte 40h,20h,0F0h,0Ch,03h,00h,38h,0C0h,01h,0Eh,04h,0E0h,1Ch,00h,00h,00h,00h,00h,0FFh,00h,40h,40h,20h,10h,0Bh,04h,0Bh,10h,20h,60h,20h,00h
;.byte 0H,40H,020H,01fH,020H,047H,042H,041H,00H,07fH,040H,042H,044H,023H,060H,010H,00H,042H,044H,088H,00H,0fcH,04H,02H,03H,0feH,02H,02H,02H,0feH,00H,00H ;迎
;.byte 00,00,00,0ffH,00,080H,043H,045H,029H,019H,017H,021H,021H,041H,0c3H,040H,00H,040H,020H,0f8H,07H,04H,0f4H,014H,014H,014H,0ffH,014H,014H,014H,0f6H,04H ;使
;.byte 00H,080H,060H,01fH,02H,02H,02H,02H,07fH,02H,02H,042H,082H,07fH,00H,00H,00H,00H,00H,0feH,022H,022H,022H,022H,0feH,022H,022H,022H,022H,0ffH,02,00 ;用
;.byte 00h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,030h,020h,00h,00h,04h,084h,084h,084h,084h,084h,084h,084h,084h,084h,0c4h,086h,04h,00h ;三
DELAY .macro sec_tenth ;延時 sec_tenth/10 秒
STM sec_tenth-1,AR5
loop1? STM #09h,AR6
loop0? STM #49999,AR7
BANZ $,*AR7-
BANZ loop0?,*AR6-
BANZ loop1?,*AR5-
.endm
.sect ".vectors"
rst: B _c_int00
NOP
NOP
.space 15*4*16
.text
_c_int00
LD #0h,DP
STM #3000h,SP
SSBX INTM
STM #07FFFh,SWWSR ;IO總線外部等待時間14個周期
STM #01h,2Bh
STM #0h,CLKMD ;20MHz工作
tst BITF CLKMD,#1h
BC tst,TC
STM #01007h,CLKMD
RPT #0FFh
NOP
ST #0FFFFh,IFR
ORM #0001h,IMR
RSBX INTM
LD #0h,DP
call LCDRESET;read state
st #4h,ar1
ST #0H,DAT
CALL FILL
bb st #2000h,AR0 ;歡
st #1fh,XPOS
st #02H,YPOS
CALL WRITE
ST #1fH,XPOS
ST #03H,YPOS
CALL WRITE
st #2fh,XPOS ;迎
st #02H,YPOS
CALL WRITE
ST #2fH,XPOS
ST #03H,YPOS
CALL WRITE
;使
st #3fh,XPOS
st #02H,YPOS
CALL WRITE
ST #3fH,XPOS
ST #03H,YPOS
CALL WRITE
st #4fh,XPOS
st #02H,YPOS
CALL WRITE
ST #4fH,XPOS
ST #03h,YPOS
CALL WRITE ;用
st #0bh,XPOS ;三
st #04H,YPOS
CALL WRITE
ST #0bH,XPOS
ST #05h,YPOS
CALL WRITE
st #1ah,XPOS ;知
st #04H,YPOS
CALL WRITE
ST #1aH,XPOS
ST #05h,YPOS
CALL WRITE
st #29h,XPOS ;D
st #04H,YPOS
CALL WRITE
ST #29H,XPOS
ST #05h,YPOS
CALL WRITE
st #31h,XPOS ;S
st #04H,YPOS
CALL WRITE
ST #31H,XPOS
ST #05h,YPOS
CALL WRITE
st #39h,XPOS ;P
st #04H,YPOS
CALL WRITE
ST #39H,XPOS
ST #05h,YPOS
CALL WRITE
st #041h,XPOS ;實
st #04H,YPOS
CALL WRITE
ST #041H,XPOS
ST #05h,YPOS
CALL WRITE
st #50h,XPOS ;驗
st #04H,YPOS
CALL WRITE
ST #50H,XPOS
ST #05h,YPOS
CALL WRITE
st #5fh,XPOS ;儀
st #04H,YPOS
CALL WRITE
ST #5fH,XPOS
ST #05h,YPOS
CALL WRITE
NOP
NOP
CALL DELAY
call DELAY
CALL DELAY
ST #00H,DAT
CALL FILL
CALL DELAY
banz bb,*ar1-
nop
nop
nop
b bb
FILL ST #00H,YPOS
LFLPB ST #00H,XPOS
LFLPA CALL LCDPOS
nop
nop
nop
rpt #10
CALL LCDWD
ADDM #01H,XPOS
BITF XPOS,#80H
BC LFLPA,NTC
ADDM #01H,YPOS
BITF YPOS,#08H
BC LFLPB,NTC
RET
WRITE MVDK XPOS,VXPOS
ST #0FH,AR2
WRITE1 MVDK *AR0+,DAT
ANDM #0FFH,DAT
CALL LCDPOS
CALL LCDWD
ADDM #01H,XPOS
BANZ WRITE1,*AR2-
MVDK VXPOS,XPOS
ST #0FH,AR2
RET
WAITIDLE1 PORTR LCDARO,STATE ;READ CS1 STATE
nop
nop
BITF STATE,#80H ;為0表示準備好
BC WAITIDLE1,tc
ret
WAITIDLE2 PORTR LCDBRO,STATE ;READ CS2 STATE
nop
nop
BITF STATE,#080H
BC WAITIDLE2,tc
ret
LCDWC1 CALL WAITIDLE1 ;WRITE CS1 CONTROL
PORTW CONTROL,LCDAWO
RET
LCDWC2 CALL WAITIDLE2 ;WRITE CS2 CONTROL
PORTW CONTROL,LCDBWO
RET
LCDWD1 CALL WAITIDLE1 ;WRITE CS1 DATA
PORTW DAT,LCDAWD
RET
LCDWD2 CALL WAITIDLE2 ;WRITE CS2 DATA
PORTW DAT,LCDBWD
RET
LCDRESET ;ST #003EH,CONTROL ;復位LCD
;CALL LCDWC1
;CALL LCDWC2
ST #003FH,CONTROL ;復位LCD
CALL LCDWC1
CALL LCDWC2
ST #00C0H,CONTROL
CALL LCDWC1
CALL LCDWC2
RET
LCDWD BITF XPOS,#0040H
BC LWDLAY,tc
CALL LCDWD1
;RPT #1AH
B LWDLAX
LWDLAY CALL LCDWD2
;RPT #1AH
LWDLAX RET
LCDPOS BITF XPOS,#0040H ;XPOS列方向小于64則對CS1操作
BC LPSLAY,tc
MVDK YPOS,VYPOS
ANDM #0007H,VYPOS
ADDM #0B8H,VYPOS
MVDK VYPOS,CONTROL
CALL LCDWC1 ;設頁碼
MVDK XPOS,VXPOS
ANDM #03FH,VXPOS
ORM #40H,VXPOS
MVDK VXPOS,CONTROL ;設列碼
CALL LCDWC1
B LCDLAX
LPSLAY MVDK YPOS,VYPOS
ANDM #0007H,VYPOS ;XPOS列方向大于等于64則對CS1操作
ADDM #0B8H,VYPOS
MVDK VYPOS,CONTROL
CALL LCDWC2 ;設頁碼
MVDK XPOS,VXPOS
ANDM #03FH,VXPOS
ORM #40H,VXPOS
MVDK VXPOS,CONTROL
CALL LCDWC2 ;設列碼
LCDLAX RET
DELAY ST #0100h,AR7 ;延時子程序
BANZ $,*AR7-
BANZ DELAY,*AR6-
RET
;testxf stm #ST1,AR0
; bitf *AR0,#2000h
; bc clrxf,TC
; ssbx xf
; ret
;clrxf rsbx xf
; ret
;testxf ssbx xf
; DELAY #1
; rsbx xf
; DELAY #1
; b testxf
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -