ZKX's LAB

单片机来实现数字频率计 51单片机制作简易数字频率计程序

2020-10-05知识6

51单片机的数字频率计 该系统由定时器0中断子函数、定时器1中断子函数、延时子函数、按键消抖子函数、闸门控制子函数、主函数和数据定义这几部分组成。闸门时间由定时器1控制,初始为2s,可以通过按键加减,范围为2s到7秒。闸门时间就是采样时间,闸门时间越长,测量精度越准确。由P3.4输入信号,低电平有效,触发T0外部中断。当T0触发中断的时候执行的程序。这里只进行了一个操作,t0+。所以,t0的值表示触发了几次中断,也就表示接受到的脉冲几次从0到65536。所以会有t0*65536。另外,由于计时的机制是THO+、TL0+,所以,THOTL0就表示当前的计数值。THOTLO-初值就可以确定没有触发中断定时多少。TH0*256=TH0*2^8,实质就是左移8位,就是拼接TH0跟TL0的处理。所以频率的核心算法为daimao=(t0*65536+TH0*256+TL0)/n程序框图?总源程序include\"reg52.hdefine uchar unsigned chartypedef unsigned int uint;sbit w1=P2^0;sbit w2=P2^1;sbit w3=P2^2;sbit w4=P2^3;sbit w5=P2^4;sbit w6=P2^5;sbit jia=P1^6;sbit jian=P1^7;sbit s=P3^7;启动bit flag;标签uchar s1,s2,s3,s4,s5,s6,shu=1;控制数组取值uchar t0,t1,t2,a;unsigned long m=5,n;m为闸门时间int y;unsigned long daimao;。

单片机来实现数字频率计 51单片机制作简易数字频率计程序

请问单片机的数字频率计怎么设计程序?要求是0--50KHZ进行计数;要用四个数码显示管显示 50KHz频率不高,直接采用T0计数就可以了,大概思路如下:T0设置为计copy数器模式,下降沿计数。T1设置成定时器模式,中断20ms即可,20ms中断时读取T0内部的计数值,然后计算既可以得到频率。数码管显示采用分时驱动吧,正好利用20ms的中断来刷新每位。具体的应该百你也知道,这个是基础。不过在极低频率,0.X HZ估计度效果很差,这个需要设置不同的量程来做了,自动量程可以采用不同频率下改变T1中断时间的方法来做,具体也就是说多久才能取到一个脉冲。

单片机来实现数字频率计 51单片机制作简易数字频率计程序

基于单片机的数字频率计设计的实现方法都有哪些 你要测10MHZ的,用单片机+CPLD的组合吧,单用单片机搞不定的

单片机来实现数字频率计 51单片机制作简易数字频率计程序

51单片机制作简易数字频率计程序 这里有一个四位数码管的频率计,供参考123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111#include<;reg52.h>;#define uchar unsigned char#define uint unsigned int uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};所需的段的位码/uchar wei[4]={0XEf,0XDf,0XBf,0X7f};位的控制端(开发板)uchar wei[4]={0X80,0X40,0X20,0X10};位的控制端(仿真)uint z,x,c,v,date;定义数据类型uint dispcount=0;uint lck=0;uint disp=0;延时函数*/void delay(uchar t){ uchar i,j;for(i=0;i;i+){ for(j=13;j>;0;j-);{;} }}/*数码管动态扫描*/void xianshi(){/*数据转换*/z=date/1000;求千位 x=date%1000/100;求百位 c=date%100/10;求十位 v=date%10;求个位 P2=wei[0];P0=duan[z];delay(50);P2=wei[1];P0=duan[x];delay(50);P2=wei[2];P0=duan[c];delay(50);P2=wei[3];P0=duan[v];delay(50);}/*定时器初值1ms*/void initTimer(void){ TMOD=0x0;TH0=0xe3;TL0=0xc;}/*定时器。

毕业设计,,,,急啊!!!!关于单片机的数字频率计啊??? 我在PUDN上帮你找找看,也许会找得到的。

用压力传感器和频率计怎么做一个数字电子秤,不要用单片机实现。求大神指导。 压力传感器输出的信号通过VF线性变换为频率信号,这样重量和频率就成函数关系,通过频率计测量频率,就间接得出重量了。

我用C51单片机做简易数字频率计,测量脉宽2K以内是差不多的,但是超过2K就各种不对了,这是测量脉 你用的是什么单片机?主频是多少?看你的寄存器应该是51。别忘了,51单片机的主频12MHz,为了抗干扰,还要12分频。也就是说,你只有1MHz的运算频率。然后你得到你的w,还要做那么复杂的运算,本身while(p3_5=0)的判断也要时间。还有,你的n1,n2是什么类型的呀。你用的是n1=w*65536我就觉得,它至少是个32位的整型变量。我的老天,51的内核只有8位,它要做许许多多额外的运算才能给你拼合出32位变量。还有你调用函数的各种开销,一旦你的所有时间开销大于500个周期,你就会错过脉宽。总之,还得看你的目标频率范围是多大吧。任何仪器都有一个频率上限,超过频率上限的就测不了了。如果在2K以内,你就忍了。超过2K,建议你换平台。8位系统建议你换AVR或者PIC,首先,这两个是RISC结构,拿AVR来说,单周期指令,不需要12分频,16~20Mhz的主频也比51的高。最关键的还有硬件捕捉等功能,测量脉宽之类的操作可以靠硬件实现,软件只需要简单处理就可以了。系统要求再高,可以考虑CORTEX M0系列的32位单片机。主频最高到72MHz,本身累加器是32位的,像你这种32位乘法一个周期就可以完成。也有各种硬件帮你测量脉宽。

单片机 数字频率计的问题,麻烦高手解答 声光提示最简单的实现方法是:用一根口线驱动一只8550三极管,再用三极管驱动蜂鸣器和LED,这样送一个低电平声光都解决了。

#单片机#unsigned#频率计

随机阅读

qrcode
访问手机版