设计一个51单片机的数字频率计,要求显示从1—1000HZ,并用7段显码显示

设计一个51单片机的数字频率计,要求显示从1—1000HZ,并用7段显码显示,第1张

曾做过这个题目,将资料整理了一下,放到了我的公共邮箱

邮件名是"51单片机频率"

包括电路图和源程序在发帖之前验证过,没有问题!

可以测量频率范围是0~65KHz

邮箱地址:protel2006@163com

密码是protel

已将你要的文件发到该邮箱~ 请不要删除,谢谢!

实现这样的测量并不困难。不过,个人觉得,重要的是设计思路,直接求程序,你获取的不是知识,遇到问题也不能自己解决。

你的频率测量范围较宽,采用两个定时器的思路是对的。不过,没有必要限制在1S内对方波进行计数。一般思路是,对于较高频率的信号测量,采用固定时间T(不一定是1S)对脉冲数N进行计数,频率F=N/T。对于较低频率的信号测量,对固定周期数的脉冲(脉冲数为N,N常取1或更大的数)进行计时(时间为T),频率F=N/T。这样做的好处是,高频时,可以测量较快,低频时,测量较慢(这是必然的,最快就是N=1时),但是,都可以获取较高的测量精度。低频时,精度远远高于1Hz。

没按你的要求发程序,打搅勿怪,有疑问欢迎交流!

#include <AT89X51H>

#include <mathh>

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,0,0}; //定义八位数组

unsigned char temp[8];

unsigned char dispcount;

unsigned char T0count;

unsigned int timecount;

bit flag;

unsigned long x;

void main(void) //主函数,执行功能

{

unsigned char i;

unsigned int j;

TMOD=0x15;

TH0=0;

TL0=0;

TH1=(65536-2000)/256; //

TL1=(65536-2000)%256; //取模

TR1=1;

TR0=1;

ET0=1;

ET1=1;

//PT0=1;

EA=1;

while(1) //通过循环获得

{ P1=dispcode[dispbuf[dispcount]];

P2=dispbit[dispcount];

dispcount++;

if(dispcount==8)

{

dispcount=0;

}

for(j=300;j>0;j--);

while(flag) //通过循环取得,flag用于判断合适停止循环

{

flag=0;

x=T0count65536+TH0256+TL0;

for(i=0;i<8;i++)

{

temp[i]=0;

}

i=0;

while(x/10)

{

temp[i]=x%10;

x=x/10;

i++;

}

temp[i]=x;

for(i=0;i<8;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-2000)/256;

TL1=(65536-2000)%256;

timecount++;

if(timecount==500)

{

TR0=0;

timecount=0;

flag=1;

}

目录1

摘要…………………………………………………………………………2

综述…………………………………………………………………………2

课程设计目的与任务………………………………………………………3

任务分析与方案选择……………………………………………………3

进度安排…………………………………………………………………4

设计要求…………………………………………………………………4

1数字频率计原理………………………………………………………5

11数字频率计的基本原理框图…………………………………………5

12数字频率计的基本原理………………………………………………5

2数字频率的设计电路……………………………………………………6

21放大整形电路…………………………………………………………6

22石英晶体振荡器和分频器……………………………………………7

23计数译码显示电路……………………………………………………8

24控制电路………………………………………………………………8

25数字频率计的电路图…………………………………………………9

3器件介绍…………………………………………………………………10

31 CD4060介绍…………………………………………………………10

32 CD4518介绍…………………………………………………………11

课程设计的总结与展望……………………………………………………12

参考文献……………………………………………………………………13

详见豆丁资源

以上就是关于设计一个51单片机的数字频率计,要求显示从1—1000HZ,并用7段显码显示全部的内容,包括:设计一个51单片机的数字频率计,要求显示从1—1000HZ,并用7段显码显示、数字频率计设计LCD显示:测量函数信号发生器产生的方波频率,测量频率范围为1-250khz精度为1hz。、请高手帮我翻译下以下程序 这个一个关于数字频率计设计的程序 我就30分了都奉送了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/9441329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存