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

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

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

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

实现过程:

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文库

吾芯电子

相关推荐
BingLin-Liu2 小时前
蓝桥杯备考:搜索算法之排列问题
算法·职场和发展·蓝桥杯
计算机小白一个2 小时前
蓝桥杯 Java B 组之岛屿数量、二叉树路径和(区分DFS与回溯)
java·数据结构·算法·蓝桥杯
Trouvaille ~8 小时前
【C++篇】树影摇曳,旋转无声:探寻AVL树的平衡之道
数据结构·c++·算法·蓝桥杯·计算机科学·平衡二叉树·avl
BingLin-Liu10 小时前
蓝桥杯备考:搜索算法之枚举子集
算法·蓝桥杯·深度优先
YYJ333_33316 小时前
蓝桥杯 r格式(高精度*低精度)
c++·算法·蓝桥杯
夏天的阳光吖1 天前
C++蓝桥杯基础篇(四)
开发语言·c++·蓝桥杯
查理零世1 天前
【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python
python·算法·蓝桥杯
Black蜡笔小新1 天前
AI大模型驱动的智能音视频通信:视频通话SDK工具EasyRTC在嵌入式设备中的应用探索
人工智能·语言模型·大模型·音视频·webrtc·rtc
区区一散修2 天前
蓝桥杯 2.基础算法
算法·蓝桥杯
Ronin-Lotus2 天前
蓝桥杯篇---IAP15F2K61S2串口
单片机·嵌入式硬件·职场和发展·蓝桥杯·c·iap15f2k61s2