【蓝桥杯最新板】蓝桥杯嵌入式液晶上实现电子时钟

news2024/12/12 8:04:03

这几年蓝桥杯比赛比较适合学生技能学习,考虑板子功能,提出完成的任务。

要求在液晶完成如下图效果:

主要是实现液晶显示时钟和数字时钟,具体样式可以依据实际情况微调。

实现过程:

1.需要画圆(外圆、内圆)

画圆比较简单,蓝桥杯中的例程有相应的函数。

LCD_DrawCircle(105, 160, 100);      //外圆

LCD_DrawCircle(105,160,95);			//内圆

可以发现两行代码即可以搞定。只是需要你算出圆的中心点坐标。

2.然后在对应的地方表数字

数字也不难,只需要算好指定位置输入数字即可。

    LCD_DisplayChar(15, 175, (u8)49);	//ASCII码-1(12)
	LCD_DisplayChar(15, 165, (u8)50);	//ASCII码-2(12)
	LCD_DisplayChar(95, 250, (u8)57);	//ASCII码-9
	LCD_DisplayChar(175, 167, (u8)54);	//ASCII码-6
	LCD_DisplayChar(97, 82, (u8)51);	//ASCII码-3
	LCD_DisplayChar(25, 125, (u8)49);	//ASCII码-1	
	LCD_DisplayChar(55, 95, (u8)50);	//ASCII码-2
	LCD_DisplayChar(140, 95, (u8)52);	//ASCII码-4
	LCD_DisplayChar(168, 125, (u8)53);	//ASCII码-5
	LCD_DisplayChar(168, 210, (u8)55);	//ASCII码-7
	LCD_DisplayChar(140, 240, (u8)56);	//ASCII码-8
	LCD_DisplayChar(55, 240, (u8)49);	//ASCII码-1(10)
	LCD_DisplayChar(55, 230, (u8)48);	//ASCII码-0(10)
	LCD_DisplayChar(25, 210, (u8)49);	//ASCII码-1(11)
	LCD_DisplayChar(25, 200, (u8)49);	//ASCII码-1(11)

如何算出数字所在的位置,其实不难,因为数据在圆上是有规律的,只需要知道圆中心点坐标,和圆的半径,其他圆边缘的任何位置,都可以通过公式计算得出,比如,圆上的12数字坐标大概位置和2点的位置计算如下:

3.计算时分秒的针

这个相对是比较复杂的地方,因为时分秒的针是实时变化的,而且是一个线段,需要不停的变化,这是就需要思考如何实现。板子中的案例代码是有画线的样例的,但不能实现时分秒操作。

时分秒针子长度不一,不是难点,难点是要优化画线的代码。这里的画线代码如下:

void LCD_DrawLine_1(float Xstart, float Ystart, float Xend, float Yend,float x)         
{
	while(1)
	{
		LCD_SetCursor(Xstart, Ystart);
		LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
		LCD_WriteRAM(TextColor);
		Xstart -=(float)0.1;
		Ystart -=x;
		if(Xstart <= Xend)
		{
			break;
		}
	}
}
void LCD_clearLine_1(float Xstart, float Ystart, float Xend, float Yend,float x)             
{
	while(1)
	{
		LCD_SetCursor(Xstart, Ystart);
		LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
		LCD_WriteRAM(White);
		Xstart -=(float)0.1;
		Ystart -=x;
		if(Xstart <= Xend)
		{
			break;
		}
	}
}

代码中可以发现,输入参数由整型修改成的浮点型,目的是为在画线时像素点密一点,另外还增加了,线画到的终点坐标,还需要增加float x的值,这个怎么来的?和之前的计算方式一样,计算出终点坐标,让后将其分成若干等份,x相当于每等份的值。

时间通过RTC实现,也比较简单。

实现效果如下:

代码链接:

【蓝桥杯最新板】蓝桥杯嵌入式液晶上实现电子时钟资源-CSDN文库

吾芯电子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[WiFi] WiFi安全加密WEP Vs WPA Vs WPA2 Vs WPA3整理

WiFi安全标准时间线 WEP&#xff08;Wired Equivalent Privacy&#xff09; WEP最早于1997年推出&#xff0c;是为了保护无线网络上的数据通信而设计的。当时&#xff0c;Wi-Fi技术还处于起步阶段&#xff0c;人们开始意识到需要一种安全协议来防止未经授权的访问和窃听。WEP被…

基于微信小程序+Springboot+Vue社区超市管理系统的分析与设计(源码+lw+讲解部署等)

&#x1f497; 博主介绍✌ 3Dex&#xff08;全栈开发工程师&#xff09;&#xff0c;专注于4smile等项目的建设与优化&#xff0c;在软件开发与技术实现方面积累了丰富的经验。专注于Java、小程序、前端、Python等技术领域毕业项目实战&#xff0c;以及程序定制化开发。✌ 擅长…

亚信安全DeepSecurity完成与超云超融合软件兼容性互认

近日&#xff0c;亚信安全与超云数字技术集团有限公司&#xff08;以下简称“超云”&#xff09;联合宣布&#xff0c;亚信安全成功完成与超云超融合软件的产品兼容性互认证。经严格测试&#xff0c;亚信安全云主机安全DeepSecurity与超云FS5000增强型融合系统&#xff08;简称…

深入理解 Apache Shiro:安全框架全解析

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…

《大宋豪侠传》客户端源码 + 服务端源码 + 工具源码 + 资源,大小16.3G

《大宋豪侠传》客户端源码 服务端源码 工具源码 资源&#xff0c;大小16.3G 下载地址&#xff1a; 通过网盘分享的文件&#xff1a;【源码】《大宋豪侠传》客户端源码 服务端源码 工具源码 资源&#xff0c;大小16.3G 链接: https://pan.baidu.com/s/1lUf84LzXKB3iM7L-1P…

linux学习笔记01 基础命令

目录 创建 touch 创建文件 &#xff08;创建但是不打开&#xff09; vi / vim 创建文件 (创建一个文件并打开) mkdir 创建文件夹 切换目录 cd 查看 pwd 查看当前目录完整路径 ls 查看目录信息 dir 查看目录信息 ll 表示查看目标目录下的信息 ls -a 查看当前目录下的…

MVC基础——市场管理系统(三)Clean Architecture

文章目录 项目地址五、Clean Architecture5.1 user cage driven5.1.1创建CoreBusiness 5.2 创建UseCases5.2.1 创建CategoriesUseCases1. 创建VeiwCategoriesUseCase获取所有Cagegory 5.2.2. 实现ICategoryRepository接口3. 实现获取所有Category的方法4. 实现获取一个Cagegory…

人工智能-自动驾驶领域

目录 引言自动驾驶与人工智能的结合为什么自动驾驶领域适合发表文章博雅智信的自动驾驶辅导服务结语 引言 自动驾驶技术的崛起是当代交通行业的一场革命。通过结合先进的人工智能算法、传感器技术与计算机视觉&#xff0c;自动驾驶不仅推动了技术的进步&#xff0c;也使得未来…

Linux系统操作01|文件目录、常用命令

Linux系统操作教程2天快速入门linux项目搭建_哔哩哔哩_bilibili 目录 一、文件和目录 1、Linux和Windows文件系统的区别 2、主要目录 二、Linux常用命令的基本使用 1、cd&#xff1a;切换文件夹 2、ls&#xff1a;查看当前目录下的内容 3、mkdir&#xff1a;创建文件夹…

VMware Workstation Pro 17 下载 以及 安装 Ubuntu 20.04.6 Ubuntu 启用 root 登录

1、个人免费版本 VMware Workstation Pro 17 下载链接怎么找&#xff1f;直接咕咕 VMware 找到如下链接。链接如下&#xff1a;Workstation 和 Fusion 对个人使用完全免费&#xff0c;企业许可转向订阅 - VMware 中文博客 点进去链接之后你会看到如下&#xff0c;注意安装之后仍…

快速将请求头构建成json结构

1.背景 有时候我们要爬虫(组包)请求一个资源数据,需要构建与原始请求一样的请求头,从浏览器复制过来的请求头,有很多,如果一个一个的配置成json有点慢,那么如何快速构建呢? 今天就使用正则表达式的方式实现 正则表达式实现快速将请求头构建成json结构 将冒号后边的换行符去掉…

Cobaltstrike

Cobaltstrike 資源JFrame 图形用户界面mxGraph数据请求stageless beacon http通信协议 数据加密过程分析Scalar 运行时Aggressor Script Event Queue 客户端通讯登录验证 用户管理外部监听添加監聽Beacon 内容构建 PE解析Payload Generator负载生成Dialog动作选择Listener动作G…

Noise2Noise图像去噪

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

基于SpringBoot和PostGIS的全球城市信息管理实践

目录 前言 一、业务需求介绍 1、功能思维导图 二、业务系统后台实现 1、Model层实现 2、业务层的实现 3、控制层的实现 三、前端管理业务的实现 1、全球城市列表的实现 2、详情页面实现 3、实际城市定位 四、总结 前言 在全球化和信息化时代背景下&#xff0c;城市作…

Cocos Creator 开发微信小游戏分包

作为以后端选手,吭哧吭哧的好不容易用cocos开发了一款小游戏, 上传的时候发现包太大了,主包超过4M; 我不是选小游戏分包了吗? 怎么还超? 分包的方案: 功能裁剪资源压缩主包迁移WASM分离 1. 功能裁剪 项目设置中引擎管理器中 功能裁剪里面有很多个引擎,我们剔除掉没用的引…

计算机网络之NAT、代理服务、内网穿透、内网打洞

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络之NAT、代理服务、内网穿透、内网打洞 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论…

【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究

文章目录 概述&#xff1a;摘要1. 引言2. 相似误差订正算法&#xff08;核心&#xff09;3. 订正实验3.1 相似因子选取3.2 相似样本数试验3.3 时间窗时长实验 4. 订正结果分析4.1 评估指标对比4.2 风速曲线对比4.3 分风速段订正效果评估4.4 风速频率统计 5. 结论与讨论 概述&am…

【Rust 学习笔记】Rust 基础数据类型介绍——数组、向量和切片

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 博客内容主要围绕&#xff1a; 5G/6G协议讲解 高级C语言讲解 Rust语言讲解 文章目录 Rust 基础数据类型介绍——数组、向量和切片一、数组、向量和…

爬虫学习案例3

爬取美女图片 优美图库地址 一页图片 安装依赖库文件 pip install selenium requests beautifulsoup4import time import requests import random from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.service import Service fr…

ubuntu检测是否已安装nvidia驱动以及产品类型

nvidia-sminvidia-smi 是 NVIDIA 提供的一个命令行工具&#xff0c;用于查看和管理 NVIDIA GPU 的状态。当你运行 nvidia-smi 命令时&#xff0c;它会显示当前系统中所有 NVIDIA GPU 的状态信息&#xff0c;包括 GPU 的使用率、温度、内存使用情况等。 有8个GPU nvcc -V查看c…