📄 uc1697.c
字号:
//UC1697v--- 128*128 2007
#include "reg51.h"
#include "uc1697.h"
#include "uc1697v1.h"
#define uint unsigned int
#define uchar unsigned char
sbit CS0 = P3^0;
sbit RST = P3^1;
sbit CD = P3^4;
sbit WR0 = P3^5;
sbit WR1 = P3^6;
sbit K2=P3^2;
sbit K3=P3^3;
sbit K1=P3^7;
sbit K4=P2^0;
unsigned char pm=0x45;/*vop,PM值*/
unsigned char pmm=0x00;/*vop加减后的临界值*/
unsigned char dv0=0x00;/*VOP增减基数*/
unsigned char dv=0x20;/*MTP阶数*/
unsigned char pm0=0x00;/*vop偏移量的值*/
unsigned char pm01=0x00;/*一位一位写入寄存器*/
void windowprogram4(void);
unsigned char code text_pin24[];
unsigned char code text_pin25[];
void windowprogram3(void);
void display_pic1();
void dispText1(unsigned char code *text);
void init(void);
void display_black(void);
void display_white(void);
void writei(unsigned char d);
void writed(unsigned char d);
void windowprogram1(void);
void horizontal();
void vertical();
void frame();
void snow();
void gray16();
void Pattern8();
void writed1(uchar,uchar) ;
void colorful();
void colorbar();
void Block_Main(uchar x0,x1,y0,y1,data_h,data_l);
void delay(long tt);
void display_rgb(unsigned char a,unsigned char b);
void display_colorbar();
void display_pic();
void windowprogram(void);
void vopup(void);
void vopdown(void);
void otp_erase(void);
void otp_operation(void);
void otp_program(void);
void count(void);
unsigned char kscan();
void getstatus();
void main(void)
{
unsigned char key=0;
RST=0;
delay(200);
RST=1;
delay(20000);
init();
/*
while(1)
{
key= key+kscan();
if(key>8) key=1;
switch(key)
{
case 1:{display_rgb(0xf8,0x00);}break;//r
case 2:{display_rgb(0x07,0xe0);}break;//g
case 3:{display_rgb(0x00,0x1f);}break;//b
case 4:{display_colorbar() ;} break;
case 5:{display_pic(); } break;
case 6:{Pattern8(); } break;
case 7:{gray16();} break;
//case 7:{colorbar();} break;
//case 7:{colorbar();} break;
default:break;
}
}*/
while(1)
{
display_pic();
delay(1000);
windowprogram3();
dispText1(text_pin24);
windowprogram4();
dispText1(text_pin25);
//windowprogram5();
//dispText1(text_pin26);
delay(1000000);
display_rgb(0xf8,0x00);
//delay(10);
display_pic1();
delay(1000);
}
}
unsigned char kscan()
{
unsigned char i=80;
while(1)
{
if(K1==0|K2==0|K3==0|K4==0)
{
if(K1==0)
{
delay(10);
if(K1==1)
{
delay(10);
return(1);
}
}
if(K2==0)
{
delay(10);
if(K2==1)
{
delay(100);
otp_erase(); /*一定要erase before programme*/
delay(100);
vopup();
delay(100);
}
}
if(K3==0)
{
delay(10);
if(K3==1)
{
delay(100);
otp_erase(); /*一定要erase before programme*/
delay(100);
vopdown();
delay(100);
}
}
if(K4==0)
{
delay(10);
if(K4==1)
{
delay(100);
otp_operation();
}
}
}
}
}
/*********************************************/
void windowprogram3(void)
{
// writei(0x42);
// writei(x1);
// writei(x2);//0x9F);
// writei(0x43);
// writei(y1);//0x00);
// writei(y2);//0x7F);
writei(0x70);
writei(0x60);
writei(0x10);
writei(0x00);
writei(0xF4);//set colum address start
writei(0x00);
writei(0xF6);
writei(0x17);//set colum address end
writei(0xF5);//set row address start
writei(0x00);
writei(0xF7);//set row address end
writei(0x17);
writei(0xF8);//set window outside mode enable
}
/*************************************************************/
/*********************************************/
void windowprogram4(void)
{
writei(0x71);
writei(0x67);
writei(0x11);
writei(0x07);
writei(0xF4);//set colum address start
writei(0x18);
writei(0xF6);
writei(0x2f);//set colum address end
writei(0xF5);//set row address start
writei(0x18);
writei(0xF7);//set row address end
writei(0x2f);
writei(0xF8);//set window outside mode enable
}
/******************************************************/
unsigned char code text_pin24[]=
{
/* 点阵:24x24
提取点阵方向:横向(先左->右, 再上->下)
字节掉转:否
字节方式:C语言 */
0x00,0x30,0x00,0x00,0x18,0x00,0x00,0x0C,
0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
0x18,0x00,0x03,0xFC,0x00,0x00,0x18,0x00,
0x00,0x18,0x40,0x01,0x9C,0x70,0x3F,0xDC,
0xE0,0x01,0x9B,0x80,0x01,0x9A,0x00,0x01,
0x19,0x00,0x03,0x19,0x00,0x02,0x18,0x80,
0x06,0x18,0xC0,0x04,0x18,0x60,0x0C,0x18,
0x38,0x18,0x18,0x1E,0x20,0x18,0x08,0x41,
0xF8,0x00,0x00,0x70,0x00,0x00,0x20,0x00,
};
unsigned char code text_pin25[]=
{
/* 点阵:24x24
提取点阵方向:横向(先左->右, 再上->下)
字节掉转:否
字节方式:C语言 */
0x02,0x01,0x00,0x03,0x81,0xC0,0x03,0x21,
0x88,0x3F,0xEF,0xFC,0x03,0x01,0x80,0x3F,
0xEF,0xF8,0x03,0x01,0x84,0x7F,0xEF,0xFE,
0x03,0x01,0x80,0x02,0x01,0x30,0x0F,0xFF,
0xF8,0x00,0x00,0x30,0x00,0x00,0x30,0x07,
0xFF,0xF0,0x00,0x00,0x30,0x00,0x00,0x30,
0x0F,0xFF,0xF0,0x02,0x00,0x20,0x13,0x98,
0xA0,0x13,0x0C,0x98,0x33,0x08,0x8C,0x33,
0x00,0xC4,0x63,0xFF,0xC0,0x01,0xFF,0x80,
};
/**********************************************************/
void dispText1(unsigned char code *text)
{
unsigned char tempText;
unsigned char i,j;
for(i=0;i<72;i++)
{
tempText = *text;
for(j=0;j<8;j++)
{
if(((tempText)&(0x80))>0)
{
writed1(0xff,0xff);
}else
{
writed1(0x00,0x00);
}
tempText = tempText << 1;
}
text++;
}
}
/**********************************************************/
void init(void)
{/*
writei(0xE2); //system reset
delay(2000);
writei(0xEa); //set bias=1/11 这个需要根据你们具体的bias来更改
writei(0x81); //set vop
writei(0x45); //set vop=15v,这个参数需要根据你们的VOP来更改
writei(0x2f); //set pump control
writei(0x2b); //set panel loading
writei(0x24); // set TC=-0.05%
writei(0xa2); // set line rate
writei(0xd1); //set color pattern
writei(0xd6); //set color mode 64k
writei(0xC8); //set n-line inversion
writei(0x1c);
writei(0xde); //set com scan function
writei(0xAf); //set display enable
*/
writei(0xE2); //system reset
delay(2000);
writei(0xEa); //set bias=1/11 这个需要根据你们具体的bias来更改
writei(0x81); //set vop
writei(0x45); //set vop=15v,这个参数需要根据你们的VOP来更改
writei(0x2f); //set pump control
writei(0x2b); //set panel loading
writei(0x24); // set TC=-0.05%
writei(0xa2); // set line rate
writei(0x89); //set color pattern
writei(0xd1); //set color pattern
writei(0xd6); //set color mode 64k
writei(0xC8); //set n-line inversion
writei(0x18);
writei(0xc2); //set color pattern
writei(0x84); //set n-line inversion
//writei(0x89);
//writei(0x0f); //set n-line inversion
//writei(0x65);
writei(0xde); //set com scan function
writei(0xaf); //set display enable
}
void windowprogram(void)
{
writei(0x70);
writei(0x60);
writei(0x10);
writei(0x00);
writei(0xF4);//set colum address start
writei(0x00);
writei(0xF6);
writei(0x7f);//set colum address end
writei(0xF5);//set row address start
writei(0x00);
writei(0xF7);//set row address end
writei(0x7f);
writei(0xF8);//set window outside mode enable
}
void windowprogram1(void)
{
writei(0x70);
writei(0x65);
writei(0x10);
writei(0x05);
writei(0xF4);//set colum address start
writei(0x05);
writei(0xF6);
writei(0x64);//set colum address end
writei(0xF5);//set row address start
writei(0x05);
writei(0xF7);//set row address end
writei(0x64);
writei(0xF8);//set window outside mode enable
}
void Pattern8() /* 彩条*/
{
unsigned int i,j;
writei(0x70);
writei(0x60);
writei(0x10);
writei(0x00);
for(j=0x00;j<0x80;j++) /* X-address
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -