数码管显示是多少频率,如何用单片机的定时计数器计算频率并用LED数码管显示
来源:整理 编辑:亚灵电子网 2023-03-31 20:12:16
1,如何用单片机的定时计数器计算频率并用LED数码管显示
看看数码管的每个引脚对应的编码。这个有阴阳之分。在网上查下有现成的。然后利用单片机的P0或P1或P2口来控制。有空给你传个程序看看用的是多倍周期法。。 首先用个计数器来计脉冲的个数,比如说是16个 用定时器来记这16个脉冲的时间t。。。 16/t就是你所求的频率啊。。
2,FPGA中数码管刷新频率多少为好
一个数码管可以显示0-f,共16种输出,在不考虑小数点的情况下需要4位驱动,因此case语句中把每四位分配给相应要驱动的数码管,32位的输入是为了方便一次性输入,和分成8个4位输入是完全一样的,在实际电路上是没有区别的,有兴趣你可以自己改写一下,对照rtl视图就明白了
3,来完成多输入的信号进行频率计数计数的频率结果通过8位数码管
你这个实在是太难做了,如果你能预先知道频率大概在什么范围就好了.
1Hz和100KHz的处理方式是迵异的.
利用定时器测速无非有两种方法,一是在定时中断中读取计数值,二是在计数器溢出中断中读取定时值.
应该是对应不同的频率范围选择合适的方法.
你的频率是不断变化的,所以应该用测脉宽的方法,即计数1次即中断,并读取定时值,但是你最高250KHz,
即4us就一次计数,传统51用12M晶振,一个指令周期就1us,处理不来的.
4,4位一体数码管用89c51在数码管上显示频率c语言怎么写啊
最好把,频率采集放到外部中断口,然后准备一个计数器,每次中断计数器加一。然后开时钟中断,设为1/8秒,每次时钟中断成功就把外部中断计数器的数字取出来乘以8后放入数码管显示,同时把计数器清零。要成品的话真没有。。。怎么写现在要立马写出来还是没有的,但是我可以说下我自己的思路。要显示频率,首先要通过51对频率进行采样计算,得到一个频率的数值,具体的话请参考先关的书籍,然后把得到的数值送到数码管显示就行了。数码管显示数字的程序你是有的把,直接把数值加到显示的数字的程序中就行了。这个是我的思路,不知道有没有理解错。。。
5,频率为1HZ2KHZ要求用定时器来实现频率值在数码管上从到右
#include<reg52.h>#include<types.h>INT8U code table[]=INT16U i=0; ge, shi, bai, qian, num=0,a,b,cnt;sbit led =P1^0;sbit key1=P3^0;//按键加sbit key2=P3^1;//按键减/******延时函数*******/void delay(INT16U z) INT16U x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}/******定时器T0初始化*******/void Time_Int() TMOD=0x01; TH0 =0xfe;//0.5ms TL0 =0x33; EA =1; ET0 =1; TR0 =1;}/**********键盘扫描**********/void keyscan() if(key1==0) delay(10); if(key1==0) num++; while(!key1); } if(key2==0) delay(10); if(key2==0) num--; while(!key2); } a=5000/num; b=a*2; if(num>2000) num=2000; if(num<1) num=1;}main() Time_Int(); led =0; while(1) keyscan(); qian=num/1000; bai =num%1000/100; shi =num%1000%100/10; ge =num%1000%100%10; }}void time0() interrupt 1 TH0 =0xff;//0.1ms TL0 =0xa3; P0=0X00; cnt++; if(cnt<=a) led=1; } else if((cnt>a)&&(cnt<=b)) led=0; } else if(cnt>b) cnt=0; } i++; if(i>4) i=1; switch(i) case 1:P2=0X00;P0=table[qian];break; case 2:P2=0X01;P0=table[ bai];break; case 3:P2=0X02;P0=table[ shi];break; case 4:P2=0X03;P0=table[ ge ];break; default:break; } }你这个问题不全面,谁知道你的数码管的电路时怎么接的?下面是从P1.0一脚上产生1HZ的方波,数码管没有电路写不了,记得采用了给分啊,写这么多字,怪累的#include <reg51.h>sbit fb=P1^0;void InitTimer0(void);void main(void) InitTimer0(); while(1); // 这里写你的数码管显示程序,写完把斜杠删掉// }}void InitTimer0(void) TMOD = 0x01; TH0 = 0x0FC; TL0 = 0x18; EA = 1; ET0 = 1; TR0 = 1;}void Timer0Interrupt(void) interrupt 1 TH0 = 0x0FC; TL0 = 0x18; fb=~fb;}频率为1HZ-2KHZ,一下一下加,太慢了吧下面的是我把以前自己写的拼凑了一个程序,也没有运行,你自己试一下,再有显示程序没写,就是那个display()函数,我是用P1.0和P1.1接了两个按键,P2.0输出波形....这种程序要自己写,很简单的,如果这个都不想写,以后的程序就没办法了...#include <reg51.h>#include <intrins.h>#define uchar unsigned charsbit aa=P2^0;uint bb;void delay(uchar k) uchar i,m; for(i=0;i<110;i++) for(m=0;m<k;m++);}void timer0() interrupt 1 TH0=bb/256; TL0=bb%256; aa=~aa;}void main() while(1) if(P1!=0xff) delay(10); if(P1!=0xff) switch(P1) case 0xfe:bb++;break; case 0xfd:bb--;break; } while(P1!=0xff) display(num); num=bb; display(num); } else display(num); } else display(num); }}把 act的定义贴出来 或者 p0 和 p3口的电路贴出来。。这样是看不出为啥的。。
文章TAG:
数码管显示是多少频率数码 数码管 显示
相关文章推荐
- BA6208是什么芯片,BA6247是什么芯片?
- 松下npm贴片机多少钱,买松下贴片机多少钱
- A9智能电视处理器能跑多少分,A9频率14怎么442系统和422系统安兔兔跑分一样
- 03db是多少,30wt等于多少
- 占空比多少有意义,占空比控制有什么优点
- 电路正负极颠倒危害,锂电池正负极接反
- 电路图中网孔,电路中网格的概念
- 电路板的硬件调试,简述硬件电路的设计流程
- 安桥818音箱设置多少,安桥818音频输入如何设置
- mos管电压等级,关于mos管的导通电压
- 正负极交换芯片,芯片的正负极
- 消除反电动势电压,反电动势消除电路
- 57AY161是什么芯片,A5657N是什么芯片?
- 安全芯片应用原理,什么是安全芯片?
- hx48电路图,xh-m401电路图