PG12864F仿真电路和汇编程序演示(8051)

    xiaoxiao2026-08-25  0

    附录液晶屏PG12864F及其控制芯片T6963C

    PG12864F的控制芯片是T6963C,也是个单片机。接口提供了两个8位寄存器,一个是命令寄存器,一个是数据寄存器,因此一般分配两个地址。分别是C(命令寄存器地址)和D(数据寄存器地址),读C则读出状态内容(就是所说的状态寄存器内容),写C就是写命令。

    写字节先将数据写入D,然后将写字节命令写入C。

    读字节先将命令写入C,然后读D得到数据。

    12864本身有个VRAM显示内存,一般4到8K。里面除了显示地址外,还有个指针,指示读写时该字节在VRAM的位置。这个指针的值也是可命令设置的。

    8051单片机以总线方式连接PG12864F电路图

    PG12864F图形模式初始化汇编程序。包括字节读写,块写,命令写,状态读子功能。这些子程序没有优化,实际使用时要适当修改。

    ; init t6963c ; 128*64/8=1024bytes,读写任何一字节动作之前要检查STA1&STA0(不包括自动模式内数据读写) ;上面电路图中,命令地址为82XXH,数据地址为80XXH ; reset = "L" 1ms VCC>4.75V

    ;movx CCCC, #11111xxxB; pointer字节某位置位 ;movx CCCC #11110xxxB; pointer字节某位清零 ;movx CCCC, #0B0H; 自动写模式(内部检查STA3,这个地方注意,写只检查这一个,读同理只检查STA2) ;movx CCCC, #0B1H; 自动读模式(内部检查STA2) ;movx CCCC, #0B2H; 结束自动读写模式

    lcd_init: mov DPTR, #8000H mov r0,#9BH; mode GRA On,TEXT OFF,cursor blink LCALL lcd_c clr A mov r0,A; low addr mov r1,A; high addr mov r2,#42H; set GRA home addr LCALL lcd_c3 mov r2,#24H; set VRAM w/r pointer LCALL lcd_c3 mov r0,#10H; columns 16 bytes,16*8=128 mov r2,#43H; set GRA area LCALL lcd_c3 ; lcd_init_end. mov r0,#0C0H mov r1,#07FH LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LCALL lcd_wb LJMP lcd_end lwait: ORL DPH, #02H lwait0: movx A,@DPTR jnb ACC.0,lwait0; test STB0 jnb ACC.1,lwait0; test STB1 ret ;读写字节 lcd_fwb: ; PARA:r1=data use:A,DPTR,r0 return:none mov DPH, #80H mov r0, #0C0H lcd_wb: LCALL lwait ANL DPH, #0FDH; #11111101B mov A,r1; r1, data movx @DPTR,A LCALL lwait mov A,r0; r0, command. for write:C0H+1,C2H-1,C4H movx @DPTR,A ret lcd_frb: ; PARA:none use:A,DPTR,r0 return:ACC=data mov DPH, #80H mov r0, #0C1H lcd_rb: LCALL lwait mov A,r0; r0, command. for read: C1H+1,C3H-1,C5H movx @DPTR,A LCALL lwait ANL DPH, #0FDH; #11111101B movx A,@DPTR ret

    ;写单字命令 lcd_c: LCALL lwait mov A,r0 movx @DPTR,A ret

    ;写三字命令 lcd_c3: LCALL lwait ANL DPH, #0FDH; #11111101B mov A,r0 movx @DPTR,A LCALL lwait ANL DPH, #0FDH; #11111101B mov A,r1 movx @DPTR,A LCALL lwait mov A,r2 movx @DPTR,A ret ;

    lcd_end:

    T6963C命令全表

    Commands

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    Description

    ExecuteTime

    PointerSet

    0

    0

    1

    0

    0

    N2

    N1

    N0

    Status check

    0

    0

    1

    Cursor Pointer Set

    0

    1

    0

    Offset Register Set

    1

    0

    0

    Address Pointer Set

    Control Word Set Commands

    0

    1

    0

    0

    0

    0

    N1

    N0

    32x1/fosc

     0

    0

    Text Home Address Set

    0

    1

    Text Area Set

    1

    0

    Graphic Home Address Set

    1

    1

    Graphic Area Set

    Mode Set

    1

    0

    0

    0

    CG

    N2

    N1

    N0

    32x1/fosc

    0

    CG ROM Mode

    1

    CG RAM Mode

    0

    0

    0

    "OR" Mode

    0

    0

    1

    "EXOR" Mode

    0

    1

    1

    "AND" Mode

    1

    0

    0

    Text only (attribute capability)

    Display Modes

    1

    0

    0

    1

    N3

    N2

    N1

    N0

    32x1/fosc

    0

    Graphics Off

    1

    Graphics On

    0

    Text Off

    1

    Text On

    0

    Cursor Off

    1

    Cursor On

    0

    Cursor Blink Off

    1

    Cursor blink On

    Cursor Pattern Select

    1

    0

    1

    0

    0

    N2

    N1

    N0

    N2~N0:No. Of lines for cursor +1

    32x1/fosc

    0

    0

    0

    Bottom Line cursor

    0

    0

    1

    2 line ursor

    ...

    1

    1

    1

    8 line cursor (block cursor)

    Data Auto Read/Write

    1

    1

    0

    0

    0

    0

    N1

    N0

    32x1/fosc

    0

    0

    Data Auto Write Set

    0

    1

    Data Auto Read Set

    1

    0

    Auto reset(并将pointer自动加1

    Data Read/Write

    单字节

    1

    1

    0

    0

    0

    N2

    N1

    N0

    0

    Address Pointer up/down

    1

    Address Pointer unchanged

    0

    Address Pointer up

    1

    Address Pointer down

    0

    Data Write

    1

    Data Read

    Screen Peeking

    1

    1

    1

    0

    0

    0

    0

    0

    Read Displayed Data

    Status

    Screen Copy (Note3)

    1

    1

    1

    0

    1

    0

    0

    0

    Copies 1 line of displayed data whose Address is indicated by the Address Pointer to Graphic RAM area

    Status check

    Bit Set/Reset

    1

    1

    1

    1

    N3

    N2

    N1

    N0

    N2~N0 Indicates the bit in the pointed address

    Status check

    0

    Bit Reset

    1

    Bit Set

    0

    0

    0

    Bit 0(LSB)

    0

    0

    1

    Bit 1

    ...

    1

    1

    1

    Bit 7(MSB)

    转载请注明原文地址: https://ju.6miu.com/read-1311563.html
    最新回复(0)