1. LCD1602 字符液晶模块
一、基础规格参数
- 显示规格 :
16×2字符,即 2 行、每行最多显示 16 个字符,单字符点阵为5×7 点阵,总计可同时显示 32 个字符。 - 字符资源
- 内置标准 ASCII 码字符集(数字、大小写英文字母、常用标点符号);
- 内置多组特殊符号(运算符、希腊字母等);
- 预留 8 组 CGRAM 自定义字符存储空间,可通过编程自定义图标 / 特殊符号;
- ⚠️原生不支持中文,如需汉字需改用 12864 等带字库液晶屏(图中第二列第一个即为 12864 点阵屏)。
- 硬件主控 :搭载HD44780兼容驱动芯片,是行业通用标准控制器,51 单片机、STM32 等各类 MCU 均有成熟驱动例程。
- 电气参数 :常规工作电压5V DC,部分宽压版本支持 3.3V;标配 16Pin 引脚(14Pin 无背光版本)。
二、LCD1602 字符液晶引脚与应用电路详解📌
一、引脚功能梳理
| 引脚编号 | 引脚名 | 功能说明 |
|---|---|---|
| 1 | VSS | 电源地,接 GND (0V) |
| 2 | VDD | 工作电源正极,额定 4.5~5.5V,常规 5V 供电 |
| 3 | VO | 液晶对比度调节端,电压越低屏幕越深,图中由 10K 电位器分压调压 |
| 4 | RS | 寄存器选择:0=指令寄存器(写配置命令) ,1=数据寄存器(写显示字符) |
| 5 | RW | 读写控制:0=向LCD写入 ,1=从LCD读取状态 ;本电路直接接地,固定只写模式 |
| 6 | E | 使能端,高电平数据保持,下降沿锁存数据、执行指令 |
| 7~14 | D0~D7 | 8 位并行数据总线 ,传输指令 / 显示数据 |
| 15 | A | 背光阳极,接 VCC 点亮背光 |
| 16 | K | 背光阴极,接 GND |
二、原理图接线分析
- 供电回路
- 主控电源:VSS→GND、VDD→5V (VCC),为液晶驱动芯片供电;
- 背光电源:A 接 VCC、K 接 GND,背光常亮。
- 对比度电路 VO 引脚接 10K 可调电位器,电位器两端分别跨接 VCC 与 GND,旋转旋钮改变 VO 引脚分压,实现屏幕明暗调节。
- 控制与数据口
- RW 接地,省去读操作,简化硬件与程序;
- RS、E 外接单片机 IO 口,D0~D7 全部引出,采用8 位并行驱动方案。
三、LCD1602 内部结构框图
整体分为控制器、DDRAM、CGROM+CGRAM、液晶显示屏四大模块,数据流向:单片机→控制器→DDRAM→字模库→屏幕。

1. 控制器(核心主控)
内含控制电路 + AC 地址计数器
- 控制电路:接收单片机 RS/RW/E+D0~D7 引脚发来的指令 / 数据,统筹全芯片读写、显示、光标控制;
- AC(地址计数器):自动记录 DDRAM 当前光标地址,写入字符后地址自动 + 1,控制光标移动位置。
2. DDRAM(显示数据 RAM,40×2 字节)💡

- 存储空间:2 行 ×40 个字节单元,物理每行 40 格,屏幕仅显示前 16 格,超出 16 位可配合移屏指令实现滚动显示;
- 作用:存放要显示字符的 ASCII 码;向 DDRAM 对应地址写入字符编码,LCD 就会在对应位置调出字模并点亮屏幕。
- 第 1 行首地址:
0x80,第 2 行首地址:0xC0。
- 第 1 行首地址:
3. CGROM + CGRAM(字模存储区)
CGROM(固化字模 ROM)
出厂内置国标 ASCII、英文字符点阵(5×8 点阵),绝大多数数字、字母、符号直接从这里调取点阵,不可改写。
CGRAM(自定义字符 RAM)
共 64 字节,用户可自行写入 5×8 点阵数据,自定义 8 个特殊图标 / 汉字,用来显示箭头、简易符号。
4. 液晶屏幕(16×2)
物理显示区域:2 行,每行固定显示 16 个字符 ; 从CGROM/CGRAM 取出点阵数据后 ,驱动液晶点阵点亮 ,最终呈现字符。
四、时序结构
该时序为并行写入时序(RW=0 固定写模式),E 下降沿锁存数据,是单片机驱动 LCD1602 软件延时的依据。
一、4 根信号线含义

| 引脚 | 电平规则 |
|---|---|
| RS | 0=写入指令,1=写入显示数据 |
| R/W | 写操作全程保持低电平 0(本电路硬件接地) |
| E | 使能引脚:先拉高、维持脉冲宽度、再拉低;下降沿(E 由 1→0)LCD 锁存数据并执行 |
| DB0~DB7 | 8 位并行数据总线,E 高电平期间数据必须稳定有效 |
二、时序参数释义
| 参数 | 名称 | 作用说明 |
|---|---|---|
| tSP1 | RS/RW 建立时间 | RS、RW 电平要提前 E 上升沿稳定,保证控制信号先就绪 |
| tSP2 | 数据建立时间 | DB0~DB7 数据要提前 E 变高前稳定,图中标注 Valid Data 为有效数据区间 |
| tR | E 上升沿延时 | E 从低电平跳变至高电平的过渡时间 |
| tPW | E 高电平脉冲宽度 | E 保持高电平的最短时间,数据在这段区间必须稳定 |
| tF | E 下降沿过渡时间 | E 从高变低的跳变时间,下降沿触发 LCD 锁存 |
| tHD1 | RS/RW 保持时间 | E 变低后,RS/RW 仍需维持原有电平一段时间 |
| tHD2 | 数据保持时间 | E 下降后,总线数据继续保持稳定 |
| tC | 完整周期 | 单次写操作总耗时 |
三、软件编程标准步骤(对应时序)
- 配置 RS:写指令置 0、写字符置 1;RW 固定拉低;
- 送出 D0~D7 待发送数据;
- 拉高 E 引脚,延时满足
tPW脉宽; - 拉低 E 引脚(下降沿锁存,核心动作);
- 等待
tHD保持时间,结束单次写入。
五、LCD1602 标准操作流

一、上电初始化流程(4 条固定指令,必须依次发送)

| 指令码 | 功能释义 |
|---|---|
0x38 |
功能设置:8 位并行数据口、2 行显示模式、5×7 字符点阵,是硬件基础配置 |
0x0C |
显示控制:屏幕整体开启,隐藏光标、关闭光标闪烁 ;如需显示光标可改用0x0E,闪烁光标0x0F |
0x06 |
输入模式:写入字符后光标地址自动 + 1、屏幕画面保持不动 ;若设画面左移用0x07 |
0x01 |
清屏指令:清空 DDRAM 全部显示数据,光标复位到第一行首地址0x00 |
💡 注意:每条指令发送后需要适当延时,等待 LCD 内部执行完成。
二、字符显示操作步骤
- 定位光标地址 :发送指令
0x80 | AC0x80:DDRAM 地址指令标志位;- AC 为目标地址:第 1 行首地址 AC=0x00(0x80),第 2 行首地址 AC=0x40(0xC0) ;例:第 1 行第 3 格 →
0x80+0x02=0x82。
- 循环发送显示数据 :拉高 RS 引脚(RS=1 代表写数据),逐个发送待显示字符的 ASCII 码
- 受初始化指令
0x06配置影响,每写完 1 个字符,光标自动后移 1 位,无需重复设置地址。
- 受初始化指令

2.直流电机驱动
一、 核心定义与工作原理

直流电机(DC Motor)是将直流电能转换为机械能的装置,核心原理基于 "通电导体在磁场中受电磁力作用"。
- 正反转控制:通过改变电极接线方向即可轻松实现,正接正转、反接反转,控制逻辑简单,这也是它在电子制作中被广泛使用的原因。
- 核心结构:
- 定子:由永磁体构成,提供固定磁场;
- 转子:带线圈的转动部分,通电后产生磁场;
- 换向器 + 电刷:配合切换电流方向,保证转子持续向同一方向旋转。
二、电机驱动电路

一、大功率器件直接驱动
图中包含两种典型实现:ULN2003D 芯片驱动和单三极管驱动电路。
1. ULN2003D 驱动电路
- 核心器件 :ULN2003D 是一款达林顿管阵列芯片,内部集成了 7 路 NPN 型达林顿管,可直接放大单片机引脚的弱信号,驱动负载。
- 工作原理:单片机的 IO 口(如 P10-P15)输出信号到芯片输入端,芯片内部放大后,从 OUT 引脚输出大电流,驱动电机或蜂鸣器。
- 特点 :
- 无需额外设计分立元件电路,接线简单,自带续流保护;
- 只能实现电机的单向控制,无法直接控制正反转;
- 适合驱动小型直流电机、继电器、LED 等低压负载。
2. 单三极管(PNP)驱动电路
- 核心器件:PNP 三极管 Q1、续流二极管 D1、限流电阻 R1。
- 工作原理 :
- 当 IN 端为低电平时,三极管导通,电流从 VCC 经三极管、电机流向 GND,电机转动;
- 当 IN 端为高电平时,三极管截止,电机断电停止;
- 二极管 D1 为续流二极管,用于吸收电机断电时产生的反向感应电动势,保护三极管不被击穿。
- 特点 :
- 电路结构简单、成本低;
- 同样只能实现单向驱动,无法控制电机反转;
- 适合固定方向转动的场景(如风扇、小型水泵)。
二、H 桥驱动电路
这是最经典的电机正反转驱动方案,图中是由 4 个三极管组成的分立元件 H 桥。
- 核心结构:由 Q1、Q2(上桥臂 PNP 管)和 Q3、Q4(下桥臂 NPN 管)组成,呈 "H" 形分布,电机接在中间。
- 工作原理 :
- 正转:IN1 = 低、IN3 = 高,IN2 = 高、IN4 = 低 → Q1 和 Q4 导通,电流从 VCC→Q1→电机→Q4→GND,电机正转;
- 反转:IN2 = 低、IN4 = 高,IN1 = 高、IN3 = 低 → Q2 和 Q3 导通,电流从 VCC→Q2→电机→Q3→GND,电机反转;
- 刹车 / 停止:上下桥臂同时导通或同时截止,实现电机的制动或自由停止。
- 关键注意事项:必须避免 "同侧上下桥臂同时导通"(如 Q1 和 Q3 同时导通),否则会造成电源短路,烧毁器件。
- 特点 :
- 支持正反转控制,还可通过 PWM 信号实现调速;
- 分立元件方案调试较复杂,实际应用中多采用集成 H 桥芯片(如 L298N、L293D),简化接线和控制逻辑。
三、两种方案对比
| 驱动方式 | 控制能力 | 电路复杂度 | 成本 | 典型应用 |
|---|---|---|---|---|
| 直接驱动(ULN2003 / 单管) | 单向控制,仅能启停 / 调速 | 低 | 低 | 风扇、水泵、单向转动设备 |
| H 桥驱动 | 正反转控制 + 调速 | 中(分立元件)/ 低(集成芯片) | 中 | 智能小车、机器人、需要换向的设备 |
三、PWM介绍
一、PWM 是什么?

PWM(Pulse Width Modulation,脉冲宽度调制)是一种用数字信号模拟模拟量的技术。它通过控制一系列方波信号的 "导通时间占比",在有惯性的系统(比如电机、LED)中,等效出连续的电压 / 电流效果。
- 核心原理:方波信号只有高电平和低电平两种状态,但因为电机线圈、LED 的亮度有 "惯性",当开关频率足够快时,系统会响应其平均电压,而非单个脉冲。
- 典型应用:电机调速、LED 调光、开关电源、舵机控制等。
二、关键参数解析
PPT 里提到了三个核心参数,我们逐个说明:
-
频率(Frequency)
- 公式:
频率 = 1 / Ts(Ts 是一个完整周期的时间) - 含义:代表每秒 PWM 信号重复的次数。频率越高,电机转动 / LED 调光的 "顺滑度" 越好,人眼也看不到 LED 闪烁;但过高的频率会增加开关损耗。
- 举例:电机控制常用 1kHz-20kHz,LED 调光常用几百 Hz 以上(避免频闪)。
- 公式:
-
占空比(Duty Cycle)
- 公式:
占空比 = Ton / Ts(Ton 是高电平持续时间,Ts 是总周期) - 含义:高电平时间占整个周期的比例,是控制 "等效电压" 的核心。
- 举例:假设电源电压是 12V,占空比 50% 时,等效电压就是
12V × 50% = 6V;占空比 100% 就是满功率输出,0% 就是完全停止。
- 公式:
-
精度(Resolution)
- 含义:占空比的最小变化步距,代表能把占空比分成多少档。比如 8 位精度的 PWM,占空比可以分成 256 档(0~255),步距就是 1/256 ≈ 0.39%;16 位精度则可以分成 65536 档,调节更精细。
三、图中波形的含义
- 左图:展示了 SPWM(正弦波脉宽调制)的原理,通过调整脉冲宽度,让输出的平均电压 / 电流等效为一条正弦曲线,常用于电机驱动的变频控制。
- 右图 :标准 PWM 方波示意图,标注了一个周期内的
Ton(导通时间)、Toff(关断时间)和Ts(总周期),直观解释了占空比的计算方式。
四、产生PWM的方法

一、核心模型结构
硬件 PWM 的本质,是定时器计数器 + 比较器的组合:
- 计数器(定时自增): 定时器以固定频率自动加 1 计数,计数到最大值后自动清零,开始下一轮循环。
- 用户设置的比较值 : 你提前设置好一个 "阈值",比如图里的
60。 - 比较输出逻辑 :
- 当
计数器值 < 比较值时,输出低电平(0); - 当
计数器值 ≥ 比较值时,输出高电平(1)。
- 当
二、波形与参数解析
-
上方波形(计数器与比较值): 蓝色斜线是计数器的值,从 0 线性增长到最大值(图里是 100),然后归零;红色横线是用户设置的比较值(60)。
-
下方波形(PWM 输出): 计数器从 0 增长到 60 的这段时间,输出低电平;从 60 增长到 100 的这段时间,输出高电平,计数器归零后重复这个过程。
-
占空比计算(以图中为例): 计数器周期最大值为 100,比较值为 60, 占空比 = 高电平时间 / 总周期 = (100-60)/100 = 40% 也就是说,这个 PWM 信号的占空比是 40%。
-
改变占空比的方法: 只需要修改 "比较值" 即可:
- 减小比较值(比如改成 20):高电平时间变长,占空比升高;
- 增大比较值(比如改成 80):高电平时间变短,占空比降低。
3. AD/DA
AD:总而言之就是它会把电压变成内存中的一个数据
DA:就是把数据变成一个电压
然后用时序结构调用AD或者DA就行
一、XPT2046

一、基础定位
XPT2046 是四线电阻式触摸屏专用控制芯片,核心为 12 位逐次逼近型(SAR)ADC,通过 SPI 串行接口与主控单片机通信,广泛配套电阻触摸 LCD 屏使用。

二、核心硬件参数
- ADC 性能
- 分辨率:12 位
- 转换速率:最高 125KHz
- 电压规格
- I/O 电平范围:1.5V ~ 5.25V
- 典型工作电压:2.7V
- 内置 2.5V 精准参考电压源
- 电池监测输入量程:0~6V
- 功耗 关闭内部参考电压时,典型功耗<0.75mW,低功耗适配电池供电设备。
- 环境与封装
- 工作温度:-40℃ ~ +85℃
- 封装型号:TSSOP-16、QFN-16、VFBGA-48
- 兼容性 硬件引脚、寄存器时序完全兼容 ADS7846、TSC2046、AK4182A,可直接引脚替换。
三、核心功能
1. 触摸坐标与压力检测
- 两次 ADC 分压采样,计算触摸点 X/Y 轴坐标;
- 额外采样回路可计算按压压力大小(压力越大,两层导电膜接触电阻变化越大)。

2. 多通道辅助测量
依托内置 2.5V 基准电压,拓展 3 类测量能力:
- 辅助模拟输入(AUX):外接传感器电压采集;
- 片内温度传感:芯片自身温度检测;
- 电池电压监测(VBAT):0~6V 宽量程电池电量检测。
3. 通信接口
标准四线 SPI 通信(DCK 时钟、DIN 输入、DOUT 输出、CS 片选),搭配 BUSY 忙信号、PENIRQ 触摸中断引脚,按下屏幕可主动触发中断通知主控,减少轮询开销。
四、典型应用场景
- 工业电阻触摸显示屏、单片机人机交互屏(51/STM32/PIC 等)
- 手持仪器、便携设备触控面板
- 简易绘图板、触摸按键自制装置
- 小型设备温度、电池电压一体化监测采集
二、XPT2046 SPI 时序图完整解读
这是8 位指令输入、24 个 DCLK 时钟周期完成一次 ADC 转换的标准通信时序,无时钟延迟模式。

一、引脚信号定义
| 信号 | 作用 |
|---|---|
| \(\overline{\text{CS}}\) | 片选,低电平有效;拉低芯片才响应通信 |
| DCLK | SPI 同步时钟,主控输出,上升 / 下降沿锁存数据 |
| DIN | 主控→芯片,8 位控制指令串行输入 |
| BUSY | 芯片状态输出,高电平 = 正在模数转换 |
| DOUT | 芯片→主控,12 位 ADC 采样结果串行输出 |


二、时序阶段拆分
1. Idle(空闲阶段)
CS为高,无时钟;触摸屏驱动全部关闭,芯片待机。
2. Acquire(采集阶段,\(t_{ACQ}\))
- CS 拉低,主控输出 8 位指令到 DIN: 指令位排布:
S A2 A1 A0 MODE SER/DFR PD1 PD0- S:起始位固定为 1
- A2/A1/A0:通道选择(X 坐标 / Y 坐标 / 温度 / 电池电压 / 辅助输入)
- MODE:ADC 分辨率(1=8 位,0=12 位)
- SER/DFR:单端 / 差分输入模式(触摸坐标用差分)
- PD1/PD0:电源与参考电压配置(开关基准、芯片供电)
- 前 8 个 DCLK 脉冲移位写入完整指令;
- 触摸屏驱动电路开启,触摸极板建立分压电场,等待电压稳定。
3. Conversion(转换阶段)
- BUSY 自动拉高,芯片启动 12 位逐次逼近 ADC 转换;
- 转换期间 DOUT 逐位输出采样数值:高位 (11) 先出、低位 (0) 后出,12 位有效数据后补 0 填充;
- 差分模式下驱动电路保持开启,单端模式驱动关闭。
4. 重回 Idle
转换结束后 BUSY 拉低,\(\overline{\text{CS}}\)拉高,驱动电路全部关闭,芯片回到低功耗待机。
三、关键时序要点💡
- 时钟周期总数 :一次完整收发固定 24 个 DCLK
- 0~7:DIN 写入 8 位指令
- 8~23:DOUT 读出 12 位 ADC 数据 + 4 位填充 0
- BUSY 判断逻辑 方案 1:等待 BUSY 变低再读取 DOUT; 方案 2:严格卡 24 个时钟周期硬时序读取(常用在单片机驱动)。
- 触摸坐标采集逻辑 读 X 坐标、读 Y 坐标需要发送两条不同 A 通道指令,两次转换后计算坐标;压力值需要额外一组采样运算。
- 电平兼容 DCLK/DIN/DOUT 支持 1.5V~5.25V 电平,3.3V/5V 单片机可直连无需电平转换。
四、驱动编程简化流程
- 拉低CS
- 循环 8 次 DCLK,移位发送 8 位控制命令;
- 等待 BUSY 下降沿(或延时稳定);
- 循环 16 次 DCLK,同步读出 DOUT 数值,取高 12 位为 ADC 原始值;
- 拉高CS ,完成单次采样。
4.红外遥控
一、基础定义与整体架构

红外遥控是依靠不可见红外光 实现短距离无线指令通信的控制系统,整套系统分为发射端 与接收端两大模块:
- 发射端(遥控器) 核心器件:940nm 红外 LED 发射管,主控芯片将按键指令编码、调制为 38kHz 载波脉冲,驱动红外 LED 向外发射红外光信号。
- 接收端(设备主板) 核心器件:一体化红外接收头(如 HX1838),可自动滤除环境杂光、解调载波,输出纯净数字电平信号给单片机解码。
- 左:成品红外遥控器
- 中:透明封装940nm 红外发射 LED
- 右:黑色屏蔽封装一体化红外接收头
1. 通信方式:单工、异步
- 单工:信号只能单向传输,遥控器只发、设备只收,无法双向交互。
- 异步:收发两端无统一时钟同步,依靠脉冲时间宽度区分 0/1 电平,依靠引导码识别一帧数据起始。
- 属于近红外波段,肉眼完全不可见;相比 850nm,940nm 抗日光干扰能力更强,是家电遥控通用标准波长。
- 发射管多为透明胶体封装,工作时无肉眼亮光。
- 引导码(帧头):9ms 载波低电平 + 4.5ms 空闲高电平,标记一帧数据开始。
- 地址码(8bit):区分设备(电视 / 空调 / 风扇等),防止不同遥控器互相干扰。
- 地址反码(8bit):校验地址传输是否出错。
- 指令码(8bit):对应按键功能(音量加、开关机、频道切换等)。
- 指令反码(8bit):校验指令传输完整性。
- 逻辑 0:560μs 载波脉冲 + 560μs 空闲间隔
- 逻辑 1:560μs 载波脉冲 + 1690μs 空闲间隔
2. 器件特性对比
| 器件 | 外观 | 核心功能 | 封装特点 |
|---|---|---|---|
| 红外发射 LED | 透明圆头 | 电信号→940nm 红外光 | 无屏蔽,透光性好 |
| 一体化红外接收头 | 黑色方形 / 圆头 | 红外光→解调后数字电平 | 黑色胶体滤可见光,内部集成放大、滤波、解调电路 |
3. 典型应用场景
家用电视、空调、机顶盒、风扇、扫地机器人、单片机智能小车、灯光开关等短距离无线控制场景,传输距离一般 0~10 米,收发需视窗对准(红外无法穿透遮挡物)。
二、红外遥控硬件电路

一、左侧:与门型发射驱动(双信号叠加调制)
电路结构
- Q1、Q2 为 NPN 三极管,构成逻辑与驱动
- 两路输入:
38KHZ载波信号、IN编码数据信号 - 负载:红外发射管 LED1 + 限流电阻 R3
工作原理
- 只有38KHZ 与 IN 同时为高电平时,Q1、Q2 全部导通,电流流过红外 LED,发射带 38kHz 载波的红外光
- 任意一路为低,三极管链断开,LED 熄灭
- 作用:把 NEC 编码信号调制到 38kHz 载波上,符合标准遥控发射要求
器件作用
- R1/R2:基极限流电阻,保护三极管发射结
- R3:红外 LED 限流电阻,防止过流烧毁发光管
二、中间:单管简易发射驱动(简化方案)
电路结构
- 单只 NPN 三极管 Q1,输入
IN为已经叠加 38kHz 载波的混合信号 - LED1 在上、限流电阻 R2 在下接地
工作原理
- IN 高电平→Q1 导通→VCC 电流流经红外 LED、R2 到 GND,LED 发光
- IN 低电平→Q1 截止→LED 熄灭
- 适用场景:单片机内部 PWM 直接输出 38kHz 调制波形,外部仅做功率放大,电路最简、成本更低
对比左侧双管电路
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 双管与门型 | 载波、编码信号可分开产生,硬件自动调制 | 多 1 只三极管、多 2 个电阻 | 无硬件 PWM 的 MCU、分立振荡电路 |
| 单管放大型 | 元件少、布线简单 | 必须 MCU 输出已调制好的波形 | 带定时器 PWM 的单片机(51/STM32) |
三、右侧:HS0038 红外接收头电路(接收端)
引脚定义(HS0038 标准封装)
- OUT:解调数据输出脚(接单片机 IO,图中接 P32)
- GND:电源地
- VCC:供电(常见 3.3V/5V 均可兼容)
工作机制
- 内部集成:光电二极管、前置放大、38kHz 带通滤波、整形比较电路
- 静态电平:OUT 默认输出高电平
- 收到 38kHz 红外载波时:OUT 拉低;无信号恢复高电平
- 单片机通过定时器捕获 OUT 引脚高低电平时长,即可解码 NEC 协议的 0、1、引导码
关键特性
- 黑色外壳滤除可见光干扰,强光环境稳定性远优于分立光电二极管电路
- 输出为数字逻辑电平,无需额外运放整形,直接对接单片机 IO
三、基本发送与接收

一、三种工作状态对应关系
- 空闲状态 发射端 IN 无 38kHz 信号,三极管 Q1 截止,红外 LED 熄灭;接收头无有效红外载波,OUT 稳定输出高电平。
- 发送逻辑低电平 IN 输入 38kHz 高频方波,三极管高速通断,红外 LED 以 38kHz 闪烁;接收头检测到匹配载波,解调后 OUT 输出低电平。
- 发送逻辑高电平 IN 无 38kHz 振荡波形,LED 保持不闪烁;接收头无有效载波,OUT 维持高电平。
二、波形变换流程
- 左侧发射波形 密集竖线簇 = 38kHz 载波脉冲组(对应逻辑 0);宽空白间隔 = 无载波静默区(对应逻辑 1 / 空闲),这是调制后的复合波形。
- 硬件传输链路 单管三极管电路对调制波形功率放大,驱动红外 LED 完成电信号→红外光转换;红外光无线传输至一体化接收头。
- 右侧接收波形 接收头内部滤除 38kHz 高频细节,只输出包络反向波形:发射有载波→输出低,发射无载波→输出高,波形宽度与原始编码时序完全对应。
四、NEC 红外编码协议详解

一、整体帧时序逻辑
- 单次按键(短按) 发送 1 组完整帧:起始引导码 + 32 位数据,之后空闲。
- 长按按键 首帧发送完成后,每间隔约 110ms 发送 1 次重复码,不再重复发送 32 位数据,降低发射功耗。
二、分段时序参数
1. 起始引导码(Start,红色波形)
时序:9ms 低电平(38kHz 载波发射) + 4.5ms 高电平(静默无载波) 作用:作为帧起始标志,单片机识别超长低脉冲后进入数据接收状态。
2. 32 位数据段(Data,蓝色区域)
数据排列格式
8位地址码(Address) + 8位地址反码 + 8位指令码(Command) + 8位指令反码
- 总位数:32bit
- 传输规则:低位先发送,高位后发送
- 校验机制:接收端校验
原码 + 反码 = 0xFF,校验不匹配则丢弃该帧,提升抗干扰能力。
逻辑 0、逻辑 1 区分
- 逻辑 0:560μs 低电平载波 + 560μs 高电平静默
- 逻辑 1:560μs 低电平载波 + 1690μs 高电平静默 两者载波脉冲宽度完全一致,仅静默时长不同。
3. 重复码(Repeat,绿色波形)
时序:9ms 低电平载波 + 2.25ms 高电平静默
- 发送间隔:距离上一帧 / 上一个重复码约 110ms
- 作用:通知单片机按键持续按下,无需重复解码 32 位数据。
三、电平与硬件收发对应关系
结合前序发射、接收电路:
- 波形里低电平 = 发射端红外 LED 以 38kHz 高频闪烁,接收头 HS0038 检测到载波,输出低电平;
- 波形里高电平 = 发射端 LED 熄灭无载波,接收头输出高电平; 图中波形可直接等同于接收头输出到单片机 IO 的解调波形,单片机通过定时器捕获电平时长即可解码。

五、STC89C52 外部中断

一、硬件引脚资源
PDIP-40 封装引脚定义:
- INT0:P3.2(引脚 12),基础外部中断 0
- INT1:P3.3(引脚 13),基础外部中断 1
- 拓展中断:STC89C52 新增\(\boldsymbol{INT2(P4.3)、INT3(P4.2)}\),合计4 路外部中断
二、两种触发模式
1. 下降沿触发(红外解码首选)
- 触发条件:引脚电平从高电平跳变至低电平的瞬间触发中断
- 优势:触发一次只进一次中断,不会重复误触发,适配 NEC 波形下降沿捕获
- 配置寄存器:
IT0=1(INT0 沿触发)、IT1=1(INT1 沿触发)
2. 低电平触发
- 触发条件:引脚持续保持低电平时,一直反复触发中断
- 劣势:电平不恢复高电平就会持续进中断,容易卡死程序;一般用于按键长按、外部持续报警信号
- 配置寄存器:
IT0=0、IT1=0
三、C 语言中断号匹配规则
中断查询序号 = 函数后interrupt后的数字:
| 中断通道 | 中断号 | 示例中断函数 |
|---|---|---|
| INT0(P3.2) | 0 | void Int0_Routine(void) interrupt 0 |
| 定时器 0 | 1 | void Timer0_Routine(void) interrupt 1 |
| INT1(P3.3) | 2 | void Int1_Routine(void) interrupt 2 |
| 定时器 1 | 3 | void Timer1_Routine(void) interrupt 3 |
| 串口 UART | 4 | void UART_Routine(void) interrupt 4 |
| 定时器 2 | 5 | void Timer2_Routine(void) interrupt 5 |
| INT2(P4.3) | 6 | void Int2_Routine(void) interrupt 6 |
| INT3(P4.2) | 7 | void Int3_Routine(void) interrupt 7 |
四、红外遥控适配方案(结合前面 NEC 协议)
- 硬件接线:HS0038 接收头 OUT 引脚 → INT0(P3.2)
- 模式配置 :设置
IT0=1下降沿触发,NEC 波形每次载波开始都会产生下降沿 - 解码逻辑
- 外部中断捕获下降沿,立刻启动定时器计时
- 退出中断后查询定时器,算出高低电平持续微秒数
- 对比 9ms、4.5ms、560μs、1690μs 等标准时序,识别引导码、0/1、重复码
六、51 单片机外部中断四大寄存器

一、TCON 寄存器(地址 88H,控制触发方式、中断标志)
红色框位:IE1、IT1、IE0、IT0
- IT0(位 0) :INT0 触发模式
IT0=0:低电平触发IT0=1:下降沿触发
- IE0(位 1):INT0 中断请求标志位,触发后硬件置 1,中断响应后硬件自动清 0(沿触发);电平触发需外部拉高电平才清零
- IT1(位 2):INT1 触发模式,规则同 IT0
- IE1(位 3):INT1 中断请求标志位,规则同 IE0
二、IE 中断使能寄存器(地址 A8H,中断总开关 + 分开关)
红色框位:EX1、EX0
- EA(位 7) :全局总中断开关,EA=1 所有中断才允许开启;EA=0 全部屏蔽
- EX0(位 0) :外部中断 0 使能,
EX0=1打开 INT0;EX0=0关闭 - EX1(位 2) :外部中断 1 使能,
EX1=1打开 INT1;EX1=0关闭 其余位:ET2 (定时器 2)、ES (串口)、ET1 (定时器 1)、ET0 (定时器 0)
三、IP 低优先级寄存器(地址 B8H)
红色框位:PX1、PX0
PX0:INT1 低优先级配置;PX1:INT0 低优先级配置- 单寄存器只能配置0/1 两级基础优先级
四、IPH 高优先级寄存器(地址 B7H,STC 增强型)
红色框位:PX1H、PX0H 与 IP 配合组成4 级优先级(PXxH PXx):
- 00:最低优先级
- 01:低优先级
- 10:高优先级
- 11:最高优先级
五、硬件通路流程图解读
- 信号流向:\(\boldsymbol{INT0/INT1}\)引脚 → ITx 选择触发电路 → 置位 IEx 标志位
- 使能判断:IEx=1 + EXx=1 + EA=1 → 向 CPU 提交中断请求
- 优先级仲裁:IP+IPH 对比优先级,高优先级中断优先响应;同优先级按自然顺序:INT0 (0) > T0 (1) > INT1 (2) > T1 (3) > 串口 (4) > T2 (5)
- 响应后跳转到对应
interrupt中断号服务函数
意思就是有下降沿就触发判断状态,判断是start还是repeat,这个判断可以用定时器判断是多久,长的是start,短的是repeat
简单来说一状态开始 二状态判断重发 三状态写数据
数据分成了四个8位char的数组元素表达32位,所以pdata范围是0-31,所以/8确认数组第几个元素,%8确认元素的第几位
11.0592MHz:读"0":1032±1000;读"1":2074±1000;改好以后就能有现象了。
