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网

关于显示光电就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查