OLED显示字符串(用厂商代码)

OLED显示字符串(用厂商代码)

OLED买来后,在商家给的参考资料中找到范例代码,打开51版本的,参考里面现有的代码进一步完善OLED的使用开发

1.添加厂商函数

在LQ12864.h文件中可以找到OLED的一些使用函数,如初始化、写数据、写命令等函数,可以看到有OLED 设置坐标的函数,显示8*16一组标准ASCII字符串函数,可以拿这两个出来用用

设置坐标就是找出参数与页和列的关系,再调用写命令设置想要显示的坐标即可

显示8*16标准ASCII字符串函数暂时看不懂,可用着先

/*********************OLED 设置坐标************************************/
void OLED_Set_Pos(unsigned char x, unsigned char y) 
{ 
	OLED_WrCmd(0xb0+y);
	OLED_WrCmd(((x&0xf0)>>4)|0x10);
	OLED_WrCmd((x&0x0f)|0x01);
} 
/*******************功能描述:显示8*16一组标准ASCII字符串	 显示的坐标(x,y),y为页范围0~7****************/
void OLED_P8x16Str(unsigned char x, y,unsigned char ch[])
{
	unsigned char c=0,i=0,j=0;
	while (ch[j]!='\0')
	{
		c =ch[j]-32;
		if(x>120){x=0;y++;}
		OLED_Set_Pos(x,y);
		for(i=0;i<8;i++)
		OLED_WrDat(F8X16[c*16+i]);
		OLED_Set_Pos(x,y+1);
		for(i=0;i<8;i++)
		OLED_WrDat(F8X16[c*16+i+8]);
		x+=8;
		j++;
	}
}

2.添加ASCII 8*16点阵

因为上面使用了显示8*16的函数,所以点阵也用8 * 16的才行

先新建一个头文件OLEDASCII.h来放点阵数据,在codetab.h头文件中找到8*16的点阵,然后复制过来

/****************************************8*16的点阵************************************/
const unsigned char code F8X16[]=	  
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  ………………………………
};

3.main函数中先调用清屏,然后直接调用函数显示字符串即可

unsigned char show[10];

void main()
{
	int i;
	//1.OLED初始化
	OLED_Init();
	//2.确认页寻址模式
	OLED_WritCommand(0x20);	//设置内存地址
	OLED_WritCommand(0x02);	//设置页寻址模式
	OLED_Clear();			//先清屏
	
	//直接调用函数即可显示字符,第二个参数是页
	OLED_P8x16Str(1,2,"hello");
	
	//动态显示,先组装字符串,然后调用函数发送
	for(i = 0;i<100;i++)
	{
		sprintf(show,"speed:%dcm/s",i);
		OLED_P8x16Str(1,5,show);
	}
	while(1)
	{
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值