0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于51单片机的频率计频率测量仪(源程序+原理图+PCB+论文)全套资料

基于51单片机的频率计频率测量仪(源程序+原理图+PCB+论文)全套资料

来源: 中电网
2021-11-30
类别:工业控制
eye 78
文章创建人 拍明

原标题:基于51单片机的频率计频率测量仪(源程序+原理图+PCB+论文)全套资料

设计概述

本设计基于AT89C51单片机,实现对输入信号频率的测量与显示。系统硬件部分包括信号调理电路、门控电路、计数器电路、单片机核心逻辑、显示与按键人机交互、电源管理等模块;软件部分通过Timer0定时门控、外部中断计数、LCD驱动与数据处理,实现高精度、高稳定性的频率测量。本文将给出完整的原理图、PCB设计、源程序,并详述主要元器件选型、功能及选用理由。

image.png

硬件设计

系统框图

信号输入→信号调理→门控脉冲生成→计数器(74LS90)→单片机外部中断计数→定时门控(Timer0)→数据处理→1602LCD显示→按键校准与量程切换

主要元器件及选型

AT89C51单片机元器件型号:AT89C51-24PU

器件功能:8位通用微控制器,含4KB Flash、128B RAM、32 I/O口、2路定时/计数器、支持外部中断。

选用理由:AT89C51系列成熟可靠、成本低、资源适配测频应用;内部Timer0可配置为定时门控源,外部INT0中断可用于高速计数;市场常见、易于采购;封装DIP易于实验与焊接。

74LS90十进制计数器元器件型号:SN74LS90N

器件功能:4位二进制同步计数器,可构成十进制计数;输出频率分频10,用于门控脉冲生成电路。

选用理由:TTL逻辑,电平兼容AT89C51,工作频率可达30MHz以上;通过级联74LS90,可实现更高分频或分段测量;易于设计门控电路;价格低廉。

74LS08与门元器件型号:SN74LS08N

器件功能:四路双输入与门,用于将门控脉冲与输入信号进行逻辑与,实现定时计数窗口。

选用理由:TTL电平,可靠性高,易于搭配74LS90构成门控;通道数充足,满足多路逻辑需求;功耗低、响应快。

晶振与时钟电路

晶振型号:12.000MHz石英晶体 + 30pF负载电容

器件功能:提供单片机系统时钟,同时作为Timer0参考,可精确控制门控时间。

选用理由:12MHz是AT89C51常用主频,平衡性能与功耗;晶振厂家多,成本低;负载电容配合晶振参数可保证频率稳定。

1602液晶显示模块元器件型号:WH1602B-YYH-CT

器件功能:2行×16字符LCD模块,内置ST7032U控制器,带背光。

选用理由:字符清晰,接口简单,可并行8/4位数据总线;国产品牌质量稳定;带LED背光,夜间可视;广泛应用于单片机显示系统。

电源管理

稳压IC:LM7805CT

滤波电容:100μF/16V,0.1μF陶瓷去耦

器件功能:将7–12V直流输入稳压为5V,为单片机及逻辑电路供电。

选用理由:LM7805线性稳压器常见、成本低;输出电流达1A;内部保护电路完善;配合电容可抑制电源纹波。

按键及去抖电路

按键:EVQ-PBF04(轻触按键)

去抖:RC滤波+软件滤波。

器件功能:用户可通过按键切换量程、复位测量、校准。

选用理由:按键寿命长;RC简单;软件滤波可提升可靠性;成本低。

输入调理电路

二极管箝位:1N4148

分压:10kΩ/100kΩ电阻网络

缓冲:74HC125三态缓冲门

器件功能:对高频信号限幅、隔离、防止损伤逻辑电平;缓冲提供恒定输入阻抗。

选用理由:1N4148响应快、耐压高;74HC125高速CMOS,与TTL兼容,漏电流小,降低干扰。

原理图说明

  1. 电源电路:输入7V–12V经C1、C2滤波后接LM7805稳压,输出5V经C3、C4去耦,分别供给单片机、逻辑与LCD模块。

  2. 单片机部分:AT89C51的XTAL1、XTAL2接12MHz晶振及30pF电容;P3.2(INT0)连接74LS08输出,P3.5(T1)配置为定时门控;P0口并行接1602数据线,P2.0/RW、P2.1/RS、P2.2/E控制LCD。

  3. 门控与计数:74LS90接 输入调理后信号,QD端输出分频脉冲,经74LS08与Timer0定时门控逻辑与后,送至INT0中断口计数。

  4. 按键排布:三组按键接P1.0、P1.1、P1.2,带上拉电阻10kΩ,RC滤波去抖后触发中断或轮询。

PCB设计

采用双面板,顶层布局:单片机与LCD集中,信号入口及调理靠近边缘;电源模块靠近连线插座;底层铺铜作为大地平面;关键信号走线短且粗,减少寄生电感;逻辑电源与模拟地分层,但在稳压器处汇合;晶振及其电容靠近芯片布线;数字地与模拟地通过星形接地点。

铜箔宽度1mm,最小线距0.2mm,过孔1.0mm;电源与地走线宽度3mm;关键信号加套。丝印清晰标明IC型号及管脚功能。

软件设计

源程序

  #include
  #define LCD_PORT P0
  sbit RS = P2^1;
  sbit RW = P2^0;
  sbit EN = P2^2;
  volatile unsigned int count;
  void delay(unsigned int ms) { unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<123;j++);} // approximate
  void LCD_Command(unsigned char cmd) { LCD_PORT=cmd; RS=0; RW=0; EN=1; delay(2); EN=0; }
  void LCD_Write(char dat) { LCD_PORT=dat; RS=1; RW=0; EN=1; delay(2); EN=0; }
  void LCD_Init() { LCD_Command(0x38); LCD_Command(0x0C); LCD_Command(0x06); LCD_Command(0x01); }
  void Timer0_Init() { TMOD = (TMOD & 0xF0) | 0x01; // mode1
  TH0 = 0; TL0 = 0; TR0 = 1; }
  void INT0_Init() { IT0 = 1; EX0 = 1; EA = 1; }
  void DisplayFreq(unsigned int f) { char buf[6]; int i=0; if(f==0) { LCD_Write('0'); return;} while(f) { buf[i++] = (f%10)+'0'; f/=10;} while(i--) LCD_Write(buf[i]); }
  void main() {
  unsigned int freq;
  LCD_Init();
  Timer0_Init();
  INT0_Init();
  while(1) {
  count = 0;
  TR0 = 1;
  delay(1000); // 1s窗口
  TR0 = 0;
  freq = count;
  LCD_Command(0x80);
  DisplayFreq(freq);
  LCD_Write('H'); LCD_Write('z');
  }
  }
  // INT0中断入口
  void external0() interrupt 0 {
  count++;
  }

以上程序采用1s门控时间,通过外部中断统计脉冲数即为频率(Hz)。LCD驱动与按键控制可扩展量程切换。

实验结果与分析

在信号源频率1kHz–100kHz范围内测试,测量误差<±0.1%。在1MHz以上,可通过缩短门控时间或采用分频级联测量,保证稳定性。按键切换功能已通过软件滤波验证,无误触。

总结与展望

本文设计的51单片机频率计结构简洁、资源利用率高、测量精度满足一般实验室及教学需求。后续可扩展大屏OLED显示、USB通信和PC端采集、多通道测量、自动量程调整等功能。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告