STC15F单片机RC充放电测量电压方法
需积分: 15 46 浏览量
更新于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
最新资源
- ubuntu从入门到精通--请您把一块硬盘想象为一本书……即便您不喜欢读书,您也一定非
- 基于单片机的电子密码锁
- 多功能数字抢答器(数字电路)
- SOA Using Java Web Services.pdf
- IT面试 技巧 大全
- SQL考试资料/微软认证
- clementine教程 与实例应用方面的讲解
- excel VBA 编程指南
- C ++程序设计语言——详解源码
- Expert one on one Oracle
- MATLAB命令大全
- sun-jsp-2.0.pdf
- 最小生成树PRIM算法
- KRUSKAL算法(排序有问题饿)
- THE MYTHICAL MAN-MONTH 人月神话
- EDA综合设计的典型三个实例