English 簡體 繁體

  首 頁     公司簡介     產品展示     人才招聘     企業榮譽     新聞中心     聯系我們  
Loading...
  • ok
  • ok
  • ok
  • ok
  • ok
  • ok
 您的位置:  深圳VA黑膜,黑膜LCD,PMVA液晶屏,黑膜生產廠家,BTN黑膜,LCD液晶顯示屏--中山宇輝電子->資訊詳細
文章類別
還沒有文章類別
TFT-LCD彩屏驅動
 

;**********************************************************************
;**********************************************************************
;** 文件名:  TFT驅動            
;** Copyright(c): 徐軍然           
;** 創建人:  徐軍然           
;** 日期:   2012年1月9日         
;** 修改人:  徐軍然             
;** 日期:   2012年1月9日         
;** 描述:   TFT驅動 芯片為宏晶的STC90C516RD+ 
;** 版本:   1.0.0            
;**                   
;**                 
;**********************************************************************
;**********************************************************************
;;;;;;;;;;;;;;;;;;;;;;TFT屏幕;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
P0  DATA  80H
P2     DATA  0A0H
P3     DATA  0B0H
COLOR_H DATA  11H
COLOR_L DATA  10H

TCON DATA  88H
TR0  BIT   TCON.4

IE  DATA  0A8H
EA  BIT   IE.7
ET0  BIT   IE.1


TMOD DATA  89H
TH0  DATA  8CH
TL0  DATA  8BH

X1  EQU   R2
X2  EQU   R3
Y1  EQU   R4
Y2  EQU   R5
  
CS  BIT   P2.6
RESET BIT   P2.7
RS  BIT   P2.5     ;RS為1時寫數據  RS為0時寫命令
WR  BIT   P3.3
RD  BIT   P3.2
;;;;;;;;;;;;;;;;;;;;;;TFT屏幕;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


/*;;;;;;;;;;;;;;;;;;;;;;I2C總線;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SCL  BIT   P2.1
SDA  BIT   P2.0
ACK  EQU   012H
;;;;;;;;;;;;;;;;;;;;;;I2C總線;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; */
  
ORG  0000H
LJMP INIT

ORG  00BH
  LJMP MAIN

ORG  0030H
INIT:
  SETB  RESET
  LCALL  DELAY
  LCALL  DELAY
  CLR  RESET
  LCALL  DELAY
  LCALL  DELAY
  SETB RESET
  LCALL  DELAY
  LCALL  DELAY
           ;R0命令,R1數據
  MOV  R0,#01H
  LCALL  WR_CMD        ;軟件復位
  LCALL  DELAY
  LCALL  DELAY


  MOV  R0,#11H      ;退出休眠
  LCALL  WR_CMD      
  LCALL  DELAY
  LCALL  DELAY

 

  MOV  R0,#3AH      ;設置顯示像素
  LCALL  WR_CMD
  MOV  R1,#05H      ;16 bit/pixel
  LCALL  WR_DATA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定時器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  MOV R0,#20       ;R0用作定時用 T0設置延時為50ms*10=0.5s R0里放10
  MOV 20H,#00H      ;20H地址處用來暫存A的值
  MOV A,20H       ;用20H地址的值為A賦初值
  MOV P0,#00H       ;為P0口賦初值
  MOV TMOD,#01H   ;T0工作在方式1 賦初值 延時50ms
  MOV TH0,#3CH
  MOV TL0,#0B0H
  SETB EA     ;開全局中斷
  SETB ET0    ;開定時器中斷
  SETB TR0    ;啟動定時器0
TIMER0:  
  AJMP $     ;等待中斷


MAIN:
  MOV  X1,#0H
  MOV  X2,#127
  MOV  Y1,#0H
  MOV  Y2,#159
  LCALL SET_POS      ;設置顯示范圍
  
  

  MOV  R0,#36H      ;設置掃描方向
  LCALL  WR_CMD
  MOV    R1,#0C0H     
  LCALL WR_DATA
   
  MOV  R0,#29H      ;開顯示
  LCALL WR_CMD

  MOV  R0,#2CH       ;寫內存
  LCALL WR_CMD

  MOV  COLOR_H,#07H     ;設置顯示顏色
  MOV  COLOR_L,#0E0H
  LCALL DISPLAY_BACK_COLOR

     
     
     
     
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;紅色;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  MOV  A,P0
    
  CPL  80H
  JNB  80H,GAODIANPING
  MOV  X1,#10
  MOV  X2,#60
  MOV  Y1,#90
  MOV  Y2,#130
  LCALL SET_POS
  
  

  MOV  R0,#36H      ;設置掃描方向
  LCALL  WR_CMD
  MOV    R1,#0C0H     
  LCALL WR_DATA
   
  MOV  R0,#29H      ;開顯示
  LCALL WR_CMD

  MOV  R0,#2CH       ;寫內存
  LCALL WR_CMD

  MOV  COLOR_H,#0F8H
  MOV  COLOR_L,#00H
  LCALL DISPLAY_BACK_COLOR

GAODIANPING:
  MOV  X1,#60
  MOV  X2,#110
  MOV  Y1,#50
  MOV  Y2,#90
  LCALL SET_POS
  
  

  MOV  R0,#36H      ;設置掃描方向
  LCALL  WR_CMD
  MOV    R1,#0C0H     
  LCALL WR_DATA
   
  MOV  R0,#29H      ;開顯示
  LCALL WR_CMD

  MOV  R0,#2CH       ;寫內存
  LCALL WR_CMD

  MOV  COLOR_H,#0F8H
  MOV  COLOR_L,#00H
  LCALL DISPLAY_BACK_COLOR

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  
  LJMP  TIMER0
   
  


  

  
DISPLAY_BACK_COLOR:  
  MOV  A,Y2      ;設置顯示的區域 (X1,X2)->(Y1,Y2)
  SUBB A,Y1
  INC  A
  MOV  R6,A
    
  MOV  A,X2      
  SUBB A,X1
  INC  A
  
 LOOP1:
   MOV  R7,A
   MOV  R1,COLOR_H
   LCALL WR_DATA
   MOV  R1,COLOR_L
   LCALL WR_DATA
   
 LOOP2:
   MOV  R1,COLOR_H
   LCALL WR_DATA
   MOV  R1,COLOR_L
   LCALL WR_DATA
   DJNZ R7,LOOP2
   DJNZ R6,LOOP1
   
   RET

 

SET_POS:
  MOV  R0,#2AH      ;設置x坐標
  LCALL WR_CMD

  MOV  R1,#00H
  LCALL WR_DATA

  MOV  A,X1
  MOV  R1,A
  LCALL WR_DATA

  MOV  R1,#00H
  LCALL WR_DATA

  MOV  A,X2
  MOV  R1,A
  LCALL WR_DATA
  
  MOV  R0,#2BH      ;設y置坐標
  LCALL WR_CMD

  MOV  R1,#00H
  LCALL WR_DATA

  MOV  A,Y1
  MOV  R1,A
  LCALL WR_DATA

  MOV  R1,#00H
  LCALL WR_DATA

  MOV  A,Y2
  MOV  R1,A
  LCALL WR_DATA 

  RET
    
WR_CMD:
  CLR  CS
  CLR  RS       ;寫命令
  MOV  P0,R0
  MOV  R0,#0H
  CLR  WR
  SETB WR         
  SETB CS

  
  RET         ;寫入數據

WR_DATA:
  CLR  CS
  SETB RS
  MOV  P0,R1
  MOV  R1,#0H
  CLR  WR
  SETB WR
  SETB  CS

   
  RET

/*;;;;;;;;;;;;;;;;;;;;;;I2C總線;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;讀寫的數據都放在A里

START_I2C:     ;啟動I2C總線
  SETB SDA
  NOP
  SETB SCL   ;起始建立時間要大于4.7us
  NOP
  NOP
  NOP
  NOP
  NOP
  CLR SDA    ;建立保持時間要大于4.0us
  NOP
  NOP
  NOP
  NOP
  CLR SCL    ;鉗住總線 準備
  NOP
RET       ;子程序結束 返回

STOP_I2C:     ;結束總線
  CLR SDA
  NOP
  SETB SCL
  NOP
  NOP
  NOP
  NOP
  NOP
  SETB SDA   ;結束總線
  NOP     ;保證終止信號和起始信號之間的空閑時間大于4.7秒
  NOP
  NOP
  NOP
  NOP
RET

YES_ACK:     ;發送應答信號
  CLR SDA
  NOP
  NOP
  SETB SCL
  NOP
  NOP
  NOP
  NOP
  NOP
  CLR SCL
  NOP
  NOP
RET

NO_ACK:      ;發送非應答信號
  SETB SDA
  NOP
  NOP
  SETB SCL
  NOP
  NOP
  NOP
  NOP
  NOP
  CLR SCL
  NOP
  NOP
RET

CHECK_ACK:     ;測是否應答
  SETB SDA
  NOP
  NOP
  SETB SCL
  CLR ACK
  NOP
  NOP
  NOP
  MOV C,SDA
  JC NOTACK
  SETB ACK   ;應答
 NOTACK:     ;不應答
   NOP
   CLR SCL
RET

WRITE_BYTE:     ;寫一個字節
  MOV R0,#08H
 LOOP1:
   RLC A
   JC WRITE_1
   LJMP WRITE_0
 LOOP2:
   DJNZ R0,LOOP1
   NOP
RET
 WRITE_0:
   CLR SDA   
   NOP
   NOP
   SETB SCL
   NOP
   NOP
   NOP
   NOP
   NOP
   CLR SCL
   lJMP LOOP2
 WRITE_1:
   SETB SDA
   NOP
   NOP
   SETB SCL
   NOP
   NOP
   NOP
   NOP
   NOP
   CLR SCL
   LJMP LOOP2

READ_BYTE:     ;讀數據到A、R1
   MOV R0,#08H
   MOV R1,#00H
 NEXT1:
   SETB SDA
   NOP
   SETB SCL
   NOP
   NOP
   MOV C,SDA
   MOV A,R1
   CLR SCL   ;保持需大于4.7us
   RLC A
   MOV R1,A
   NOP
   NOP
   NOP
   DJNZ R0,NEXT1
   
   RET
;;;;;;;;;;;;;;;;;;;;;;I2C總線;;;;;;;;;;;;;;;;;;;;;;
               */
DELAY:             ;延時
  MOV R7,#250
 D1: MOV R6,#250
 D2: DJNZ R6,D2
  DJNZ R7,D1
 
  RET

 
END 
 
 
 
 
 
 
 

發布人:TFT-LCD彩屏驅動 發布時間:2015年10月23日 已被瀏覽 1115

  客服信箱:JRZB1420@163.com  電話:18807609590  傳真:0760-88486694  地址:廣東省中山市港口鎮群富工業區1號A座六樓  郵編:528400   Copyright© 中山宇輝電子   管理進入
   粵ICP備2022015562號
av在线免费观看网