📄 cal_lcd.asm
字号:
brnz blk_disp_5X7_1
.Blk_end5X7:
ret
;---------------------------------------------------------------------
Display_5X7::
PP2One()
lda GetCount
cmpe #C_12
brnc Display_5X7_1
lda #max
sta GetCount
ret
Display_5X7_1::
PP2One()
Display_5X7_all:
lda #@(dig5X7_tab)
sta tab_ptr+1
lda #<(dig5X7_tab)
sta tab_ptr
lda dig_num
adda #0
rolc
adda tab_ptr
sta tab_ptr
lda tab_ptr+1
addc #0
sta tab_ptr+1
lda #0
sta r_tpp
lda tab_ptr+1
sta r_tph
lda tab_ptr
sta r_tpl
ldv
sta LCD_tab+1
ldv
sta LCD_tab
lda #@(font5X7)
sta patent_tab+1
lda #<(font5X7)
sta patent_tab
lda #row_num
sta row_count
3$:
lda patent_tab
adda font
sta patent_tab
lda patent_tab+1
addc #0
sta patent_tab+1
lda row_count
deca
sta row_count
brnz 3$
lda #row_num
sta row_count
disp_5X7loop:
lda #0
sta r_tpp
lda patent_tab+1
sta r_tph
lda patent_tab
sta r_tpl
ldv
sta asci_patent
lda #col_num
sta col_count
disp_5X7_1:
lda #0
sta r_tpp
lda LCD_tab+1
sta r_tph
lda LCD_tab
sta r_tpl
lda #>asci_patent
sta PP
lda asci_patent
adda #0
rolc
sta asci_patent
brnc disp_5X7_2
;lda #0
;sta r_tpp
;lda LCD_tab+1
;sta r_tph
;lda LCD_tab
;sta r_tpl
ldv
sta DP
ldv
sta0 .Temp
PP2Zero()
lda I
ora .Temp
sta I
br disp_5X7_3
disp_5X7_2:
;lda #0
;sta r_tpp
;lda LCD_tab+1
;sta r_tph
;lda LCD_tab
;sta r_tpl
ldv
sta DP
ldv
xora #0ffh
sta0 .Temp
PP2Zero()
lda I
anda .Temp
sta I
disp_5X7_3:
PP2One()
lda LCD_tab
adda #2
sta LCD_tab
lda LCD_tab+1
addc #0
sta LCD_tab+1
lda col_count
deca
sta col_count
brnz disp_5X7_1
lda patent_tab
adda #1
sta patent_tab
lda patent_tab+1
addc #0
sta patent_tab+1
lda row_count
deca
sta row_count
brnz disp_5X7loop
.End5X7:
ret
;---------------------------------------------------------------------
Display_seg7::
PP2One()
;lda #^(seg7_tab)
;sta tab_ptr+2
lda #@(seg7_tab)
sta tab_ptr+1
lda #<(seg7_tab)
sta tab_ptr
lda dig_num
adda #0
rolc
adda tab_ptr
sta tab_ptr
lda tab_ptr+1
addc #0
sta tab_ptr+1
lda #0
sta r_tpp
lda tab_ptr+1
sta r_tph
lda tab_ptr
sta r_tpl
lda #0
sta LCD_tab+2
ldv
sta LCD_tab+1
ldv
sta LCD_tab
lda #@(seg_fnt)
sta patent_tab+1
lda #<(seg_fnt)
adda font
sta patent_tab
lda patent_tab+1
addc #0
sta patent_tab+1
lda #0
sta r_tpp
lda patent_tab+1
sta r_tph
lda patent_tab
sta r_tpl
3$:
lda r_op1
anda #10000000b
brz 3$
ldv
sta asci_patent
lda #seg_num
sta col_count
disp_seg7loop:
lda asci_patent
adda #0
rorc
sta asci_patent
brnc disp_seg7_1
call GetMatrixDotAddrBit
lda LCDaddr
sta DP
lda LCDbit
sta0 .Temp
PP2Zero()
lda I
ora .Temp
sta I
PP2One()
br disp_seg7_2
disp_seg7_1:
PP2One()
call GetMatrixDotAddrBit
lda LCDbit
xora #0ffh
sta LCDbit
lda LCDaddr
sta DP
lda LCDbit
sta0 .Temp
PP2Zero()
lda I
anda .Temp
sta I
PP2One()
disp_seg7_2:
lda LCD_tab
adda #2
sta LCD_tab
lda LCD_tab+1
addc #0
sta LCD_tab+1
lda col_count
deca
sta col_count
brnz disp_seg7loop
ret
;---------------------------------------------------------------------
.include "Cal_LCD.inc" ;0809
.include "caldisp.inc"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -