频率测量电路的设计课设.docx

上传人:b****6 文档编号:6523081 上传时间:2023-01-07 格式:DOCX 页数:14 大小:197.90KB
下载 相关 举报
频率测量电路的设计课设.docx_第1页
第1页 / 共14页
频率测量电路的设计课设.docx_第2页
第2页 / 共14页
频率测量电路的设计课设.docx_第3页
第3页 / 共14页
频率测量电路的设计课设.docx_第4页
第4页 / 共14页
频率测量电路的设计课设.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

频率测量电路的设计课设.docx

《频率测量电路的设计课设.docx》由会员分享,可在线阅读,更多相关《频率测量电路的设计课设.docx(14页珍藏版)》请在冰豆网上搜索。

频率测量电路的设计课设.docx

频率测量电路的设计课设

一、概述

在现代社会中,随着电子工业的发展,能够精确测量各种设备仪器中电路的频率、电压、电流等参数已越来越重要。

频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

传统的频率计通采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。

MCS—51系列单片机具有体积小,功能强,性价比比较高等特点,因此被广泛应用于工业控制和智能化仪器,仪表等领域。

此设计用四片74LS161设计一个16位的二进制计数器。

利用单片机的定时功能,在单位时间读取计数器的计数值从而计算出信号的频率,并通过六位动态数码管显示出来。

二、方案论证

频率计是一种测量信号频率的仪器,在教学、科研、高精度仪器测量、工业控制等领域都有较广泛的应用。

随着单片机技术的不断发展,单片机能实现更加灵活的逻辑控制功能,具有很强的数据处理能力,可以用单片机通过软件设计直接用十进制数字显示被测信号频率,能克服传统频率计结构复杂、稳定性差、精度不高的弊端,而且频率计性能也将大幅提高。

此频率计的基本原理首先用四片74LS161设计一个16位的二进制计数器,利用单片机的定时功能,在单位时间读取计数器的计数值从而计算出信号的频率,通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。

闸门时间也可以大于或小于一秒。

闸门时间越长,得到的频率值就越准确,但闸门时间越长则没测一次频率的间隔就越长。

闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。

我们用100ms设定为闸门时间,数字频率计是用数字显示被测信号频率的仪器,如配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率、转速、声音的频率以及产品的计件等等。

因此,数字频率计是一种应用很广泛的仪器。

有以下几种方案可供选择:

方案一:

其工作原理如图l所示。

该方法是使用单片机自带的计数器对输入脉冲进行计数,其好处是设计出的频率计系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就可以实现。

这种方法的缺陷是受限于单片机计数的晶振频率。

本次设计使用的AT89S51单片机,将其内部定时/计数器Tl的功能设为定时。

频率信号由T0端引入。

由于检测一个由“1”到“0”的跳变需要两个机器周期。

前一个机器周期测出“1”,后一个周期测出“0”。

所以输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一。

而且由于定时不能达到ls,所以要多次引起片内定时器的溢出中断,会引起测频的误差。

方案一原理框图如图1所示。

 

 

图1方案一原理框图

方案二:

该方法是单片机使用外部计数器对脉冲信号进行计数,计数值再由单片机读取。

此方法的好处是输入的时钟信号频率可以不受单片机晶振频率的限制,可以对相对较高频率进行测量,但缺点是成本比第一种方法高,硬件系统结构比较复杂。

为了节省硬件成本,可以采用动态扫描的方法进行显示。

方案二原理框图如图2所示。

 

 

图2方案2原理框图

方案比较:

从以上二个方案中可知,内部计数器法测量频率受晶振频率的限制而且多次中断会引发误差,但硬件结构简单。

外部计数器法测量频率不受晶振频率的限制,但硬件结构复杂。

因此通过对这2种方法优缺点的比较,本设计选取方案二,因为其稳定性,可靠性高,易于实现,而且从软件编程方面可以尽量减少误差,所以采用单片机外部计数器法测量频率。

三、电路设计

系统总体分为:

单片机系统电路,外部计数器,数码管显示电路部分。

(1)单片机系统电路

AT89C51是一个低功耗,高性能CMOS8位单片机,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C51单片机管脚如图3所示:

图3AT89C51单片机管脚图

P0:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  /EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

此设计用到了单片机的PO,P1,P2,P3,定时等功能。

(2)外部计数电路

单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是单片机控制器中的时序电路发出的。

单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。

为了保证各部件的同步工作,单内部电路应在唯一的时钟信号下严格按时序进行工作。

MCS-51系列单片机内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。

MCS-51的时钟产生方法有“内部时钟方式”与“外部时钟方式”两种。

在本设计中采用了外部时钟方式。

此电路是由4片74ls161组成的16位2进制计数器,由U2的LOAD输入时钟信号。

当出现一个脉冲的时候计数器自动加一,加到1s时间结束后计数器自动停止工作,将所加的总数据送入单片机P口,通过单片机加以处理送入显示器显示出结果。

外部计数电路电路图如图4所示:

图4外部计数电路电路图

(3)数码管显示电路

显示器是微机重要的输出设备。

显示器有显示监控结果、提供用户操作界面等功能。

在本次设计中采用了LED显示器,即数码管。

数码管的每一个数码段是一只发光二极管。

当发光二极管导通时,相应的一个点或者一个笔画发光,控制发光二极管发光组合,可以显示出所需字符。

我采用了共阴极结构。

在定义其显示字形的码段时,通过I/O口送出七段码

其段码表如下所示:

表1共阴极数码管段选码

显示

0

1

2

3

4

5

6

7

8

9

共阴

3FH

06H

5BH

4FH

66H

6DH

7DH

07H

7FH

6FH

数码管显示电路如图5所示:

图5数码管显示电路图

 

四、性能的测试

(1)软件测试

C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,位操作能力强,适用于各种应用的程序设计。

使用C语言进行单片机应用系统开发,具有编程灵活、调试方便、目标代码编译效率高的特点。

C语言也是目前使用最广的单片机应用系统编程语言。

MCS-51系列单片机开发系统的编译软件可以对51单片机C语言源程序进行编译,称为C51编译器。

在C51编译软件中可进行51单片机C语言程序的调试

在Keil上的编译结果如图6所示

图6Keil上的编译结果

(2)ProteusISIS上的仿真测试

由于是由外部16位的2进制计数器进行计数,所以计数最大值不能超过64K,又因为基准时间的误差,计数误差,指示误差,测量过程中引入的外部干扰,会产生一定的误差。

下面进行仿真测试,当输入60K的频率时,显示如图7所示:

图7输入60K时仿真结果

当输入较小的频率如50HZ时,仿真结果如图8所示:

图8输入50HZ时仿真结果

五、结论

由以上仿真结果可知,当测量60kHZ时,数码管显示60030HZ。

当测量50HZ时,数码管显示50HZ,测量时有些许误差,但在可承受的范围内,因此设计符合要求。

六、性价比

此设计使用外部计数器法测量频率,不受晶振频率的限制,其硬件结构简单、稳定性、可靠性高,易于实现,而且从软件编程方面可以尽量减少误差,所用材料价格便宜,易于获得,性价比较高。

七、课设体会

我在这次课程设计中深刻理解了51单片机各部分的功能与作用。

加深了上课时所学的有关于中断系统、存储器、I/O端口、时钟电路、复位方式等等环节的认识,不再对其一知半解或者毫无头绪了,并深深意识到了自己所学知识的局限性。

我收获很大。

由于查阅了许多英文资料,且使用的相关编译与仿真软件全部为英文,我感到自己的英文水品还有待于进一步提高。

我看到Proteus的元件库里有成千上万种元器件,却由于不认识英文,有时寻找一个元器件需要花很长时间。

通过自己或与同学的努力,许多问题都最终被解决了。

这不但提高了我们解决未知问题的能力,使我们的综合能力进一步提高。

参考文献

[1]阎石主编.数字电子技术.[M]北京:

高等教育出版社,2006年

[2]陈振官等编著.新颖高效声光报警器.[M]北京:

国防工业出版社,2005年

[3]谢自美.电子线路设计.实验.测试.华中理工大学出版社.2000

[4]阎石.数字电子技术基础.高等教育出版社.第五版

[5]夏路易.石宗义.电路原理图与电路板设计教程[M].北京希望电子出版社.2002[6]张肃文.高频电子线路.高等教育出版社.第五版

[7]高吉祥.电子仪器仪表的设计.电子工业出版社.2007

[8]何小平.电子测量仪器.清华大学出版社.1995

[9]牛昱光等,单片机原理与接口技术,电子工业出版社,2008

 

附录I总电路图(另起一页)

附录II源程序

#include

#include"intrins.h"

#definenop()_nop_()

unsignedintcount=0;

unsignedintcount1=0;

unsignedintcount2=0;

unsignedlongcount3=0;

sbitq1=P2^0;

sbitq2=P2^1;

sbitq3=P2^2;

sbitq4=P2^3;

sbitq5=P2^4;

sbitq6=P2^5;

sbitclear=P2^7;

unsignedintdisp[]={0,0,0,0,0,0};

unsignedcharseg[]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};

voiddelay(unsignedintms)

{//延时子程序

unsignedinti;

while(ms--)

{

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

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

voidxianshi()

{q1=q2=q3=q4=q5=q6=0;

P0=seg[disp[0]];

q1=1;

delay

(1);

q1=q2=q3=q4=q5=q6=0;

P0=seg[disp[1]];

q2=1;

delay

(1);

q1=q2=q3=q4=q5=q6=0;

P0=seg[disp[2]];

q3=1;

delay

(1);

q1=q2=q3=q4=q5=q6=0;

P0=seg[disp[3]];

q4=1;

delay

(1);

q1=q2=q3=q4=q5=q6=0;

P0=seg[disp[4]];

q5=1;

delay

(1);

q1=q2=q3=q4=q5=q6=0;

P0=seg[disp[5]];

q6=1;

delay

(1);

q6=0;}

voidchuli(unsignedlongled)

{

disp[0]=led/100000;

disp[1]=led%100000/10000;

disp[2]=led%10000/1000;

disp[3]=led%1000/100;

disp[4]=led%100/10;

disp[5]=led%10;

}

voidmyint(void)interrupt1

{TL0=0xb0;

TH0=0x3c;

count++;

if(count==2)

{TR0=0;

count=0;

count3=(P1+P3*256)*10;

clear=0;

TR0=1;

clear=1;

}

}

voidmain()

{TMOD=0x01;

EA=1;

ET0=1;

ET1=1;

TL0=0xb0;

TH0=0x3c;

TR0=1;

while

(1)

{

chuli(count3);

xianshi();}}

 

附录Ⅲ元器件清单

序号

编号

名称

型号

数量

1

U1

单片机

AT89C51

1

2

U2,U3,U4,U5

计数器

74LS161

4

3

R1

电阻

10K

1

4

C1

电容

10uf

1

5

RP1

排阻

RESPACK-8

1

6

数码管

7SEG-MPX2-CA

1

7

Button

按键

1

8

9

10

11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1