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

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

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

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

实现过程:

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

吾芯电子

相关推荐
.ZGR.16 小时前
蓝桥杯高校新生编程赛第二场题解——Java
java·算法·蓝桥杯
嵌入式老牛5 天前
DrvBsp_I2C驱动_RTC(一)
单片机·嵌入式硬件·rtc
云青山水林6 天前
零基础如何准备蓝桥杯
蓝桥杯
嵌入式老牛6 天前
【无标题】
单片机·嵌入式硬件·rtc
超级大只老咪7 天前
蓝桥杯知识点大纲(JavaC组)
java·算法·蓝桥杯
遇印记7 天前
2026蓝桥杯
职场和发展·蓝桥杯
Felven7 天前
统信系统下设置RTC时间
linux·rtc·1024程序员节
这个世界的真神8 天前
【每日算法】 洛谷 P12341 【[蓝桥杯 2025 省 A/Python B 第二场] 消消乐】 2025.10.26
python·算法·蓝桥杯
Java_小白呀9 天前
第十四届蓝桥杯大赛软件赛国赛Java大学C组(部分)
职场和发展·蓝桥杯·1024程序员节
.ZGR.11 天前
蓝桥杯高校新生编程赛第一场题解——Java
java·算法·蓝桥杯