嵌入式入门学习——8基于Protues仿真Arduino+SSD1306液晶显示数字时钟

news/2024/10/23 13:42:05/

0 系列文章入口

嵌入式入门学习——0快速入门,Let‘s Do It!

SSD1306

1 Protues查找SSD1306器件并放置在画布,画好电气连接(这里VCC和GND画反了,后面仿真出错我才看见,要是现实硬件估计就烧毁了,嵌入式烧板子可太正常了,不过这种低级错误还是要避免的),不知道怎么操作请看本系列教程往期文章
2、3 查找SSD1306驱动库并安装
在这里插入图片描述
4 按照以下路径打开示例代码:File》Examples》ssd 1306》demos》ssd1306_demo
在这里插入图片描述
5点击编译
6编译成功
在这里插入图片描述
注意不要简单的把例程代码复制出来,因其还需要sova.cpp、sova.h文件,可以整个工程另存到桌面
7 这是另存到桌面的工程,看不到Protues需要的可执行文件
8 通过Everything搜索工程名称
9可见我们需要的hex或者elf可执行文件,没有Everything的如果是默认安装应该在这个路径下:C:\Users\0\AppData\Local\Temp\arduino\sketches,在这个文件夹下用windows自带的工具搜工程名
建议还是装个Eveything,电脑文件检索最好用的工具
在这里插入图片描述
10 装载固件,运行看一下效果,Arduino的优势显现出来了,例程完全没有修改就跑出了很好的效果。如果用的是其他主控如ESP8266之类的只需要在IDE选择不同的板子编译并注意硬件连接即可。
请添加图片描述

时钟功能

1 首先看看有没有库
2 搜索RTC,其实我也没怎么开发过Arduino(主业是STM32和DSP,大家一起学吧)
3 看看这个好像可以因为UNO基于的是AVR主控(英文阅读能力要有的哦)
在这里插入图片描述
看一下示例代码,把两个例程简单糅合一下,效果就出来了
请添加图片描述
贴代码

#include "ssd1306.h"
#include "nano_gfx.h"
#include "sova.h"
#include <AVR_RTC.h>
void setup()
{setup_RTC_interrupt();tm CurrTimeDate;          // set up an array for the RTC info.// <year yyyy> <month mm Jan=0> <date dd> <day d Sun=0> <hour hh> <minute mm> <second ss>CurrTimeDate.tm_year = (uint8_t)(   2016 - 1900 );CurrTimeDate.tm_mon = (uint8_t)     0;CurrTimeDate.tm_mday = (uint8_t)    12;CurrTimeDate.tm_wday = (uint8_t)    2;CurrTimeDate.tm_hour = (uint8_t)    17;CurrTimeDate.tm_min = (uint8_t)     16;CurrTimeDate.tm_sec = (uint8_t)     0;set_system_time( mktime( (tm*)&CurrTimeDate));/* Select the font to use with menu and all font functions */ssd1306_setFixedFont(ssd1306xled_font6x8);ssd1306_128x64_i2c_init();ssd1306_clearScreen();
}void loop()
{time_t currentTick;       // set up a location for the current time stamp since the time((time_t *)&currentTick);ssd1306_printFixed(0,  8, ctime( (time_t *)&currentTick), STYLE_NORMAL);
}

结语

Arduino优势显现,这么少的代码实现了比较复杂的功能,话说做出这个效果我还没注意到这里的I2C是软件模拟的还是硬件直接驱动的,不管了Arduino管什么底层呢,能用就行了


http://www.ppmy.cn/news/1541342.html

相关文章

搞错了,再来!谷歌利用AI重新推出全新的Google Shopping

近年来&#xff0c;随着电子商务的迅猛发展&#xff0c;消费者对个性化和便捷购物体验的需求愈发高涨。谷歌&#xff0c;作为互联网巨头之一&#xff0c;一直在不断探索和创新&#xff0c;它一直在应对这样一个事实&#xff1a;越来越多的消费者首先访问零售商的网站&#xff0…

你了解的spring框架有哪些

列举一些重要的Spring模块&#xff1f; Spring Core&#xff1a; 基础,可以说 Spring 其他所有的功能都需要依赖于该类库。主要提供 IOC 依赖注入功能。**Spring Aspects ** &#xff1a; 该模块为与AspectJ的集成提供支持。Spring AOP &#xff1a;提供了面向方面的编程实现。…

【Docker】Dockerfile 镜像实战

目录 一、构建SSH镜像 二、构建Systemctl镜像 三、nginx镜像 四、tomcat 镜像 五、mysql镜像 一、构建SSH镜像 mkdir /opt/sshd cd /opt/sshdvim Dockerfile #第一行必须指明基于的基础镜像 FROM centos:7 #作者信息 MAINTAINER this is ssh image <hmj> #镜像的操…

仅一行代码,使LLaMA3在知识编辑任务上表现暴涨35%!您确定不来试试嘛?

引言 LLMs常因错误/过时知识产生幻觉&#xff0c;而基于新知识微调耗时且易过拟合、引入额外的知识库或参数模块又会带来不断增加的存储空间压力。因此&#xff0c;基于“Locate-then-Edit”的知识编辑&#xff08;如ROME&#xff09;被提出&#xff0c;用“少时间成本、零空间…

破解数字化转型的挑战:应对物联网与微服务架构实施中的难点与解决方案

数字化转型已经成为现代企业提升竞争力、优化运营效率和提高客户体验的必经之路。然而&#xff0c;在转型过程中&#xff0c;企业往往面临技术、组织和管理等多方面的挑战。随着物联网&#xff08;IoT&#xff09;和微服务架构&#xff08;MSA&#xff09; 的普及&#xff0c;这…

ford面试准备

熟悉车联网系统架构及其相关通讯技术及其标准&#xff08;如CAN、LIN、Ethernet、LTE/5G等&#xff09;&#xff1b; 实际上这个V2X和目前这个MU-MIMO课题相似&#xff0c;都是接入网这一块&#xff0c;通过基站对终端设备进行资源分配以及通信&#xff1b; 整体框架也和 接入…

20240818 字节跳动 笔试

文章目录 1、编程题1.11.21.31.4岗位:BSP驱动开发工程师-OS 题型:4 道编程题 1、编程题 1.1 小红的三消游戏: 小红在玩一个三消游戏,游戏中 n 个球排成一排,每个球都有一个颜色。若有 3 个颜色相同的球连在一起,则消除这 3 个球,然后剩下的球会重新连在一起。在没有 …