如图1-3所示 图1-3 分频电路 分频电路是由两片74LS90、和一片74LS153实现的,单片机AT89C52初始时从P1.0和P1.1输出P1.1=0,P1.0=0,此时将从74LS153的output端输出未经分频的信号,当AT89C52检测到脉冲频率高于100KHz时,置P1.1=0,P1.0=1,此时将从74LS153的output端输出经十分频的信号,当AT89C52检测到脉冲频率高于1MKHz时,P1.1=1,置P1.0=0,此时将从74LS153的output端输出经一百分频的信号,从而实现了对更大频率范围的测量。 下图为分频电路的仿真截图: 输入信号为100Hz,从上到下依次为原信号、10分频后的信号、100分频后的信号。 6 / 26
3. 显示及锁存电路 如图1-4所示 图1-4 显示、锁存电路 显示、锁存部分的电路是由6片74LS273和6个7段数码管构成的,AT89C52把记录的数据分解为最高位、次高位……最低7 / 26
位,然后分时送往数据总线P0口,再由P2口发出的锁存信号依次将其锁存,最后由数码管把各锁存的数字对应显示出来,小数点的变换是通过AT89C52的P1.2、P1.3、P1.4来控制的,其原理与分频电路的控制相似,故不再赘述。 简易频率计的整体电路图如图1-5所示 图1-2简易频率计电路图 频率测量部分:AT89C52单片机上电后,工作于等待状态,当检测到频率测量按键(freq)按下时,开始进行测量,即转到频率测量的程序去执行,用AT89C52的定时/计数器T0进行定8 / 26
时,每次定时时间为10ms,每定时10ms,单片机响一次应中断,当中断计数满100次,也就是定时满1s时,单片机对所计得的数进行加工并送往锁存器锁存,再由数码管读锁存器,将所测频率显示出来,此后,等待下一次数据送来时进行刷新,当检测到待测频率太高而无法显示时,将从单片机的P1.0和P1.1口输出两个控制信号,两个控制信号连接到74LS153(双四选一数据选择器)的选择端A和B,通过控制P1.0和P1.1来实现对待测频率的分频。 脉宽测量部分:当检测到脉宽测量按键(pwide)按下时,转到脉宽测量程序去执行,同样利用单片机的定时/计数器进行测量,当检测到INT0引脚为高电平时,定时器开始计数(定时器可以看作是对机器周期的计数,当晶振为12MHz时,定时器每接收一个脉冲的时间为1us),当检测到下降沿时,单片机响应中断,计数停止,AT89C52对所计得的数进行加工并送往锁存器锁存,再由数码管读锁存器,将所测脉宽显示出来。 程序部分: 程序部分的设计主要是为了和硬件电路相结合,正确地实现更高精度测量。整个系统软件的设计采用了自顶向下的模块化的结构方式,将各个功能分成独立模块,由系统的程序统一管理执行。它主要完成各种功能,如测量、数据运算、显示等。如图1-2所示为频率测量主程序的粗略流程图。 9 / 26
图1-3 频率测量主程序的流程图 部分测量结果如下图所示 测频部分: 1.被测正弦信号频率为1Hz,幅值为200mV时: 10 / 26