超过460,000+ 应用技术资源下载
rar

0.1Hz 10MHz频率计

  • 1星
  • 日期: 2013-09-22
  • 大小: 65.62KB
  • 所需积分:1分
  • 下载次数:7
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 0 1Hz10MHz频率计

#include<reg52.h>unsigned char t=0,yichu=0,fenpin;sbit B153=P2^0;sbit A153=P2^1;sbit GATE=P2^6;sbit CLR=P2^7;sbit P33=P3^3;void t0(void)interrupt 1{t++;yichu=2;        //定时器0溢出,yichu=2}void t1(void)interrupt 3    //计数器1溢出,yichu=1{TCON=0;yichu=1;TH1=0xff;TL1=0xff;}void delay(void)      //1s软件延时{unsigned int i=500,j;while(i) {i--; j=250; while(j)  {j--;} }}unsigned char table(unsigned char x) //软件查表输出{unsigned char code n[10]={0xee,0x82,0xdc,0xd6,0xb2,0x76,0x7e,0xc2,0xfe,0xf6};return(n[x]);}display(float f)      //以测出的频率串行输出{unsigned long x;unsigned char a[5]={0,0,0,0,0},i=0,j;if(f!=0){if((f<10000)&&(f>1))     //正常显示 {if(f>1000)f=f-1;     //软件修正频率偏差 while(f<1000)  {f=f*10;  i++;  } x=f*10; a[4]=x%10; if(a[4]>=5)f=f+1;; x=f; a[1]=x%10; a[2]=(x/10)%10; a[3]=(x/100)%10; a[4]=(x/1000)%10; for(j=0;j<5;j++)  {a[j]=table(a[j]);} a[i+1]++; a[0]=0; }else if(f>=10000)      //以科学计数法显示 {while(f>=1000)  {f=f/10;  i++;  } x=f; a[4]=(unsigned char)((float)((f-x))*10); if(a[4]>=5)x++;      //四舍五入 a[2]=x%10; a[3]=(x/10)%10; a[4]=(x/100)%10; a[0]=i+2; for(j=0;j<5;j++)  {a[j]=table(a[j]);} a[4]++; a[1]=0x7c; }else {x=f*10000;       //频率值小于1 if((x%10)>=5)x=x+10; //四舍五入 x=x/10; a[1]=x%10; a[2]=(x/10)%10; a[3]=(x/100)%10; a[4]=(x/1000)%10; for(j=0;j<5;j++)    {a[j]=table(a[j]);} a[4]++; a[0]=0; } }for(j=0;j<5;j++)   //串行 {SBUF=a[j]; while(TI==0);}}cepin(){unsigned char i;float sj;unsigned long js;//时间、计数的拼音首字母float f;  //f为频率TMOD=0xd9;t=0;TH0=0;TL0=0;TH1=0;TL1=0;GATE=0;TCON=0x50;GATE=1;delay();GATE=0;for(i=0;i<250;i++){}    //延时1mssj=((float)(TH0*256+t*65536+TL0))/1000000.0;js=(long)TH1*256+TL1+1;f=(js/sj)*fenpin;display(f);}panduan(){float zhouqi;B153=1;A153=1;TMOD=0x51;  TH0=0xce;  //定时器0=12.8msTL0=0;TH1=0xff;  //计数器1=100个脉冲TL1=0x9c;TCON=0x50;while(yichu==0);TCON=0;if(yichu==1) //计数器先溢出:在12.8ms内测得的脉冲过多,说明频率较高 {fenpin=128;//转为测128分频后的频率 cepin();}else    //计时器先溢出:100个脉冲的时间比较短,即频率较低,可以减少分频数 {yichu=0; B153=1; A153=0; TH0=0xc1; //定时器0=16ms TL0=0x80; TH1=0xff; //计数器1=100个脉冲 TL1=0x9c; TCON=0x50; while(yichu==0); TCON=0; if(yichu==1)   //计数器先溢出:在16ms内测得的脉冲过多,说明频率较高  {fenpin=16;//转为测16分频后的频率  cepin();} else   //计时器先溢出:100个脉冲的时间比较短,即频率较低,用2分频测周期  {B153=0; //以下是测周期部分  A153=0;  TH0=0;  TL0=0;  t=0;  TMOD=0x09;  TR0=1;  GATE=1;  while(P33==0);  GATE=0;  while(P33==1);  TR0=0;  zhouqi=(TH0*256+t*65536+TL0)/1000000.0;  if(zhouqi<0.001) //若周期太小,则转为测原频率   {fenpin=1;   B153=0;   A153=0;   cepin();}  else{display((1.0/zhouqi));}  } }}main(){IE=0x8a;while(1) { panduan(); //判断原频率属于哪个范围,并调用相应函数测其频率 delay(); }}

更多简介内容

推荐帖子

频率计模块
频率计模块特点  ● 频率分辨率高:1Hz(共时基测量)。  ● 频率范围宽:测量频率范围为10Hz~20GHz。  ● 友好的人机界面:全中文菜单,操作简单、易学。  ● 符合VXI总线通用规范,具有虚拟仪器的各项特征。  ● 体积小:标准的VXI C尺寸、单槽模块,重量轻、体积小。  ● 二次开发能力强:提供标准的SCPI程控命令、即插即用的仪器驱动程序。  ● 多种外参考输入:可以接收1MH
ld056k 模拟电子
Nucleo-F413ZH 工程版测评(中): 浮点计算, 频率计
本帖最后由 cruelfox 于 2016-12-26 09:33 编辑   浮点计算单元(FPU)的测试。先还是用前面那个程序,修改了一下,避免了中间的double/single类型转换: uint32_t test(int32_t *data, uint32_t size) {     uint32_t i;     float diff=0.0;     for(i=0; i< siz
cruelfox 【stm32/stm8】
【TIVA C Launchpad 学习笔记二】利用定时器的计时捕获模式制作简易频率计
/******************************************* 开发坏境:CCSv5 程序功能:利用定时器的计时捕获模式制作简易频率计 程序说明:可测方波频率,其它波形应先整形成方波再测频率。最高和最低可测频率                  为1HZ-100KHZ(很久前测的,现在记不太清了,差不多就是这个范围,                  具体以实际
Linchpin 【微控制器 MCU】
大学里verilog课程设计的一个频率计报告(包含源代码)
大学verilog课程做的一个频率计的设计报告。设计思路以及各个模块的程序代码,写的比较全,完全原创,名字学号学校老师什么的删掉了,所以第一页是空白没有排版。   用的verilog语言,测频范围为1Hz~100MHz,数码管显示,采用的生成各个模块,然后产生电路模块连线的方法,自动生成的顶层模块,不是用verilog语言直接例化的,所以报告里没有顶层的程序。 1芯币绝对物超所值,希望大家
流浪的猥琐 FPGA/CPLD
verilog写频率计失败 FPGA(cyclone4)开发板心得第05贴
FPGA板子到手不学学HDL语言总是说不过去的,看了看verilog的教程,感觉干看太空洞了,不如做点什么,于是就打算做一个频率计,想看看最高能检测到多高频率的方波. 发现一个很大的问题,verilog不支持任意模除,所以在数据显示的时候.很简单的: ds[0]=signal_cnt; ds[1]=signal_cnt/10; ds[2]=signal_cnt/100; ds[3]=si
astwyg FPGA/CPLD
不用频率计矫正ICOM IC-725频偏
收了一台全新的ICOM的IC-725,作为收藏和研究用,使用中觉得该机操作简单便捷,接收不错,但频率有70HZ的频偏,正常显示的频率下听HAM的语音有变调,用725的RIT旋钮可以矫正接收频率,但却不能矫正发射频率,以至于和熟悉朋友通联时朋友说我的声音变调,听不出是我自己。 为了证实这个情况,我自己做了一个测试:在家里另一个房间里放一台857D,频率设置在14.280MHZ,857的扬声器输出接
Jacktang 【无线连接】

评论

+20 下载积分

个人中心

意见反馈

求资源

回顶部

下载专区

电源设计技术资料
点击获取

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

EEWorld电子技术资料下载——分享有价值的资料

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })