OLED显示模块与C8051F单片机的接口设计
(1) 写左半屏命令
void wr_command1() {
cs1=1; cs1=1; cs1=1; //选择左半屏
cs2=0; cs2=0; cs2=0;
read_status(); //读BUSY位状态
r_w=0; r_w=0; r_w=0;
P5=com; //将命令字节送I/O口
e=1; e=1; e=1;
e=0; e=0; e=0; //在E下降沿,命令字节被写
//入列驱动器
}
(2) 写左半屏数据
void wr_data1() {
cs1=1; cs1=1; cs1=1; //选择左半屏
cs2=0; cs2=0; cs2=0;
read_status(); //读BUSY位状态
d_i=1; d_i=1; d_i=1;
r_w=0; r_w=0; r_w=0;
P5=dat; //将数据字节送I/O口
e=1; e=1; e=1;
e=0; e=0; e=0; //在E下降沿,数据字节被写
//入列驱动器
}
其中,读状态位的函数采用查询标志位的方式,即
void read_status() reentrant {
uchar busy;
uchar temp;
d_i=0; d_i=0; d_i=0; //进行指令操作
r_w=1; r_w=1; r_w=1; //进行读操作
do {
P5=0xff;
e=1; e=1; e=1;
busy=P5; //读入P5端口状态
e=0; e=0; e=0;
temp=busy&0x80;
}while(temp!=0);
}
(3) OLED初始化
void init_lcd() {
com=0xc0; //从第0行开始
wr_command1();
wr_command2();
com=0x3f; //打开显示
wr_command1();
wr_command2();
}
(4) OLED清屏
void clear_lcd() {
uchar column1;
uchar page;
for(page=0;page<8;page++) {
com=(0xb8+page); //设置页号
wr_command1();
wr_command2();
com=0x40; //设置起始列为0,写操作完
//后列地址计数器自动加1
wr_command1();
wr_command2();
for(column1=0;column1<64;column1++) {
//清左半屏
dat=0;
wr_data1();
}
for(column1=64;column1<128;column1++) {
//清右半屏
dat=0;
wr_data2();
}
}
}
(5) 显示16×8字符的程序
void lcd_write_char_code(uchar page8,uchar column8,uchar* block168)reentrant {
uchar column1;
set_position(page8,column8);//设置所写字符起始页位置
for(column1=0;column1<8;column1++) {
dat=block168[column1];
//从字库中取出上半页8×8点阵字模数据
dat=UpsetChar[dat];
//将每个字节数据高低位进行对调
if(column8<=7)
//如果设置的所写位置在左半屏,调用写左半屏
//数据的函数
wr_data1();
else
//如果设置的所写位置在右半屏,调用写右半屏
//数据的函数
wr_data2();
}
page8++;
set_position(page8,column8);//设置所写字符下半页位置
for(column1=8;column1<16;column1++) {
dat=block168[column1];
//从字库中取出下半页8×8点阵字模数据
dat=UpsetChar[dat];
//将每个字节数据高低位进行对调
if(column8<=7)
//如果设置的所写位置在左半屏,调用写左半屏
//数据的函数
wr_data1();
else
//如果设置的所写位置在右半屏,调用写右半屏数据的函数
wr_data2();
}
}
5 结论
OLED显示技术有着广泛的应用前景。采用此技术的VGS12864E显示模块具有与MCU接口方便、显示功能强和编程简单等优点,具有广泛的应用价值。上面介绍的接口设计与软件编程已成功应用于数据采集系统中的系统工作参数的显示,效果良好;再配合按键控制进行反显、参数设置、翻页等,建立了良好的人机交互界面。
OLED显示 C8051F 接口 单片机 VGS12864E 相关文章:
- 无源OLED显示器在手持设备中的供电解决方案(03-10)
- OLED显示器中的多线定址驱动技术(01-25)
- 基于Bang-Bang控制的温湿度调节系统设计方案(06-23)
- 基于C8051F920的太阳能金卤灯控制系统设计(06-26)
- 内置微处理器的USB音频接口芯片TUSB3200 (01-12)
- 五类音频接口全接触(02-14)