基于IIC的OLED数据显示

下载取模软件

网址:
链接: link.
在这里插入图片描述
下载完成解压后打开:
在这里插入图片描述
设置成这样:
在这里插入图片描述
转换一下输出的进制:
在这里插入图片描述
这样就可以得到自己想要的子模啦!

通过OLED显示自己的姓名学号

用keil打开之前下载好的程序包:
在这里插入图片描述
编译程序,然后打开oledfont.h
在这里插入图片描述
将自己生成的子模按照它的格式粘贴上去:
在这里插入图片描述
main.c修改为:

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
 int main(void)
 {
   	u8 t;
		delay_init();	    	 //延时函数初始化	  
		NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 	LED_Init();			     //LED端口初始化
	//		delay_ms(8000);
		OLED_Init();			//初始化OLED  
		OLED_Clear(0)  	; 
     t='  ';
		
	while(1) 
	{
   		
		OLED_ShowCHinese(6,0,0);//马
		OLED_ShowCHinese(26,0,1);//昕
		OLED_ShowString(4,3,"631807030221",16); 
	  t++;
	}
}

编译:
在这里插入图片描述
然后将程序烧录进进去
在这里插入图片描述
结果:
在这里插入图片描述

通过OLED显示AHT20的温度和湿度

AHT20工程代码:
链接: link.

添加几个文件进去,具体文件参考之前的博客:
链接: link.

生成子模:

    "温",0x00,0x00,0x23,0xF8,0x12,0x08,0x12,0x08,0x83,0xF8,0x42,0x08,0x42,0x08,0x13,0xF8,
  0x10,0x00,0x27,0xFC,0xE4,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x2F,0xFE,0x00,0x00,/*"温",0*/
	"度",0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,
  0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
51单片机iic协议oled代码可以通过以下步骤实现: 1. 首先,我们需要包含51单片机的头文件和对应的引脚定义,以便于程序中使用。 ```c #include <reg52.h> sbit SCL=P2^1; // 定义SCL引脚 sbit SDA=P2^0; // 定义SDA引脚 ``` 2. 然后,我们需要定义iic协议中的起始条件、停止条件和数据传输函数。 ```c void iic_start() // IIC起始条件 { SDA=1; SCL=1; Delay5us(); SDA=0; Delay5us(); SCL=0; } void iic_stop() // IIC停止条件 { SDA=0; Delay5us(); SCL=1; Delay5us(); SDA=1; } void iic_writebyte(unsigned char dat) // 写一个字节 { unsigned char i; for(i=0;i<8;i++) { SDA=(bit)(dat&0x80); dat<<=1; SCL=1; Delay5us(); // 调整延时时间,保证IIC操作正常 SCL=0; } SDA=1; SCL=1; Delay5us(); SCL=0; } ``` 3. 最后,我们可以示范如何使用iic协议与oled屏幕进行通信,并将需要显示的内容写入oled屏幕的数据寄存器。 ```c void oled_write_cmd(unsigned char cmd) // 向OLED写控制命令 { iic_start(); iic_writebyte(0x78); // OLED I2C Write address iic_writebyte(0x00); // Control byte: Co = 0, D/C# (bit0 write command) iic_writebyte(cmd); // Write command iic_stop(); } void oled_write_data(unsigned char dat) // 向OLED数据 { iic_start(); iic_writebyte(0x78); // OLED I2C Write address iic_writebyte(0x40); // Control byte: Co = 0, D/C# (bit0 write data) iic_writebyte(dat); // Write data iic_stop(); } ``` 通过以上代码,我们可以实现51单片机基于iic协议控制oled屏幕的显示,从而实现各种图形和文本的显示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值