?? 9325.c
字號:
/*********************************************************/
/* SPECFICATION : TFT2.4 DEMO PROGRAM */
/* MASTER DOT MATRIXS : 320RGB*240 */
/* MASTER DRIVER IC : 9320 */
/* DESIGN : tyt */
/* DATA TYPE : 16 BITS (MATER&SLAVER) */
/* DATA : 2007-12-20 */
/* REV : 0.0 */
/*********************************************************/
#include "reg52.h"
#include "intrins.h"
#include "absacc.h"
#define DataL P0
#define DataH P2
#define Contr P3
#define memic_id P1
sbit key1=P1^5;
sbit key2=P1^6;
sbit key3=P1^7;
sbit Rs=P3^0;
sbit Wr=P3^1;
sbit Rd=P3^2;
sbit Reset=P3^4;
sbit Csm=P3^3;
sbit sc=P3^6;
//sbit RGB_DB0=P3^5;
sbit Css=P3^5;
sbit ce1=P1^3;
sbit ce2=P1^4;
char code DX516[3] _at_ 0x3b;
//int rd_data2,rd_data1;
void window_ST7637();
unsigned char key_flag2=0;
unsigned char key_flag3=0;
void Delay(int i)
{
int j,k;
for(k=0;k<i;k++)
for(j=0;j<200;j++)
{
_nop_();
_nop_();
_nop_();
}
}
void sublcd_send_command(char compr2,char compr1)
{
Rs=0x00;
Csm=0;
Rd=0x01;
// Wr=0x00;
Wr=0x01;
DataL=compr1;
_nop_();
Wr=0x00;
_nop_();
Wr=0x01;
}
void sublcd_send_init_data(char Datapr2,char Datapr1)
{
Rs=0x01;
Css=0;
//Reset=1;
Rd=0x01;
Wr=0x01;
_nop_();
DataL=Datapr1;
_nop_();
Wr=0x00;
// Csm=1;
_nop_();
Wr=0x01;
}
void sub_1303_initial()
{
Delay(25);
sublcd_send_command(0x00,0xD5); // Set Clock Divide
sublcd_send_command(0x00,0xd0);
sublcd_send_command(0x00,0xD3); // Set
sublcd_send_command(0x00,0x00);
//mainlcd_send_command(0x00,0xD8); // Set
//edmainlcd_send_command(0x00,0x05);
sublcd_send_command(0x00,0xAF);
sublcd_send_command(0x00,0x00); // Set Lower Column Address
sublcd_send_command(0x00,0x10); // Set Higher Column Address
sublcd_send_command(0x00,0x40); // Set Display Start Line
sublcd_send_command(0x00,0x81); // Set Contrast Control
sublcd_send_command(0x00,0x80); // 0 ~ 127
sublcd_send_command(0x00,0xA0); // [A0]:column address 1 is
sublcd_send_command(0x00,0xC8); // oben / unten
sublcd_send_command(0x00,0xA4); // Display on
sublcd_send_command(0x00,0xA6); // Normal Display
sublcd_send_command(0x00,0xA8); // Set Multiplex Ratio
sublcd_send_command(0x00,0x3f);
sublcd_send_command(0x00,0xAD); // Set DC-DC
sublcd_send_command(0x00,0x8A); // 8B=ON, 8A=Off
sublcd_send_command(0x00,0xAF); // AF=ON , AE=OFF
sublcd_send_command(0x00,0xD3); // Set Display Offset
sublcd_send_command(0x00,0x00); // No offset
sublcd_send_command(0x00,0xD8); // Set Area Color On or Off
sublcd_send_command(0x00,0x00); // Mono Mode
sublcd_send_command(0x00,0xDA); // Set Pins Hardware
sublcd_send_command(0x00,0x12);
sublcd_send_command(0x00,0xDB); // Set VCOMH
sublcd_send_command(0x00,0x00);
sublcd_send_command(0x00,0xD9); // Set VP
sublcd_send_command(0x00,0x22);
// mainlcd_send_command(0x00,0xff);
}
void mainlcd_send_command(char compr2,char compr1)
{
Rs=0x00;
Rd=0x01;
// RGB_DB0=0x00;
DataL=compr1;
DataH=compr2;
// Csm=0x00;
Wr=0x00;
Wr=0x01;
// Csm=0x01;
}
void mainlcd_send_data(char Datapr2,char Datapr1)
{
Rs=0x01;
Rd=0x01;
DataL=Datapr1;
// RGB_DB0=0x00;
DataH=Datapr2;
Wr=0x00;
Wr=0x01;
// Csm=0x01;
}
void R61505U_address(char hsa,char hea,char vsah,char vsal,char veah,char veal,char ad8h,char ad9h,char ad9l)
{
mainlcd_send_command(0x00,0x50); mainlcd_send_data(0x00,hsa);//初始化已包含
mainlcd_send_command(0x00,0x51); mainlcd_send_data(0x00,hea);
mainlcd_send_command(0x00,0x52); mainlcd_send_data(vsah,vsal);
mainlcd_send_command(0x00,0x53); mainlcd_send_data(veah,veal);
mainlcd_send_command(0x00,0x20); mainlcd_send_data(0x00,ad8h);
mainlcd_send_command(0x00,0x21); mainlcd_send_data(ad9h,ad9l);
mainlcd_send_command(0x00,0x22);
}
void ScrMainFullColor(unsigned char color1,unsigned char color2)
{
int i,j;
// Csm=0x00;
// R61505U_address(0x00,0xef,0x00,0x00,0x01,0x3f,0x00,0x00,0x00);
for(i=0;i<320;i++)
{
for(j=0;j<240;j++)
{
mainlcd_send_data(color1,color2);
}
}
}
void key_function1()
{
unsigned char key_flag1=0;
// if(!key1) key_flag1=1;
do
{
if(!key1) key_flag1=1;
Delay(10);
}
while(key_flag1==0);
Delay(30);
key_flag1=0;
}
void main_R61505U_initial()
{
mainlcd_send_command(0x00,0xE3);mainlcd_send_data( 0x30,0x08); // Set internal timing
mainlcd_send_command(0x00,0xE7);mainlcd_send_data( 0x00,0x12); // Set internal timing
mainlcd_send_command(0x00,0xEF);mainlcd_send_data( 0x12,0x31); // Set internal timing
mainlcd_send_command(0x00,0x01);mainlcd_send_data( 0x01,0x00); // set SS and SM bit
mainlcd_send_command(0x00,0x02);mainlcd_send_data( 0x07,0x00); // set 1 line inversion
mainlcd_send_command(0x00,0x03);mainlcd_send_data( 0x10,0x30); // set GRAM write direction and BGR=1.
mainlcd_send_command(0x00,0x04);mainlcd_send_data( 0x00,0x00); // Resize register
mainlcd_send_command(0x00,0x08);mainlcd_send_data( 0x02,0x07); // set the back porch and front porch
mainlcd_send_command(0x00,0x09);mainlcd_send_data( 0x00,0x00); // set non-display area refresh cycle ISC[3:0]
mainlcd_send_command(0x00,0x0A);mainlcd_send_data( 0x00,0x00); // FMARK function
mainlcd_send_command(0x00,0x0C);mainlcd_send_data( 0x00,0x00); // RGB interface setting
mainlcd_send_command(0x00,0x0D);mainlcd_send_data( 0x00,0x00); // Frame marker Position
mainlcd_send_command(0x00,0x0F);mainlcd_send_data( 0x00,0x00); // RGB interface polarity
//*************Power On sequence ****************//
mainlcd_send_command(0x00,0x10);mainlcd_send_data( 0x00,0x00); // SAP, BT[3:0], AP, DSTB, SLP, STB
mainlcd_send_command(0x00,0x11);mainlcd_send_data( 0x00,0x07); // DC1[2:0], DC0[2:0], VC[2:0]
mainlcd_send_command(0x00,0x12);mainlcd_send_data( 0x00,0x00); // VREG1OUT voltage
mainlcd_send_command(0x00,0x13);mainlcd_send_data( 0x00,0x00); // VDV[4:0] for VCOM amplitude
Delay(200); // Dis-charge capacitor power voltage
mainlcd_send_command(0x00,0x10);mainlcd_send_data( 0x12,0x90); // SAP, BT[3:0], AP, DSTB, SLP, STB
mainlcd_send_command(0x00,0x11);mainlcd_send_data( 0x00,0x01); // R11h=0x0221 at VCI=3.3V, DC1[2:0], DC0[2:0], VC[2:0]
Delay(50); // Delay 50ms
mainlcd_send_command(0x00,0x12);mainlcd_send_data( 0x00,0x94); // External reference voltage= Vci;
Delay(50); // Delay 50ms
mainlcd_send_command(0x00,0x13);mainlcd_send_data( 0x1a,0x00); // VDV[4:0] for VCOM amplitude
mainlcd_send_command(0x00,0x29);mainlcd_send_data( 0x00,0x25); // VCM[5:0] for VCOMH
mainlcd_send_command(0x00,0x2B);mainlcd_send_data( 0x00,0x0d); // Frame Rate = 51Hz
Delay(50); // Delay 50ms
mainlcd_send_command(0x00,0x20);mainlcd_send_data( 0x00,0x00); // GRAM horizontal Address
mainlcd_send_command(0x00,0x21);mainlcd_send_data( 0x00,0x00); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
mainlcd_send_command(0x00,0x30);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x31);mainlcd_send_data( 0x05,0x06);
mainlcd_send_command(0x00,0x32);mainlcd_send_data( 0x01,0x04);
mainlcd_send_command(0x00,0x35);mainlcd_send_data( 0x02,0x07);
mainlcd_send_command(0x00,0x36);mainlcd_send_data( 0x00,0x0f);
mainlcd_send_command(0x00,0x37);mainlcd_send_data( 0x03,0x06);
mainlcd_send_command(0x00,0x38);mainlcd_send_data( 0x01,0x02);
mainlcd_send_command(0x00,0x39);mainlcd_send_data( 0x07,0x07);
mainlcd_send_command(0x00,0x3C);mainlcd_send_data( 0x07,0x02);
mainlcd_send_command(0x00,0x3D);mainlcd_send_data( 0x16,0x04);
//------------------ Set GRAM area ---------------//
mainlcd_send_command(0x00,0x50);mainlcd_send_data( 0x00,0x00); // Horizontal GRAM Start Address
mainlcd_send_command(0x00,0x51);mainlcd_send_data( 0x00,0xEF); // Horizontal GRAM End Address
mainlcd_send_command(0x00,0x52);mainlcd_send_data( 0x00,0x00); // Vertical GRAM Start Address
mainlcd_send_command(0x00,0x53);mainlcd_send_data( 0x01,0x3F); // Vertical GRAM Start Address
mainlcd_send_command(0x00,0x60);mainlcd_send_data( 0x27,0x00); // Gate Scan Line
mainlcd_send_command(0x00,0x61);mainlcd_send_data( 0x00,0x01); // NDL,VLE, REV
mainlcd_send_command(0x00,0x6A);mainlcd_send_data( 0x00,0x00); // set scrolling line
//-------------- Partial Display Control ---------//
mainlcd_send_command(0x00,0x80);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x81);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x82);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x83);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x84);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x85);mainlcd_send_data( 0x00,0x00);
//-------------- Panel Control -------------------//
mainlcd_send_command(0x00,0x90);mainlcd_send_data( 0x00,0x10);
mainlcd_send_command(0x00,0x92);mainlcd_send_data( 0x06,0x00);
mainlcd_send_command(0x00,0x93);mainlcd_send_data( 0x00,0x03);
mainlcd_send_command(0x00,0x95);mainlcd_send_data( 0x01,0x10);
mainlcd_send_command(0x00,0x97);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x98);mainlcd_send_data( 0x00,0x00);
mainlcd_send_command(0x00,0x07);mainlcd_send_data( 0x01,0x33); // 262K color and display ON
mainlcd_send_command(0x00,0x22);
}
void DisplayMainFrame()
{
int i,j;
// Csm=0x00;
// R61505U_address(0x00,0xef,0x00,0x00,0x01,0x3f,0x00,0x00,0x3f);
mainlcd_send_command(0x00,0x22);
for(i=0;i<240;i++)
{
mainlcd_send_data(0xFF,0xFF);
}
for(i=0;i<318;i++)
{
mainlcd_send_data(0xFF,0xFF);
for(j=0;j<238;j++)
{
mainlcd_send_data(0x00,0x00);
}
mainlcd_send_data(0xFF,0xFF);
}
for(i=0;i<240;i++)
{
mainlcd_send_data(0xFF,0xFF);
}
}
main()
{
DataH=0xff;
DataL=0xff;
// Contr=0xff;
memic_id=0xff;
sc=0x01;
Csm=0x00;
Reset=0x00;
Delay(25);
Reset=0x01;
Delay(25);
main_R61505U_initial();
// read_id();
//key_function1();
while(1)
{
unsigned int j, i;
//men_photo1();
//key_function1();
//men_photo2();
//key_function1();
// men_photo3();
//key_function1();
ScrMainFullColor(0xF8,0x00);//紅
key_function1();
ScrMainFullColor(0x07,0xE0);//綠
key_function1();
ScrMainFullColor(0x00,0x1F);//藍
key_function1();
ScrMainFullColor(0x00,0x00);//黑
key_function1();
ScrMainFullColor(0xFF,0xFF);//白
key_function1();
DisplayMainFrame();//框
key_function1();
//men_photo1();
//key_function1();
Csm=1;
Delay(10);
Css=0;
Delay(10);
sub_1303_initial();
Delay(50);
for(i=0;i<8;i++)
{
sublcd_send_command(0x00,0xB0+i);//設置顯示位置—行
sublcd_send_command(0x00,0x00); //設置顯示位置—列低地址
sublcd_send_command(0x00,0x10); //設置顯示位置—列高地址
for(j=0;j<128;j++)
sublcd_send_init_data(0x00,0xFF);//屏幕顯示,全亮
}
key_function1();
for(i=0;i<8;i++)
{
sublcd_send_command(0x00,0xB0+i);//設置顯示位置—行
sublcd_send_command(0x00,0x00); //設置顯示位置—列低地址
sublcd_send_command(0x00,0x10); //設置顯示位置—列高地?
for(j=0;j<128;j++)
sublcd_send_init_data(0x00,0x00);//屏幕顯示,全滅
}
key_function1();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -