用 AT89C2051 单片机制作的数字电容表
吴汉清
AT89C2051 作为 AT89C51 的简化版虽然去掉了 P0、P2 等端口,使 I/O
口减少了,但是却增加了一个电压比较器,因此其功能在某些方面反而有所增
强,如能用来处理模拟量、进行简单的模数转换等。本文利用这一功能设计了
一个数字电容表,可测量容量小于 2 微法的电容器的容量,采用 3 位半数字显
示,最大显示值为 1999,读数单位统一采用毫微法(nf),量程分四档,读
数分别乘以相应的倍率。
电路工作原理
本数字电容表以电容器的充电规律作为测量依据,测试原理见图 1。电源
电
图 1
压 E+经电阻 R 给被测电容 CX 充电,CX 两端原电压随充电时间的增加而上升。
当充电时间 t 等于 RC 时间常数 τ 时,CX 两端电压约为电源电压的 63.2%,即
0.632E+。数字电容表就是以该电压作为测试基准电压,测量电容器充电达到
该电压的时间,便能知道电容器的容量。例如,设电阻 R 的阻值为 1 千欧,CX
两端电压上升到 0.632E+所需的时间为 1 毫秒,那么由公式 τ=RC 可知 CX 的
容量为 1 微法。
测 量 电 路 如 图 2 所 示 。 A 为 AT89C2051 内 部 构 造 的 电 压 比 较 器 ,
AT89C2051
图 2
的 P1.0 和 P1.1 口除了作 I/O 口外,还有一个功能是作为电压比较器的输入端,
P1.0 为同相输入端,P1.1 为反相输入端,电压比较器的比较结果存入 P3.6 口
对应的寄存器,P3.6 口在 AT89C2051 外部无引脚。电压比较器的基准电压设
定为 0.632E+,在 CX 两端电压从 0 升到 0.632E+的过程中,P3.6 口输出为
0,当电池电压 CX 两端电压一旦超过 0.632E+时,P3.6 口输出变为 1。以
P3.6 口的输出电平为依据,用 AT89C2051 内部的定时器 T0 对充电时间进行
计数,再将计数结果显示出来即得出测量结果。
整机电路见图 3。电路由单片机电路、电容充电测量电路和数码显示电路