搜索
您的当前位置:首页基于Protues数字频率计的设计与仿真1111

基于Protues数字频率计的设计与仿真1111

时间:2021-08-19 来源:乌哈旅游
基于Proteus的数字频率计设计与仿真

摘要:本文主要论述了利用单片机AT89C51进行频率、周期、时间间隔、占空比测量的设计过程。该频率计采用测量N个信号波形周期的算法,充分利用单片机AT89C51中三个可编程定时/计数器,结合部分中规模数字电路,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点,实现了频率、周期、时间差、占空比的高精度测量,结果的显示。该数字频率计的硬件系统电路由前置整形电路、分频电路 、基准信号源 、单片机电路和数字显示电路构成。其中单片机电路又由单片机、数据选择器、键盘、状态指示电路构成。软件系统由主程序、键盘子程序、显示子程序、测量子程序、脉冲高、低电平宽度测量子程序构成,由汇编语言编写。通过硬件系统和软件系统的相互配合,成功的实现了频率、周期、时间差、占空比的高精度测量,系统的自校和测量结果的显示。 关键词:数字频率计;周期;单片机

Digital Frequency Measure Design and Simulation Based on Proteus

Abstract:This article mainly discusses the design process of using single-chip AT89C51to measurefrequency, cycle, time interval and duty cycle. Using the algorithm of measuring N signal cycle, making full use of the three programmable timer / counter of single-chip AT89C51, combined with some digital circuits, the frequency meter overcomes theshortcomings of themeasurement accuracy reduces with the reduction of the frequency of the measured signal by the frequency meter based on the principle of traditional measurement of frequency , achieves high-precision measurements of the frequency, cycle, time difference and duty cycle, displays the results. The hardware system circuits of the digital frequency meter is made up of the pre-shaping circuit, sub-frequency circuit, reference signal source, single-chip circuit, digital display circuit and DC power supply regulator circuit. Of it, the single-chip circuit consists of single-chip, data selector and keyboards. The software system is made up of main program, keyboard subroutine, display subroutine, measurement subroutine, pulse high and low level width measurement subroutine, prepared by the assembly language. Through the cooperation with each

other

of

thehardware

system

and

software

system,the

frequency

metersuccessfullyachieves high-precision measurements of frequency, cycle, time difference, and duty cycle, finishes system calibration and the display of measurement results. Keywords:digital frequency meter;cycle; single-chip

1绪论

·1.1课题研究的意义

随着科学技术的发展,尤其是单片机技术和半导体技术的高速发展,频率计的研究及应用越来越受到重视,这样对频率测量设备的要求也越来越高。目前的微处理器芯片发展迅速,出现诸如DSP、FPJA等不同领域的应用芯片。而单片机是一门发展极快,应用方式极其灵活的使用技术。它以灵活的设计、微小的功耗、低廉的成本,在数据采集、过程控制、模糊控制、智能仪表等领域得到广泛的应用,极大的提高了这些领域的技术水平和自动化程度。51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。51系列及其衍生单片机还会在继后很长一段时间占据嵌入式

系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。本次课程设计的内容是使用AT89C51单片机最小系统设计频率计系统,系统以单片机为主控单元,主要用于对方波频率的测量。

·1.2 频率计研究的现状及发展趋势

频率计是一种基础测量仪器,到目前为止已有30多年的发展历史。传统的数字频率计可以通过普通的硬件电路组合来实现,其开发过程、调试过程十分繁琐,而且由于电子器件之间的互相干扰,从而影响频率计的精度,同时由于其体积较大,已经不适应电子设计的发展要求。随着科学技术的发展,频率计也日益发展。目前已经有操作方便、量程(足够)宽、可靠性高的频率计;也有适应高分辨率、高精度、高稳定度、高测量速度的频率计。除通常通用频率计所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等功能等其他功能。这些要求有的已经实现或者部分实现,但要真正完美的实现这些目标,对于科学工作者来说,还有许多工作要做,而不是表面看来似乎发展到头了。早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量频率计的技术水平,决定频率计价格高低的主要依据。目前这些基本技术日臻完善、成熟。应用现代技术可以轻松地将频率计的测频上限扩展到微波频段。

在测试通讯、微波器件或产品是,常常需要测量频率,通常这些都是较复杂的信号,如含有复杂频率成分、调试的或含有未知频率分量的、频率固定的或者变化的、纯净的或叠加有干扰的等等。为了能正确的测量不同类型的信号,必须了解待测量信号的特性和各种频率测量仪器的性能。需要根据其附加特性或价格来慎重选择。

2方案设计与论证 ·2.1设计原理

测量方法通常有三种:直接测量法、间接测量法、直接与间接测量结合法。

·2.1.1直接测量法

这种方法的测量原理是:由于频率是单位时间内信号发生周期变化的次数,使得我们可以在给定的单位时间1S内(称为闸门)对被测信号的脉冲数计数,得到的脉冲个数就是被测信号的频率。如图2-1:

图2-1 直接测量法

·2.1.2间接测量法

这种方法的原理是用被测信号的周期作为闸门,在该闸门时间内允许已知标准的短周期间隔的较高频率的信号通过,通过数字电路或微型计算机的运算,通过闸门的已知信号频率的个数越多,其被测频率就越低。如图2-2:

图2-2 间接测量法 本设计中采用第一种设计方案,方法二中由于时间的未知,采用单片测量时会增加软件设计的难度,故采用方案一。

·3硬件设计

·3.1整体方案框图及原理图

本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有以下几个模块:放大整形模块、时钟脉冲产生模块、按键模块、单片机系统、LED显示模块。各模块关系图如图3-1所示:

图3-1 关系模块图

采用protues绘制的原理图如图3-2所示:

图3-2 原理图

3.2 AT89C51单片机及其引脚说明:

89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。 引脚说明:

•VCC:电源电压 •GND:地

•P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。

•P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。 •P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。 P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @ DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。

当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。 •P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。 P3口同时具有AT89C51的多种特殊功能,具体如表3-1所示: 端口引第二功能 脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD (串行输入口) TXD(串行输出口) INT0 (外部中断0) INT1(外部中断1) T0(定时器0) T1(定时器1) WR(外部数据存储器写选通) RD(外部数据存储器都选通) 表3-1 P3口的第二功能

•RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。

•ALE/ :当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出( )。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。

• :程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期 两次有效,除了当访问外部数据存储器时, 将跳过两个信号。

• /VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令, 必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。

当执行内部编程指令时, 应该接到VCC端。

•XTAL1:振荡器反相放大器以及内部时钟电路的输入端。 •XTAL2:振荡器反相放大器的输出端。

·3.3信号处理电路

放大整形系统包括信号放大、信号整形。它将正弦输入信号整形成同频率方波,幅值过小的被测信号经过放大后能够较好的测量,避免了波形失真。运算放大器采用1485构成,同相输入的运算放大器的放大倍数为(R3+R2)/R2,改变R3的大小可以改变放大倍数。而本例中R3=2K,R2=1K,则放大倍数为3倍,整形电路采用555,利用施密特触发器将边缘缓慢变化的周期性信号如正弦波,三角波或任意形状的模拟信号变换成同频率的矩形脉冲。施密特触发器采用电位触发方式,其状态由输入信号电位维持,能够把变化缓慢的输入信号整形成边沿陡峭的矩形脉冲。门电路有一个阈值电压,当输入电压从低电平上升到阈值电压或从高电平下降到阈值电压时电路的状态将发生变化。施密特触发器是一种特殊的门电路,与普通的门电路不同,施密特触发器有两个阈值电压,分别称为正向阈值电压和负向阈值电压。在输入信号从低电平上升到高电平的过程中使电路状态发生变化的输入电压称为正向阈值电压,在输入信号从高电平下降到低电平的过程中使电路状态发生变化的输入电压称为负向阈值电压。正向阈值电压与负向阈值电压之差称为回差电压。普通门电路的电压传输特性曲线是单调的,施密特触发器的电压传输特性曲线则是滞回的。施密特触发器最重要的特点是能够把变化缓慢的输入信号整形成边沿陡峭的矩形脉冲,输入的信号可用施密特触发器整形后,获得较理想的矩形脉冲。同时,施密特触发器还可利用其回差电压来提高电路的抗干扰能力数字系统中。如果阈值输入端的电压小于VCC /3,则使输出端高电平。如果阈值输入端 TH 的电压大于 2VCC/3,使输出为低电平。利用施密特触发器的滞回特性,可以将不规则信号的波形整理为同频率方波信号。例如输入为波形为三角波,则通过555构成的整形电路就变为方波。信号放大整形部分电路具体实现电路原理图和参数如下图3-3所示:

图3-3 放大整形电路

输入信号为频率2011HZ的正弦信号,经过放大整形后得到的仿真图如图3-4:

图3-4 放大整形后波形

图中黄色的线表示放大后的正弦波波形

蓝色的线表示初始输入的正弦波波形 红色的先表示整形后得到的方波波形

·3.4时基信号产生电路

时钟是一切微处理器、微控制器内部电路工作的基础。单片机内部有一个自激振荡电路,它是定时控制部件中的一部分,可以通过内部自激振荡或外部提供振荡源这两种方式,驱动内部时钟电路产生系统时钟信号。

内部方式 :在XTAL1、XTAL2跨接定时元件和两个电容就构成了自激振荡器。C1、C2取5-30PF,起微调和稳定作用。

晶振频率:f=1.2~12MHZ,常用频率为6、12、11.0592 MHz。

外部方式:外部振荡脉冲信号直接由XTAL2端输入,此时,XTAL1应接地,而片 内振荡电路不起作用,。常用于单片机同时工作,以便同步,要求信号低于12MHz。

时钟周期:振荡器输出的时钟脉冲频率的倒数。为单片机中最小、最基本的时间单位。 状态周期:振荡信号经2分频后获得的信号周期,称S,显然,S为时钟周期的2倍。 机器周期:12个时周钟期为一个机器周期,对应计算机执行一个基本操作所需的时间。 指令周期:执行一条指令所需的时间,至少包含一个机器周期。

指令字节:指令占用存储空间的字节数,有单字节、双字节、三字节三类。

当时钟频率为12MHz和6MHz时,时钟周期分别为1/12μs和1/6μs ,机器周期分别为1

μs和2μs。

这里使用12MHz晶振和两个电容就构成的自激振荡器。时基电路如图3-4:

图3-4 时基电路

·3.5 复位电路

复位方式有上电自动复位、按键手动复位两种。如图所示。在按键手动电平复位电路中,具有上电和按键双重功能。如图3-5:

图3-5 复位电路

·4软件设计:

软件设计包括程序流程图的绘制以及程序的编写

·4.1程序流程图:

程序要求:要能实现量程切换,超量程指示,准确定时。

子程序主要包括:按键中断子程序、定时中断子程序、计数中断子程序、周期中断子程序、超量程判断子程序、除法子程序、二进制转BCD子程序、显示程子序。

·4.1.1按键中断子程序

如图4-1:

图4-1 按键中断子程序

·4.1.2定时中断和计数中断子程序

如图4-2:

图4-2 定时中断和计数子程序流程图

·4.1.3周期中断子程序流程图

如图4-3:

图4-3 周期中断子程序

4.1.4 二进制转BCD子程序流程图

如图4-4:

图4-4 二进制转BCD

·4.2 子程序设计

子程序包括定时中断子程序、二进制转BCD子程序、显示子程序

·4.2.1定时中断子程序

START: WAIT:

MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV JB

DPTR,#TABLE 20H,#00H ;存储空间初始化 21H,#00H 22H,#00H 23H,#00H 24H,#00H 25H,#00H 26H,#00H 30H,#00H TMOD,#51H ;定时器0工作在定时方式,定时器1工作在计数方式 TH0,#3CH TL0,#0BH TH1,#00H ;计数初值清零 TL1,#00H IE,#8AH ;开放T0、T1中断 P3.7,$

LCALL JB SETB SETB W1: LCALL JNB LJMP INT_T0: MOV MOV INC MOV CJNE MOV CLR CLR MOV MOV LCALL BCD: LOOP1:

DELAY

P3.7,$ ;等待按键为低电平,开始计数 TR0 TR1 DISP ;显示计数值 P3.7,W1 START

TH0,#3CH ;设置计时初值为50ms TL0,#0BH 30H

A,30H

A,#20,RETUNE;是否计满1秒 30H,#00H TR0 TR1

21H,TL1 ;存放计数值 20H,TH1 BCD ;将十六进制数转换为十进制数

·4.2.2二进制转BCD子程序

MOV R2,20H

MOV R3,21H CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,#10H CLR C

MOV A,R3 RLC A

MOV R3,A MOV A,R2 RLC A

MOV R2,A MOV A,R6 ADDC A,R6 DA A

MOV R6,A MOV A,R5 ADDC A,R5 DA A

MOV R5,A MOV A,R4 ADDC A,R4 DA A

MOV R4,A DJNZ R7,LOOP1 MOV R0,#26H MOV A,R6 ANL A,#0FH MOV @R0,A DEC R0 MOV A,R6 SWAP A ANL A,#0FH MOV @R0,A DEC R0 MOV A,R5 ANL A,#0FH MOV @R0,A DEC R0 MOV A,R5 SWAP A ANL A,#0FH MOV @R0,A DEC R0 MOV A,R4 ANL A,#0FH MOV @R0,A

RET

·4.2.3显示子程序

DISP:

MOV P2,0FFH

CLR P2.0 MOV A,26H

MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.0 CLR P2.1

MOV A,25H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.1 CLR P2.2

MOV A,24H MOVC A,@A+DPTR MOV P0,A

LCALL DELAY

;显示子程序

SETB P2.2 CLR P2.3 MOV A,23H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.3 CLR P2.4 MOV A,22H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.4 CLR P2.5 MOV A,21H MOVC A,@A+DPTR MOV P0,A LCALL DELAY RET

DELAY: MOV R6,#10 ;延时显示 DELAY1: MOV R7,#10 DJNZ R7,$ DJNZ R6,DELAY1 RET TABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END

·4.3设计程序源代码

START:

ORG

SJMP ORG LJMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

0000H START 000BH INT_T0 DPTR,#TABLE 20H,#00H ;存储空间初始化 21H,#00H 22H,#00H 23H,#00H 24H,#00H 25H,#00H 26H,#00H 30H,#00H TMOD,#51H ;定时器0工作在定时方式,定时器1工作在计数方式 TH0,#3CH TL0,#0BH

MOV TH1,#00H ;计数初值清零 MOV TL1,#00H MOV IE,#8AH ;开放T0、T1中断 WAIT: JB P3.7,$ LCALL DELAY JB P3.7,$ ;等待按键为低电平,开始计数 SETB TR0 SETB TR1 W1: LCALL DISP ;显示计数值 JNB P3.7,W1 LJMP START

INT_T0: MOV TH0,#3CH ;设置计时初值为50ms MOV TL0,#0BH INC 30H MOV A,30H CJNE A,#20,RETUNE;是否计满1秒 MOV 30H,#00H CLR TR0 CLR TR1 MOV 21H,TL1 ;存放计数值 MOV 20H,TH1 LCALL BCD ;将十六进制数转换为十进制数 RETUNE: RETI

;************************

;本段程序将20H/21H中的16进制数转成10进制并且把5位数依次存入22H至26H BCD: MOV R2,20H MOV R3,21H CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,#10H LOOP1: CLR C MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ADDC A,R6 DA A MOV R6,A MOV A,R5

ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,LOOP1 MOV R0,#26H MOV A,R6 ANL A,#0FH MOV @R0,A DEC R0 MOV A,R6 SWAP A ANL A,#0FH MOV @R0,A DEC R0 MOV A,R5 ANL A,#0FH MOV @R0,A DEC R0 MOV A,R5 SWAP A ANL A,#0FH MOV @R0,A DEC R0 MOV A,R4 ANL A,#0FH MOV @R0,A RET

;*************************** DISP: MOV P2,0FFH CLR P2.0 MOV A,26H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.0 CLR P2.1 MOV A,25H MOVC A,@A+DPTR MOV P0,A LCALL DELAY

;显示子程序

SETB P2.1 CLR P2.2 MOV A,24H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.2 CLR P2.3 MOV A,23H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.3 CLR P2.4 MOV A,22H MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P2.4 CLR P2.5 MOV A,21H MOVC A,@A+DPTR MOV P0,A LCALL DELAY RET

DELAY: MOV R6,#10 ;延时显示 DELAY1: MOV R7,#10 DJNZ R7,$ DJNZ R6,DELAY1 RET TABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END

·5结束语

通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知识应用于实践,更加丰富了自己的知识积累,扩展了知识面。不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,而且较系统的掌握单片机应用系统的开发过程,自身的综合素质有了全面的提高 。

参考文献

[1]李全利,单片机原理及应用技术。北京:高等教育出版社,2004

[2]王曙霞,单片机实验与实训指导。西安:西安电子科技大学出版社,2007 [3]周航慈,智能仪器原理与设计。北京:北京航空航天大学出版社,2005 [4]毛谦敏,单片机原理及其应用。北京:国防工业出版社,2010

[5]张毅刚,MCS-51单片机应用设计。哈尔滨:哈尔滨工业大学出版社,1997 [6]李华,MCS-51系列单片机实用接口技术。北京:航空航天出版社,2000 [7]康华光,电子技术基础,北京:高等教育出版社,2006 [8]胡翔骏,电路分析。北京:高等教育出版社,2007

因篇幅问题不能全部显示,请点此查看更多更全内容

Top