51单片机简易频率计源代码

发布者:平凡幸福最新更新时间:2015-06-23 来源: 51hei关键字:51单片机  频率计 手机看文章 扫描二维码
随时随地手机看文章
//定时器0 设置定时时间1秒   定时器1 设置计数1秒内的脉冲数量
#include
#define uchar unsigned char 
#define uint unsigned int
uint ff;   //接受频率值
uchar start=1;   //定时器,计数模式启动变量
code uchar seg[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};
code uchar tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay(uint k)  //延时函数
{
 while(k--);      
}
void show(uint k)  //数值显示函数
{
  static uchar i,j;
  uint ss[5];
  i=0;
  do
  {
   ss[i]=k%10;
   i++;
  }while(k/=10);
  for(j=0;j   {
   P0=seg[ss[j]];
   P2=tab[j];
   delay(100);
   P0=0xff;
   P2=0xff;
  }  
}

void time0_init()
{
 TMOD|=0x01;  //定时器0 定时模式 计数范围65536
 TH0=0x3c;         //定时初值50ms
 TL0=0xb0;
 TR0=0;     //暂停定时器0
}
void time1_init()
{
 TMOD|=0x50;     //定时器1  计数模式,计数范围65536
 TH1=0;      //计数初值0
 TL1=0;
 TR1=0;    //暂停计数器
}
void str_init()    //定时器中断
{
 EA=1;
 ET0=1;
}
void time0_event() interrupt 1
{
  static uchar i;
  i++;
  TH0=0x3c;         //定时初值50ms
  TL0=0xb0;
 if(i==20)
 {
  i=0;
  TR1=0;    //停止计数
  TR0=0;          //停止定时
  ff=(TH1*256+TL1);   //求出频率值   就是1秒内脉冲次数
  TH1=0;          //计数值清零
  TL1=0;
  TH0=0x3c;         //定时初值50ms
  TL0=0xb0;
  start=1;               //启动定时器开启变量
 }
}
 
void main()
{
 time0_init();
 time1_init();
 str_init();
 while(1)
 {
  if(start==1)
  {
   TR0=1;  //启动定时器
   TR1=1;  //启动计数器
   start=0;  //关闭启动变量位 保证1秒时间
  }
  show(ff);
 }
}
关键字:51单片机  频率计 引用地址:51单片机简易频率计源代码

上一篇:PCF8591(AD-DA)芯片-51单片机程序
下一篇:51单片机18B20温度与串口实验

推荐阅读最新更新时间:2024-03-16 14:04

用pcf8563做时钟
//---库函数声明及相关定义---// #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit SDA=P3^1; //数据 sbit SCL=P3^0; //时钟 #define LCDIO P1 //1602数据口 sbit rs=P2^0; //1602数据命令选择引脚 sbit rd=P2^1; //读写选择抖? sbit lcden=P2^2; //1602选通引脚 uchar code table ={ 2010-11-29 MON }; ucha
[单片机]
用pcf8563做时钟
基于AT89C51单片机设计的简易智能机器人
引言 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。 1 设计思想与总体方案 1.1 简易智能机器人的设计思想 本机器人能在任意区域内沿引导线行走,自动绕障,在有光源引导的条件下能沿光源行走。同时,能检测埋在地下的金属片,发出声光指示信息,并能实时存储、显示检测到的断点数目以及各断点至起跑线间的距离,
[单片机]
51单片机控制的数字触发器
    电力电子技术研究的内容包括三个方面:电力电子器件、变流电路和控制电路。电力电子变流技术在工业化领域有着广泛的应用。家用电器节能灯、电子拖动、电炉控制系统中已采用相控整流技术。但多数触发装置普遍是模拟的,调节十分的不便,触发精度差、故障率高。采用单片机来控制晶阐管的触发,是晶阐管应用的发展趋势。本文介绍了一种由8051单片机组成的触发控制系统,可实现高分辨率的数字触发器。     1 系统硬件组成及其原理     系统硬件组成如图1,被控对象是三相全控桥整流电路。控制电路由8051单片机及其外围电路组成。外围电路主要是由键盘电路、同步脉冲形成电路、驱动输出电路等组成。     1.1 控制角θ     控
[单片机]
<font color='red'>51单片机</font>控制的数字触发器
采用MCS-51单片机实现CPFSK调制
  在遥测遥控系统中,数据的调制和解调是经常遇到的问题。一些自报测站不接收远方的遥控命令,只是定时采集参数或在参数变化时采集,并自动将采集的参数发往监控中心。这些遥测站不一定包含解调功能,但信号调制是遥测站的必要功能。   在水情自动测报系统中,数据传输大量采用超短波无线电台。用模拟电台传输数字信号时,调制方法多采用FSK。水情自动测报规范推荐的标准为CCITT V.21,即:数据串行速率为300波特率,数据电平“1”调制频率为980Hz,数据电平“0”调制频率为1180Hz。   调制解调的通常方法是采用专用的调制解调接口芯片,如MC145442、XR2211、XR2206等。采用专用调制解调接口芯片不仅增加了设备成本,而且
[单片机]
采用MCS-<font color='red'>51单片机</font>实现CPFSK调制
三种方法教你如何破解51单片机
大家可能都知道破解51单片机是很容易的,但为什么容易,又是如何来破解的,可能很多人就不大清楚了,我在这里结合网上一些前辈整理的资料,和自己的经验,对MCU破解技术做个简单分析。 大家不要把解密想的很复杂,他不像研发一款产品那样,先确定客户需求或者新产品主要功能,然后立项确定技术指标,分配软硬件开发任务,基于硬件调试程序,然后验证功能,测试bug,还要做环境试验。行业里解密的方法有很多,每个人破解的思路也不一样。但是大致分为几种。 一软件破解 利用软件破解目标单片机的方法,利用这种方法,不会对目标MCU元器件造成物理损伤。主要是对WINBONGD,SYNCMOS单片机和GAL门阵列,这种利用软件解密设备,按照一定的步骤操作,
[单片机]
三种方法教你如何破解<font color='red'>51单片机</font>
8051单片机的机器周期解析
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。参见后面的时序图。
[单片机]
80<font color='red'>51单片机</font>的机器周期解析
51单片机 定时器及其应用
89c51单片机内部有两个16位的定时/计数器,即定时器T0和定时器T1,单片机的定时功能其实就是通过计数来实现的,当单片机每一个机器周期产生一个脉冲时,计数器就加一。定时器的应用涉及到中断方面的知识,可以先了解中断的概念再来看定时器 如,一个16位的定时器,它所能计数的范围是0~65535,如果单片机采用的是12M的晶振,那么定时器单次最长的时间为65535*((1/12)*12),因为一个一个机器周期等于12个振荡周期,那么定时器加一所用的时间是1/12M*12是1us,也就是一个12MHz晶振的51单片机单次最长时间约为65ms. 定时器的控制 89c51的定时器由两个寄存器控制,分别是工作模式寄存器TMOD和控
[单片机]
<font color='red'>51单片机</font> 定时器及其应用
谈谈51单片机的RETI指令
  最近在基于51 单片机 编程的过程中出现了个很奇怪的问题 程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断 。   在有过单片机中断编程经历者都知道当EA=1,ET0=1的条件下,满足TF0=1时,如果在此期间没有更高优先级的中断执行的情况下定时器中断0必定会产生中断响应。而在我所编写的程序中仅使用了定时器中断0,一个中断也就谈不上存在优先级问题。经过我对自己程序的检查并对各教材中断程序对比发现我的程序中的一个问题:由于中断的不可控性决定其跳出中断返回主程序的不确定,而由于程序需要中断跳出后能跳到指定的地址。为了解决这个问题我在中断结束的地方直接用了无条件跳转指令 LJMP ADR16 其
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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