📄 eg1206f4.c
字号:
/*ic splc502b-c
vop:8.7v write by dices */
#include<reg52.h>
sbit rs=P3^6;
sbit rd=P3^5;
sbit res=P3^7;
sbit cs=P3^1;
sbit wr=P3^0;
unsigned char ratio;
unsigned char refer;
unsigned char data1;
unsigned char data2;
extern unsigned char code piture[];
extern unsigned char code piture1[];
//extern unsigned char code picture2[];
void write_data(unsigned char data3);
void write_com(unsigned char com);
void ini(void);
void delay(unsigned char d);
void wdot(unsigned char d1,unsigned char d2);
void display(void);
void dispaly_map(unsigned char e[]);
void main()
{
EA=1;
PX1=1;
IT1=1;
EX1=1;
ratio=0x25;
refer=26;
ini();
while(1)
{
dispaly_map(piture);
display();
dispaly_map(piture1);
}
}
void write_data(unsigned char data3)
{
rs=1;
cs=0;
rd=1;
wr=0;
P1=data3;
delay(1);
wr=1;
cs=1;
//delay(10);
}
void write_com(unsigned char com)
{
rs=0;
cs=0;
rd=1;
wr=0;
P1=com;
delay(1);
wr=1;
cs=1;
//delay(10);
}
void zd(void)interrupt 1 using 0
{
unsigned char InputKey;
P2=0x0f;
InputKey=P2;
switch(InputKey)
{
case 0x0b:
if(refer<64){ ++refer;ini(); }
break;
case 0x0e:
if(refer>0) { --refer;ini();}
break;
default:
break;
}
}
void ini(void)
{
res=1;
delay(1000);
res=0;
delay(1000);
res=1;
write_com(0xe2);
delay(1000); //reset
write_com(0xa0); //adc
write_com(0x40); //start line
write_com(0xc0); //common dir
write_com(0xa2); //a2 1/9 a3 1/7
write_com(ratio); //
write_com(0x81); //
write_com(refer); //
write_com(0x2f); //power control
write_com(0xaf); //display on
}
void dispaly_map(unsigned char e[])
{ unsigned char p;
unsigned char w;
unsigned char k;
unsigned char i;
i=0;
k=0xb0;
for(w=0;w<8;w++)
{
write_com(k+w); //pages
write_com(0x10); //seg 0
write_com(0x00);
for(p=0;p<128;p++)
{
write_data(e[w*128+p]);
}
}
delay(5000);
}
void display()
{
wdot(0xff,0xff);
wdot(0x00,0x00);
wdot(0xaa,0xaa);
wdot(0x55,0x55);
wdot(0x00,0xff);
wdot(0xff,0x00);
wdot(0xaa,0x55);
wdot(0x55,0xaa);
}
//-----------------------------------
void wdot(unsigned char d1,unsigned char d2)
{
unsigned char k;
unsigned char p;
unsigned char w;
k=0xb0;
for(w=0;w<8;w++)
{
write_com(k+w); //page set
write_com(0x10); //column addr set upper
write_com(0x00); //column addr set lower
for(p=0;p<64;p++)
{
write_data(d1);
write_data(d2);
}
}
delay(1000);
}
void delay(unsigned char d)
{
int k;
int t;
for(k=30;k>0;k--)
{
for(t=0;t<d;t++)
{}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -