进阶——十六届蓝桥杯嵌入式熟练度练习(按键+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;}
}
}
相关推荐
ifndef11 天前
GPIO同时复用(ADC与TIM)
mcu
✎ ﹏梦醒͜ღ҉繁华落℘14 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u1521096484914 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd84510150014 天前
RS485 总线详解
单片机·嵌入式硬件
dayuOK630714 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
半条-咸鱼14 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
牛根生同志14 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
枫子有风14 天前
LLM-Agent智能体(大厂面试常问)
面试·职场和发展·llm·agent
wohoo_wangzi14 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
重生之后端学习14 天前
Java入门
java·开发语言·职场和发展