IO口做ADC用RC充放电-宏晶科技.doc

IO口做ADC用RC充放电-宏晶科技

宏晶科技STC15F系列单片机 用RC充放电实现检测外部电压 日期:2012-2-24 版本:V1.0 对于没有ADC的MCU,而又要测量外部的一个电压时,使用RC充放电的方式是比较容易实现并且低成本的方法。 STC15F系列是1T的MCU,其IO口有OPEN-DRAIN模式,此模式可以很容易用一个IO口配合一个定时器实现RC充放电来测量外部未知电压。如果没有空余的定时器,也可以使用指令循环的方式实现。本例使用定时器。 本范例使用P3.2(INT0)来做RC测量,电路和波形示意图如下: 操作流程: 初始化程序将P3.2设置成OPEN-DRAIN模式, 并将P3.2输出0给电容放电。INT0设置成上升沿中断。Timer 0设置成16位自动重装定时器模式,时钟源为12T,允许中断。 测量时,先清Timer 0的TH0、TL0,然后将P3.2输出1开始对电容充电,接着设置TR0 = 1来启动Timer 0,然后在INT0中断里设置TR0 = 0来停止计数,并将P3.2输出0对电容放电。读出TH0、TL0的值就是RC充电时间。 由于MCU工作在5V时,IO口读到“1”的门限电压大约为2V,所以要求输入的电压高于2V,本例的测试数据从4~12.4V,测试结果参考后面的附录1。 假设输入电压为Ux,IO口门限电压为2V,则RC充电时间为:

文档评论(0)

1亿VIP精品文档

相关文档