进阶——十六届蓝桥杯嵌入式熟练度练习(按键+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;}
}
}
相关推荐
恒锐丰小吕14 分钟前
无锡黑锋 HF4004 低噪声电荷泵DC-DC转换器技术解析
嵌入式硬件·硬件工程
星一工作室21 分钟前
STM32项目分享:基于单片机的智能宠物玩具的设计
stm32·单片机·嵌入式硬件
牛客企业服务24 分钟前
AI面试监考:破解在线面试作弊难题
人工智能·面试·职场和发展
up向上up1 小时前
基于51单片机数字频率计仿真设计
单片机·嵌入式硬件·51单片机
LYFlied1 小时前
【每日算法】LeetCode 46. 全排列
前端·算法·leetcode·面试·职场和发展
SystickInt2 小时前
32 RTC实时时钟-独立定时器
stm32·单片机·嵌入式硬件
三佛科技-187366133972 小时前
智能豆芽机单片机方案开发
单片机·嵌入式硬件
就是蠢啊3 小时前
51单片机——ADC数模转换实验
单片机·嵌入式硬件·51单片机
LYFlied3 小时前
【每日算法】131. 分割回文串
前端·数据结构·算法·leetcode·面试·职场和发展
迅为电子4 小时前
释放多屏潜能:迅为RK3588开发板Android多屏同显开发完全指南
嵌入式硬件·rk3588开发板·多屏同显开发