2.2.2 555时钟芯片与单片机连接
图2-4是555时钟芯片构成的单稳态触发电路,6脚和7脚接在一起,R2和C4构成商店复位电路,2脚用于接收单片机P3.7口产生的低脉冲,3脚接于P3.2脚,用于门控制计时器0的启动与停止。从而将电容容量转为脉冲宽度。 +5VC44.7ufR22kR88U2QDC37100INT0RC251nFP3.72CVVCC4GNDTRTH6NE5551THCX 图2-4 555芯片与单片机的连接 2.2.3 低脉冲产生电路
如图2-5所示,按键接于P3.3口,即外部中断1接口,因此低脉冲是利用中断实现的,P3.7口产生低脉冲,可在软件中的外部中断1函数中实现,整个过程为,需要测量时,按
- 6 -
键,产生外部中断,利用外部中断,用软件再在P3.7口产生一个低脉冲,之所以利用中断实现该功能,是为了增加产品的可靠性,因为按键的时间是比较长的,直接用按键产生低脉冲可能导致T1 > Tw ,导致测量错误。而利用中断,可以直接在中断函数中产生一个固定时间的低脉冲,保证了测量条件,避免发生错误。
+5VU119XTAL1XTAL2C110uF189RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7R110K293031PSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51INT0200P3.7+5VR4 图2-5 按键产生低脉冲电路
2.2.4 键盘电路
如图2-6所示键盘电路主要用于与用户进行交互,如用户需要选择量程时,就必须交互。键盘分为独立键盘和矩阵键盘,这里只需要实现量程的选择,共四个量程,故无需矩阵键盘,4个独立按键就完全够用了。
P0.3P0.4P0.5P0.6
- 7 -
图2-6 键盘电路
2.2.5 指示灯电路
如图2-7所示,指示灯主要用于给用户以提示,如当前量程提示,超量程提示等等。 D2用于超量程提示,D6用于电源提示。 P2.3P2.4P2.5P2.6P2.7R9680R10680R11680R12680R3680R6680+5VD1D3D4D5D2LED-GREEND6LED-GREENLED-GREENLED-GREENLED-GREENLED-GREEN 图2-7 指示灯电路
2.2.6 量程选择电路
在图2-4中可以看到,在RC充电回路中,R值是固定的,不可变的,那么量程也显然是不可变的,因此,需要在此加入可调节充电回路电阻的电路部分,这里,利用继电器可以简单实现。具体电路如图2-8所示,利用继电器时需特别注意,由于单片机输出电流是很小的,不足以驱动继电器吸合,因此要加驱动电路,在这里,选择ULN2003芯片来实现。当然,也可以利用典型的三极管驱动来实现,虽然选择的是芯片实现驱动,在这里也将典型的三极管驱动电路列于此。如图2-9所示。
- 8 -
+5V+5V1234567U31B2B3B4B5B6B7BCOM1C2C3C4C5C6C7C916151413121110P0.0P0.1P0.2RL1R610MNTE-R22-5RL2NTE-R22-5ULN2003AR5100kR71k+5VRL3NTE-R22-5+5VR8100C44.7ufR22k8VCCU2QDC37INT04RC251nFP3.72GNDCVTHTRTH6NE5551C35000pf 图2-8 实现量程选择电路
RL4NTE-R22-5P0.0Q1MPSA55 图2-9 利用三极管的驱动电路 - 9 -
2.2.7 液晶显示电路
如图2-10所示,lcd接与P1口,用于显示电容值以及一些相应的测量信息。 LCD1LM016LVSSVDDVEERSRWE456P2.2P2.1P2.0+5V123P1.77P1.68P1.59P1.410P1.311P1.212P1.113P1.014D0D1D2D3D4D5D6D7 图2-10 lcd显示电路 至此,整个电容测量仪的硬件设计部分就设计好了,接下来,需要的就是与之相匹配的软件支持了。
2.3 软件设计
软件编程平台选择最常用的keil软件。由于该程序并未涉及到底层的驱动问题,因此选择方便快捷的C语言编程。在编程中,将该程序分为三个模块:延时模块,1602显示模块及主函数模块。方便调试与理解。具体程序见附录二。总体程序较长,但并不复杂,可根据需要重点看主函数,与硬件电路结合起来,注重程序后紧跟的注释,理解起来是比较容易的,在此就不再一一详细分析。
2.4 量程范围设置
由于量程的选择是非常重要的一个环节,在这里单独讨论量程的选择。
系统采用单片机片内16 位的定时器测量TW 的宽度, 标准计数脉冲的周期为1 微秒时,
- 10 -