회원가입 ID/PW 찾기

1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.

콘텐츠 수 696
판매자 심야땜쟁이 판매 납포인트 무료 평점 0점 / 총 0명 참여

LG2401281 ( Driver - T6963C ) LCD Source Code 입니다.
ATmega128 사용했고, Compiler는 Codevision AVR 2.04.4a 입니다.

---------------------------------------------------------------------------------------------------------------------------------------

#define T6963C_COMMAND_SetCursorPointer         0b00100001
#define T6963C_COMMAND_SetOffsetRegister        0b00100010
#define T6963C_COMMAND_SetAddressPointer        0b00100100

#define T6963C_COMMAND_SetTextHomeAddress       0b01000000
#define T6963C_COMMAND_SetTextArea              0b01000001
#define T6963C_COMMAND_SetGraphicHomeAddress    0b01000010
#define T6963C_COMMAND_SetGraphicArea           0b01000011

#define T6963C_COMMAND_WriteMode                0b10000000
    // bit 2~0 : 0x00 - OR Mode
    // bit 2~0 : 0x01 - EXOR Mode
    // bit 2~0 : 0x03 - AND Mode
    // bit 2~0 : 0x04 - Text Attribute Mode
    // bit 3 : 0 - CG ROM Mode
    // bit 3 : 1 - CG RAM Mode
   
    #define WRITE_MODE_OR_MODE                  0x00
    #define WRITE_MODE_EXOR_MODE                0x01
    #define WRITE_MODE_AND_MODE                 0x03
    #define WRITE_MODE_TEXT_ATTRIBUTE_MODE      0x04
    #define WRITE_MODE_CG_RAM_MODE_ON           0x08

    #define T6963C_COMMAND_SetModeOR                0b10000000
    #define T6963C_COMMAND_SetModeEXOR              0b10000001
    #define T6963C_COMMAND_SetModeAND               0b10000011
    #define T6963C_COMMAND_SetModeTextAttribute     0b10000100
    #define T6963C_COMMAND_SetModeCGROM             0b10000000
    #define T6963C_COMMAND_SetModeCGRAM             0b10001000
   

#define T6963C_COMMAND_DisplayMode              0b10010000
    // bit 3 : Graphic On
    // bit 2 : Text On
    // bit 1 : Cursor On
    // bit 0 : Blink On
   
    #define DISPLAY_MODE_GRAPHIC_ON             0x08
    #define DISPLAY_MODE_TEXT_ON                0x04
    #define DISPLAY_MODE_CURSOR_ON              0x02
    #define DISPLAY_MODE_BLINK_ON               0x01
   
    #define T6963C_COMMAND_SetDisplayOff            0b10010000
    #define T6963C_COMMAND_SetCursorOnBlinkOff      0b10010010
    #define T6963C_COMMAND_SetCursorOnBlinkOn       0b10010011
    #define T6963C_COMMAND_SetTextOnGraphicOff      0b10010100
    #define T6963C_COMMAND_SetTextOffGraphicOn      0b10011000
    #define T6963C_COMMAND_SetTextOnGraphicOn       0b10011100
                                      
#define T6963C_COMMAND_SetCursorLine            0b10100000
    // bit 2~0 : 0x00 - 1 Line Cursor
    // bit 2~0 : 0x01 - 2 Line Cursor
    // bit 2~0 : 0x02 - 3 Line Cursor
    // bit 2~0 : 0x03 - 4 Line Cursor
    // bit 2~0 : 0x04 - 5 Line Cursor
    // bit 2~0 : 0x05 - 6 Line Cursor
    // bit 2~0 : 0x06 - 7 Line Cursor
    // bit 2~0 : 0x07 - 8 Line Cursor
   
    #define CURSOR_LINE_1                           0x00
    #define CURSOR_LINE_2                           0x01
    #define CURSOR_LINE_3                           0x02
    #define CURSOR_LINE_4                           0x03
    #define CURSOR_LINE_5                           0x04
    #define CURSOR_LINE_6                           0x05
    #define CURSOR_LINE_7                           0x06
    #define CURSOR_LINE_8                           0x07

    #define T6963C_COMMAND_SetCursorLineTo1         0b10100000
    #define T6963C_COMMAND_SetCursorLineTo2         0b10100001
    #define T6963C_COMMAND_SetCursorLineTo3         0b10100010
    #define T6963C_COMMAND_SetCursorLineTo4         0b10100011
    #define T6963C_COMMAND_SetCursorLineTo5         0b10100100
    #define T6963C_COMMAND_SetCursorLineTo6         0b10100101
    #define T6963C_COMMAND_SetCursorLineTo7         0b10100110
    #define T6963C_COMMAND_SetCursorLineTo8         0b10100111
   
#define T6963C_COMMAND_SetDataAutoWrite         0b10110000
#define T6963C_COMMAND_SetDataAutoRead          0b10110001
#define T6963C_COMMAND_SetAutoReset             0b10110010

#define T6963C_COMMAND_SetDataWriteIncreseADP   0b11000000
#define T6963C_COMMAND_SetDataReadIncreseADP    0b11000001
#define T6963C_COMMAND_SetDataWriteDecreseADP   0b11000010
#define T6963C_COMMAND_SetDataReadDecreseADP    0b11000011
#define T6963C_COMMAND_SetDataWriteMaintainADP  0b11000100
#define T6963C_COMMAND_SetDataReadMaintainADP   0b11000101

#define T6963C_COMMAND_SetScreenPeek            0b11100000
#define T6963C_COMMAND_SetScreenCopy            0b11101000

#define T6963C_COMMAND_SetBitReset              0b11110000
#define T6963C_COMMAND_SetBitSet                0b11111000

#define T6963C_COMMAND_SetSelectBit0            0b11110000
#define T6963C_COMMAND_SetSelectBit1            0b11110001
#define T6963C_COMMAND_SetSelectBit2            0b11110010
#define T6963C_COMMAND_SetSelectBit3            0b11110011
#define T6963C_COMMAND_SetSelectBit4            0b11110100
#define T6963C_COMMAND_SetSelectBit5            0b11110101
#define T6963C_COMMAND_SetSelectBit6            0b11110110
#define T6963C_COMMAND_SetSelectBit7            0b11110111 
                              
#define DATADIR_IN          0x00                     
#define DATADIR_OUT         0xFF
                     
#define T6963C_DATADIR      DDRA        
#define T6963C_DATAIN       PINA
#define T6963C_DATAOUT      PORTA

#define T6963C_WR           PORTC.4
#define T6963C_RD           PORTC.5
#define T6963C_CE           PORTC.2
#define T6963C_CD           PORTC.3
#define T6963C_RST          PORTC.0
#define T6963C_FS           PORTC.1
#define T6963C_BK           PORTC.7 
               
#define T6963C_Graphic_RAM_Area     0x0000                                 
    #define T6963C_Graphic_Screen0      0x0000
    #define T6963C_Graphic_Screen1      0x0F00
    #define T6963C_Graphic_Screen2      0x1E00
    #define T6963C_Graphic_Screen3      0x2D00 
   
    #define SCREEN_0                    0
    #define SCREEN_1                    1
    #define SCREEN_2                    2
    #define SCREEN_3                    3

#define T6963C_Attribute_RAM_Area   0x3C00
#define T6963C_Text_RAM_Area        0x4000
#define T6963C_CG_RAM_Area          0x7C00
                                           
TypeUnionWord GRAPHIC_HOME_ADDRESS;
TypeUnionWord TEXT_HOME_ADDRESS;
TypeUnionWord GRAPHIC_ADDRESS;        

byte GRAPHIC_AREA = 0x1E;       // 8 bit Interval Division 30 x 8 = 240
byte TEXT_AREA = 0x1E;          // 8 bit Interval Division 30 x 8 = 240 
byte OFFSET_RESISTER = 0x0F;    // CG RAM Address is 0x7800 ~ 0x7FFF

#define PIXEL_ON                    1
#define PIXEL_OFF                   0

flash byte MaskTable[] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 };
                      
// STATUS.0 : Check Command Execution Capability.
// STATUS.1 : Check Data Read/Write Capability.
// STATUS.2 : Check Auto Mode Data Read Capability.
// STATUS.3 : Check Auto Mode Data Write Capability.
// STATUS.4 : Not Used.
// STATUS.5 : Check Contoller Operation Capability.
// STATUS.6 : Error Flag. Used For Screen Peek and Screen Copy Commands. ( 0:No Error 1:Error )
// STATUS.7 : Check the Blink Condition. ( 0:Display Off 1:Normal Display )
 
byte T6963C_ReadStatus ( void )
{   byte ReturnValue; 
    T6963C_DATADIR = DATADIR_IN;
    T6963C_CD = 1;
    T6963C_CE = 0;
    T6963C_RD = 0;
    #asm ("nop");
    #asm ("nop");
    #asm ("nop");
    #asm ("nop");
    ReturnValue = T6963C_DATAIN;
    T6963C_RD = 1;
    T6963C_CE = 1;
    #asm ("nop");
    #asm ("nop");
    T6963C_DATADIR = DATADIR_OUT;  
    return ReturnValue;
}      

byte T6963C_ReadData ( void )
{   byte ReturnValue; 
    T6963C_DATADIR = DATADIR_IN;
    T6963C_CD = 0;
    T6963C_CE = 0;
    T6963C_RD = 0;
    #asm ("nop");
    #asm ("nop");
    #asm ("nop");
    #asm ("nop");
    ReturnValue = T6963C_DATAIN;
    T6963C_RD = 1;
    T6963C_CE = 1;
    #asm ("nop");
    #asm ("nop");
    T6963C_DATADIR = DATADIR_OUT;
    return ReturnValue;
}      

void T6963C_WriteInstruction ( byte Instruction )
{   T6963C_DATAOUT = Instruction;
    T6963C_CD = 1;
    T6963C_CE = 0;
    T6963C_WR = 0;              
    #asm ("nop");
    #asm ("nop");
    T6963C_WR = 1;
    T6963C_CE = 1;
    #asm ("nop");
    #asm ("nop");
}

void T6963C_WriteData ( byte Data )
{   T6963C_DATAOUT = Data;
    T6963C_CD = 0;
    T6963C_CE = 0;
    T6963C_WR = 0;              
    #asm ("nop");
    #asm ("nop");
    T6963C_WR = 1;
    T6963C_CE = 1;
    #asm ("nop");
    #asm ("nop");
}

void T6963C_WriteCommand0 ( byte Command )
{   while (( T6963C_ReadStatus() & 0x03 ) != 0x03 );           
    T6963C_WriteInstruction ( Command );
}                       

void T6963C_WriteCommand1 ( byte Command, byte Data0 )
{   while (( T6963C_ReadStatus() & 0x03 ) != 0x03 );
    T6963C_WriteData ( Data0 );
    while (( T6963C_ReadStatus() & 0x03 ) != 0x03 );
    T6963C_WriteInstruction ( Command );
}

void T6963C_WriteCommand2 ( byte Command, byte Data0, byte Data1 )
{   while (( T6963C_ReadStatus() & 0x03 ) != 0x03 );
    T6963C_WriteData ( Data0 );
    while (( T6963C_ReadStatus() & 0x03 ) != 0x03 );
    T6963C_WriteData ( Data1 );
    while (( T6963C_ReadStatus() & 0x03 ) != 0x03 );
    T6963C_WriteInstruction ( Command );
}

void T6963C_SetAddress ( word Address )
{   GRAPHIC_ADDRESS.Word = Address;                                         
    T6963C_WriteCommand2 ( T6963C_COMMAND_SetAddressPointer, GRAPHIC_ADDRESS.Byte[0], GRAPHIC_ADDRESS.Byte[1] );
}

void T6963C_SetAddressXY ( word StartX, word StartY )
{   GRAPHIC_ADDRESS.Word = (( StartX >> 0x03 ) + ( GRAPHIC_AREA * StartY ) + GRAPHIC_HOME_ADDRESS.Word );
    T6963C_WriteCommand2 ( T6963C_COMMAND_SetAddressPointer, GRAPHIC_ADDRESS.Byte[0], GRAPHIC_ADDRESS.Byte[1] );
}                              

void T6963C_SetWriteMode ( byte WriteMode )
{   T6963C_WriteCommand0 ( T6963C_COMMAND_WriteMode | WriteMode );
}

void T6963C_Initialize ( void )
{
    T6963C_RST = 0;
    delay_ms (100);
    T6963C_RST = 1;
    delay_ms (10);
                 
    // 8 bit Interval Division 30 x 8 = 240
    T6963C_FS = 0;                        
 
    GRAPHIC_HOME_ADDRESS.Word = T6963C_Graphic_Screen0;  
    T6963C_WriteCommand2 ( T6963C_COMMAND_SetGraphicHomeAddress, GRAPHIC_HOME_ADDRESS.Byte[0], GRAPHIC_HOME_ADDRESS.Byte[1] );
    T6963C_WriteCommand2 ( T6963C_COMMAND_SetGraphicArea, GRAPHIC_AREA, 0x00 );

    TEXT_HOME_ADDRESS.Word  = T6963C_Text_RAM_Area;
    T6963C_WriteCommand2 ( T6963C_COMMAND_SetTextHomeAddress, TEXT_HOME_ADDRESS.Byte[0], TEXT_HOME_ADDRESS.Byte[1] );
    T6963C_WriteCommand2 ( T6963C_COMMAND_SetGraphicArea, TEXT_AREA, 0x00 );

    T6963C_WriteCommand2 ( T6963C_COMMAND_SetOffsetRegister, OFFSET_RESISTER, 0x00 );

    T6963C_SetWriteMode ( WRITE_MODE_EXOR_MODE );
    T6963C_WriteCommand0 ( T6963C_COMMAND_DisplayMode | DISPLAY_MODE_GRAPHIC_ON );


profile
codesign 2014.06.12 21:08
감사합니다. 정말 유용하게 사용하겠습니다.
profile
시나브로69 2016.07.16 17:26

좋은 자료 감사합니다.

profile
와장뽕 2017.12.12 11:26

좋은 자료 감사합니다. ^^

search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
696 ECAD 아무거나 회로부품에 Simulation Model 연결하기 무료 아크마 2018-01-06 0 189
695 ECAD 아무거나 Altium Designer V9 datasheet 무료 아크마 2018-01-06 0 132
694 ECAD 아무거나 Altium을 활용한 PCB CAD 툴의 운용 방법 무료 아크마 2018-01-06 0 163
693 ECAD 아무거나 Altium Xspice 한글 매뉴얼 무료 아크마 2018-01-06 0 226
692 ECAD 아무거나 XSpice Simulation Model 생성관련 자료 무료 아크마 2018-01-06 0 86
691 PADS PADS를 이용하여 Rigid-flex PCB를 설계하려고 하는데요 질문 드립니다. [1] 무료 당근1 2017-08-14 0 277
690 Allego & OrCAD orcad16.0 필요합니다 64비트용 무료 내마음의일식 2017-06-27 0 357
689 Allego & OrCAD orcad 16.0 설치 주소입니다. [2] 무료 Xorcad 2017-05-16 0 1330
688 Allego & OrCAD OrCAD PCB Editor 프로그램 질문드립니다. [1] 무료 kmgn0 2017-05-16 0 286
687 ECAD 아무거나 해외 아트워크 무료 공공 2017-04-21 0 226
686 PADS netlist 생성시 에러 [1] 무료 바다새 2017-04-18 0 407
685 ECAD 아무거나 PCB 설계시 규격관련 참조자료입니다. [4] 무료 선녀와남후꾼 2016-06-16 0 381
684 PADS 공부 시작하려고하는데 pads9.5버전좀 보내주세요! [2] 무료 bbii0902 2017-03-24 0 423
683 Allego & OrCAD OrCAD Capture "N-CH MosFET" 라이브러리 찾습니다. [3] 무료 내일의나 2017-03-07 0 226
682 PADS PADS 업체에서 크렉버젼 실사... [6] 무료 단순한바보 2017-02-21 0 1517
681 Allego & OrCAD Negative Planes에 대해 질문 드립니다. [2] 무료 Astro 2017-02-14 0 163
680 PADS Macbook사용하고 있습니다. [1] 무료 어린왕자.. 2017-02-14 0 160
679 PADS win 8.1에서 설치 시 install.txt가 안생겨요 [1] 무료 어린왕자.. 2017-02-14 0 101
678 PADS pads layout 질문 [1] 무료 YEJUN 2017-02-10 0 182
677 ECAD 아무거나 Artwork [1] 무료 YEJUN 2017-02-10 0 126
  • 분노는 종종 도덕과 용기의 무기이다.
    - 아리스토텔레스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.