51单片机从零到实战(13)——毕设常用ADC模块

发布时间:2026/9/21 7:21:39
51单片机从零到实战(13)——毕设常用ADC模块 第 13 篇ADC 模数转换——让单片机感知模拟世界温度、光线、声音、电压——这些是连续的模拟量。ADC 把它们变成单片机懂的数字量。STC89C52 没有内置 ADC我们用 PCF8591 模块I2C 接口¥5。1. PCF8591 读取模拟电压#definePCF8591_ADDR0x90unsignedcharpcf8591_read(unsignedcharchannel){unsignedcharval;i2c_start();i2c_write_byte(PCF8591_ADDR);// 写命令i2c_write_byte(0x40|channel);// 单端输入 通道选择i2c_start();i2c_write_byte(PCF8591_ADDR|1);// 读命令i2c_read_byte(1);// 第一个是上次的值丢弃vali2c_read_byte(1);// 这才是本次值i2c_stop();returnval;// 0~255 对应 0~5V}2. 电位器读取电压VCC ── 电位器两端 ── GND 中间脚 → PCF8591 AIN0 旋转电位器 → 电压从 0V 变到 5V → ADC 值从 0 变到 255unsignedcharadc_valpcf8591_read(0);// 通道 0floatvoltageadc_val*5.0f/255.0f;// 转成电压printf(ADC: %u, Voltage: %.2fV\r\n,adc_val,voltage);3. 光敏电阻 / 热敏电阻读取光敏电阻和热敏电阻是阻值随光照/温度变化的电阻通过分压电路变成电压VCC ── 光敏电阻 ──┬── PCF8591 AIN1 │ 10kΩ (固定电阻) │ GND 光照越强 → 光敏电阻越小 → AIN1 电压越高 → ADC 值越大下一篇PWM 输出——控制电机和灯光

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询