四、 使用方法
测小电容、电感、频率是一组功能,具体测哪个由S1/S2的状态决定,单片机能根据S1/S2的状态自动识别测量哪一种。测大电解电容和小电解电容是一组,具体测大电解还是小电解由S3状态决定,单片机能根据S3的状态自动识别测量大电解还是小电解。在这两组功能之间需要功能切换按钮(原理图中Btn3)来切换。 1、上电开机界面
显示频率、电感、电容测试。
2、测量小电容
3、测量有极性小电容
五、 总结
经过电容测试仪的设计,系统的了解了单片机的功能及应用,对电容量的测量有了深入的了解。在小组老师们的协作下完成了电容测试仪的方案设计,选择合适的测量电路和芯片,并根据需要设计了单片机主控电路、电容测量电路以及显示按键电路。系统以AT89S52单片机为核心控制器,利用电容充放电原理通过单片机的定时器测量电容充电到一定电压时所用的时间,用电压比较器(LM339)来检测电容充电的终止,计算电容值,并以数字形式显示出来,完成了设计任务和要求。
附 录
(1) 整机系统总图
(2) 程序
#include \
#include\库函数
#define DATA P0
sbit RW=P2^6;//1602写数据 sbit RS=P2^5;//1602写地址 sbit EN=P2^7; //1602工作使能
sbit b_test=P3^7; //开始测量电容的按键输入 sbit _reset=P3^5; //555时基芯片工作控制信号 unsigned int T_flag,N,C,i,Dis1,Dis0;
unsigned int b[10]={0X13,0X0D,0X00,0X00,0xFE,0x00,0x00,0x00,0X25,0X16}; //C=00UF
/***********延时1MS******************/ void Delay1ms(unsigned int mm) {unsigned int i;
for(mm;mm>0;mm--) for(i=100;i>0;i--); }
/***************检查忙否*****************/ void Checkstates() {
unsigned char dat; RS=0; RW=1;
do{EN=1;//下降沿
_nop_();//保持一定间隔 _nop_();
dat=DATA; _nop_(); _nop_(); EN=0;
}while((dat&0x80)==1); }
/**************LCD写命令函数*********/ void wcomd(unsigned char cmd) {
Checkstates(); RS=0; RW=0;
DATA=cmd; EN=1; _nop_();
显示

