基于STC12C5A60S2系列1T 8051单片机的IIC通信的0.96寸4针OLED12864显示小数的应用
STC12C5A60S2系列1T 8051单片机管脚图
STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置
STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍
液晶显示器OLED12864简单介绍
一、OLED12864点阵型液晶显示器介绍
二、OLED12864点阵型液晶显示器IIC协议介绍
三、OLED12864点阵型液晶字节排列方式介绍
四、OLED12864点阵型液晶图像显示位置寻址寄存器介绍
五、OLED12864点阵型液晶硬件配置寄存器介绍
五、OLED12864点阵型液晶显示方式介绍
六、OLED12864点阵型液晶滚屏命令介绍
七、OLED12864点阵型液晶字模提取介绍
基于STC12C5A60S2系列1T 8051单片机的IIC通信的0.96寸4针OLED12864显示小数的功能
main.c
#include "STC12C5A60S2.h"
#include "OLED12864.h"
#include "OLED12864OfI2C.h"
//#include "ChineseCharacterLibrary.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
void main()//主函数
{
OLED12864Init();//OLED12864初始化函数
while(1)//主循环
{
OLED12864DisplayNumber(0,0,0);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第0大列(即8小列为一大列)显示NumberCharacterArrayOf16Row8Column[][8]变量中的第0个数字"0"
OLED12864DisplayDecimalPoint(1,0,0);从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第1大列(即8小列为一大列)显示DecimalPointCharacterArrayOf16Row8Column[][8]变量中的第0个小数点"."
OLED12864DisplayNumber(2,0,2);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第2大列(即8小列为一大列)显示NumberhCharacterArrayOf16Row8Column[][8]变量中的第1个数字"1"
OLED12864DisplayNumber(3,0,4);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第3大列(即8小列为一大列)显示NumberCharacterArrayOf16Row8Column[][8]变量中的第2个数字"2"
OLED12864DisplayNumber(5,0,6);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第5大列(即8小列为一大列)显示NumberCharacterArrayOf16Row8Column[][8]变量中的第3个数字"3"
OLED12864DisplayNumber(6,0,8);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第6大列(即8小列为一大列)显示NumberCharacterArrayOf16Row8Column[][8]变量中的第4个数字"4"
OLED12864DisplayDecimalPoint(7,0,0);从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第7大列(即8小列为一大列)显示DecimalPointCharacterArrayOf16Row8Column[][8]变量中的第0个小数点"."
OLED12864DisplayNumber(8,0,10);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第8大列(即8小列为一大列)显示NumberCharacterArrayOf16Row8Column[][8]变量中的第5个数字"5"
OLED12864DisplayNumber(9,0,12);//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第9大列(即8小列为一大列)显示NumberCharacterArrayOf16Row8Column[][8]变量中的第6个数字"6"
}
}
OLED12864.c
#include "OLED12864.h"
#include "OLED12864OfI2C.h"
//#include "ChineseCharacterLibrary.h"
//#include "CapitalLowerCaseLetter.h"
#include "NumberCharacterLibrary.h"
#include "DecimalPointCharacterLibrary.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
void WriteCommandToOLED12864(uchar Command)//写命令给OLED12864函数
{
I2CStar();//I2C启动函数
I2CWriteByte(0x78);//I2C写字节函数 写OLED12864硬件地址
WaitAck();//等待应答
I2CWriteByte(0x00);//I2C写字节函数 启动写命令控制
WaitAck();//等待应答
I2CWriteByte(Command);//I2C写字节函数 写命令给OLED12864
WaitAck();//等待应答
I2CStop();//I2C停止函数
}
void WriteDataToOLED12864(uchar Data)//写数据给OLED12864函数
{
I2CStar();//I2C启动函数
I2CWriteByte(0x78);//I2C写字节函数 写OLED12864硬件地址
WaitAck();//等待应答
I2CWriteByte(0x40);//I2C写字节函数 启动写数据控制
WaitAck();//等待应答
I2CWriteByte(Data);//I2C写字节函数 写数据给OLED12864
WaitAck();//等待应答
I2CStop();//I2C停止函数
}
void SetOLED12864DisplayPostion(uchar Column,uchar Page)//设置OLED12864显示位置函数 Column为OLED12864大列(即8小