📄 9220.bak
字号:
for(seg=0;seg<(r+rr);seg++)
Data_Write(x5); //5
r_l--;
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(x6); //6
r_l--;
if(r_l>0)
{rr=1;}
else
{rr=0;}
}
x=x1;
x1=x2;
x2=x3;
x3=x4;
x4=x5;
x5=x6;
x6=x;
c_l--;
if(c_l>0)
{cc=1;}
else
{cc=0;}
}
}
*/
/******************显示雪花子程序****************************/
/*
void display_snow()
{
c_d_before();
for(page=0;page<DisplayCol;page++)
for(seg=0;seg<DisplaySeg;seg++)
{
if((page+seg)%2==0)
{
Data_Write(white);
}
else
{
Data_Write(black);
}
}
}
*/
/******************显示垂直线子程序****************************/
/*
void display_v_l()
{
c_d_before();
for(page=0;page<DisplayCol;page++)
for(seg=0;seg<DisplaySeg;seg++)
{
if(seg%2==0)
{
Data_Write(white);
}
else
{
Data_Write(black);
}
}
}
*/
/******************显示水平线子程序****************************/
/*
void display_h_l()
{
c_d_before();
for(page=0;page<DisplayCol;page++)
for(seg=0;seg<DisplaySeg;seg++)
{
if(page%2==0)
{
Data_Write(white);
}
else
{
Data_Write(black);
}
}
}
*/
/******************显示灰度子程序****************************/
void display_gray()
{
unsigned char r,r_l,rr,i,c,c1,c2,c3,c4;
r=DisplaySeg/16;
r_l=DisplaySeg-r*16;
i=DisplayCol/20;
c=DisplaySeg/18;
c1=DisplaySeg/2-2*c;
c2=DisplaySeg/2-4*c;
c3=DisplaySeg/2-6*c;
c4=DisplaySeg/2-8*c;
if(r_l>0)
{rr=1;}
else
{rr=0;}
c_d_before();
for(page=0;page<DisplayCol;page++)
{
for(seg=0;seg<(r+rr);seg++)
Data_Write(0xffff);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0xef7d); //ef7d
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0xd69a);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0xc618);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0xb596);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0xa514);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x9492);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x8410);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x738e);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x630c);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x528a);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x4208);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x3186);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x2104);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x1082);
if(r_l>0)
{rr=1;}
else
{rr=0;}
for(seg=0;seg<(r+rr);seg++)
Data_Write(0x0000);
if(r_l>0)
{rr=1;}
else
{rr=0;}
}
}
/******************显示图像子程序****************************/
void display_picture() //display picture
{
unsigned int i,ii,s;
unsigned int k,p_dat;
k=0;
s=DisplaySeg/2;
c_d_before();
if(DisplayCol==160)
{
for(i=0;i<DisplayCol;i++)
for(ii=0;ii<DisplaySeg;ii++)
{
p_dat=image1[k];
p_dat=(p_dat<<8);
k++;
p_dat=p_dat|image1[k];
Data_Write(p_dat);
k++;
}
}
else
{
for(i=0;i<DisplayCol/2;i++)
{
if(i>=1) {k=k+DisplaySeg;}
for(ii=0;ii<DisplaySeg;ii++)
{
if(ii<s)
{
p_dat=image1[k];
p_dat=(p_dat<<8);
k++;
p_dat=p_dat|image1[k];
Data_Write(p_dat);
k++;
}
else
{
p_dat=image1[k];
p_dat=(p_dat<<8);
k--;
p_dat=p_dat|image1[k];
Data_Write(p_dat);
k--;
}
}
}
k=0;
for(i=0;i<DisplayCol/2;i++)
{
if(i>=1) {k=k+DisplaySeg;}
for(ii=0;ii<DisplaySeg;ii++)
{
if(ii<s)
{
p_dat=image1[k];
p_dat=(p_dat<<8);
k++;
p_dat=p_dat|image1[k];
Data_Write(p_dat);
k++;
}
else
{
p_dat=image1[k];
p_dat=(p_dat<<8);
k--;
p_dat=p_dat|image1[k];
Data_Write(p_dat);
k--;
}
}
}
}
}
/************写数据前的命令*******************/
void c_d_before()
{
Command_Write(0x0020);
Data_Write(0x0000);
Command_Write(0x0021);
Data_Write(0x0000);
Command_Write(0x0022);
}
/*********IC st7637 的初始化*****ok**************/
void Initst()
{
reset=0;
delay(10);
reset=1;
delay(50);
//control_out(0x07,0x0000); //display control 1
//delay(20);
//********start initial sequence**********//
control_out(0x00E3,0x3008); //det internal timing
control_out(0x00E7, 0x0012); // Set internal timing
control_out(0x00EF, 0x1231); // Set internal timing
control_out(0x0001, 0x0100); // set SS and SM bit
control_out(0x0002, 0x0700); // set 1 line inversion
control_out(0x0003, 0x1030); // set GRAM control_out direction and BGR=1.
control_out(0x0004, 0x0000); // Resize register
control_out(0x0008, 0x0207); // set the back porch and front porch
control_out(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0]
control_out(0x000C, 0x0000); // RGB interface setting
control_out(0x000D, 0x0000); // Frame marker Position
control_out(0x000F, 0x0000); // RGB interface polarity
//*************Power On sequence ****************//
control_out(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
control_out(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
control_out(0x0012, 0x0000); // VREG1OUT voltage
control_out(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
delay(200); // Dis-charge capacitor power voltage
control_out(0x0010, 0x1490); // SAP, BT[3:0], AP, DSTB, SLP, STB
control_out(0x0011, 0x0227); // DC1[2:0], DC0[2:0], VC[2:0]
delay(50); // Delay 50ms
control_out(0x0012, 0x001D); // Internal reference voltage= Vci;
delay(50); // Delay 50ms
control_out(0x0013, 0x0800); // Set VDV[4:0] for VCOM amplitude
control_out(0x0029, 0x0014); // Set VCM[5:0] for VCOMH
control_out(0x002B, 0x000D); // Set Frame Rate
delay(50); // Delay 50ms
control_out(0x0020, 0x0000); // GRAM horizontal Address
control_out(0x0021, 0x0000); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
control_out(0x0030, 0x0007);
control_out(0x0031, 0x0707);
control_out(0x0032, 0x0006);
control_out(0x0035, 0x0704);
control_out(0x0036, 0x1F04);
control_out(0x0037, 0x0004);
control_out(0x0038, 0x0000);
control_out(0x0039, 0x0706);
control_out(0x003C, 0x0701);
control_out(0x003D, 0x000F);
//------------------ Set GRAM area ---------------//
control_out(0x0050, 0x0000); // Horizontal GRAM Start Address
control_out(0x0051, 0x00EF); // Horizontal GRAM End Address
control_out(0x0052, 0x0000); // Vertical GRAM Start Address
control_out(0x0053, 0x013F); // Vertical GRAM Start Address
control_out(0x0060, 0xA700); // Gate Scan Line
control_out(0x0061, 0x0001); // NDL,VLE, REV
control_out(0x006A, 0x0000); // set scrolling line
//-------------- Partial Display Control ---------//
control_out(0x0080, 0x0000);
control_out(0x0081, 0x0000);
control_out(0x0082, 0x0000);
control_out(0x0083, 0x0000);
control_out(0x0084, 0x0000);
control_out(0x0085, 0x0000);
//-------------- Panel Control -------------------//
control_out(0x0090, 0x0010);
control_out(0x0092, 0x0600);
control_out(0x0093, 0x0003);
control_out(0x0095, 0x0110);
control_out(0x0097, 0x0000);
control_out(0x0098, 0x0000);
control_out(0x0007, 0x0133); // 262K color and display ON
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -