📄 uc1612.c
字号:
//driver IC:UC1612
//LCM resolution:10280
//Programmer:Hawk by 12/18-06
#include <REG54.H>
sbit RST = P3^0;
sbit WR0 = P3^5;
sbit WR1 = P3^6;
sbit CD = P3^4;
sbit CS0 = P3^1;
//P1 is data bus
void writei(unsigned char ins);
void writed(unsigned char dat);
void delay(unsigned int tt);
void display_black(void);
void display_white(void);
void display(unsigned char d1,unsigned char d2);
void main(void)
{
delay(2000);
RST=1;
delay(200);
RST=0;
delay(200);
RST=1;
delay(200);
writei(0xE2);//system reset
delay(2000);
writei(0xf1);//set duty 1/80
writei(0x4f);
writei(0x84);//set partial display
writei(0x24);//set t.c
writei(0x28);//set panel loading
writei(0x2f);//set pump
writei(0x81);//set vop
writei(120);//vop=10v
writei(0x89);//set ram address control
writei(0xa2);//set line rate
writei(0xeb);//set bias=1/9
writei(0xc2);//set lcd mapping
writei(0xd6);//set gray scale
writei(0x00);//set colomn address
writei(0x60);//set row address
writei(0x70);
writei(0xaf);//set display enable
delay(200);
while(1)
{
display_white();
delay(20000);
delay(10000);
display_black();
delay(20000);
delay(10000);
display_white();
delay(20000);
delay(10000);
display(0xff,0xff);
delay(20000);
delay(10000);
display(0x00,0x00);
delay(20000);
delay(10000);
display(0xcc,0xcc);
delay(20000);
delay(10000);
}
}
void display_black(void)
{
unsigned char i,j;
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
writed(0xff);
}
}
}
void display_white(void)
{
unsigned char i,j;
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
writed(0x00);
}
}
}
void display(unsigned char d1,unsigned char d2)
{
unsigned char i,j;
for(i=0;i<80;i++)
{
for(j=0;j<13;j++)
{
writed(d1);
writed(d2);
}
}
}
void writei(unsigned char ins)
{
CS0=0;
CD=0;
WR1=1;
P1=ins;
WR0=0;
WR0=1;
CS0=1;
}
void writed(unsigned char dat)
{
CS0=0;
CD=1;
WR1=1;
P1=dat;
WR0=0;
WR0=1;
CS0=1;
}
void delay(unsigned int tt)
{while(tt>0)
{tt--;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -