📄 lcd1.a30
字号:
; : R1儗僕僗僞偵庴偗搉偝傟偰偄傞(堷悢堷搉偟婯懃)
; :
; : 僞僀儈儞僌偼埲壓偱惂屼偟偰偄傞丅帪娫傕婯掕桳傝側偺偱梫拲堄
; : --------------------------+--+--+--+-------+----+-----
; : TIME RS RW E I/O-DIR LCD M16C
; : --------------------------+--+--+--+-------+----+-----
; : def= x 0 0 RD | IN IN
; : BSET:G RS 50亊3=187.5 1 . . . | . .
; : MOV.B:S #W 50亊2=125.0 . . . WR | . OUT
; : BSET:G E 50亊3=187.5 . . 1 . | . .
; : MOV.B:G 50亊2=125.0 . . . . | . .
; : MOVLL 50亊5=312.5 . . . . |(WR Data)
; : BCLR:G E 50亊3=187.5 . . 0 . | . .
; : MOV.B:S #R 50亊2=125.0 . . . RD | IN
; History : ---
;""SUBR COMMENT END""**********************************************************
.section program ; C偺僾儘僌儔儉椞堟偲摨堦僙僋僔儑儞
.glb $_lcd1__wr_nibble_dreg
; 僌儘乕僶儖愰尵
$_lcd1__wr_nibble_dreg:
;---- 僨乕僞慖戰 ----
bset:g p1_6_RS ; 僨乕僞傪慖戰
; (LCD儌僕儏乕儖偺RS抂巕傪"H")
;---- LCD傊偺彂偒崬傒偵愝掕 ----
;bclr:g p1_X_RW ; LCD儌僕儏乕儖傪擖椡偵愝掕
; ; (LCD偺RW傪"L":WRITE偵愝掕)
mov.b:s #W, pd1 ; CPU懁傪弌椡偵愝掕
; (P10乣P13傪弌椡億乕僩偵愝掕)
;---- 4bit彂偒崬傒 ----
bset:g p1_7_E ; LCD儌僕儏乕儖偺E抂巕傪"H"
mov.b:g R1L, R0L ; LCD偵堷悢(R1)傪彂偒崬傓
movll R0L, p1 ; 仾 (P1 = R1L 壓埵4bit偱揮憲)
bclr:g p1_7_E ; LCD儌僕儏乕儖偺E抂巕傪"L"
;---- 億乕僩傪弶婜忬懺偵栠偡 ----
mov.b:s #R, pd1 ; P10乣P13傪擖椡億乕僩偵栠偡
; (P10乣P13傪擖椡億乕僩偵愝掕)
rts
;""SUBR COMMENT""**************************************************************
; ID : ---
; 僒僽儖乕僠儞柤 : int _lcd1__rd_nibble_creg(void)
; 婡擻 : LCD(SC1602BS*2)偺command儗僕僗僞傪撉傓
; 擖椡 : 側偟
; 弌椡 : int 撉傒崬傫偩抣(壓埵4bit偺傒桳岠)
; 巊梡僒僽儖乕僠儞: 側偟
; 僗僞僢僋 : 0僶僀僩
; 拲堄帠崁 : OAKS8-LCDBoard偼丄Write屌掕偺偨傔丄幚嵺偵偼撉傒崬傔側偄
; : 曉媝抣偼R0偵庴偗搉偝傟傞(曉媝抣堷搉偟婯懃)丅
; :
; : 僞僀儈儞僌偼埲壓偱惂屼偟偰偄傞丅帪娫傕婯掕桳傝側偺偱梫拲堄
; : --------------------------+--+--+--+-------+----+-----
; : TIME RS RW E I/O-DIR LCD M16C
; : --------------------------+--+--+--+-------+----+-----
; : def= x 0 0 RD | IN IN
; : BCLR:G RS 50亊3=187.5 0 . . . | . .
; : BSET:G RW 50亊3=187.5 . 1 . . | OUT .
; : BSET:G E 50亊3=187.5 . . 1 . | . .
; : NOP 50亊1= 62.5 . . . . | . .
; : NOP 50亊1= 62.5 . . . . | . .
; : NOP 50亊1= 62.5 . . . . | . .
; : MOV.B:G 50亊2=125.0 . . . . |(RD Command)
; : AND.W:G 50亊3=187.5 . . . . | . .
; : BCLR:G E 50亊3=187.5 . . 0 . | . .
; : BCLR:G RW 50亊3=187.5 . 0 . . | IN .
; History : ---
;""SUBR COMMENT END""**********************************************************
.section program ; C偺僾儘僌儔儉椞堟偲摨堦僙僋僔儑儞
.glb __lcd1__rd_nibble_creg
; 僌儘乕僶儖愰尵
__lcd1__rd_nibble_creg:
;---- 僐儅儞僪傪慖戰 ----
bclr:g p1_6_RS ; 僐儅儞僪傪慖戰
; (LCD儌僕儏乕儖偺RS抂巕傪"L")
;---- LCD偐傜偺撉傒崬傒偵愝掕 ----
;mov.b:s #R, pd1 ; CPU偺億乕僩傪擖椡偵愝掕
; ; (P10乣P13傪擖椡億乕僩偵愝掕)
;bset:g p1_x_RW ; LCD儌僕儏乕儖傪弌椡偵愝掕
; (LCD偺RW傪"H":READ偵愝掕)
; OAKS8-LCDBoard偼丄Write屌掕偺偨傔丄
; 僐儊儞僩傾僂僩
;---- 4bit撉傒崬傒 ----
bset:g p1_7_E ; LCD儌僕儏乕儖偺E抂巕傪"H"
nop ; 僞僀儈儞僌崌傢偣
nop ; 僞僀儈儞僌崌傢偣
mov.b:g p1, R0L ; 曉媝抣(R0)偵LCD偐傜撉崬傫偩抣傪愝掕
and.w:g #0fH, R0 ; 仾 (R0 = p1&0x0f)
bclr:g p1_7_E ; LCD儌僕儏乕儖偺E抂巕傪"L"
;---- 億乕僩傪弶婜忬懺偵栠偡 ----
;bclr:g p1_x_RW ; LCD儌僕儏乕儖懁傪擖椡忬懺偵栠偡
; (L:WRITE偵愝掕)
; OAKS8-LCDBoard偼丄Write屌掕偺偨傔丄
; 僐儊儞僩傾僂僩
rts
;""SUBR COMMENT""**************************************************************
; ID :
; 僒僽儖乕僠儞柤 : int _lcd1__rd_nibble_dreg(void)
; 婡擻 : LCD(SC1602BS*2)偺data儗僕僗僞傪撉傓
; 擖椡 : 側偟
; 弌椡 : int 撉傒崬傫偩抣(壓埵4bit偺傒桳岠)
; 巊梡僒僽儖乕僠儞: 側偟
; 僗僞僢僋 : 0僶僀僩
; 拲堄帠崁 : OAKS8-LCDBoard偼丄Write屌掕偺偨傔丄幚嵺偵偼撉傒崬傔側偄
; : 曉媝抣偼R0偵庴偗搉偝傟傞(曉媝抣堷搉偟婯懃)丅
; :
; : 僞僀儈儞僌偼埲壓偱惂屼偟偰偄傞丅帪娫傕婯掕桳傝側偺偱梫拲堄
; : --------------------------+--+--+--+-------+----+-----
; : TIME RS RW E I/O-DIR LCD M16C
; : --------------------------+--+--+--+-------+----+-----
; : def= x 0 0 RD | IN IN
; : BSET:G RS 50亊3=187.5 1 . . . | . .
; : BSET:G RW 50亊3=187.5 . 1 . . | OUT .
; : BSET:G E 50亊3=187.5 . . 1 . | . .
; : NOP 50亊1= 62.5 . . . . | . .
; : NOP 50亊1= 62.5 . . . . | . .
; : MOV.B:G 50亊2=125.0 . . . . |(RD Data)
; : AND.W:G 50亊3=187.5 . . . . | . .
; : BCLR:G E 50亊3=187.5 . . 0 . | . .
; : BCLR:G RW 50亊3=187.5 . 0 . . | IN .
;; History : ---
;""SUBR COMMENT END""**********************************************************
.section program ; C偺僾儘僌儔儉椞堟偲摨堦僙僋僔儑儞
.glb __lcd1__rd_nibble_dreg ; 僌儘乕僶儖愰尵
__lcd1__rd_nibble_dreg:
;---- 僨乕僞慖戰 ----
bset:g p1_6_RS ; 僨乕僞傪慖戰
; (LCD儌僕儏乕儖偺RS抂巕傪"H")
;---- LCD偐傜偺撉傒崬傒偵愝掕 ----
;mov.b:s #R, pd1 ; CPU偺億乕僩傪擖椡偵愝掕
; ; (P10乣P13傪擖椡億乕僩偵愝掕)
;bset:g p1_x_RW ; LCD儌僕儏乕儖傪弌椡偵愝掕
; (LCD偺RW傪"H":READ偵愝掕)
; OAKS8-LCDBoard偼丄Write屌掕偺偨傔丄
; 僐儊儞僩傾僂僩
;---- 4bit撉傒崬傒 ----
bset:g p1_7_E ; LCD儌僕儏乕儖偺E抂巕傪"H"
nop ; 僞僀儈儞僌崌傢偣
nop ; 僞僀儈儞僌崌傢偣
nop ; 僞僀儈儞僌崌傢偣
mov.b:g p1, R0L ; 曉媝抣(R0)偵LCD偐傜撉崬傫偩抣傪愝掕
and.w:g #0fH, R0 ; 仾 (R0 = p14&0x0f)
bclr:g p1_7_E ; LCD儌僕儏乕儖偺E抂巕傪"L"
;---- 億乕僩傪弶婜忬懺偵栠偡 ----
;bclr:g p1_x_RW ; LCD儌僕儏乕儖懁傪擖椡忬懺偵栠偡
; (L:WRITE偵愝掕)
; OAKS8-LCDBoard偼丄Write屌掕偺偨傔丄
; 僐儊儞僩傾僂僩
rts
.end
;******************************************************************************
; end of file
;******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -