一、UART 异步串口
基础概念
UART(串行异步收发器),用于单片机之间、单片机与PC的数据通信。异步:通信双方无共用时钟线,依靠约定波特率采样。
- 引脚:TXD发送、RXD接收、GND共地。共地是通信稳定的前提
- 接线:设备交叉相连,TX接对方RX;单片机连PC,需要CH340 USB转串口芯片。
- 波特率:bps,每秒传输比特,常用9600、115200
- 特性:串行传输、先发低位;全双工,收发可同时进行。
帧结构
1帧 = 起始位(1)+数据位(8)+可选校验位+停止位(1)
空闲总线高电平,起始位拉低通知接收方。
51单片机开发流程
发送
- 配置串口模式1(8位数据无校验)
- 配置SMOD倍乘位,定时器1做波特率发生器
- 定时器1设为8位自动重装,写入初值TH1
- 向SBUF写入数据,硬件自动发送
- 发送完成TI置1,必须软件手动清零
接收
- 模式1,开启接收允许REN
- 配置波特率、定时器1
- 开启串口中断,编写中断服务函数
- 收到数据RI置1,读取SBUF,手动清零RI
核心考点:TI、RI硬件置1,不会自动清除。
二、DS18B20 单总线温度传感器
单总线数字温度传感器,仅一根DQ信号线通信。
- 测温范围:-55℃ ~ +125℃
- 供电:1.3V~5.5V;12bit分辨率,一次转换最多750ms
- 引脚:GND、DQ通信脚、VCC电源
存储结构
9字节暂存器,前2字节存放温度LSB、MSB,剩余字节为报警阈值、配置、CRC校验。读取温度只需要前两个字节。
时序要点
时序要求严格,微秒级延时影响通信成败
- 复位:主机拉低总线≥480us,释放后等待传感器应答脉冲
- 写时序:写0拉低60120us;写1拉低115us后释放
- 读时序:主机拉低总线≥1us,15us内读取引脚电平
常用指令与读取流程
指令: 0xCC 跳过ROM; 0x44 启动温度转换; 0xBE 读取暂存器
读取温度完整步骤:
复位 → 发0xCC → 发0x44,等待750ms → 再次复位 → 发0xCC → 发0xBE → 读取2字节温度,换算数值
三、总结
UART异步串口,依靠波特率、中断实现数据收发,TI/RI标志需要软件清零;DS18B20单总线器件,完全依靠严格时序驱动。二者分别代表异步串口、单总线两种典型通信模型,是I2C、SPI学习的基础。