进阶——十六届蓝桥杯嵌入式熟练度练习(按键+LCD)

高亮(一)

声明

复制代码
 char buf[21];
 unsigned char upled=0x04;
 uint8_t key_val;
 uint8_t key_down,key_up,key_old;
 uint32_t key_time;
 uint8_t key_temp,key_flag;
 uint8_t line_flag;

按键代码

复制代码
void key_proc(void)
{
key_val=key_scan();
	key_down=key_val&(key_val^key_old);
	key_up=~key_val&(key_val^key_old);
	key_old=key_val;
if(key_down==4)
{
     line_flag++;
	if(line_flag==4)
	{line_flag=1;}
}
}

lcd高亮显示代码

注意:此段代码if-else的括号范围

复制代码
void lcd_proc(void)
{  	
	
	if(line_flag==1)
	{LCD_SetTextColor(Green);}
	else
	{LCD_SetTextColor(Black);}
LCD_DisplayStringLine(Line1,(uint8_t*)("11111111111"));
	if(line_flag==2)
	{LCD_SetTextColor(Green);}
	else
	{LCD_SetTextColor(Black);}	
LCD_DisplayStringLine(Line2,(uint8_t*)("22222222222"));	
	if(line_flag==3)
	{LCD_SetTextColor(Green);}
	else
	{LCD_SetTextColor(Black);}
LCD_DisplayStringLine(Line3,(uint8_t*)("33333333333"));
	
}

高亮(二)

复制代码
 LCD_Clear(White);
  LCD_SetBackColor(White);
  LCD_SetTextColor(Black);

lcd

复制代码
void lcd_proc(void)
{  	
	
	if(line_flag==1)
	{LCD_SetBackColor(Yellow);}
	else
	{LCD_SetBackColor(White);}
LCD_DisplayStringLine(Line1,(uint8_t*)("11111111111"));
	if(line_flag==2)
	{LCD_SetBackColor(Yellow);}
	else
	{LCD_SetBackColor(White);}	
LCD_DisplayStringLine(Line2,(uint8_t*)("22222222222"));	
	if(line_flag==3)
	{LCD_SetBackColor(Yellow);}
	else
	{LCD_SetBackColor(White);}
LCD_DisplayStringLine(Line3,(uint8_t*)("33333333333"));
	
}

多页码

声明

复制代码
  LCD_Clear(White);
  LCD_SetBackColor(White);
  LCD_SetTextColor(Black);
LCD_DisplayStringLine(Line3,(uint8_t*)("w  e  l  c  o  m  e"));

lcd代码

复制代码
void lcd_proc(void)
{  	if(lcd_page==1)
	{
		LCD_DisplayStringLine(Line3,(uint8_t*)("w  e  l  c  o  m  e"));
	}
	if(lcd_page==2)
	{
	if(line_flag==1)
	{LCD_SetBackColor(Yellow);}
	else
	{LCD_SetBackColor(White);}
LCD_DisplayStringLine(Line1,(uint8_t*)("11111111111"));
	if(line_flag==2)
	{LCD_SetBackColor(Yellow);}
	else
	{LCD_SetBackColor(White);}	
LCD_DisplayStringLine(Line2,(uint8_t*)("22222222222"));	
	if(line_flag==3)
	{LCD_SetBackColor(Yellow);}
	else
	{LCD_SetBackColor(White);}
LCD_DisplayStringLine(Line3,(uint8_t*)("33333333333"));
	}
	
}

按键

复制代码
void key_proc(void)
{
key_val=key_scan();
	key_down=key_val&(key_val^key_old);
	key_up=~key_val&(key_val^key_old);
	key_old=key_val;
	if(key_down==3)
{  
	LCD_Clear(White);
     lcd_page++;
	if(lcd_page==3)
	{lcd_page=1;}
}
if(key_down==4)
{
     line_flag++;
	if(line_flag==4)
	{line_flag=1;}
}
}
相关推荐
杨逢昌工厂6S管理22 分钟前
116——杨逢昌:归位三定闭环法的旺季轻量化执行方案与工具清单
经验分享·笔记·职场和发展·学习方法
xuxigifxfh39 分钟前
面试记录2026
java·mysql·面试·职场和发展
HRTOS1 小时前
HRTOS 内核 BUG 修复:任务等待对象未初始化导致的异常唤醒问题
单片机·嵌入式硬件·算法·51单片机
aqiu1111111 小时前
蓝桥杯省一学习计划:每天 2 小时,12 周高效备赛
学习·职场和发展·蓝桥杯
List<String> error_P2 小时前
UART串口通信示波器波形测试
嵌入式硬件·示波器
番茄灭世神2 小时前
PN学堂GD32教程第12篇——SPI与Nor Flash
c语言·stm32·单片机·嵌入式·gd32·总线协议
狂奔蜗牛(bradley)2 小时前
EtherCAT 主站拓扑判定的三级防护:从去抖到振荡检测
人工智能·嵌入式硬件·fpga开发·架构
HRTOS2 小时前
HRTOS 测试框架完善:为中断验证增加中断来源校验机制
经验分享·单片机·嵌入式硬件·51单片机
FPC_小西2 小时前
您知道嵌入式开发中八大常用接口与总线有哪些吗?
人工智能·单片机·嵌入式硬件·pcb工艺·hdi高密度互联
逐光者9333 小时前
STM32项目——秒表
stm32·单片机·嵌入式硬件