导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请LCD高手指点迷津[philip]

 *第13442篇: 请LCD高手指点迷津

  
楼 主:philip 2003年6月13日17:28
 请LCD高手指点迷津
我买了两块12232点阵LCD(不同厂家),老是调试不通,而且出现怪现象,硬件复位后,有满屏显示,其中一块写指令A5能消除显示,而另一块写A4,A5都能消除显示,但其他任何指令和数据都没有反应,我的RES脚接高电平,我搞了一个星期了,查过网站相关程序的时序,试了很多种方法,只有现在的程序否反应,但还是不正确,以下是我的程序,请高手帮我分析分析。

NOPS MACRO
    REPT  5
        NOP
    ENDM
ENDM

    T2CON       EQU     0C8H
    RCAP2L      EQU     0CAH
    RCAP2H      EQU     0CBH
    TL2         EQU     0CCH
    TH2         EQU     0CDH
    TR2         BIT     0CAH

    LED_RED     BIT     P1.5
    LED_GREEN   BIT     P1.6
    LCD_BK      BIT     P1.7
    LCD_CS1     BIT     P3.4
    LCD_CS2     BIT     P3.5
    LCD_RW      BIT     P3.6
    LCD_A0      BIT     P3.7
    LCD_PORT    EQU     P2
    STACK       EQU     50H

ORG 0000H
    LJMP    START
ORG 0003H
    RETI
ORG 000BH
    LJMP    TIME0
ORG 0013H
    RETI
ORG 001BH
    RETI
ORG 0023H
    RETI
ORG 002BH
    RETI
ORG 0030H
DELAY:
    PUSH    ACC
    MOV     A,#00H
    DJNZ    B,$
    DJNZ    ACC,$-3
    POP     ACC
    RET

LCD_MI:
    CLR     LCD_A0
    NOPS
    SETB    LCD_CS1
    NOPS
    MOV     LCD_PORT,A
    NOPS
    CLR     LCD_CS1
    NOPS
    NOPS
    RET
LCD_MD:
    SETB    LCD_A0
    NOPS
    SETB    LCD_CS1
    NOPS
    MOV     LCD_PORT,A
    NOPS
    CLR     LCD_CS1
    NOPS
    CLR     LCD_A0
    NOPS
    RET

LCD_SI:
    CLR     LCD_A0
    NOPS
    SETB    LCD_CS2
    NOPS
    MOV     LCD_PORT,A
    NOPS
    CLR     LCD_CS2
    NOPS
    NOPS
    RET

LCD_SD:
    SETB    LCD_A0
    NOPS
    SETB    LCD_CS2
    NOPS
    MOV     LCD_PORT,A
    NOPS
    CLR     LCD_CS2
    NOPS
    CLR     LCD_A0
    NOPS
    RET

DISPLAY_MSG:
    MOV     A,#0C0H
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     A,#00H
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     R2,#0B8H
CLDOT1:
    MOV     A,R2
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     A,#00H
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     R1,#3DH
CLDOT2:
    MOV     A,R3
    LCALL   LCD_MD
    LCALL   LCD_SD
    DJNZ    R1,CLDOT2
    INC     R2
    CJNE    R2,#0BCH,CLDOT1
    RET
;===============================================================================
TIME0:
    MOV     TH0,#0B1H           ;intt0 interrupt per 20ms
    MOV     TL0,#0E0H
    DJNZ    R7,TIME0_END
    CPL     LED_RED
    MOV     R7,#25
    DEC     R6
TIME0_END:
    RETI
;===============================================================================
START:
    CLR     EA
    MOV     PSW,#00H
    MOV     SP,#STACK+2         ;set stack
    LCALL   DELAY
    MOV     TMOD,#21H           ;time1 8bit mode, time0 16bit mode
    MOV     TH0,#0B1H           ;intt0 interrupt per 20ms
    MOV     TL0,#0E0H
    MOV     TH1,#98H            ;time1 every 1/9600S generate a interrupt
    MOV     TL1,#98H            ;
    MOV     TCON,#55H           ;start time0 and time1 and make external
                                ;interrupt0(1) trigger by negative
    MOV     T2CON,#30H          ;time2 for serial baud generate
    MOV     RCAP2H,#0FFH        ;baud=9600bps
    MOV     RCAP2L,#0D9H
    MOV     PCON,#00H
    MOV     SCON,#050H          ;serial port 8bit mode
    SETB    TR2                 ;start time2
    MOV     LCD_PORT,#0FFH
    CLR     LCD_CS1
    CLR     LCD_CS2
    CLR     LCD_RW
    SETB    LCD_A0
    CLR     RI
    CLR     TI
    MOV     IE,#93H             ;open ES,ET0,EX0 interrupt
INITIALIZE:
    MOV     A,#0A4H
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     A,#0A9H
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     A,#0A0H
    LCALL   LCD_MI
    LCALL   LCD_SI
    MOV     A,#0AFH
    LCALL   LCD_MI
    LCALL   LCD_SI

    MOV     R6,#10H
    CJNE    R6,#00H,$
MAIN:
    MOV     R6,#10H
    MOV     R3,#55H             ;display data
    LCALL   DISPLAY_MSG
    CJNE    R6,#00H,$

    MOV     R6,#10H
    MOV     A,#00H              ;clear screen
    MOV     R3,A
    LCALL   DISPLAY_MSG
    CJNE    R6,#00H,$

    SJMP    MAIN
    LJMP    START
END

  
2楼:gongym 2003年6月13日17:45
 在RES脚与地之间加接一个0.1U电容试
在RES脚与地之间加接一个0.1U电容试试。
  
3楼:philip 2003年6月13日20:01
 谢谢,但还是不行,我想可能还是我点背,买的货都有问题,二不过三,明天准备再买一块其它品牌的
  
4楼:philip 2003年6月14日14:06
 已经搞定了,谢谢大家关心

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:有关单片机与PC机并口通信的最简实现方法。请高手不吝赐教。多谢了

[下一篇主题]:SN74LV04和SN74LC04的区别