📄 vgs12864e lcd程序.c
字号:
#define DIS_DIR (1<<28)
#define DIS_DI (1<<28)
#define DIS_RW (1<<29)
#define DIS_E (1<<)
#define DIS_CS1 (1<<)
#define DIS_CS2 (1<<)
void read_status()
{
uchar busy;
uchar temp;
IO0CLR=DIS_DI;
IO0SET=DIS_RW;
IO1CLR=DIS_DIR;
do
{
IO0PIN=(IO0PIN&0xFFFFFF00)|0xFF;
IO0SET=DIS_E;
busy=(IO0PIN&0xFF);
IO0CLR=DIS_E;
temp=busy&0x80;
}
while(temp!=0);
IO1SET=DIS_DIR;
}
void wr_command1()
{
IO1CLR=DIS_CS1;
IO0SET=DIS_CS2;
read_status();
IO0CLR=DIS_DI;
IO0CLR=DIS_RW;
IO0PIN=(IO0PIN&0xFFFFFF00)|com;
IO0SET=DIS_E;
IO0CLR=DIS_E;
}
void wr_data1()
{
IO1CLR=DIS_CS1;
IO0SET=DIS_CS2;
read_status();
IO0SET=DIS_DI;
IO0CLR=DIS_RW;
IO0PIN=(IO0PIN&0xFFFFFF00)|dat;
IO0SET=DIS_E;
IO0CLR=DIS_E;
}
void init_OLED()
{
com=0xc0;
wr_command1();
wr_command2();
com=0x3F;
wr_command1();
wr_command2();
}
void clear_prog(void)
{
for(i=0;i<8;i++)
{
com=(0xb8+i);
wr_command1();
wr_command2();
com=0x40;
wr_command1();
wr_command2();
for(j=0;j<64;j++)
{
dat=0x00;
wr_data1();
}
}
}
void display(uchar hang,uchar lie,uchar *p_dis_data)
{
for(page=hang*2;page<hang+2;page++)
{
uchar m;
com=(0xb8+page);
wr_command1();
com=0x40+lie;
wr_command1();
for(m=0;m<64;m++)
{
dat=*p_dis_data;
wr_data1();
p_dis_data++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -