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

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

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

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

实现过程:

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

吾芯电子

相关推荐
my_realmy6 小时前
蓝桥杯真题_小蓝和小桥的讨论
java·python·算法·职场和发展·蓝桥杯·intellij-idea
三歪爱三玖7 小时前
【蓝桥杯】单片机设计与开发,中断系统,外部中断(下)
单片机·嵌入式硬件·蓝桥杯
@小张要努力10 小时前
第十四届蓝桥杯国赛电子类单片机学习记录(客观题)
单片机·学习·蓝桥杯
旧物有情12 小时前
蓝桥杯历届真题 填充#贪心算法
贪心算法·蓝桥杯
ChoSeitaku18 小时前
NO.58十六届蓝桥杯备战|基础算法-枚举|普通枚举|二进制枚举|铺地毯|回文日期|扫雷|子集|费解的开关|Even Parity(C++)
c++·算法·蓝桥杯
藍海琴泉18 小时前
蓝桥杯经典题解:班级活动分组问题的深度解析与优化实现
职场和发展·蓝桥杯
chen_song_18 小时前
WebRTC中音视频服务质量QoS之FEC+NACK调用流程
udp·音视频·webrtc·rtc·h264·nack·fec
wen__xvn18 小时前
每日一题洛谷P10899 [蓝桥杯 2024 省 C] 劲舞团c++
开发语言·c++·蓝桥杯
李二。1 天前
备赛蓝桥杯之第十六届模拟赛2期职业院校组第七题:企业微信会议助手(第一问)
职场和发展·蓝桥杯
এ旧栎1 天前
蓝桥与力扣刷题(蓝桥 蓝桥骑士)
java·数据结构·算法·leetcode·蓝桥杯·二分·学习和成长