2024-09-01
售卖作品
00

目录

题目要求
第1版方案
第2版方案
代码介绍
获取代码和仿真

题目要求

33、数字电压表设计

基本要求:

了解电压表的工作原理。

对0~2.5V的模拟电压进行循环采集

采集的数据进行A/D转换后用LCD屏显示测量值,显示精度0.0001

用键盘选择测量范围(分档)

超过测量范围时指示灯持续闪烁

在这里插入图片描述

第1版方案

两个电阻对80V电压分压,分压倍数是50倍率,所以MSP430得到的电压乘以50倍就是原始电压。

但proteus对分立元件分压仿真有BUG,下图中可以看到,分压后是1.6V的,但是仿真出来是0.148181V,这是有问题的。

在这里插入图片描述

第2版方案

这个档位是0到100V的档位,想要50倍率分压后测电压,那不如想简单点,用一个独立元件滑动变阻器来代替即可,比如有0到2.5V的电压调节,程序上自己乘以50倍就好了。

对于程序的逻辑,是契合题目的意思的,这就是可以的了。

在这里插入图片描述

整体图是这样的:

在这里插入图片描述

这三个按键就分别控制某一个继电器打开,即是打开了某一个档位:

在这里插入图片描述

屏幕上显示的,第一行是单片机测到的实际电压,这个和探针的电压是一样的。

第二行显示的是乘以倍率之后的电压,比如档位3是0到100v,假设的倍率是50倍。实际要做实物就按方案1的电路图,程序也可以用方案2的程序,道理都是想通的。

高于测量范围,小灯闪烁。

在这里插入图片描述

代码介绍

这是一个基于MSP430F249微控制器的程序,主要实现了以下功能:

  1. 初始化LCD显示屏,包括设置端口方向、选择普通I/O口、设置数据传输模式等。

  2. 定义了LCD显示相关的函数,包括写入指令、写入数据、设置显示位置、显示字符、显示字符串等。

  3. 实现了获取按键信息的函数,通过P5口读取按键的状态,根据按键的不同情况返回相应的键值。

  4. 设置ADC进行模拟信号的采样,通过P6.0口连接ADC进行模拟信号输入。

  5. 定义了LED的闪烁功能,通过定时器中断实现LED的闪烁,当达到一定条件时会触发LED的闪烁。

  6. 主函数中进行了系统的初始化,包括停止看门狗、设置端口方向、初始化LCD、ADC等。

  7. 在主循环中,进行ADC的采样并显示在LCD上,根据按键输入切换不同的档位。

  8. 利用定时器中断控制LED的闪烁。

总的来说,这个程序实现了一种基于MSP430F249的控制系统,包括按键输入、模拟信号采样、LCD显示和LED控制等功能。

获取代码和仿真

在这里插入图片描述

代码和仿真:

python
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!