数字频率计.docx

上传人:b****4 文档编号:3737176 上传时间:2022-11-25 格式:DOCX 页数:15 大小:96.20KB
下载 相关 举报
数字频率计.docx_第1页
第1页 / 共15页
数字频率计.docx_第2页
第2页 / 共15页
数字频率计.docx_第3页
第3页 / 共15页
数字频率计.docx_第4页
第4页 / 共15页
数字频率计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数字频率计.docx

《数字频率计.docx》由会员分享,可在线阅读,更多相关《数字频率计.docx(15页珍藏版)》请在冰豆网上搜索。

数字频率计.docx

数字频率计

单片机课程设计

题目:

数字频率计

 

班级:

自控082班

姓名:

王君俊

学号:

200808740

指导教师:

张雁鹏

设计时间:

2010.1.13

目录

1.中文摘要----------------------------------------------

(2)

2.引言--------------------------------------------------

(2)

3.设计原理及方案----------------------------------------

(2)

4.硬件设计----------------------------------------------(5)

5.软件设计----------------------------------------------(5)

6.总结--------------------------------------------------(8)

7.参考文献----------------------------------------------(8)

8.附录--------------------------------------------------(9)

 

数字频率计

一、中文摘要

本数字频率计将采用定时、计数的方法测量频率,采用一个1602ALCD显示器动态显示6位数。

测量范围从1Hz—10kHz的正弦波、方波、三角波、锯齿波。

以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。

具体为先将输入信号通过放大整形电路整形为矩形波,然后送入单片机,在1s内对矩形波的周期变化次数进行统计。

所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数,故所统计到的次数即为被测信号的频率。

最后直接用十进制数字显示被测信号频率。

若信号其频率不稳定,则需重复上述步骤,以循环检测频率变化,取其平均值作为该信号的频率。

二、引言

在电子测量领域中,频率测量的精确度是最高的,可达10—10E-13数量级。

因此,在生产过程中许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、速度、加速度,乃至各种气体的百分比成分等均用传感器转换成信号频率,然后用数字频率计来测量,以提高精确度。

   

由于大规模和超大规模数字集成电路技术、数据通信技术与单片机技术的结合,数字频率计发展进入了智能化和微型化的新阶段。

其功能进一步扩大,除了测量频率、频率比、周期、时间、相位、相位差等基本功能外,还具有自捡、自校、自诊断、数理统计、计算方均根值、数据存储和数据通信等功能。

此外,还能测量电压、电流、阻抗、功率和波形等。

数字频率计是一种用电子学方法测出一定时间间隔内输入的脉冲数目,并以十进制数字形式显示测量结果的电子仪器,是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,具有精确度高、测频范围宽、便于实现测量过程自动化等一系列突出优点。

所以,数字式频率测量计(简称数字式频率计)已成为目前测量频率的主要仪器。

三、设计方案及原理

1.设计方案

本数字频率计将采用定时、计数的方法测量频率,以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。

采用一个1602ALCD显示器动态显示6位数。

测量范围从1Hz—10kHz的正弦波、方波、三角波、锯齿波。

2.基本原理

频率计主要由四个部分构成:

时基(T)电路、输入电路、计数显示电路

以及控制电路。

在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。

主门的另外一个输入端为时基电路产生电路产生的闸门脉冲。

在闸门脉冲开启主门的期间,特定周期的窄脉冲才能通过主门,从而进入计数器进行计数,计数器的显示电路则用来显示被测信号的频率值,内部控制电路则用来完成各种测量功能之间的切换并实现测量设置。

(1)放大整形

在晶体管参数和元件值相同的情况下,共射放大器的电压,电流放大倍数均较大,因而功率放大倍数最大,其输入,输出电阻适中,高频特性也较好,应用较为广泛。

故采用共射级放大电路将输入信号放大。

再将通过放大的信号送至555定时器构成的施密特触发器,将各种波形转化为矩形波,以方便计数。

施密特触发器的正向阈值电压Vt+=Vr1=2/3Vcc,负向阈值电压Vt-=Vr2=1/3=Vcc,则回差电压Vt=Vr1-Vr2=1/3Vcc。

图1.555定时器构成的施密特触发器图2.555定时器引脚图

如上图1,在Vi从0开始升高的过程中,当V1<1/3Vcc时,满V112/3Vcc后,满足V11>Vr1,V12>Vr2,V0才跳变到低电平。

如上图2,555芯片引脚功能介绍如下:

①地GND②触发③输出④复位⑤控制电压⑥门限(阈值)⑦放电⑧电源电压Vcc

(2)数字信号处理

图3.80C51引脚图

如上图3所示,80C51芯片中40个引脚大致可分为4类:

电源

(2)、时钟

(2)、控制(4)和I/O引脚(32)

(1)主电源引脚Vss和Vcc

①Vss接地②Vcc正常操作时为+5伏电源

(2)外接晶振引脚XTAL1和XTAL2(18/19引脚)

①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。

当采用外部振荡器时,此引脚接地。

 ②XTAL2内部振荡电路反相放大器的输出端。

是外接晶体的另一端。

当采用外部振荡器时,此引脚接外部振荡源。

(3)控制或与其它电源复用引脚RST,ALE/PROG,PSEN和EA/Vpp(9/30/29/31引脚)

①RST当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位。

在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。

②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的)周期性地发出正脉冲信号。

因此,它可用作对外输出的时钟,或用于定时目的。

但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE端可以驱动(吸收或输出电流)八个LSTTL电路。

 对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(功能)③外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,在每个机器周期内两次有效。

同样可以驱动八LSTTL输入。

④EA/Vpp,Vpp为内部程序存储器和外部程序存储器选择端。

当EA为高电平时,访问内部程序存储器,当EA为低电平时,则访问外部程序存储器。

(4)80C51共有4个8位并行I/O端口:

P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。

在单片机80C51中,当定时器/计数器用作“定时器”时,在每个机器周期寄存器加1,因此,也可以把它看作是在累计机器周期。

由于一个机器周期包括12个振荡周期,所以,它的计数速率是振荡频率的1/12。

而用作“计数器”时,寄存器在其对应的外输入端T0或T1有一个“1→0”的跳变时加1。

此操作中,在每个机器周期的S5P2期间采样外部输入信号,当一个周期的采样值为高电平,而下一个周期采样值变为低电平时,计数器加1。

新的计数值在紧接着检测到一个跳变后的下一个周期的S3P1期间在寄存器中出现。

由于识别一个从“1→0”的跳变要用两个机器周期(24个振荡周期),所以最快的计数速率是振荡频率的1/24。

外部输入信号的速率是不受限制的,但必须保证给出的电平在变化前至少被采样一次,即它应该至少保持一个完整的机器周期。

当开关与振荡器相接则为定时,与TX端相接则为计数。

后一个开关受控制信号的控制,它实际上决定了脉冲源是否加到计数器的输入端,即决定了加1计数器的开启与运行。

在实际线路中起另一个开关作用的是特殊功能寄存器TMOD与TCON的相应位。

TMOD和TCON是专门用于定时器/计数器的控制寄存器,用户可用指令对其各位进行写入或更改操作,从而选择不同的工作状态(计数或定时)或启动时间,并可设置相应的控制条件,换言之,定时器/计数器是可编程的。

(3)频率输出LCD显示

LCD为英文LiquidCrystalDisplay的缩写,即液晶显示器,是一种数字显示技术,通过一定的显示驱动程序可直接将频率显示在液晶屏上。

3.硬件原理如图所示

被测信号从输入端输入经三极管放大电路放大,再经由555电路组成的施密特触发器整形,将三角波、正弦波、锯齿波等信号变换成方波信号,便于计数。

三极管采用高频小功率管。

数字频率计的总电路图如附图所示,输入被测信号经放大整形电路整形送入定时/计数器输入端口P3.5,单片机在1s时间内统计输入脉冲个数,将计数值的每一位分离出来并显示在LCD液晶显示屏上。

当输入信号改变时需要复位CPU,否则测出的频率是错误的。

四、硬件设计

数字频率计的核心是电子计数器。

电子计数器可以对脉冲数目进行累加运算,能把任意一段时间内的脉冲总数计算出并由数码管显示出来。

如某个时间间隔t内对周期性信号的累加计数值为N,则信号频率f为f=N/t。

 因此,首先应将被测信号变成周期性的脉冲,脉冲形成电路就是起这个作用,其脉冲的重复频率等于被测信号频率。

脉冲形成后将它加到闸门电路的一个输入端A,闸门电路就是用来控制开和关的一种电路,当具有标准时间的闸门脉冲到达时,闸门便开启,允许由A进入的脉冲通过;闸门脉冲结束后,闸门便关闭,信号就不能通过。

闸门开启时通过的脉冲送到电子计数器进行计数,由装在面板上的数码管显示出来。

例如,时基信号的作用时间为1秒,闸门电路将打开1秒,若在这段时间内通过闸门电路的脉冲数目为1000个,则被测信号的频率就是1000Hz。

具体硬件电路见附图(附录中)。

五、软件设计

定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,用来设置T0或T1的操作方式。

  其格式为:

  

  其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:

GATE——门控制。

  GATE=1时,由外部中断引脚INT0、INT1和控制寄存器的TR0,TR1来启动定时器。

  当INT0引脚为高电平时TR0置位,启动定时器T0;

  当INT1引脚为高电平时TR1置位,启动定时器T1。

  GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

C/T——功能选择位

  C/T=0时为定时功能,C/T=1时为计数功能。

  置位时选择计数功能,清零时选择定时功能。

  Ⅲ,M0、M1——方式选择功能

由于有2位,因此有4种工作方式

M1M0——工作方式计数器模式TMOD(设置定时器模式)

  00方式013位计数器TMOD=0x00

  01方式116位计数器TMOD=0x01

  10方式2自动重装8位计数器TMOD=0x02

  11方式3T0分为2个8位独立计数器,T1为无中断重装8位计数器TMOD=0x0

1.T0定时程序

本次设计选用定时器T0完成定时功能,当选用方式1时,最多也只能定时131ms,显然不能满足定时1s的要求,可以用下面这种方法解决:

采用T0定时10ms,连续循环定时100次即可完成1s定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1s定时到时。

其程序流程图如图4所示。

图4.定时流程图

2.T1计数程序

设计中T1采用计数功能,需要注意的一个问题是,输入的待测时钟信号的频率最高可以达到460800Hz,但计数器最多只能计数65536次,显然需要对计数单元进行扩展,扩展的思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。

当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。

T1计数程序的流程图如图5所示。

图5.计数流程图

六、总结

作为一名自动控制专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

在已度过的大学时间里,我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?

如何把我们所学的专业基础课理论知识运用到实践中去呢?

我想做类似的课程设计就为我们提供了良好的实践平台。

在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。

为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。

我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:

CAD制图、汇编语言、模拟和数字电路知识等。

虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

最后,要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。

这次课程设计也让我感到了团队合作的重要性。

在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。

还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。

从这次课程设计中学到的知识会让我受益终身。

发现、提出、分析、解决问题和实践能力的提高都会帮助我在以后的学习、工作和生活中做出更好的表现。

最后,再次对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

七、参考文献

[1]邹久明编著,80C51单片机实用技术,北京:

北京航空航天大学出版社,2008

[2]李华,王思明,张金敏编著,单片机原理及应用,兰州:

兰州大学出版社,2001

[3]林伸茂编著,8051单片机彻底研究,北京:

中国电力出版社,2007

[4]吴蓉主编,数字电子技术,兰州:

兰州大学出版社,2005

[5]封志宏主编,模拟电子技术,兰州:

兰州大学出版社,2003

八、附录

 

附录1

ORG0000H

AJMPSTART

ORG000BH  ;T0中断入口

AJMPT0INT

ORG001BH  ;T1中断入口

AJMPT1INT

ORG0030H

START:

MOVIE,#8AH  ;开放T0、T1中断

MOVTMOD,#51H;T0定时,T1计数

MOVTH0,#0DCH

MOVTL0,#00H   ;定时10ms

MOV20H,#100   ;100*10ms=1s

MOVTH1,#00H

MOVTL1,#00H

MOV21H,#0

MOV22H,#0

MOV23H,#0;存放采集到的频率

SETBTR1

SETBTR0

WAIT:

AJMPWAIT;等待中断

T1INT:

INC23H;计数器溢出则23H单

元自增1

RETI

T0INT:

DJNZ20H,NEXT1;定时10ms产生中断

CLRTR1

CLRTR0

MOV22H,TH1;1s时间到则采集数据

MOV21H,TL1

AJMPACOUNT

SJMP$

NEXT1:

MOVTH0,#0DCH;继续定时

MOVTL0,#00H

RETI

ACOUNT:

MOVA,23H

MOVB,#0FFH

MULAB

MOV24H,A

MOV25H,B

MOVA,23H

MOVB,#0FFH

MULAB

MOVB,26H

ADDA,25H

MOV25H,A

CLRA

ADDCA,26H

MOV26H,A

;文件名:

LCD1301.ASM

;程序功能:

显示程序

RSbitP3.4

RWbitP3.6

EbitP3.7

LCDEQUP1

;显示主程序

MAIN:

MOV26H,#12H

MOVA,26H

DAA

MOV26H,A

MOV25H,#33H

MOVA,25H

DAA

MOV25H,A

MOV24H,#47H

MOVA,24H

DAA

MOV24H,A

TOSTRING:

MOVR6,#3

MOVR1,#30H

MOVR0,#26H

NEXT:

MOVA,@R0

ANLA,#0F0H

SWAPA

ADDA,#30H

MOV@R1,A

INCR1

MOVA,@R0

ANLA,#0FH

ADDA,#30H

MOV@R1,A

INCR1

DECR0

DJNZR6,NEXT

MOVLCD,#00000001B;清屏并光标复位

ACALLWR_COMM;调用写入命令子程序

ACALLINIT_LCD;调用初始化子程序

MOVLCD,#00H;写入显示起始地址

ACALLWR_COMM;调用写入命令子程序

MOVR7,#6

MOVR1,#30H

TO:

MOVA,@R1

MOVLCD,A

ACALLWR_DATA;调用写入数据子程序

INCR1

DJNZR7,TO

JMP$;维持当前输出状态

;LCD初始化设定

INIT_LCD:

MOVLCD,#00110000B;设置8位、2行、5x7点阵

ACALLWR_COMM;调用写入命令子程序

MOVLCD,#00001111B;显示器开,光标允许闪

烁,

ACALLWR_COMM;调用写入命令子程序

MOVLCD,#00010100B;文字不动,光标自动右移

ACALLWR_COMM;调用写入命令子程序

RET

WR_COMM:

;写入命令子程序

CLRRS;RS=0,选择指令寄存器

CLRRW;RW=0,选择写模式

CLRE;E=0,禁止读/写LCM

ACALLCHECK_BF;调用判LCM忙碌子程序

SETBE;E=1,允许读/写LCM

RET

CHECK_BF:

;判断是否忙碌子程序

MOVLCD,#0FFH;此时不接受外来指令

CLRRS;RS=0,选择指令寄存器

SETBRW;RW=1,选择读模式

CLRE;E=0,禁止读/写LCM

NOP;延时1微秒

SETBE;E=1,允许读/写LCM

JBLCD.7,CHECK_BF;忙碌循环等待

RET

WR_DATA:

;写入数据子程序

SETBRS;RS=1,选择数据寄存器

CLRRW;RW=0,选择写模式

CLRE;E=0,禁止读/写LCM

ACALLCHECK_BF;调用判断忙碌子程序

SETBE;E=1,允许读/写LCM

RET

END

 

附录二

数字频率计原理框图

数字频率计具体实现框图和时序图

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

当前位置:首页 > 求职职场 > 简历

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

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