news 2026/4/16 12:55:56

数码管、点阵屏、OLED和LCD屏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数码管、点阵屏、OLED和LCD屏

1、分段式显示器件——数码管

原理:共阴极,让a,b,g,c,d输出高电平,数码管上面可以显示出一个3

2、分段式显示器件——段码屏

理解上来说就是定制图案的数码管,你可以定制一些你下个要显示的图案,然后在驱动哪某些段点亮从而显示目标图形

3、LED点阵屏

核心原理是通过控制大量LED(发光二极管)的亮灭组合来显示图形、文字或数字。它本质上是一个二维的像素阵列,每个LED就是一个像素点,通过电子扫描的方式逐行或逐列快速刷新,利用人眼的视觉暂留效应形成稳定的图像。

例如我想要控制第一行第一列的点 点亮,然后第一列输出低电平,第二列输出高电平即可。

4、0.96英寸I2C/SPI接口OLED屏

  • 分辨率:128×64(128列,64行);

每一个点都代表一个像素,可以点亮和不点亮该点,常见的OLED一般有8行或者4行,8行的每一个字符是8*8个像素点,一般只支持英文和极简单的中文,4行的每一个字符是16*16个像素点,基本上就可以支持大部分中文了。

//A unsigned char font_A[8] = { 0x18, // 00011000 0x24, // 00100100 0x42, // 01000010 0x42, // 01000010 0x7E, // 01111110 0x42, // 01000010 0x42, // 01000010 0x42 // 01000010 }; //中 unsigned char hanzi_zhong[] = { 0x01, 0x00, // 0000000100000000 0x01, 0x00, // 0000000100000000 0x21, 0x08, // 0010000100001000 0x3F, 0xFC, // 0011111111111100 0x21, 0x08, // 0010000100001000 0x21, 0x08, // 0010000100001000 0x21, 0x08, // 0010000100001000 0x21, 0x08, // 0010000100001000 0x21, 0x08, // 0010000100001000 0x3F, 0xF8, // 0011111111111000 0x21, 0x08, // 0010000100001000 0x01, 0x00, // 0000000100000000 0x01, 0x00, // 0000000100000000 0x01, 0x00, // 0000000100000000 0x01, 0x00, // 0000000100000000 0x01, 0x00 // 0000000100000000 }; /** * @brief 显示单个字符(8×16点阵) * @param x:起始列(0~127) * @param y:起始行(0~7,每字符占2行) * @retval 无 */ void OLED_ShowChar(uint8_t x, uint8_t y) { uint8_t i; OLED_SetPos(x, y); // 显示上半部分(第1页) for(i=0; i<8; i++) { OLED_SendData(hanzi_zhong[i]); } OLED_SetPos(x, y+1); // 显示下半部分(第2页) for(i=8; i<16; i++) { OLED_SendData(hanzi_zhong[i]); } }

5、LCD屏

LCD+电阻屏

通信方式,按复杂度排序:
1. **SPI** - 最简单(4-6线,低速,小屏)
2. **I2C** - 更简单(2线,超低速,极小屏)
3. **FSMC** - 高速版8080(STM32专有,内存映射)
4. **RGB** - 直接驱动(高速,无缓冲,实时)

6、OLED和LCD发光原理

LCD屏幕:依赖背光层发光。它就像一块复杂的“百叶窗”(液晶层),后面放着一个常亮的大手电筒(背光层)。显示黑色的原理:当需要显示黑色时,它就“关上小叶片”,把手电筒的光挡住。但因为手电筒一直亮着,光不可能被完全挡死,所以你看到的黑色是“灰黑色”,不那么纯粹,尤其在暗处看更明显。

OLED屏幕:自发光。每个像素点,都是一个独立的、会自己发光的小灯泡(有机发光二极管)。显示黑色的原理:当需要显示黑色时,对应位置的那个“小灯泡”直接关闭,完全不发光。所以它显示的黑色是真正的、纯粹的黑色。

LCD屏像素组成:

OLED屏像素组成:

7、颜色编码规则

(1)RGB565(颜色深度16位)

16位 = 5位红 + 6位绿 + 5位蓝

二进制:RRRRR GGGGGG BBBBB

十进制:红色0-31,绿色0-63,蓝色0-31

总颜色数:32×64×32 = 65,536色

(2)RGB888(24位)-真彩色

24位 = 8位红 + 8位绿 + 8位蓝

二进制:RRRRRRRR GGGGGGGG BBBBBBBB

十进制:每种颜色0-255(256级)

总颜色数:256×256×256 = 16,777,216色

8、电容屏和电阻屏

一个完整的触摸显示屏 = 显示面板(LCD/OLED) + 触摸检测层(电阻/电容)

电阻触摸屏(图中屏幕的类型)

工作原理:两层透明的导电薄膜(ITO层),中间有微小间隔。当你按压时,两层接触,通过测量X/Y轴的电压变化来计算触摸位置

特点

  • 可被任何物体(手指、笔、手套)按压操作
  • 精度高,成本低
  • 有物理按压感,需要一定压力
  • 表面为柔性塑料,容易划伤

电容触摸屏(现代手机采用)

工作原理:表面是一层玻璃,涂有透明导电层(如ITO)。当人体(导电体)触摸时,引起局部电场变化,通过检测边缘电极的电流变化定位

特点

  • 只能被导电物体(手指、专用电容笔)操作
  • 支持多点触控
  • 表面为钢化玻璃,硬度高
  • 无需按压,只需轻触

电阻屏支持多点触摸吗?

电阻屏通过两层导电薄膜接触产生单个接触点的电压信号。当两个点同时按压时,系统会检测到一个"等效中点"的电压值,无法准确区分两个独立触点。这就像用两根手指同时按压一个弹簧秤,指针只会显示两个力的平均值,而无法分别测量每个手指的压力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 3:27:42

大模型和机器学习

一、引言&#xff1a;大模型的火爆与认知的混乱2022年&#xff0c;ChatGPT的横空出世让大模型技术从学术圈走向了大众视野。短短三年时间&#xff0c;大模型已经渗透到内容创作、代码编写、智能客服、企业知识库等多个领域。据《2025年全球大模型产业报告》显示&#xff0c;全球…

作者头像 李华
网站建设 2026/4/11 18:47:13

35 岁程序员拒绝被裁员!吃透这项技能,轻松完成职场逆袭

一、35 岁老周的逆袭&#xff1a;从 “被优化” 到 “被争抢” “35 岁生日刚过&#xff0c;我就收到了优化通知”—— 这是老周去年的遭遇。做了 12 年 Java 开发的他&#xff0c;每天重复着 CRUD 工作&#xff0c;薪资卡在 25K 多年没涨&#xff0c;最终成了部门 “优化名单…

作者头像 李华
网站建设 2026/4/16 12:20:33

新加坡科技设计大学:让AI用不同语言“思考“,创意输出竟然翻倍!

这项由新加坡科技设计大学研究团队完成的突破性研究发表于2025年1月的arXiv预印本平台&#xff0c;论文编号为2601.11227v1。对于想要深入了解技术细节的读者&#xff0c;可以通过该编号在学术数据库中查询完整论文。你有没有发现这样一个有趣现象&#xff1a;当你用中文思考问…

作者头像 李华
网站建设 2026/4/16 12:29:07

34. C++ 11新特性(1)

1. 对象初始化方法2. auto & decltype & 返回类型后置 & 模板别名

作者头像 李华
网站建设 2026/4/9 2:05:17

K6 性能测试教程:入门介绍,环境搭建和编写第一个 K6 测试脚本

K6 性能测试教程&#xff1a;入门介绍&#xff0c;环境搭建和编写第一个 K6 测试脚本 这篇文章将带您进入 K6 性能测试的世界。博文内容涵盖了 K6 性能测试的入门知识、环境搭建步骤&#xff0c;以及如何编写您的第一个测试脚本。无论您是初学者还是有经验的性能测试专业人员&…

作者头像 李华