图3 8254芯片引脚结构图
图4 相位差测量电路仿真图
2.3 单片机最小系统
目前,应用最广的产品是8位单片机,其中又属MCS-51系列单片机应用最广。MCS-51系列单片机已经成为事实上的工业标准,其内部包含如下功能部件:(1)一个 8位的中央处理器CPU,完成运算和控制功能。(2)一个片内振荡器及时钟电路,外接石英晶体和微调电容需外接,为单片机产生时钟脉冲序列,系统允许的晶振频率0~33MHz。(3)256B RAM数据存储器,前128单元作内部数据存储器,可擦写的数据,后128单元为专用寄存器。(4)两个16位定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。(5)可寻址的64KB外部数据存储器以及控制电路。(6)21个特殊功能寄存器,32条可编程的I/O线(四个8位I/O并行端口),一个可编程全双工串行口,可作全双工异步通信收发器使用,实现单片机和其它设备之的串行资料传送,也可作为同步移位器使用。(7)五个中断源,外中断2个,定时/计数中断2个,串行中断1个。两个优先级,全部中断分为高级和低级共两个优先级[8]。本次选用的单片机最小系统包含一个8.000MHz晶振,一个80C52单片机,若干电容电阻,开关等器件。单片机最小系统是整个系统设计的核心部分,主要用来完成输入信号相位差计算工作,并将运算结果送于显示模块进行显示单片机最小系统如图5所示。
图5 单片机最小系统
2.4 显示电路
在整个系统的硬件电路中,单片机和8254进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路一共由4个共阳极七段数码管与4片1位串入8位并出的74LS164寄存器组成。这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出。这种连接方式不仅占用单片机端口少,而且充分利用了单片机的资源。不仅简化了软件编程,容易掌握其编码规律,而且也体现出较高的可靠性[9,10,11]。74LS164是8位串入,并出寄存器。它是高速CMOS器件,与低功耗TTL器件的引脚兼容,它串行输入数据,然后将数据并行输出。时钟输入每次由低变高时,数据右移一位,输入到Q端,Q端是两个数据输入端的逻辑与,它可以将上升时钟沿之前保持一个建立时间的长度。主复位输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。数据输入端任一端口可作为高电平使用,用来控制另一端口的数据输入。两个输入端可以一起输入或者把闲置输入接入高电平,但是不能悬空。七段数码管价格便宜,使用简单,通过对其不同引脚输入相对应电流,从而使其发亮,从而显示可用数字表示参数的电子器件。七段数码管的驱动包括直流驱动和动态显示驱动。显示电路原理图如图6所示。
图6 显示电路原理图
3. 程序设计
3.1 主程序设计
程序设计的思路是首先对系统进行初始化,主要是用来完成对单片机各功能部件的初始状态配置。然后单片机获取数据,即接受两路输入信号的相位差值,然后经过计算送于显示模块进行显示。整个程序主要包括主程序、数据采集子程序、数码管显示子程序。单片机在获取数据时,开始的是一般的读取指令MOV指令,分别从单片机的P0口、P2口、P1口的低3位读入数据,组合为一个19位的二进制数据。经过多次测采用这种方式获得了比较好的效果[12]。
系统代码采用C语言编写,以Keil uVision4为开发环境,与Proteus软件联合调试,实现系统的程序设计。部分主要程序如下。 80C52单片机低频数字相位测量仪的设计+仿真电路图+源程序(4):http://www.youerw.com/zidonghua/lunwen_729.html