打印

12864(ST7920)的屏点不亮,请教一下高手们

[复制链接]
2671|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
善解人意|  楼主 | 2010-8-8 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的AT89S52单片机,按照ST7920的规格书写的程序,现在还是点不亮,用JHD529M1的是可以的,这两个控制器有些指令是有区别,按照规格书改过来了.那些高手帮我分析一下,把程序也发上来.谢谢.
B_CS   BIT     P2.0
B_DA   BIT     P2.1
B_CLK  BIT     P2.2
B_RET  BIT     P2.5
B_PSB  BIT     P2.3
R_LCDDATA EQU   40H
  ORG     0000H
  JMP     START
  ORG     0030H
START:
        MOV     SP,#70H
  LCALL   F_LCDINT
  LCALL   DELAY5MS
  MOV     R_LCDDATA,#80H
  MOV     DPTR,#TABLE1
  LCALL   F_LCDDATA
  MOV     R_LCDDATA,#90H
  MOV     DPTR,#TABLE2
  LCALL   F_LCDDATA
  MOV     R_LCDDATA,#0A0H
  MOV     DPTR,#TABLE3
  LCALL   F_LCDDATA      
  MOV     R_LCDDATA,#0B0H
  MOV     DPTR,#TABLE4
  LCALL   F_LCDDATA
  JMP     $
/***************初始化***************************/
F_LCDINT:
     CLR     B_PSB
  CLR     B_CLK
  CLR     B_RET
  LCALL   DELAY10MS
  SETB    B_RET
  MOV     R_LCDDATA,#20H ; 基本指令操作
  LCALL   F_LCDINS
  MOV     R_LCDDATA,#06H ;
  LCALL   F_LCDINS
  MOV     R_LCDDATA,#0CH ;开显示,关光标,不闪烁
  LCALL   F_LCDINS
     MOV     R_LCDDATA,#01H ;清屏
  LCALL   F_LCDINS
     LCALL   DEALY4600
  RET
;---------------写指令---------------
F_LCDINS:
     MOV     A,#0F8H
  LCALL   WR_BIT
  MOV     A,R_LCDDATA
  ANL     A,#0F0H
  LCALL   WR_BIT
  MOV     A,R_LCDDATA
  ANL     A,#0FH
  SWAP    A
  LCALL   WR_BIT
  LCALL   DELAY72US
  RET
;----------------写数据位-----------------
WR_BIT:
        MOV     R3,#8
  CLR     B_CLK
L_LOOP:
        RLC     A
  MOV     B_DA,C
  SETB    B_CLK
  NOP
  NOP
  NOP
  CLR     B_CLK
  DJNZ    R3,L_LOOP
  RET
DELAY72US:
        MOV    R4,#36
  DJNZ   R4,$
  RET
DELAY10MS:
        MOV    R6,#38
DLY1:
        MOV    R7,#130
  DJNZ   R7,$
  DJNZ   R6,DLY1
  RET
/**************写数据**********************/
F_LCDDATA:
        LCALL  F_LCDINS
  MOV    R6,#0
L_LOOP1:
        MOV    A,R6
  MOVC   A,@A+DPTR
  MOV    R_LCDDATA,A
  LCALL  F_LCDOUT
  INC    R6
  MOV    R7,#8
L_LOOP2:
        LCALL  DELAY10MS
  DJNZ   R7,L_LOOP2
  CJNE   R6,#16,L_LOOP1
  RET
F_LCDOUT:
        MOV     A,#0FAH
  LCALL   WR_BIT
  MOV     A,R_LCDDATA
  ANL     A,#0F0H
  LCALL   WR_BIT
  MOV     A,R_LCDDATA
  ANL     A,#0FH
  SWAP    A
  LCALL   WR_BIT
  LCALL   DELAY72US
  RET
DEALY4600:
        MOV     R6,#16
DLY3:
        MOV     R7,#142
  DJNZ    R7,$
  DJNZ    R6,DLY3
  RET
DELAY5MS :
  MOV     R6,#15
DLY2:
        MOV     R7,#165
  DJNZ    R7,$
  DJNZ    R6,DLY2
  RET
/******************************************/
TABLE1: DB  " 红外线遥控是目前"
TABLE2: DB "使用最广泛的一种"
TABLE3: DB "通信和遥控手段由"
TABLE4: DB "于红外线遥控装置具"
  END

相关帖子

沙发
善解人意|  楼主 | 2010-8-8 21:12 | 只看该作者
本人是新手,请高手们多多指教,谢谢.

使用特权

评论回复
板凳
hotpower| | 2010-8-8 23:11 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

324

帖子

0

粉丝