基于单片机的数字频率计的课程设计 1HZ10MHZ概要.docx
《基于单片机的数字频率计的课程设计 1HZ10MHZ概要.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字频率计的课程设计 1HZ10MHZ概要.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的数字频率计的课程设计1HZ10MHZ概要
物理与电子信息系
课程设计报告
课程名称:
单片机课程设计
题目:
基于单片机数字频率计的设计
学生姓名:
谢叮咚学号:
********
系部:
物理与电子信息系2011级
******
职称:
讲师
湖南人文科技学院物理与电子信息系制
1.引言.........................................................................................................................1
1.1数字频率计的发展与意义..............................................................................1
1.2数字频率计的分类.............................................................................................2
1.3频率计国内外的发展趋势.................................................................................2
2.系统总体设计.........................................................................................................2
2.1系统设计要求....................................................................................................2
2.2测频方法............................................................................................................3
2.3系统设计思路.....................................................................................................3
2.4系统设计框图.....................................................................................................3
3.系统设计................................................................................................................4
3.1单片机模块.......................................................................................................4
3.2放大整形模块...................................................................................................8
3.3分频模块.........................................................................................................9
3.4显示电路........................................................................................................10
4.系统软件设计........................................................................................................12
4.1开始...............................................................................................................12
4.2初始化模块......................................................................................................12
4.3频率测量模块和量程自动切换模块..........................................................13
4.4显示模块....................................................................................................14
4.5延时模块.....................................................................................................14
4.6频率计仿真..................................................................................................15
5.总结与体会..........................................................................................................19
6.参考文献.............................................................................................................20
7.附录A程序源代码.................................................................................................20
8.附录B仿真效果图.................................................................................................26
9.附录CDXP模块原理图与PCB板......................................................................27
10.附录D实物调试图............................................................................................28
一、引言
1.1数字频率计的发展和意义
随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。
由集成芯片和一些外围电路构成的各种自动控制、自动测量、自动显示电路遍及各种电子产品和设备已广泛应用于各个领域,更新换代速度可谓日新月异。
与传统的测量方式相比,运用了单片机频率计有着体积更小,运算速度更快,测量范围更宽和制作成本更低的优点。
由于传统的频率计中有许多功能是依靠硬件来实现的,而采用单片机测量频率之后,有许多以前需要用硬件才能实现的功能现在仅仅依靠软件编程就能实现,而且不同的软件编程代码能够实现不同的功能,从而大大降低了制作成本。
数字频率计主要实现方法有直接式、锁相式、直接数字式和混合式四种。
直接式的优点是速度快、相位噪声低,但结构复杂、杂散多,一般只应用在地面雷达中。
锁相式和直接数字式都同时具有容易实现产品系列化、小型化、模块化和工程化的特点,其中,锁相式更是以其容易实现相位同步的自动控制且低功耗的特点成为众多业内人士的首选,应用最为广泛。
1.2数字频率计的分类
按功能分类,电子计数器有通用和专用之分。
通用型计数器是一种具有多种测量功能、多种用途的万能计数器,它可测量频率、周期、多周期平均值、时间间隔、累加计数、计时等。
专用计数器指专门用来测量某种单一功能的计数器。
按频段分类有低速频率计数器、中速频率计数器、高速频率计数器和微波频率计数器之分。
其中低速频率计数器最高计数频率小于10MHZ;中速频率计数器最高频率计数频率为10到100MHZ;高速频率计数器最高计数频率大于100MHZ;微波频率计数器的测频范围为1到80GHZ或更高。
1.3数字频率国内外的发展形势
数字电路制造工业的进步,使得系统设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。
现如今,数字频率计已经不仅仅是测量信号频率的装置了,还可以测量方波的脉宽。
在人们的生产生活中数字频率计也发挥着越来越重要的作用,比如有数字频率计来监控生产过程,这样可以及时发现系统运行中的异常情况,以便给人们争取时间处理。
除此之外,它还可以应用于工业控制等其它领域。
在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。
频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速地跟踪捕捉到被测信号的频率变化。
正是由于频率计能够快速准确地捕捉到被测信号频率的变化,因此频率计拥有非常广泛的应用范围。
目前,市场上的频率计厂家可分为三类:
中国大陆厂家、中国台湾厂家、欧美厂家。
其中,欧美频率计厂家所占有的市场份额最大。
欧美频率计厂家主要有:
PendulumInstruments和Agilent科技。
现如今,对于频率计的设计目前也有专用芯片可以实现,如利用MAXIM公司的ICM7240来设计频率计,但由于这种芯片的计数频率比较低,远不能达到在一些场合而要测量很高的频率要求,而且测量精度也受到芯片本身的限制,因此提出用AT89C52单片机设计频率计来解决这些问题,从而实现高精度,宽范围测量的频率计的设计。
二、系统总体设计
2.1系统设计要求
本课题设计技术要求:
1、用十进制数字显示被测信号的频率,能测量正弦信号、方波信号、尖脉冲信号以及其他各种单位时间内变化的物理量。
2、能测量周期性正弦\方波信号.测量范围100Hz~100kHz。
测量正弦信号、方波信号,测量范围100Hz~100kHz。
3、应用单片机为主控芯片,完成算术运算和控制功能,并采用LED数码管显示所测频率。
2.2测频方法
本次课程设计采用脉冲定时测频法和脉冲分频测频法
测周法:
在频率、速度等脉冲类测量过程中,采集指定的脉冲个数,与过程时间比较来测定频率、速度。
这样的采样方式就是定数采样或定脉冲采样。
这种方法其实是测量单个脉冲的周期或指定个数脉冲的总周期。
测频法:
在频率、速度等脉冲类测量过程中,在指定的时间内,计量脉冲个数,让脉冲个数与指定的时间比较来测定频率、速度。
这样的采样方式就是定时采样。
这种方法其实是测量单位时间的脉冲个数。
2.3系统设计思路
以单片机AT89C52单片机为核心,设计一种数字频率计,它由放大整形电路、分频电路、多路选择器、单片机、显示电路等组成,应用单片机中的定时/计数器和中断系统等完成频率的测量。
在整个设计过程中,放大整形电路是把非矩形波转化成矩形波,这样单片机才能识别;分频电路是为了测量更高频率的信号,多路数据选择器是用来选择输入信号的;单片机用来测量频率和切换量程等;显示电路用来显示频率值。
所制作的频率计采用外部十分频,实现1Hz~10MHz的频率测量,而且可以实现量程自动切换,通过四位数码管显示频率值,再用不同的LED发光二极管显示频率值的单位。
2.4系统设计框图
本课题设计以单片机为核心,设计一种数字频率计,应用单片机中的定时器/计数器和中断系统等完成频率的测量。
其中包括放大整形模块、分频模块、单片机模块、显示模块等。
图1频率计总体设计框图
三、系统硬件设计
根据系统设计的要求,频率计实际需要设计的硬件系统主要包括以下几个部分:
单片机模块、放大整形模块、分频模块及显示模块,下面将分别给予介绍。
3.1单片机模块
以AT89C52单片机为控制核心,来完成对待测信号的计数、译码和显示以及对分频比的控制,利用其内部的定时/计数器完成待测信号频率的测量。
单片机AT89C52内部具有3个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。
3.1.1AT89C52介绍
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
图2PDIP封装的AT89C52引脚图
3.1.2单片机引脚分配
根据系统设计及各模块的分析得出,单片机的引脚分配如下表所示。
表1单片机端口分配表
模块
端口
功能
显示模块
P1.0-P1.3、P0.0-P0.7
数码管频率值显示
P2.4-P2.6
LED单位显示
分频模块
P3.4、P3.5
通道选择
P2.3
清零
复位模块
RST、EA
复位
3.1.3复位电路
有时系统在运行过程中出现程序跑飞的情况,因此在程序开发过程中需要复位。
本次设计采用手动复位,通过复位可以再次测量信号或测量新的信号。
复位电路通常分为两种:
上电复位(图3)和手动复位(图4)。
图3上电复位图4手动复位
3.1.4定时/计数器
方式寄存器TMOD:
特殊功能寄存器TMOD为T0、T1的工作方式寄存器,其格式如下:
D7D6D5D4D3D2D1D0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
T1方式字段T0方式字段
TMOD的低4位为T0的方式字段,高4位为T1的方式字段,它们的含义是完全相同的。
1.工作方式选择位M1,M0
M1,M0两位确定计数器的结构方式,其对应关系如下表:
M1M0
工作方式
功能说明
01
方式0
13位计数器
01
方式1
16位计数器
10
方式2
初值自动重新装入的8位计数器
11
方式3
仅适用于T0,分为两个8位计数器,T1在方式3停止计数
表2计数器结构方式功能表
2.定时器方式和外部事件计数方式选择位C/T
C/T=0为定时方式。
在定时方式中,以振荡器输出时钟脉冲的十二分频信号作为计数信号,也就是每一个机器周期定时器加“1”。
若晶振为12MHZ,则定时器计数频率为1MHZ,计数的脉冲周期为1us。
定时器从初值开始加“1”计数直至定时器溢出所需的时间是固定的,所以称为定时方式。
C/T=1为外部事件计数方式,这种方式采用外部引脚(T0为P3.4,T1为P3.5)上的输入脉冲作为计数脉冲。
内部硬件在每个机器周期采样外部引脚的状态,当一个机器周期采样到高电平,接着的下一个机器周期采样到低电平时计数器为1,也就是说在外部输入电平发生负跳变时为1。
外部事件计数时最高计数频率为晶振频率的二十四分之一,外部输入脉冲高电平和低电平时间必须在一个机器周期以上。
对外部输入脉冲计数的目的通常是为了测试脉冲的周期、频率或对输入的脉冲数进行累加。
3.门控位GATE
GATE为1时,定时器的计数受外部引脚输入电平的控制(INT0控制T0的计数,INT1控制T1的计数);GATE为0时定时器计数不受外部引脚输入电平的控制。
T2CON(T2的控制寄存器),字节地址0C8H:
位地址0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8H
符 号 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RT2
各位的定义如下:
TF2:
定时/计数器2溢出标志,T2溢出时置位,并申请中断。
只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1),T2溢出时不对TF2置位。
EXF2:
当EXEN2=1时,且T2EX引脚(P1.0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。
EXF2也是只能通过软件来清除的。
RCLK:
串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器
TCLK:
串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器
EXEN2:
T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:
禁止外部时钟触发T2;EXEN2=1:
当T2未用作串行波特率发生器时,允许外部时钟触发T2,当T2EX引脚输入一个负跳变的时候,将引起T2的捕获或重装,并置位EXF2,申请中断。
TR2:
T2的启动控制标志;TR2=0:
停止T2;TR2=1:
启动T2
C/T2:
T2的定时方式或计数方式选择位。
只能通过软件的置位或清除;C/T2=0:
选择T2为定时器方式;C/T2=1:
选择T2为计数器方式,下降沿触发。
CP/RT2:
捕获/重装载标志,只能通过软件的置位或清除。
CP/RT2=0时,选择重装载方式,这时若T2溢出(EXEN2=0时)或者T2EX引脚(P1.0)出现负跳变(EXEN2=1时),将会引起T2重装载;CP/RT2=1时,选择捕获方式,这时若T2EX引脚(P1.0)出现负跳变(EXEN2=1时),将会引起T2捕获操作。
但是如果RCLK=1或TCLK=1时,CP/RT2控制位不起作用的,被强制工作于定时器溢出自动重装载模式。
T2MOD(方式寄存器),字节地址0C9H:
D7 D6 D5 D4 D3 D2 D1 D0
-- -- -- -- -- -- T2OE DCEN
T2OE:
T2输出允许位,当T2OE=1的时候,允许时钟输出到P1.0。
(仅对80C54/80C58有效)
DCEN:
向下计数允许位。
DCEN=1是允许T2向下计数,否则向上计数。
T2的数据寄存器TH2、TL2和T0、T1的用法一样,而捕获寄存器RCAP2H、RCAP2L只是在捕获方式下,产生捕获操作时自动保存TH2、TL2的值。
3.2放大整形模块
由于输入的信号可以是正弦波、三角波、矩形波等,而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。
在整形之前由于不清楚被测信号的强弱的情况。
所以在通过整形之前通过放大衰减处理。
本文采用单管共射极放大电路对信号进行放大和再由非门74LS00构成施密特触发器对输出的信号进行整形成矩形波后再次输出。
3.2.1与非门74LS00
74LS00为四组2输入端与非门(正逻辑),共有54/7400、54/74H00、54/74S00、54/74LS00 Y=(AB)非
Input
Input
Output
A
B
Y
L
L
H
L
H
H
H
L
H
H
H
L
3.2.2放大整形模块原理图
此模块原理图:
图5放大整形电路原理图
3.3分频模块
本文采用12MHZ的时钟,最大计数速率为500kHz,因此需要外部分频。
分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。
为了测量提高精度,当被测信号频率值较低时,直接使用单片机计数器计数测得频率值;当被测信号频率值较高时采用外部十分频后再计数测得频率值。
这两种情况使用T1(P3.5)和TO(P3.4,程序定义为十分频接入口)计数选择,由单片机先简单测得被测信号是高频信号还是低频信号,然后根据信号频率值的高低进行通道的相应选择,继而测得相应频率值。
因此此模块主要包括分频器74LS161、与非门74LS00。
3.3.1分频器74LS161芯片
74LS161是常用的四位二进制可预置的同步加法计数器。
表474161的功能表
从表中可以知道,当清零端RD=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。
当RD=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。
而只有当RD=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。
74LS161还有一个进位输出端CO,其逻辑关系是CO=Q0·Q1·Q2·Q3·CET。
合理应用计数器的异步清零功能和同步计数功能,一片74LS161可以组成16进制以下的任意进制分频器。
本文组成了十进制的分频器。
图6上图为分频电路
3.4显示电路
显示模块由频率值显示电路和量程转换指示电路组成。
频率值显示电路采用四位共阳极数码管动态显示频率计被测数值,量程转换指示电路由红、黄、绿三个LED分别指示Hz、KHz及MHz频率单位,使读数简单可观。
数码管是一种半导体发光器件,其基本单元是发光二极管。
常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。
根据管脚资料,可以判断使用的是何种接口类型。
图7两种数码管内部原理图
因为这里用的是共阳极数码管,它的公共端为高电平,因此要让其中各段(DP,A,B,C,D,E,F,G)的发光二极管发光,只要使它另一端置为低电平,即置0。
3.4.1频率数值显示电路
图8共阳极数码管显示电路图
3.4.2频率数值单位显示电路
图9LED档位指示电路
四、系统软件设计
本文中系统软件设计采用模块化设计,整个系统分为初始化模块、频率测量模块、量程自动切换模块和显示模块等。
整个系统软件设计的程序由C语言编写,通俗易懂。
系统软件设计模块框图:
图10系统软件设计模块框图
4.1开始
程序预处理,先声明头文件,定义一些变量。
程序入口,main()函数框图:
图11主函数框图
4.2初始化模块
初始化模块初始化分频器、量程档位、LED显示、工作寄存器、中断控制和定时/计数器的工作方式等。
4.3频率测量模块和量