主要实现的功能有:
(1)输入信号类型可是方波信号、正弦信号、三角信号
(2)系统测量频率的范围是1Hz-20MHz
(3)系统测量频率过程中,量程是自动变换的,不需要用户手动操作,方便了用户的使用
(4)对于低于200KHz的信号,信号的最低幅度可以是0.5V,基本系统可以实现微弱信号的检测
(5)本系统对于低于10KHz的方波信号可以测量其占空比。
本系统首先使用Protues仿真软件进行仿真,在仿真通过之后,在腐蚀板子,然后硬件实现。
仿真图下:误差控制在千分之一内
实物图:误差控制在千分字之一内。当然通过数据处理,可以做到更低
采集低频信号,并显示占空比
采集高频信号
关键字:51单片机 高级频率计
引用地址:
基于51单片机的高级频率计设计
推荐阅读最新更新时间:2024-03-16 14:54
51单片机-定时器&数码管扫描显示
1.定时器中断实现间隔切换 在第六章第4讲的测试代码中提到过数码管微闪烁问题,这是由于三八译码器的IO端口切换的间隔时间不均匀导致,这部分的问题宋老师已经在《手把手教你学51单片机》文档6.4.2节有详细解释,并在6.5.2节里解决了这个问题。数码管扫描函数我们使用定时器0强制实现间隔1ms切换三八译码器的IO输出,这样保证了每个数码管被点亮的时间都是均匀的。我们在主函数里不停地执行数码管显示函数。这里是测试代码,用定时器1实现add间隔50ms自增1,数码管显示add的值。 #include reg52.h #include function.h //详见第六章第8讲 #include timer.h u32 a
[单片机]
51单片机(五)—— GPIO点亮一个LED
一、LED控制介绍 发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电特性。当给发光二极管加上正向电压时就会发光,光的强弱与工作电流成正比。一般情况下,LED的正向工作电流在10mA左右,如果电流过大就会烧坏LED,因此使用时必须串联限流电阻以控制通过二极管的电流。 普通发光二极管的正向饱和压降为1.6V~2.1V。发光二极管的特点是:工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。由于有这些特点,发光二极管在一些光电控制设备中用作光源,
[单片机]
8051单片机特殊功能寄存器SFR基础详解
8051单片机共有21个专用寄存器,现把其中部分寄存器简单介绍如下: 程序计数器(PC—Program Counter)。在实训中,我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。 累加器(ACC—Accumulator)。累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-
[单片机]
AT89S51单片机的复位操作及复位电路设计
复位是单片机的初始化操作,只需给AT89S51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使AT89S51复位。 复位操作 当AT89S51进行复位时,PC初始化为OOOOH,使AT89S51单片机从程序存储器的OOOOH单元开始执行程序。除了进入系统的正常初始化之外,当程序运行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需按复位键即RST脚为高电平,使AT89S51摆脱“跑飞”或“死锁”状态而重新启动程序。 除PC之外,复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态见表2-7。由表2-7可以看出,复位时,SP-07H,而4个I/O端口PO~P3的引脚均为高电平。在某些
[单片机]
8051单片机模块化编程技巧
程序设计就是用计算机所能接受的语言把解决问题的步骤描述出来,也就是把计算机指令或语句组成一个有序的集合。一个好的应用程序不仅是执行效率高,而且还要结构清晰、便于调试。所以人们都采用结构化程序设计方法来编制应用程序。对于每一个初学者来说更应该养成习惯,从简单的程序编制开始就采用这种模块化结构。 目前在8051 单片机应用开发中主要有两种编程语言:汇编语言和C51 语言。C51 语言是一种结构化的编程语言,采用C51 编写的应用程序结构清晰、模块化程度高、可读性强、并容易移植。但C51 语言也有缺点,就是编译后生成的目标代码空间要比汇编的大。 而且目前单片机的教材还是侧重于汇编语言。因此学习用单片机汇编语言程序进行结构化
[单片机]
51单片机 1602液晶显示控制代码2
这是4X4按键映射为0-F的16个字符输入并显示在屏上的程序: 1 /*-- 2 名称:LCD1602 3 论坛:www.doflye.net 4 编写:shifang 5 内容:通过矩阵键盘输入,依次显示0-F16中字符 6 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK 7 */ 8 #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 9 #include intrins.h 10 11 sbit RS = P2^4; //定义端口 12 sbit RW =
[单片机]
Proteus仿真51单片机C语言-单片机向主机发送字符串
简介:单片机向主机发送字符串:单片机按一定的时间间隔向主机发送字符串,发送内容在虚拟终端显示。
[单片机]
如何创建51单片机KEIL工程步骤
1. 什么是Keil软件 Keil软件是一款专为嵌入式系统开发而设计的集成开发环境(IDE),常用于51、STM32单片机软件开发的编程软件。Keil编程软件不仅支持多种工具和扩展程序,还能够处理多种文件格式和数据交换方式;可支持单片机程序的在线仿真,或通过仿真器进行实物仿真,大大方便开发人员的工作。 其中,我们常用的Keil软件有两种,分别为Keil C51以及Keil MDK,前者主要用于51单片机等8051内核单片机的开发工具(不支持32位单片机),Keil MDK主要用于ARM架构单片机的开发工具,主要用于STM32单片机等32单片机。所以在使用Keil软件时需要主要这一点。 2.如何创建51单片机KEIL工程步骤
[单片机]