⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hd61202.txt

📁 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动
💻 TXT
字号:
;寄存器
lcd_data        equ     25h             ;存要写入液晶的数据
lcd_com         equ     26h             ;存要写入液晶的指令
num_page        equ     27h             ;液晶页号,0--7
num_col         equ     28h             ;液晶列号,0--127

a0           equ     p2.2
e            equ     p2.3
r_w          equ     p2.4
di           equ     p2.5               ;液晶管脚
csb          equ     p2.6
csa          equ     p2.7
lcd_db       equ     p0

;***********************************************
prl0:           setb    csa             ;写指令左半屏
                clr     csb
                clr     di
                setb    r_w
prl01:          mov     lcd_db,#0ffh
                setb    e
                mov     a,lcd_db
                clr     e
                jb      acc.7,prl01
                clr     r_w
                mov     lcd_db,lcd_com
                setb        e
                clr         e
                clr         csa
                ret

prl1:           setb    csa             ;写数据左半屏
                clr     csb
                clr     di
                setb    r_w
prl11:          mov     lcd_db,#0h
                setb    e
                mov     a,lcd_db
                clr     e
                jb      acc.7,prl11
                setb    di
                clr     r_w
                mov     lcd_db,lcd_data
                setb    e
                clr     e
                clr     csa
                ret

prl2:           setb    csa             ;读数据左半屏
                clr     csb
                clr     di
                setb    r_w
prl21:          mov     lcd_db,#0ffh
                setb    e
                mov     a,lcd_db
                clr     e
                jb      acc.7,prl21
                setb    di
                mov     lcd_db,#0ffh
                setb    e
                mov     lcd_data,lcd_db
                clr     e
                clr     csa
                ret

prr0:           clr     csa             ;写指令右半屏
                setb    csb
                clr     di
                setb    r_w
prr01:          mov     lcd_db,#0ffh
                setb    e
                mov     a,lcd_db
                clr     e
                jb      acc.7,prr01
                clr     r_w
                mov     lcd_db,lcd_com
                setb        e
                clr         e
                clr         csb
                ret

prr1:           clr     csa             ;写数据右半屏
                setb    csb
                clr     di
                setb    r_w
prr11:          mov     lcd_db,#0ffh
                setb    e
                mov     a,lcd_db
                clr     e
                jb      acc.7,prr11
                setb    di
                clr     r_w
                mov     lcd_db,lcd_data
                setb    e
                clr     e
                clr     csb
                ret

prr2:           clr     csa             ;读数据右半屏
                setb    csb
                clr     di
                setb    r_w
prr21:          mov     lcd_db,#0ffh
                setb    e
                mov     a,lcd_db
                clr     e
                jb      acc.7,prr21
                setb    di
                mov     lcd_db,#0ffh
                setb    e
                mov     lcd_data,lcd_db
                clr     e
                clr     csb
                ret

disp_rbyte:     push    psw             ;从num_col和num_page读一个字节
                setb    rs1
                clr     rs0
                mov     a,num_col               ;use r4
                mov     r4,num_col
                clr     c
                subb    a,#64
                jc      disp_rbyte1
                anl     a,#3fh
                orl     a,#40h
                mov     lcd_com,a
                call    prr0                    ;设列地址
                mov     a,num_page
                anl     a,#07h
                orl     a,#0b8h
                mov     lcd_com,a               ;设页地址
                call    prr0
                call    prr2                    ;读出的数据在lcd_data中
                call    prr2
                sjmp    disp_rbyte2
disp_rbyte1:    mov     a,num_col
                anl     a,#3fh
                orl     a,#40h
                mov     lcd_com,a
                call    prl0                    ;设列地址
                mov     a,num_page
                anl     a,#07h
                orl     a,#0b8h
                mov     lcd_com,a               ;设页地址
                call    prl0
                call    prl2
                call    prl2
                ;设定左屏行号和列号,写数据
disp_rbyte2:    pop     psw
                ret

disp_wbyte:     push    psw             ;;从num_col和num_page写一个字节,R4=要写的字节
                setb    rs1
                clr     rs0
                mov     a,num_col
                mov     r4,num_col
                clr     c
                subb    a,#64
                jc      disp_wbyte1
                anl     a,#3fh
                orl     a,#40h
                mov     lcd_com,a
                call    prr0                    ;设列地址
                mov     a,num_page
                anl     a,#07h
                orl     a,#0b8h
                mov     lcd_com,a               ;设页地址
                call    prr0
                call    prr1
                ;设定右屏行号和列号,写数据
                sjmp    disp_wbyte2
disp_wbyte1:    mov     a,num_col
                anl     a,#3fh
                orl     a,#40h
                mov     lcd_com,a
                call    prl0                    ;设列地址
                mov     a,num_page
                anl     a,#07h
                orl     a,#0b8h
                mov     lcd_com,a               ;设页地址
                call    prl0
                call    prl1
                ;设定左屏行号和列号,写数据
disp_wbyte2:    pop     psw
                ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -