基于AT89C52的8路数字电压表设计与实现

5星 · 超过95%的资源 需积分: 10 19 下载量 124 浏览量 更新于2024-09-18 1 收藏 218KB PDF 举报
"该文介绍了如何设计一个简易的数字电压表,该表能够测量0-5V范围内的8个输入电压,并在四位LED数码管上显示。最小分辨率达到了0.02V。设计中采用了AT89C52单片机作为控制系统,ADC0809作为A/D转换器,系统还具备扩展功能,如远程测量结果传送。硬件电路包括A/D转换、数据处理和显示控制部分。软件方面,包括初始化程序、主程序和显示子程序,其中显示子程序通过动态扫描法显示BCD码转换后的电压值。" 本文详细阐述了简易数字电压表的设计过程,主要分为四个部分: 1. **功能要求**:设备需能够测量0-5V的8路输入电压,并在四位LED数码管上以0.02V的分辨率显示。显示方式可选择轮流显示所有通道或单路选择显示。 2. **方案论证**:选择AT89C52单片机作为核心控制器,配合ADC0809进行A/D转换,系统不仅满足基本功能,还能扩展其他A/D转换量的测量和远程传输。设计了系统方案框图以概述整体结构。 3. **系统硬件电路设计**:硬件电路由A/D转换模块(使用ADC0809)、数据处理模块和显示控制模块组成。ADC0809的接口与单片机的P0、P2、P3口相连,用于读取模拟输入和控制转换过程。P1和P3.0-P3.3用于LED数码管的显示控制,P3.5和P3.6分别作为显示模式切换和通道选择按钮。通过30脚的晶振和14024二分频产生1MHz的时钟信号。 4. **系统程序设计**: - **初始化程序**:主要包括内存清零和P2口设置,为后续操作做好准备。 - **主程序**:初始状态下,系统默认循环显示所有通道电压值。每次测量后,会在数码管上显示A/D转换值,每个通道显示约1秒。主程序不断调用显示子程序和测试子程序。 - **显示子程序**:使用动态扫描技术显示四位数码管,将测量的A/D转换数据转换为BCD码后存储在78H-7BH内存单元,然后在数码管上呈现。 通过以上设计,简易数字电压表实现了精确的电压测量和直观的显示功能,同时具备一定的扩展性,适合作为教学或实验平台使用。