STC15F单片机RC充放电测量电压方法
需积分: 15 163 浏览量
更新于2024-09-13
收藏 146KB DOC 举报
"STC15F104W单片机通过RC充放电方式利用IO口测量外部电压的方法及应用"
STC15F104W是一款1T的单片机,它拥有OPEN-DRAIN模式的IO口,这使得在没有内置模拟数字转换器(ADC)的情况下,可以通过RC充放电技术来测量外部电压。这种技术具有成本低且易于实现的优势。
在RC充放电测量电压的过程中,主要涉及以下步骤:
1. 初始化阶段:设置P3.2(INT0)引脚为OPEN-DRAIN模式,将其输出设为0以对电容进行放电,并配置INT0为上升沿中断。同时,将Timer0配置为16位自动重装定时器,时钟源设置为12T,并开启中断功能。
2. 测量阶段:清除Timer0的计数值(TH0和TL0),将P3.2置为1,开始对电容充电,接着启动Timer0。当INT0检测到上升沿中断时,停止Timer0的计数,将P3.2置为0进行放电。此时,Timer0的计数值就代表了RC充电时间。
MCU在5V供电下,IO口识别“1”的阈值电压约为2V,因此输入电压需高于2V才能有效测量。例如,在4至12.4V的测试范围内,输入电压与RC充电时间的关系可通过以下公式计算:
\[ T = -R \cdot C \cdot \ln\left(1 - \frac{2}{U_x}\right) \]
其中,\( U_x \)为输入电压,\( R \)为电阻值,\( C \)为电容值。以10V为例,RC充电时间预计为446uS,实际测量值为447uS。
值得注意的是,由于RC时间与电阻和电容值相关,电阻的温度漂移通常较小,但普通电容器的温度漂移可能较大,因此推荐使用温漂小、漏电流低的电容以提高测量稳定性。
由于电压与RC时间之间的关系是非线性的,实际应用中需要针对特定电路进行校准,以获得更精确的测量结果。在附录1中,列出了不同输入电压下Timer0的读数和对应的时间,可以观察到随着电压增加,充电时间减小的非线性趋势。
这种方法适用于那些对测量精度要求不非常高的应用场景。通过这种方法,开发者可以在不具备内置ADC的单片机上实现基本的电压测量功能,从而扩展了MCU的适用范围。
2021-10-03 上传
点击了解资源详情
2022-04-03 上传
点击了解资源详情
2021-04-24 上传
2021-04-21 上传
fishby1
- 粉丝: 0
- 资源: 1
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍