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