for (temp= AD0_PIN_NUM; temp 《 16; temp++){
PINSEL0 &= ~(3 《《 (2 *temp));
}
// 设置引脚方向,所有相关引脚为输出
temp = 0xff 《《 AD0_PIN_NUM;
IODIR = IODIR | temp;
IODIR = IODIR | (1 《《 WR_PIN_NUM) | (1 《《 RD_PIN_NUM) | (1 《《 DC_PIN_NUM) | (1 《《 CS_PIN_NUM);
// 设置引脚输出值,除CS_PIN_NUM输出为低电平外,其余均为高电平
IOCLR = (1 《《 CS_PIN_NUM);
IOSET = (1 《《 DC_PIN_NUM) | (1 《《 WR_PIN_NUM) | (1 《《 RD_PIN_NUM);
temp = 0xff 《《 AD0_PIN_NUM;
IOSET = IOSET | temp;
}
uint8 ReadData(void) //从P09702OLED显示屏读取数据
{ uint32 temp,temp1;
temp1 = IODIR;
IODIR = temp1 & (~(0xff 《《 AD0_PIN_NUM)); // 设置AD0_PIN_NUM为输入
IOCLR = 1 《《 RD_PIN_NUM;
temp = IOPIN;
IOSET = 1 《《 RD_PIN_NUM;
IODIR = temp1 | (0xff 《《 AD0_PIN_NUM);
temp = temp 》》 AD0_PIN_NUM;
return (uint8) temp;
}
void WriteCommand(uint8 Data) //写指令代码到P09702OLED显示屏
{ IOCLR = 1 《《 DC_PIN_NUM;
IOSET = Data 《《 AD0_PIN_NUM;
Data = ~Data;
IOCLR = Data 《《 AD0_PIN_NUM;
IOCLR = 1 《《 WR_PIN_NUM;
IOSET = 1 《《 WR_PIN_NUM;
IOSET = 1 《《 DC_PIN_NUM;
}
void WriteData(uint8 Data) //写参数及数据到P09702OLED显示屏
{ IOSET = Data 《《 AD0_PIN_NUM;
Data = ~Data;
IOCLR = Data 《《 AD0_PIN_NUM;
IOCLR = 1 《《 WR_PIN_NUM;
IOSET = 1 《《 WR_PIN_NUM;
}
main(){ int j, i;
ExBusInit(); //初始化P09702OLED显示屏总线
InitOled(); //初始化P09702OLED显示屏,由于SSD1303软件控制指令非常丰富,该函数内容较长,在这里不做描述,详情见P09702应用笔记,这里要说明的是:InitOled()中的comm_out2()函数用WriteCommand()函数替代
for(i=0;i《8;i++)
WriteCommand (0xB0+i); //设置显示位置—行
WriteCommand (0x02); //设置显示位置—列低地址
WriteCommand (0x10); //设置显示位置—列高地址
for(j=0;j《128;j++)
WriteData((0xFF); //屏幕显示,全亮
}
}
上述仅是对P09702基本的应用,有关更多的SSD1303软件控制指令,通过该文介绍的方法,并结合SSD1303的指令集[4],读者能够对P09702应用自如。
来源;国际led网
关于显示光电就介绍完了,您有什么想法可以联系小编。