📄 10732.c
字号:
/*lcm msgf10732-01*/
/*uc1612*/
/* 80 mode */
/* 81*77 */
#include <reg51.h>
#include <intrins.h>
#include <common.h>
#include <def.h>
#include <font.h>
unsigned char code page_c[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,
0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19};
code adj_vop[194]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0xc0,0xc1};
sbit RST=P2^2;
sbit CS0=P2^1;
sbit CD=P2^0;
sbit WR0=P2^3;
sbit WR1=P2^4;
sbit K1=P2^5;
sbit K2=P2^6;
sbit K3=P2^7;
void init_lcd()
{
CS0=0;
delay1ms(200);
RST=1;
delay1ms(200);
RST=0;
delay1ms(200);
RST=1;
delay1ms(200);
write_com(0xE2);//system reset
delay1ms(40);
write_com(0xf1);//set duty 1/80
write_com(0x4f);
// write_com(0x84);//set partial display
// write_com(0x24);//set t.c
// write_com(0x28);//set panel loading
// write_com(0x2f);//set pump
write_com(0x81);//set vop
write_com(120);//vop=10v
write_com(0x89);//set ram address control
// write_com(0xa2);//set line rate
write_com(0xeb);//set bias=1/9
write_com(0xc0);//set lcd mapping
write_com(0xd6);//set gray scale
write_com(0x00);//set colomn address
write_com(0x60);//set row address
write_com(0x70);
write_com(0xaf);//set display enable
delay1ms(20);
}
void write_data(uchar dat)
{
busy();
CS0=0;
CD=1;
WR1=1;
P0=dat;
WR0=0;
delay1ms(0);
WR0=1;
CS0=1;
}
void write_com(uchar com)
{
busy();
CS0=0;
CD=0;
WR1=1;
P0=com;
WR0=0;
delay1ms(0);
WR0=1;
delay1ms(0);
CS0=1;
}
void busy()
{
_nop_();
_nop_();
}
void delay1ms(uint t)
{
register int i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
void locatexy(uchar page,uchar slsb,uchar smsb)
{
write_com(page);
write_com(slsb);
write_com(smsb);
}
void clrram()
{
uint i,j;
write_com(0x00);
write_com(lsb);
write_com(msb);
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
write_data(0x00);
}
}
}
void font()
{
uint i,j,k;
clrram();
locatexy(0x00,0x60,0x70);
for(j=0;j<11;j++)
{
for(i=0;i<26;i++)
{
write_data(font1[i]);
}
}
for(j=0;j<26;j++)
{
write_data(0x00);
}
for(k=0;k<6;k++)
{
for(j=0;j<11;j++)
{
for(i=0;i<21;i++)
{
write_data(font1[i]);
}
}
}
for(i=0;i<10;i++)
{
for(j=0;j<26;j++)
{
write_data(font2[j]);
}
}
}
void displayon()
{
uint i,j;
write_com(0x00);
write_com(lsb);
write_com(msb);
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
write_data(0xff);
}
}
}
void displayoff()
{
uint i,j;
write_com(0x00);
write_com(lsb);
write_com(msb);
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
write_data(0x00);
}
}
}
void frame8111(uchar page_c,uchar slsb,uchar smsb)
{
uint i,j,k,m;
uchar s_slsb,s_smsb;
s_smsb=smsb;
locatexy(page_c,slsb,smsb);
for(j=0;j<21;j++)
{
write_data(0xff);
}
for(i=1;i<10;i++)
{
if(s_slsb==0x6f)
{
//s_slsb=0x60;
s_smsb=smsb+1;
}
s_slsb=slsb+i;
if(s_slsb>0x6f)//(s_slsb<<4)>240
{
s_slsb=s_slsb-16;
}
locatexy(page_c,s_slsb,s_smsb);
write_data(0x03);
for(k=1;k<20;k++)
{
write_data(0x00);
}
write_data(0x03);
}
if(s_slsb+1>0x6f)
{
s_slsb=0x60;
s_smsb=s_smsb+1;
}
locatexy(page_c,s_slsb+1,s_smsb);
for(m=0;m<21;m++)
{
write_data(0xff);
}
}
void frame()
{
clrram();
frame8111(0x00,0x60,0x70);
frame8111(0x00,0x6c,0x70);
frame8111(0x00,0x03,0x72);
frame8111(0x00,0x62,0x72);
frame8111(0x00,0x6d,0x72);
frame8111(0x00,0x68,0x73);
frame8111(0X00,0x63,0x74);
frame8111(0x00,0x6c,0x74);
}
void dots1()
{
uint i,j,k;
clrram();
locatexy(page_CS,lsb,msb);
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
write_data(0xcc);
}
for(k=0;k<26;k++)
{
write_data(0x33);
}
}
}
void dots2()
{
uint i,j,k;
clrram();
locatexy(page_CS,lsb,msb);
for(i=0;i<80;i++)
{
for(j=0;j<26;j++)
{
write_data(0x33);
}
for(k=0;k<26;k++)
{
write_data(0xcc);
}
}
}
/*
void gray(uchar page_c,uchar slsb,uchar smsb)
{
uint i,j,k,m;
locatexy(page_c,slsb,smsb);
for(j=0;j<21;j++)
{
write_data(0xff);
}
for(i=1;i<10;i++)
{
locatexy(page_c,slsb+1,smsb);
write_data(0x80);
for(k=0;k<20;k++)
{
locatexy(page_c+k,slsb+k+1,smsb);
write_data(0x00);
}
write_data(0x01);
}
locatexy(page_c,slsb+10,smsb);
for(m=0;m<21;m++)
{
write_data(0xff);
}
}
*/
uchar kscan()
{
uint i=44;
while(1)
{
if(K1==0|K2==0|K3==0)
{
if(K1==0)
{
delay1ms(10);
if(K1==1)
{
delay1ms(10);
return(1);
}
}
if(K2==0)
{
delay1ms(10);
if(K2==1)
{
delay1ms(10);
if(i>193)i=0;
write_com(0x81);
write_com(adj_vop[i]);
i++;
}
}
if(K3==0)
{
delay1ms(10);
if(K3==1)
{
delay1ms(10);
if(i==0)
{
write_com(0x81);
write_com(adj_vop[i]);
i=193;
}
else {
write_com(0x81);
write_com(adj_vop[i]);
i--;
}
}
}
}
}
}
main()
{
uchar key=0;
init_lcd();
while(1)
{
key= key+kscan();
if(key>6) key=1;
switch(key)
{
case 1:{ font(); }break;
case 2:{ displayon(); }break;
case 3:{ displayoff(); }break;
case 4:{ frame();}break;
case 5:{ dots1(); }break;
case 6:{ dots2(); }break;
//case 8:{ gray(0x00,0x60,0x70);}break;
default:break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -