标题:
PIC16F877单片机+0.96OLED显示源代码
[打印本页]
作者:
zb02373
时间:
2018-10-30 09:02
标题:
PIC16F877单片机+0.96OLED显示源代码
PIC16F877+0.96OLED显示源代码
//===============================================================================
//模块名称: oled.c
//简介: 延时函数
//版本: 1.0
//作者: 张冰
//说明:
//===============================================================================
#include <p18cxxx.h>
#include <delays.h>
#include "toppic.h"
#include "delay.h"
#include "oled.h"
// GND 电源地
// VCC 接5V或3.3v电源
// D0 P1^0(SCL) 时钟管脚 RC3 SCK
// D1 P1^1(SDA) 数据管脚
// RES 接P12 复位(低电平复位)
// DC 接P13 数据和命令控制管脚
// CS 接地
/*****************************************************************************
函 数 名 : LED_WrDat
功能描述 : 向OLED写数据
输入参数 : UCHAR8 ucData
输出参数 : NONE
返 回 值 : NONE
*****************************************************************************/
void Write_SPI_Data(unsigned char ucData)
{
unsigned char i = 8;
DC=1;
SCL=0;
while (i--)
{
if (ucData & 0x80)
{
SDA = 1;
}
else
{
SDA = 0;
}
SCL = 1;
_nop_();
SCL = 0;
ucData <<= 1;
}
return;
}
/*****************************************************************************
函 数 名 : LED_WrCmd
功能描述 : 向OLED写命令
输入参数 : UCHAR8 ucCmd
输出参数 : NONE
返 回 值 : NONE
*****************************************************************************/
void Write_SPI_Command(unsigned char ucCmd)
{
unsigned char i = 8;
DC = 0;
SCL = 0;
while (i--)
{
if (ucCmd & 0x80)
{
SDA = 1;
}
else
{
SDA = 0;
}
SCL = 1;
_nop_();
SCL = 0;
ucCmd <<= 1;
}
return;
}
/********************************************
// fill_Picture
********************************************/
void fill_picture(unsigned char fill_Data)
{
unsigned char m,n;
for(m=0;m<8;m++)
{
Write_SPI_Command(0xb0+m); //page0-page1
Write_SPI_Command(0x00); //low column start address
Write_SPI_Command(0x10); //high column start address
for(n=0;n<128;n++)
{
Write_SPI_Data(fill_Data);
}
}
}
复制代码
全部资料51hei下载地址:
0.96oled-OK.rar
(26.29 KB, 下载次数: 57)
2018-10-30 09:02 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
ouyangxinge
时间:
2021-7-20 13:35
有没有用过的兄弟
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1