51单片机oled12864显示时间日期温度

    思路:电源接入 第一行显示时间、第二行显示日期,屏幕下面左边显示星期,右边显示温度,当k1按键第一次按下进入设置页面,在设置页面,k1按键为确定、k2按键为循环选择、k8按键为返回主页面,进入时间设置后 ,清屏显示静态时间,通过k2选择要修改的时、分、秒,修改后通过k8按键返回主页面结束,日期和星期修改同样。

效果展示

 

 

 编译代码

 

      用的是keil5、创建了四个文件夹分别用来存放主函数、公用函数、(温度、oled、时间)模块、显示函数 。

 主页面显示内容

/*显示时间函数*/
void Display_Time(void)
{
    OLED_ShowNum(4*8,1,gDS1302_TIME[2]/16,1,16);
    OLED_ShowNum(5*8,1,gDS1302_TIME[2]&0x0f,1,16);

    OLED_ShowChar(6*8,1,':',16);

    OLED_ShowNum(7*8,1,gDS1302_TIME[1]/16,1,16);
    OLED_ShowNum(8*8,1,gDS1302_TIME[1]&0x0f,1,16);

    OLED_ShowChar(9*8,1,':',16);

    OLED_ShowNum(10*8,1,gDS1302_TIME[0]/16,1,16);
    OLED_ShowNum(11*8,1,gDS1302_TIME[0]&0x0f,1,16);
}

/*显示日期函数*/
void Display_Dat(void)
{
    OLED_ShowNum(3*8,3,2,1,16);
    OLED_ShowNum(4*8,3,0,1,16);
    OLED_ShowNum(5*8,3,gDS1302_TIME[6]/16,1,16);
    OLED_ShowNum(6*8,3,gDS1302_TIME[6]&0x0f,1,16);

    OLED_ShowChar(7*8,3,'/',16);

    OLED_ShowNum(8*8,3,gDS1302_TIME[4]/16,1,16);
  • 20
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
基于51单片机OLED 12864可以显示温度的方法有多种,以下为一种可行的方案。 首先,我们需要通过温度传感器获取温度值。常见的温度传感器有数字温度传感器和模拟温度传感器。数字温度传感器一般通过I2C或者SPI接口与单片机通信,而模拟温度传感器则需要通过模拟输入引脚连接。 接下来,我们需要将获取到的温度值转换为合适的显示格式并发送给OLED 12864进行显示。一般情况下,OLED 12864需要使用串行接口进行数据传输,如SPI或者I2C。这里我们以SPI为例进行说明。 首先,我们需要初始化51单片机的SPI接口,并将其设置为主机模式。然后,设置SPI传输相关的参数,如时钟频率、数据格式等。接下来,通过I/O引脚将单片机与OLED 12864连接起来。根据OLED 12864的规格书,发送特定的命令和数据给OLED 12864,以使其正确显示温度信息。 具体的实现方式如下: 1. 初始化SPI接口,设置为主机模式。 2. 初始化温度传感器,并配置相关参数,如I2C地址、分辨率等。 3. 通过温度传感器读取当前温度数值。 4. 将温度数值转换为字符串格式,方便进行显示。 5. 设置OLED 12864显示模式,并清除原有显示内容。 6. 将温度字符串发送给OLED 12864进行显示。 7. 循环以上步骤,不断更新温度显示。 通过以上步骤,我们便可以基于51单片机OLED 12864实现温度显示的功能。当温度传感器返回新的温度数值时,我们可以及时进行更新,从而实时显示当前温度

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值