基于89C52的可调电压表设计(简洁版)

文章描述了一种基于89C52微控制器的可调电压表设计,利用ADC0809进行模数转换,通过分压模块处理输入电压,采用LCD1602显示测量结果。设计包括4个量程,通过按键切换,误差控制在1%内。并通过Proteus仿真验证了设计的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完整版基于89C52的可调电压表设计(全部内容)

1. 功能与指标

  1. ADC0809芯片:通过模数转换芯片将电压模拟量转为数字量;
  2. STC89C52主控芯片:将模数转换后的数字量收集并计算还原测量电压;
  3. 分压模块:根据模数转换芯片指标设计分压,输入电压不可超过5V;
  4. 手动调节量程:使用按键实现手动更换量程功能,将0~35V分压为4个档位;
  5. LCD显示:使用液晶屏显示被测电压数值,结果保留3位小数,测量值误差控制在1%以内;

2. 设计方案与工作原理

采用STC89C52芯片配合ADC08091。模数转换芯片进行电压采集与数据处理构成一个简易电压表,避免ADC0809过载烧坏,对被测电压分压后再输入AD转换芯片,经计算将0-35V电压分为四个通道测量,分别为:0-5V、5-15V、15-25V、25-35V。
硬件框图:硬件框图

3. 硬件模块

3.1 ADC模数转换1

分压模块采用电阻分压,分别为IN3:0-5V、IN4:5-15V、IN5:15-25V、IN6:25-35V,共4个量程,以25-35V为例说明分压原理:
U B = U A ⋅ R 5 R 5 + R 6 = U A 7 U_{B}= U_{A}\cdot \frac {R_{5}}{R_{5}+R_{6}}= \frac {U_{A}}{7} UB=UAR5+R6R5=7UA
电阻分压
即,输入最大电压35V时,IN6电压输入端口为5V,将电压降至合理范围内。其他两个通道同理。

模数转换内容详见ADC0809的原理与使用方法

3.2 89c52数据处理

ADC0809输出的数字量电压到STC89C52进行计算还原,由于浮点数计算相对复杂,且为数据显示方便考虑,将数字量采集到P0端口后,先扩大1000倍为整型数后,再根据按键选择的不同量程,通过代码判断选择不同计算公式。
主控芯片接线图:见完整版基于89C52的可调电压表设计(全部内容)

3.3 LCD1602显示

主控芯片将计算后数据按照十位、个位、十分位、百分位进行拆分,分别输入到LCD1602进行显示。

1602显示

4 程序代码2

软件程序源文件:基于89C52的可调电压表设计(程序代码)
程序代码图片 见完整版基于89C52的可调电压表设计(全部内容)
程序流程图:程序流程图

4.1 按键模块

根据按键按下,将数值从1~4不断循环传出。用来判断选择量程。

4.2 ADC0809模块

使用定时器0产生ADC工作时钟CLK=5KHz;

ADC的输入端口位选,其等效为3-8译码器,根据按键次数选择的档位进行判断输入端口的位选配置。ALE地址锁存端口配置为0时,可以对数据采集输入端口位选配置,当转换开始时,ALE随着START端口置1,位选锁存不可更改。
程序代码图片 见完整版基于89C52的可调电压表设计(全部内容)
软件程序源文件:基于89C52的可调电压表设计(程序代码)

4.3 LCD1602显示

初始化函数
写命令
写数据
代码不过多赘述,可参考程序源文件,也可自行查找。
程序代码图片 见完整版基于89C52的可调电压表设计(全部内容)
软件程序源文件:基于89C52的可调电压表设计(程序代码)

4.4 主函数

根据按键按下次数返回的数值,进行判断是哪个量程档位,将对应的档位显示在LCD上,再通过AD转换模块获取转换后的数字量,通过计算、提取数字位,显示在LCD。
程序代码图片 见完整版基于89C52的可调电压表设计(全部内容)
软件程序源文件:基于89C52的可调电压表设计(程序代码)

5 Proteus仿真3

选择15~25V档位,激励源为直流22V ,测量值为21.96V,误差在允许范围内。

在这里插入图片描述
proteus仿真源文件:基于89C52的可调电压表设计(仿真图)

6 原理图与PCB 4

在这里插入图片描述
原理图与PCB:基于89C52的可调电压表设计(原理图+PCB)

7 总结

简易电压表的设计让我对单片机基础的模数转换系统设计有了更加深刻的了解,对整个系统多个模块相配合实现功能有了经验,过程中使用到Proteus、Keil、Altium Designer等软件,对其使用熟练度有了进一步提高。设计中遇到问题通过查阅资料和凭··········此处省略几百字

实验报告完整文件可留言拿

8 元件清单

封装均为插件
所有元器件清单 见完整版基于89C52的可调电压表设计(全部内容)


  1. ADC0809的原理与使用方法 ↩︎ ↩︎

  2. 基于89C52的可调电压表设计(程序代码) ↩︎

  3. 基于89C52的可调电压表设计(仿真图) ↩︎

  4. 基于89C52的可调电压表设计(原理图+PCB) ↩︎

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值