LCD的介绍和使用

LCD的基本原理

LCD(Liquid Crystal Display,液晶显示器)利用液晶材料的光电特性实现图像显示。液晶分子在电场作用下改变排列方向,从而调制背光源的透光率,通过彩色滤光片形成彩色图像。

主要结构组成

  • 背光模块:提供均匀光源,常见为LED背光。
  • 液晶层:由两片玻璃基板夹持,内含液晶分子。
  • 偏光片:控制光线偏振方向,与液晶分子配合实现明暗变化。
  • TFT阵列(薄膜晶体管):每个像素对应一个TFT,精确控制电压以驱动液晶。
  • 彩色滤光片:生成红、绿、蓝三原色,组合成完整色彩。

工作特点

  • 低功耗:仅需调节液晶分子方向,无需主动发光。
  • 薄型化:结构紧凑,适用于便携设备。
  • 依赖背光:对比度和视角受限,需通过技术改进(如IPS面板)优化。

技术分类

  • TN(Twisted Nematic):响应快但视角窄,成本低。
  • IPS(In-Plane Switching):视角广,色彩准确,用于高端显示器。
  • VA(Vertical Alignment):高对比度,介于TN与IPS之间。

LCD广泛应用于电视、显示器、手机等设备,虽面临OLED竞争,但在成本与寿命上仍具优势。

我们模拟使用的电路图中LCD引脚同时关联着LED;因此两种功能同时使用会出现干扰;因为使用74HC573控制;因此我们可以通过控制74HC573使能端来关闭LED造成的干扰。!!!!

LCD初始化工程我们已经放在驱动文件;可以完成相关功能:如有需要乐意留言(只有F401RB和G4芯片

1:现在我们先带大家添加相关工程:按照图片添加到相关位置

2:在生成的Keil中添加文件;找到文件存放的地方然后添加

在.c修改头文件名字和.h文件一样

使用LCD简述教程:

在主函数引用头文件;然后初始化;引入几个相关函数介绍:

	LCD_Init();    LCD 初始化
	LCD_Clear(Black);  以什么颜色清屏 
	LCD_SetBackColor(Black);   设置黑色背景
    LCD_SetTextColor(White);   设置白色字体
   
   打印内容在LCD位置
	LCD_DisplayStringLine(Line0,(unsigned char *)"   "); 

可以自己选择颜色。

今日实验:

  1. LCD初始化,正确添加初始化文件到目标工程;

  2. 在实验五的基础上完成该实验,当按键控制LED灯打开时,LCD显示屏第三行显示“LED ON”,当按键控制LED关闭时,LCD显示屏第四行显示“LED OFF”,当按键控制蜂鸣器打开时,LCD显示屏第五行显示“BUZZ ON”,当按键控制LED关闭时,LCD显示屏第六行显示“BUZZ OFF”;

这里我们只提供主函数代码;具体代码在代码仓:

	LCD_SetBackColor(Black);
	LCD_SetTextColor(White);
	LCD_DisplayStringLine(Line0,(unsigned char *)"********************");
	LCD_DisplayStringLine(Line9,(unsigned char *)"********************");
	if(KeyFlag==1)
		{
			KeyFlag=0;
			
			if(KEY_Value==1)
			{
				if(Num<100)
				{
				LED1_ON;
				LED_Close();
				LCD_DisplayStringLine(Line3,(unsigned char *)"*     LED1_ON      *");
				
				}
				else
				{
					HAL_GPIO_WritePin(GPIOC,GPIO_PIN_9,GPIO_PIN_RESET);
					HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
	        HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
	        HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
				  LCD_DisplayStringLine(Line3,(unsigned char *)"*     LED2_ON      *");
				}
					sprintf((char *)str,"   Value:%d    ",Num);
				  LCD_DisplayStringLine(Line2,str);
				
			}
			else if(KEY_Value==2)
			{
			 LED1_OFF;
		   LED_Close();
			 LCD_DisplayStringLine(Line4,(unsigned char *)"*     LED1_OFF     *");
				
			}
			else if(KEY_Value==3)
			{
			 BUZZ_ON;
			 LCD_DisplayStringLine(Line5,(unsigned char *)"*     BUZZ_ON      *");
				
			}
		
			else if(KEY_Value==4)
			{
			 BUZZ_OFF;
			 LCD_DisplayStringLine(Line6,(unsigned char *)"*     BUZZ_OFF     *");
			}	
		
		
		
		}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值