ampire12864的用法?


ampire12864的怎么用呀,找不到,请问各位有可用的资料吗,帮帮忙!感谢!

我也来说两句 查看全部回复

最新回复

  • liaoguobao00 (2008-8-16 21:08:51)

    汇编语言驱动如下
    ;引脚定义
    E BIT P2.0;使能信号线
    RW BIT P2.1;读/写信号线
    RS BIT P2.2;数据/指令信号线
    CS2 BIT P2.3;右半屏控制信号线
    CS1 BIT P2.4;左半屏控制信号线
    ;空间分配
    COM EQU 20H;指令专用寄存器
    DAT EQU 21H;数据专用寄存器
    CODES EQU 22H;字在表格中的位置专用寄存器
    YE EQU 23H;字所在的页专用寄存器
    LIE EQU 24H;字所在的列专用寄存器
    ALL_YE EQU 25H;图形的总页数专用寄存器
    ALL_LIE EQU 26H;图形的总列数专用寄存器
    CS EQU 27H;左右半屏控制专用寄存器,为0时在左半屏,为1时在右半屏
    HANG EQU 28H;点所在的行专用寄存器
    ;主程序
    ORG 1000H
    LCALL INIT
    LCALL CLEAR
    MOV 27H,#0
    MOV LIE,#0
    MOV YE,#0
    MOV ALL_YE,#8
    MOV ALL_LIE,#64
    LCALL MAP
    MOV 27H,#1
    MOV CODES,#0
    MOV YE,#0
    MOV LIE,#0
    LCALL WRITE_HANZI
    MOV CODES,#0
    MOV YE,#0
    MOV LIE,#16
    LCALL WRITE_HANZI
    MOV CODES,#1
    MOV YE,#0
    MOV LIE,#32
    LCALL WRITE_HANZI
    MOV CODES,#2
    MOV YE,#0
    MOV LIE,#48
    LCALL WRITE_HANZI
    MOV CODES,#3
    MOV YE,#2
    MOV LIE,#0
    LCALL WRITE_HANZI
    MOV CODES,#4
    MOV YE,#2
    MOV LIE,#16
    LCALL WRITE_HANZI
    MOV CODES,#5
    MOV YE,#2
    MOV LIE,#32
    LCALL WRITE_HANZI
    MOV CODES,#6
    MOV YE,#2
    MOV LIE,#48
    LCALL WRITE_HANZI
    MOV CODES,#7
    MOV YE,#4
    MOV LIE,#0
    LCALL WRITE_HANZI
    MOV CODES,#8
    MOV YE,#4
    MOV LIE,#16
    LCALL WRITE_HANZI
    MOV CODES,#9
    MOV YE,#4
    MOV LIE,#32
    LCALL WRITE_HANZI
    MOV CODES,#10
    MOV YE,#4
    MOV LIE,#48
    LCALL WRITE_HANZI
    MOV CODES,#11
    MOV YE,#6
    MOV LIE,#0
    LCALL WRITE_HANZI
    MOV CODES,#12
    MOV YE,#6
    MOV LIE,#16
    LCALL WRITE_HANZI
    MOV CODES,#13
    MOV YE,#6
    MOV LIE,#32
    LCALL WRITE_HANZI
    MOV CODES,#14
    MOV YE,#6
    MOV LIE,#48
    LCALL WRITE_HANZI
    MOV 28H,#0C0H
    HAHACALL DELAY_500MS
    INC 28H
    MOV A,28H
    CJNE A,#0FFH,NIU
    MOV 28H,#0C0H
    NIU:MOV COM,28H
    LCALL WRITE_COM
    LJMP HAHA
    /*MOV HANG,#60
    MOV LIE,#60
    LCALL POINT
    MOV HANG,#62
    MOV LIE,#60
    LCALL POINT*/
    LJMP $
    ;写指令程序
    WRITE_COMCALL BUSY
    CLR RS
    CLR RW
    MOV P0,COM
    SETB E
    CLR E
    RET
    ;写数据程序
    WRITE_DATCALL BUSY
    SETB RS
    CLR RW
    MOV P0,DAT
    SETB E
    CLR E
    RET
    ;读数据程序
    READ_DATCALL BUSY
    SETB RS
    SETB RW
    MOV P0,#0FFH
    MOV DAT,P0
    SETB E
    CLR E
    RET
    ;判断忙子程序
    BUSY:CLR RS
    SETB RW
    BUSY1:MOV P0,#0FFH
    SETB E
    MOV A,P0
    CLR E
    JB ACC.7,BUSY1
    RET
    ;写一个16*16字子程序
    WRITE_HANZI:MOV A,27H
    CJNE A,#0,C0S
    CLR CS1
    SETB CS2
    LJMP WH3
    C0S:CLR CS2
    SETB CS1
    WH3:MOV R0,#16
    MOV R1,#2
    MOV DPTR,#TAB1
    MOV A,CODES
    MOV B,#32
    MUL AB
    ADD A,DPL
    MOV DPL,A
    MOV A,B
    ADDC A,DPH
    MOV DPH,A
    WH2:MOV A,#0B8H
    ADD A,YE
    MOV COM,A
    LCALL WRITE_COM
    MOV A,#40H
    ADD A,LIE
    MOV COM,A
    LCALL WRITE_COM
    WH1:CLR A
    MOVC A,@A+DPTR
    MOV DAT,A
    LCALL WRITE_DAT
    INC DPTR
    DJNZ R0,WH1
    MOV R0,#16
    INC YE
    DJNZ R1,WH2
    RET
    ;写一个16*8字子程序
    WRITE_ZIFU:MOV A,27H
    CJNE A,#0,C1S
    CLR CS1
    SETB CS2
    LJMP WZ3
    C1S:CLR CS2
    SETB CS1
    WZ3:MOV R0,#8
    MOV R1,#2
    MOV DPTR,#TAB0
    MOV A,CODES
    MOV B,#16
    MUL AB
    ADD A,DPL
    MOV DPL,A
    MOV A,B
    ADDC A,DPH
    MOV DPH,A
    WZ2:MOV A,#0B8H
    ADD A,YE
    MOV COM,A
    LCALL WRITE_COM
    MOV A,#40H
    ADD A,LIE
    MOV COM,A
    LCALL WRITE_COM
    WZ1:CLR A
    MOVC A,@A+DPTR
    MOV DAT,A
    LCALL WRITE_DAT
    INC DPTR
    DJNZ R0,WZ1
    MOV R0,#8
    INC YE
    DJNZ R1,WZ2
    RET
    ;打点子程序
    POINT:MOV A,27H
    CJNE A,#0,C3S
    CLR CS1
    SETB CS2
    LJMP POINT0
    C3S:CLR CS2
    SETB CS1
    POINT0:MOV A,HANG
    MOV B,#8
    DIV AB
    ADD A,#0B8H
    MOV COM,A
    LCALL WRITE_COM
    MOV A,#40H
    ADD A,LIE
    MOV COM,A
    LCALL WRITE_COM
    LCALL READ_DAT
    MOV A,B
    CJNE A,#0,POINT_O
    MOV A,#1
    LJMP POINT1
    POINT_O:CJNE A,#1,POINT_1
    MOV A,#2
    LJMP POINT1
    POINT_1:CJNE A,#2,POINT_2
    MOV A,#4
    LJMP POINT1
    POINT_2:CJNE A,#3,POINT_3
    MOV A,#8
    LJMP POINT1
    POINT_3:CJNE A,#4,POINT_4
    MOV A,#10H
    LJMP POINT1
    POINT_4:CJNE A,#5,POINT_5
    MOV A,#20H
    LJMP POINT1
    POINT_5:CJNE A,#6,POINT_6
    MOV A,#40H
    LJMP POINT1
    POINT_6:MOV A,#80H
    POINT1:ORL A,DAT
    MOV DAT,A
    LCALL WRITE_DAT
    RET
    ;显示图形子程序
    MAP:MOV A,27H
    CJNE A,#0,C2S
    CLR CS1
    SETB CS2
    LJMP MAP3
    C2S:CLR CS2
    SETB CS1
    MAP3:MOV R0,ALL_LIE
    MOV R1,ALL_YE
    MOV DPTR,#TAB2
    MAP2:MOV A,#0B8H
    ADD A,YE
    MOV COM,A
    LCALL WRITE_COM
    MOV A,#40H
    ADD A,LIE
    MOV COM,A
    LCALL WRITE_COM
    MAP1:CLR A
    MOVC A,@A+DPTR
    MOV DAT,A
    LCALL WRITE_DAT
    INC DPTR
    DJNZ R0,MAP1
    MOV R0,ALL_LIE
    INC YE
    DJNZ R1,MAP2
    RET
    ;初始化子程序
    INIT:MOV COM,#0C0H;设置起始行为第一行
    CLR CS1
    SETB CS2
    LCALL WRITE_COM
    CLR CS2
    SETB CS1
    LCALL WRITE_COM
    MOV COM,#3FH;开屏
    CLR CS1
    SETB CS2
    LCALL WRITE_COM
    CLR CS2
    SETB CS1
    LCALL WRITE_COM
    RET
    ;清屏子程序
    CLEAR:CLR CS2;左清屏
    SETB CS1
    MOV R2,#2
    CLEAR3:MOV R3,#0B8H
    MOV R0,#8
    MOV R1,#64
    CLEAR2:MOV COM,R3
    LCALL WRITE_COM
    MOV COM,#40H
    LCALL WRITE_COM
    CLEAR1:MOV DAT,#0
    LCALL WRITE_DAT
    DJNZ R1,CLEAR1
    INC R3
    DJNZ R0,CLEAR2
    DJNZ R2,CLEAR0
    RET
    CLEAR0:CLR CS1;右清屏
    SETB CS2
    LJMP CLEAR3
    ;延时0.5秒程序
    DELAY_500MS:MOV R7,#25
    DELAY_500MS2:MOV R6,#100
    DELAY_500MS1:MOV R5,#100
    DJNZ R5,$
    DJNZ R6,DELAY_500MS1
    DJNZ R7,DELAY_500MS2
    RET
    ;8*16字符表
    TAB0:
    DB   0F0h, 0F8h,  0Ch,  04h        ;0
    DB    04h,  0Ch, 0F8h, 0F0h        
    DB    0Fh,  1Fh,  30h,  20h
    DB    20h,  30h,  1Fh,  0Fh

    DB    00h,  00h,  08h, 0F8h        ;1         
    DB   0FCh,  00h,  00h,  00h
    DB    00h,  00h,  20h,  3Fh
    DB    3Fh,  20h,  00h,  00h

    DB    30h,  38h,  0Ch,  04h        ;2
    DB    04h,  0Ch, 0F8h, 0F0h
    DB    20h,  30h,  38h,  2Ch         
    DB    26h,  23h,  21h,  38h

    DB    10h,  18h,  0Ch,  84h        ;3
    DB    84h, 0CCh,  78h,  30h
    DB    08h,  18h,  30h,  20h
    DB    20h,  31h,  1Fh,  0Eh         

    DB    00h, 0C0h,  70h,  18h        ;4
    DB   0FCh, 0FEh,  00h,  00h
    DB    07h,  05h,  04h,  24h
    DB    3Fh,  3Fh,  24h,  04h         

    DB   0FCh, 0FCh, 0C4h,  44h        ;5
    DB    44h, 0C4h,  84h,  04h
    DB    08h,  18h,  30h,  20h
    DB    20h,  30h,  1Fh,  0Fh         

    DB   0F0h, 0F8h,  8Ch,  44h        ;6
    DB    44h, 0CCh,  98h,  10h
    DB    0Fh,  1Fh,  30h,  20h
    DB    20h,  30h,  1Fh,  0Fh         

    DB    1Ch,  0Ch,  0Ch,  0Ch        ;7
    DB   0CCh, 0ECh,  3Ch,  1Ch
    DB    00h,  00h,  3Ch,  3Fh
    DB    03h,  00h,  00h,  00h         

    DB    30h,  78h, 0CCh,  84h        ;8
    DB    84h, 0CCh,  78h,  30h
    DB    0Eh,  1Fh,  31h,  20h
    DB    20h,  31h,  1Fh,  0Eh         

    DB   0F0h, 0F8h,  0Ch,  04h        ;9
    DB    04h,  0Ch, 0F8h, 0F0h
    DB    08h,  19h,  33h,  22h
    DB    22h,  33h,  1Fh,  0Fh         

    ;16*16汉字表
    TAB1:
    ; -- 关 --
            db       00h, 00h, 00h, 10h, 11h, 16h, 1Eh,0F4h
            db        0F0h, 18h, 1Eh, 17h, 1Ah, 90h, 00h, 00h
            db         00h, 80h, 41h, 61h, 31h, 19h, 0Fh, 07h
            db         03h, 07h, 1Dh, 39h, 71h,0E1h,0C1h, 40h

    ; -- 雎 --
            db       00h,0FEh,0FCh, 44h,0FCh,0FEh, 44h, 20h
            db        0F8h,0EFh, 96h, 90h,0FFh,0F6h, 90h, 98h
            db         00h,0FFh,0FFh, 62h, 7Fh, 3Fh, 10h, 00h
            db        0FFh, 7Fh, 44h, 44h, 7Fh, 7Fh, 44h, 64h

    ; -- 鸠 --
            db       00h, 10h, 10h,0FFh,0FEh, 10h,0F0h, 0Ch
            db        0FCh,0FEh, 57h,0C5h,0FCh,0FEh, 04h, 00h
            db         00h, 80h, 60h, 3Fh, 1Fh, 80h,0FFh, 52h
            db         33h, 13h, 12h, 12h, 5Bh,0D2h, 7Eh, 3Fh

    ; -- 在 --
            db       00h, 00h, 08h, 08h,0C8h,0F8h, 3Ch, 0Fh
            db         0Ah,0E8h,0C8h, 08h, 88h, 08h, 0Ch, 08h
            db         00h, 08h, 06h, 03h,0FFh, 7Fh, 41h, 41h
            db         41h, 7Fh, 7Fh, 41h, 41h, 41h, 60h, 40h

    ; -- 河 --
            db       00h, 10h,0E1h,0CEh, 0Ch, 84h,0F4h,0E4h
            db         24h,0E4h,0F4h, 24h,0FCh,0FCh, 06h, 04h
            db         00h, 04h, 78h,0F8h, 6Eh, 03h, 0Fh, 07h
            db         04h, 0Fh, 27h, 40h,0FFh, 7Fh, 00h, 00h

    ; -- 之 --
            db       00h, 00h, 00h, 08h, 08h, 08h, 09h, 0Bh
            db         8Eh,0CAh, 68h, 38h, 1Ch, 08h, 00h, 00h
            db         00h, 10h, 30h, 18h, 0Ch, 0Eh, 1Ah, 31h
            db         61h, 60h, 60h, 60h, 60h, 60h, 60h, 20h

    ; -- 洲 --
            db       00h, 10h,0E1h, 4Eh,0B4h,0E0h,0FFh,0FEh
            db         60h,0C0h,0FEh,0FCh, 60h,0C0h,0FFh,0FEh
            db         00h, 04h,0FCh, 7Eh, 83h, 60h, 3Fh, 0Fh
            db         00h, 01h, 3Fh, 1Fh, 00h, 01h,0FFh, 7Fh

    ; -- 窈 --
            db       00h, 08h, 1Ch, 0Eh,0A4h,0F4h, 9Ch, 0Dh
            db         07h, 0Eh,0DCh,0B4h, 34h, 1Ch, 8Eh, 04h
            db         00h, 00h, 24h,0F6h, 57h, 4Dh, 4Ch, 77h
            db        0E6h, 43h, 7Fh, 3Fh, 41h,0FFh, 7Fh, 01h

    ; -- 窕 --
            db       00h, 08h, 1Ch, 8Eh,0A4h, 34h,0FCh,0CDh
            db         07h,0EEh,0DCh, 34h,0B4h,0DCh, 8Eh, 04h
            db         00h, 00h, 88h, 98h, 4Dh, 65h, 3Fh, 1Fh
            db         00h, 7Fh,0FFh,0CDh,0D9h,0C8h,0E0h, 40h

    ; -- 淑 --
            db       00h, 30h, 63h, 06h, 40h, 40h,0FFh,0FEh
            db         48h, 40h,0FCh,0FCh, 04h,0FCh,0FEh, 04h
            db         00h, 10h,0FCh, 3Fh, 18h, 0Eh,0FFh, 7Fh
            db         02h, 84h, 60h, 1Bh, 06h, 1Bh,0F0h, 60h

    ; -- 女 --
            db       00h, 20h, 20h, 20h, 20h,0E0h,0F8h, 3Fh
            db         26h, 20h,0E0h,0E0h, 20h, 20h, 30h, 20h
            db         00h, 80h, 80h, 40h, 43h, 23h, 36h, 1Ch
            db         0Ch, 1Fh, 1Bh, 30h, 60h,0E0h, 40h, 00h

    ; -- 君 --
            db       00h, 00h, 10h, 10h, 92h, 92h,0FEh,0FEh
            db         92h, 92h, 92h,0FEh,0FFh, 12h, 18h, 10h
            db         00h, 10h, 08h, 0Ch, 06h,0FFh, 7Dh, 44h
            db         44h, 44h, 44h, 45h,0FCh, 7Eh, 04h, 00h

    ; -- 子 --
            db       00h, 80h, 80h, 80h, 82h, 82h, 82h, 82h
            db        0E2h,0F2h, 9Ah, 8Eh, 87h, 82h,0C0h, 80h
            db         00h, 00h, 00h, 00h, 00h, 00h, 40h, 40h
            db        0FFh, 7Fh, 00h, 00h, 00h, 00h, 00h, 00h

    ; -- 好 --
            db       00h, 20h, 20h,0F8h,0FFh, 26h,0F0h,0E0h
            db         82h, 82h, 82h,0F2h,0EAh, 8Eh,0C7h, 82h
            db         00h, 80h, 63h, 37h, 1Ch, 0Fh, 7Bh, 30h
            db         00h, 20h, 40h,0FFh, 7Fh, 00h, 00h, 00h

    ; -- 逑 --
            db       00h, 20h, 22h,0E6h,0ECh, 20h, 10h, 30h
            db         70h, 50h,0FFh,0FEh, 50h, 52h, 3Ah, 14h
            db         00h, 80h,0C0h, 7Fh, 3Fh, 20h, 4Eh,0CCh
            db        0C6h,0D1h,0FFh,0DFh,0C1h,0C6h,0C6h, 4Ch
    ;图形表
    TAB2:
            
            db      0FFh,0FFh,0FFh,0DBh, 37h,0FFh, 8Bh,0ABh
            db         83h,0ABh, 83h,0ABh, 8Bh,0FBh,0FFh, 77h
            db         77h, 17h, 57h, 57h, 53h, 57h, 57h, 17h
            db         77h, 77h,0FFh,0EFh, 0Fh,0E3h, 0Fh,0EFh
            db        0EFh,0EFh, 03h,0EFh,0EFh,0EFh,0FFh,0EFh
            db         0Fh,0E3h, 0Fh,0FFh, 07h, 57h, 53h, 57h
            db         07h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FDh,0E0h,0FFh,0EBh,0F2h
            db        0FAh,0EAh,0E2h,0FAh,0F2h,0EBh,0FFh,0EEh
            db        0EFh,0F7h,0F9h,0FDh,0FDh,0FDh,0E1h,0EFh
            db        0EFh,0E2h,0FFh,0ECh,0F5h,0FBh,0F4h,0FFh
            db        0E0h,0EEh,0EEh,0EEh,0EEh,0E0h,0FFh,0EFh
            db        0F4h,0FBh,0F4h,0FFh,0E0h,0EFh,0F4h,0FBh
            db        0F5h,0EEh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0EFh, 6Eh,0AAh, 0Ah,0A2h
            db        0A8h,0AAh,0AAh, 2Ah,0EEh,0EFh,0FFh,0EEh
            db        0E9h, 0Fh,0FBh,0EBh, 9Bh,0FBh,0FBh, 00h
            db        0FBh,0FBh,0FFh,0DFh,0DDh,0D5h, 4Dh, 9Dh
            db         00h, 9Dh, 4Dh,0D5h,0DDh,0DFh,0FFh,0FFh
            db        0E3h, 81h, 81h,0E3h,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FEh,0FFh,0FFh,0F8h,0FAh
            db        0FAh,0FAh,0FAh, 78h,0BFh,0BFh,0BFh, 7Bh
            db         7Dh,0BEh,0BDh,0BBh,0BBh, 3Ah,0BAh,0BAh
            db        0BBh,0BBh,0BFh, 7Dh, 7Dh,0FEh, 7Fh, 7Fh
            db         78h, 7Fh,0FFh,0FEh,0FDh,0FDh,0FFh,0FFh
            db        0FFh,0FCh,0FCh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh, 7Fh, 9Fh,0EFh
            db         73h, 7Dh,0BEh, 5Fh, 9Fh,0E7h, 7Fh,0BBh
            db        0DDh,0DDh,0BBh, 7Fh,0FEh, 7Bh,0BDh,0DDh
            db        0DBh,0BFh, 73h,0CFh,0BDh, 7Eh, 7Fh,0FFh
            db        0FFh,0FFh,0F8h, 87h, 7Fh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FEh,0FEh, 0Eh
            db        0F3h,0FDh,0FEh, 1Fh,0EFh,0F7h,0F6h,0EDh
            db         6Bh, 68h,0D4h,0D6h,0D7h,0DEh,0EDh,0EBh
            db        0E8h,0DCh, 3Eh, 1Fh,0EFh,0FFh,0FFh,0FEh
            db        0FCh,0F2h, 0Dh,0FDh,0FCh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
            db        0FCh, 7Bh, 37h, 2Fh,0AAh,0D5h,0CBh,0DBh
            db        0B6h,0B6h, 6Fh, 6Fh, 6Ch, 6Ch,0B7h,0B7h
            db         9Bh,0ACh,0BFh,0DFh,0DEh,0AFh, 2Fh, 37h
            db         73h,0FCh,0FFh,0C3h,0BDh, 66h,0FAh,0FEh
            db        0FDh,0F9h,0FDh,0FEh,0FEh, 7Eh, 00h,0BDh
            db         66h,0FAh,0FEh,0FDh,0F9h,0FDh,0FEh,0FEh
            db         7Eh, 3Ch, 81h,0C3h,0FFh,0FFh,0FFh,0FFh
            db        0FFh,0FFh,0FFh,0FFh,0FFh,0C7h,0C3h,0C1h
            db        0C8h,0DCh,0FFh,0F8h,0F7h,0E8h,0D2h,0F2h
            db        0F8h,0FCh,0FEh,0FCh,0FCh,0FEh,0FCh,0F8h
            db        0F2h,0F2h,0F8h,0DFh,0EFh,0F7h,0F8h,0FFh
            db        0DCh,0C8h,0C1h,0DFh,0DFh,0FFh,0FEh,0FDh
            db        0FBh,0F7h,0F3h,0F9h,0FCh,0FEh,0FFh,0FFh
            db        0FFh,0FEh,0FDh,0FBh,0F7h,0F3h,0F9h,0FCh
            db        0FEh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
                                       END
    C语言驱动如下:
    #include<at89x52.h>
    sbit DI=P2^0;
    sbit RW=P2^1;
    sbit E=P2^2;
    sbit CS1=P2^3;
    sbit CS2=P2^4;
    unsigned char code Tab1[][32];
    unsigned char code Tab2[][16];
    //判断忙指令
    void Busy()
    {
    DI=0;
    RW=1;
    do
       {
       P0=0xff;
       E=1;
       P0&=0x80;
       E=0;
       }
       while(P0!=0);
    }
    //写指令程序
    void Write_com( unsigned char com)
    {
    Busy();
    DI=0;
    RW=0;
    E=1;
    P0=com;
    E=0;
    }
    //写数据程序
    void Write_dat(unsigned char dat)
    {
    Busy();
    DI=1;
    RW=0;
    E=1;
    P0=dat;
    E=0;
    }
    //写汉字程序
    void Han_Zi(bit m,unsigned char page,unsigned char row,unsigned char n)
    {
    unsigned char i,j;
    if(m)
       {
       CS1=0;
       CS2=1;
       }
       else
          {
          CS1=1;
          CS2=0;
          }
          for(j=0;j<2;j++)
             {
             Write_com(page+0xb8+j);
             Write_com(row+0x40);
             for(i=0;i<16;i++)
                {
                Write_dat(Tab1[n][16*j+i]);
                }
             }
    }
    //写字符程序
    void Zi_Fu(bit m,unsigned char page,unsigned char row,unsigned char n)
    {
    unsigned char i,j;
    if(m)
       {
       CS1=0;
       CS2=1;
       }
       else
          {
          CS1=1;
          CS2=0;
          }
          for(j=0;j<2;j++)
             {
             Write_com(page+0xb8+j);
             Write_com(row+0x40);
             for(i=0;i<8;i++)
                {
                Write_dat(Tab2[n][8*j+i]);
                }
             }
    }
    //打点子程序,m=0左屏幕打点,m=1右屏幕打点,x,y为点的坐标
    void point(bit m,unsigned char x,unsigned char y)
    {unsigned char j,a,b,c,d,e,f,g,h,i;
    if(m)
       {
       CS1=0;
       CS2=1;
       }
       else
          {
          CS1=1;
          CS2=0;
          }
              if(i==x/8);
          else
                 {
                 i=x/8;
                 a=b=c=d=e=f=g=h=0;
                 }
             Write_com(0xb8+x/8);
             Write_com(0x40+y);
             j=x%8;
    switch(j)
       {
       case 0:
       a=1;break;
       case 1:
       b=2;break;
       case 2:
       c=4;break;
       case 3:
       d=8;break;
       case 4:
       e=0x10;break;
       case 5:
       f=0x20;break;
       case 6:
       g=0x40;break;
       case 7:
       h=0x80;break;
       }
       Write_dat(a|b|c|d|e|f|g|h);
    }
    //画线子程序,M=1时画横线,M=0时画竖线,N=0时在左边画线,N=1时在右边画线,Hang起始行,Lie起始列,Longth线长度
    void Line(bit m,bit n,unsigned char Hang,unsigned char Lie,unsigned char Longth)
    {
    unsigned char i;
    if(m)
       {
       if(n)//右边画横线
          {
          for(i=Lie;i<=Longth+Lie;i++)
              point(1,Hang,i);
              }
              else//左边画横线
                 {
             for(i=Lie;i<=Longth+Lie;i++)
                     point(0,Hang,i);
                     }
       }
       else
          {
              if(n)//右边画列线
             {
                     Longth+=Hang;
             for(i=Hang;i<=Longth;i++)
                     point(1,i,Lie);
                 }
                 else//左边画列线
                    {
                            Longth+=Hang;
                for(i=Hang;i<=Longth;i++)
                            point(0,i,Lie);
                }
          }
    }
    //清屏程序
    void Clear()
    {
    unsigned char i,j;
    CS1=1;
    CS2=0;
    for(j=0;j<8;j++)
       {
       Write_com(0xb8+j);
       Write_com(0x40);
       for(i=0;i<64;i++)
       Write_dat(0);
       }
       CS1=0;
       CS2=1;
       for(j=0;j<8;j++)
          {
          Write_com(0xb8+j);
          Write_com(0x40);
          for(i=0;i<64;i++)
          Write_dat(0);
          }
    }
    //初始化程序
    void Init()
    {
    Busy();
    CS1=1;
    CS2=0;
    Write_com(0xc0);//设置起始行为第一行
    Write_com(0x3f);//开显示关显示为0x3e
    CS1=0;
    CS2=1;
    Write_com(0xc0);
    Write_com(0x3f);
    }
    //延时一秒子程序
    /*void delay()
    {
    unsigned char a,b,c;
    for(a=0;a<110;a++)
    for(b=0;b<100;b++)
    for(c=0;c<30;c++);
    }*/
    void main()
    {
    Init();
    Clear();
    Line(1,1,0,0,63);
    Line(1,0,0,0,63);
    Line(1,1,63,0,63);
    Line(1,0,63,0,63);
    Line(0,0,0,0,63);
    Line(0,1,0,63,63);
    Han_Zi(1,0,0,0);
    Zi_Fu(1,2,0,0);
    point(1,24,4);
    point(1,29,4);

    while(1);
    }
    //汉字表
    unsigned char code Tab1[][32]={
          0x01,0x01,0xFD,0x25,0x25,0x25,0xFD,0xA5,
          0xA7,0xA5,0xFD,0x25,0x35,0x27,0x05,0x01,
          0x40,0x20,0x9F,0x80,0x42,0x42,0x26,0x2A,
          0x12,0x2A,0x26,0x42,0x40,0xC0,0x40,0x00,};


    //字符表
    unsigned char code Tab2[][16]={
          0xF0,0xF8,0x0C,0x04,0x04,0x0C,0xF8,0xF0,        // -0-
          0x0F,0x1F,0x30,0x20,0x20,0x30,0x1F,0x0F,};
    需要增加汉字或字符可以在表格中加,这里只做演示
  • tufei5202006 (2008-8-17 10:53:36)

    qqqqqqqqqqqqqqqqqqqqqqqqqqq
  • 锅牛 (2008-9-30 15:02:37)

    谢谢了!
  • submars (2008-10-03 15:51:19)

    2楼的程序直接仿真正常显示,但还是不太清楚ampire12864的具体用法。