DIY 6位数显频率计

发布者:HarmoniousSoul最新更新时间:2018-01-02 来源: eefocus关键字:6位数显  频率计  AT89S51  单片机 手机看文章 扫描二维码
随时随地手机看文章

1.实验任务
  利用AT89S51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。要求能够对0-250KHz的信号频率进行准确计数,计数误差不超过±1HZ。
2.电路原理图
6位数显频率计数器
              图4.31.1
3.系统板上硬件连线
(1).把“单片机系统”区域中的P0.0-P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
(2).把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
(3).把“单片机系统”区域中的P3.4(T0)端子用导线连接到“频率产生器”区域中的WAVE端子上。
4.程序设计内容
(1).定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC=12MHz,因此:T0的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。
(2).T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。
5.C语言源程序
#include
unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                               0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};
unsigned char temp[8];
unsigned char dispcount;
unsigned char T0count;
unsigned char timecount;
bit flag;
unsigned long x;
void main(void)
{
  unsigned char i;
  TMOD=0x15;
  TH0=0;
  TL0=0;
  TH1=(65536-4000)/256;
  TL1=(65536-4000)%6;
  TR1=1;
  TR0=1;
  ET0=1;
  ET1=1;
  EA=1;
  while(1)
   {
     if(flag==1)
       {
         flag=0;
         x=T0count*65536+TH0*256+TL0;
         for(i=0;i<8;i++)
           {
             temp[i]=0;
           }
         i=0;
         while(x/10)
           {
             temp[i]=x;
             x=x/10;
             i++;
           }
         temp[i]=x;
         for(i=0;i<6;i++)
           {
             dispbuf[i]=temp[i];
           }
         timecount=0;
         T0count=0;
         TH0=0;
         TL0=0;
         TR0=1;
       }
   }
}
void t0(void) interrupt 1 using 0
{
  T0count++;
}
void t1(void) interrupt 3 using 0
{
  TH1=(65536-4000)/256;
  TL1=(65536-4000)%6;
  timecount++;
  if(timecount==250)
    {
      TR0=0;
      timecount=0;
      flag=1;
    }
  P0=dispcode[dispbuf[dispcount]];
  P2=dispbit[dispcount];
  dispcount++;
  if(dispcount==8)
    {
      dispcount=0;
    }
}

关键字:6位数显  频率计  AT89S51  单片机 引用地址:DIY 6位数显频率计

上一篇:DIY电子密码锁
下一篇:电子密码锁设计资料

推荐阅读最新更新时间:2024-03-16 15:51

英飞凌推出TRAVEO T2G-C系列图形MCU,以MCU的成本为汽车图形应用提供堪比MPU的性能
【 2023 年 1 2 月 8 日, 德国慕尼黑 讯】 英飞凌科技股份公司近日推出搭载新型图形引擎的全新TRAVEO™ T2G-C系列车用微控制器(MCU)。该引擎采用全新的智能渲染技术,可为汽车图形应用带来出众的性能。这款全新MCU占用空间小,可简化主机厂的集成并降低BOM(材料清单)成本,适用于汽车、摩托车、非公路移动出行交通工具的高级智能移动仪表盘和平视显示系统以及注重质量和安全的工业和医疗应用。 全新TRAVEO™ T2G-C系列车用微控制器 英飞凌科技微控制器产品线智能移动出行副总裁 Ralf Koedel 表示:“TRAVEO T2G-C系列微控制器配有专用的图形加速器,能够以MCU的成本,助力打
[汽车电子]
英飞凌推出TRAVEO T2G-C系列图形<font color='red'>MCU</font>,以<font color='red'>MCU</font>的成本为汽车图形应用提供堪比MPU的性能
基于51单片机的数字频率机设计
一.硬件方案 频率计由89S52单片机控制电路、信号处理电路、键盘电路以及测量数据的显示电路还有系统软件所构成的,在信号处理电路当中包含了待测信号放大、限幅、波形变换、波形整形以及分频电路。测量范围为0~100KHZ。 主要由51单片机+最小系统+分频模块+整形模块+lcd1602液晶显示+按键而成;如图: 二.设计功能 (1)频率的测量范围为1Hz—100kHz能测量各种周期信号,能测出正弦波、三角波或方波等波形的频率。 (2)通过LCD1602液晶显示屏显示检测到的即时频率数值(最多8位数,单位为Hz)。 (3)电路板上排针左边接信号输入,右边接地。 三.设计原理图 (1)原理图主要采用AD软件进行设计,如图:
[嵌入式]
基于51<font color='red'>单片机</font>的数字频率机设计
硬件基础知识:从集成电路角度去认识单片机
本文着手从集成电路角度去认识单片机,主要介绍了单片机的引脚图及引脚功能,以及单片机简易编程。 首先,先看下80C51单片机的功能结构框图。 80C51单片机属于MCS-51系列单片机,采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。 80C51单片机的功能结构框图 下面介绍一下单片机的引脚图及引脚功能(如下图所示),引脚的具体功能将在之后详细介绍。 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 1. 电源: ⑴ VCC -芯片电源,接+5V; ⑵ VSS - 接地端; 2. 时钟: XTAL1、XTAL2 - 晶体振荡电路
[单片机]
硬件基础知识:从集成电路角度去认识<font color='red'>单片机</font>
单片机经验总结—c8051f单片机使用技巧
c8051f单片机是在MCS51单片机基础上发展起来的,既有继承,又有很大的创新。按照功能可分为专用型和通用型。专用型:100MHz高速型的如f120芯片;24位高分辨率AD的如f350芯片;带usb功能的芯片如f320和f340;超低功耗的芯片如f410;还有带CAN总线的芯片如f040和f060。通用型:f020,f330d等,内部带有AD,DA,SPI,I2C,WDT,PWM,uart,片内温度传感器等,有的还可以扩展外部数据总线。 以下是我自己应用c8051f单片机总结出来的经验: 1. c8051f单片机速度快,时钟频率可达到25,50甚至100Mhz!内部资源丰富!学习时推荐用c8051f330d 芯片,价格便
[单片机]
基于LPC2103微控制器实现LED数码管的显示设计
SPI( Serial Peripheral Interface) 总线是Motorola公司提出的一个同步串行外设接口, 允许MCU与各种外围器件以串行方式进行通信、数据交换。SPI可以同时发出和接收串行数据, 它只需4条线就可以完成MCU与各种外围器件的通信。一般使用的4条线为:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SSEL。这些外围器件可以是简单的TTL移位寄存器、复杂的LCD显示驱动器、Flash、RAM、A/D转换器、网络控制器及其他MCU等。 本文给出了一种基于SPI总线的LPC2103控制外围LED显示的设计方法。利用74HC595驱动静态共阳
[单片机]
基于LPC2103<font color='red'>微控制器</font>实现LED数码管的显示设计
基于ARM单片机的条码精密测量系统
摘要: 本文介绍了一种基于32位高性能处理器的视觉精密 测量系统 的软硬件设计。图像传感器采集的条码图像通过精密定位算法得到绝对位移值,由以太网接口实现高速图像采集。该系统适用于高精度定位的各种位移测量。 关键词: ARM ;嵌入式系统;视觉测量;条码 引言 利用条码技术进行精密测量的典型仪器是1990年Leica公司开发成功的数字水准仪NA2000,这种光电一体化的新型仪器,具有测量速度快、精度高、操作简单、读数直观,能自动计算高差、高程,自动记录数据,计算机数据处理和容易实现基准测量一体化等诸多特点。国内目前对该技术的研究较少,本文提出了一种基于ST半导体公司的32位高性能处理器STR912F
[单片机]
基于ARM<font color='red'>单片机</font>的条码精密测量系统
8051单片机教程第四课:第一个小程序
上一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了。怎样才能让灯不断地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10不断地输出高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行: SETBP10 CLRP10…… 这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完SETBP10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLRP10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在执行完CLRP10后,不会再去执行SETBP10指令,所以以后再也没有机会让灭了。 为了解决这两
[单片机]
英飞凌再添两款16位微控制器,瞄准工控和汽车领域
????? 英飞凌科技(Infineon Technologies)公司最近为其16位微控制器家族增添两款新产品XC164KM和XC164GM ,从而为工业控制和汽车系统设计工程师提供了更多的灵活性,以便他们选择对片上外设和存储器进行优化组合来满足应用的要求。 ????? XC164KM和XC164GM两芯片除了具有该产品家族的数字信号处理性能之外,还配备了具有DSP软件库的MAC。它们所提供的外设事件控制器(PEC)具有与DMA类似的功能,使指令周期时间达到25ns,从而使之成为工业高端电机控制及消费产品电机控制应用的理想选择。 ???? XC164 KM包含的CapCom6(CC6)模块相当于具有死区控制(Dead tim
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved