采用单片机设计频率计
毕业设计论文
采用单片计设计频率计
系 机电工程系
专业 姓名
班级 学号
指导教师 职称 讲师
设计时间
目录
- 3 -摘 要
- 4 -第一章 引 言
- 5 -第二章 频率计总体
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
设计
- 5 -2.1 方案比较
- 6 -2.2方案论证
- 6 -2.3方案选择
- 7 -第三章 系统硬件设计
- 7 -3.1 一般数字式频率计的原理
- 7 -3.2频率计方案的概述
- 8 -3.3 单片机
- 8 -3.3.1 89S51一般概述
- 8 -3.3.2引脚功能说明
- 9 -3.3.3 AT89S51原理图 如 图3.2
- 10 -3.4 分频电路
- 10 -3.5 显示电路
- 11 -3.6硬件设计简介和系统整体原理图
- 11 -3.6.1 硬件设计简介
- 12 -3.6.2 系统整体原理图
- 13 -第四章 系统软件设计
- 13 -4.1 测频软件实现原理
- 13 -4.2软件
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图
- 16 -4.3 程序设计
- 26 -结束语
- 26 -1.结论
- 26 -2.致谢
- 28 -参考文献
- 1 -附录一
摘 要
随着电子信息产业的不断发展,信号频率的测量在科技研究和实际应用中的作用日益重要。传统的频率计通常是用很多的逻辑电路和时序电路来实现的,这种电路一般运行较慢,而且测量频率的范围较小。考虑到上述问题,本论文设计一基于单片机设计频率计。首先,我们把待测信号经过放大整形,然后把信号送入单片机的定时计数器里进行计数,获的频率值,最后把测得的频率数值送入显示电路里进行显示。本文从频率计的原理出发,介绍了基于单片机的频率计的设计方案,选择了实现系统的各种电路元器件,并对硬件电路进行了仿真。
关键字:单片机;频率计;测量
第一章 引 言
频率仪器是数字电路中一个典型应用,实际的硬件设计用到的器件较多,联机比较复杂,而且会产生比较大的延迟。随着复杂可编程逻辑器件的广泛应用,将使整个系统大大简化。提高整体性能,它是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波,方波,三角波,尖脉冲信号和其他具有周期的信号的频率,而且还可以测量他们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪:可以测量电容做成数字电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪,计价器等。因此数字频率仪在测量物理量方面的广泛应用。
频率计的设计原理实际上是测量单位时间内的周期数。这种方法免去了实测以前的预测,同时节省了划分频率的时间,克服了原来高频率采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于1秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的时间隔就越长。闸门时间越短,测得频率值刷新据越快,但测得的频率精度就受影响。本论文的任务是设计一个基于单片机技术的数字频率计。主要介绍了整形电路、控制电路和显示电路的构成原理,以及其测频的基本方法。进行了相应的硬软件设计。
第二章 频率计总体方案设计
2.1 方案比较
方案一:本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描把测出的数据送到数字显示电路显示。其实原理框图如2.1所示
2.1 方案一原理图
方案二:本方案主要以数字器件为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。其原理框图如图2.2所示
2.2方案二原理框图
2.2方案论证
方案一:本方案主要以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测得正弦波或者三角波为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。
方案二:本方案使用大量的数字器件,被测量信号放大整形电路变成计数器所要求的脉冲信号,其频率于被测信号的频率相同。同时时基电路提供标准时间基准信号,其高电平持续时间1s,当1s信号来到时,闸门开通,被测脉冲信号通过闸门,计数器开始计数,直到1s信号结束闸门关闭,停止计数。若在闸门时间1s内计数器计得的脉冲个数为N,则被测信号频率FX=NHZ。逻辑控制电路的作用有两个:一是产生锁存脉冲,是显示器上的数字稳定;二是产生清零脉冲,使计数器每次测量从零开始计数。
2.3方案选择
比较以上两种方案可以知道,方案一得核心是单片机,使用的元器件少,原理电路简单,调试简单只要改变程序的设定值则可以实现不同频率范围的测试能自动选择测试的量程。与方案一相比较方案二则使用了大量的数字元器件,原理电路复杂,硬件调试麻烦。如要测量高频的信号还需要加上分频电路,价格相对高了点。基于上述,所以选择了方案一。
第三章 系统硬件设计
3.1 一般数字式频率计的原理
数字式频率计是测量频率最常用的仪器之一,其基本设计原理是首先把待测信号通过放大整形,变成一个脉冲信号,然后通过控制电路控制计数器计数,最后送到译码显示电路里进行显示,其基本构成框图如图3.1 所示
待测信号
3.1 频率计原理框图
3.2频率计方案的概述
本频率计的设计以AT89S51单片机为核心,利用它内部的定时/计数器完成待测信号周期/频率的测量,单片机AT89S51内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时,计数和产生计数溢出时中断要求的功能。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1,这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采用一次,这样查测一次从1到0的跳变至少需要2个机器周期,所以最大计数速率为时钟频率1/24。定时/计数器的工作有运行控制位TR控制,当TR置,定时/计数器开始计数:当TR清0 ,停止计数。
本设计终合考虑了频率测量精度和测量反应时间的要求。例如打要求频率测量结果为3位有效数字,这时如果待测信号的频率为1HZ,则计数闸门宽度必须大于1000S。为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法:
(1)当待测信号的频率>100HZ时,定时/计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,计数闸门宽度>1S时,即可满足频率测量结果为3位有效数字。
(2)当待测信号的频率<100HZ时,定时/计数器构成为定时器,由频率计的处理电路把待测信号变成方波,方波宽度等于待测信号的周期。这时用方波做计数闸门,当待测信号的频率=100HZ,周期为10ms,使用12HZ时钟的最小计数值为10000,完全满足测量精度的要求。
3.3 单片机
3.3.1 89S51一般概述
该AT89S51是一个低功耗,高性能CMOS8位微控制器,可在4K字节的系统内编程的闪存存储器。该设备是采用Atmel的高密度非易失性存储器技术和符合工业标准的80C51指令集合引脚。芯片上的Flash程序存储器课重新编程的系统或常规非易失性内存编程。通过结合通用8位中央处理器的系统内课编程闪存的单芯片,AT89S51是一个功能强大的微控制器提供了高度灵活的和具有成本效益的解决办法,可在许多嵌入式控制中应用。
在AT89S51提供以下标准功能:4K字节的Flash闪存,128字节的RAM,32个I/O线,看门狗定时器,两个数据指针,两个16位定时器/计数器,5向量两级中断结构,全双工串行端口,片上振荡器和时钟电路。此外,AT89S51设计的静态逻辑操作到零频率和支持两种软件可选电模式。
空闲模式停止的CPU,同时允许的RAM,定时器/计数器,串行接口和中断系统继续运作。在掉电模式保存RAM内容,可停止振荡器,停止振荡器,停止所有其他芯片的功能,直到下一个外部中断或硬件复位。
3.3.2引脚功能说明
VCC:电源电压
GND:接地点
P0口:p0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“I”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接指令字节,而在程序效验时,要求外接上拉电阻。
P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“I”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
3.3.3 AT89S51原理图 如 图3.2
图3.2 AT89S51原理图
3.4 分频电路
本次设计采用的是脉冲定时测频法,由于考虑到单片机的定时计数器得计数
能力有限,无法对过高频进行测量,所以我们对待测信号进行了分频,这样能提高测量频率的范围,还能相应的提高频率测量的精度。所以我们需要把待测信号进行分频。其原理图如3.3
3.3 4040原理图
3.5 显示电路
我们测量的频率最终要显示出来八段LED 数码管显示器由8 个发光二极管组成。基中7 个长条形的发光管排列成“日”字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED 数码管显示器有两种形式:一种是8 个发光二极管的阳极都连在一起的,称之为共阳极LED 数码管显示器;另一种是8 个发光二极管的阴极都连在一起的,称之为共阴极LED 数码管显示器。如下图所示。共阴和共阳结构的LED 数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段 h g f e d c b a 对应于一个字节(8 位)的D7、D6、D5、。D4、D3、D2、D1、D0,于是用8 位二进制码就能表示欲显示字符的字形代码。
在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫
描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能
的I/O 接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU 的开销小,能供给单独锁存的I/O 接口电路很多。在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8 个笔划段a-h 同名端连在一起,而每一个显示器的公共极COM 是各自独立地受I/O 线控制。CPU 向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM 端,而这一端是由I/O 控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM 端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。其原理图3.4
3.4显示电路原理图
3.6硬件设计简介和系统整体原理图
3.6.1 硬件设计简介
采用外接插头输入脉冲信号,经过1N4538B(1N4538B的稳压值为5V,稳压保护,防止输入电压过高损伤电路)后经过两级74hc14传输将脉冲信号转换为方波信号,输入到4040的时钟计数输入端,4040对输入的脉冲进行计数分频,每4040每输入4096个外出,Q12输出一个脉冲。单片机的T1工作在计数状态,在单位时间内计数值除以单位时间即是脉冲的频率,单片机所测量的频率的范围内是1~100MHZ,分两档测量,256K~100MHZ,256K以下~1HZ。单片机测量后将测量结果转换成六位BCD码,通过单片机的串行口发送到数码管显示,数码管显示电路采用74ls164驱动共阴极数码管,采用静态显示。数据的传送采用串行移动方式,即单片机将六个显示码从低到高逐位通过串行口以方式0发送到数码管显示,数码管的显示为6位,即显示单位为1HZ和1KHZ。通过两个发光二极管分别指示,P1.0驱动显示1HZ单位指示灯,低电平点亮;P1.1驱动显示1KHZ单位指示灯,低电平点亮。
3.6.2 系统整体原理图
详见附录一
第四章 系统软件设计
4.1 测频软件实现原理
测频软件的实现是基于电路系统来进行设计的。本次设计采用的是脉冲定时
测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。本次软件设计语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。
4.2软件流程图
4.3 程序设计
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP CT0
ORG 0030H
MAIN: MOV TH0, #06H
MOV TL0,#00H ;设置定时时间为64MS
MOV SP, #60H
MOV IE, #82H
MOV TL1,#00H
MOV TH1,#00H
MOV TMOD,#51H ;T0定时,T1计数,都工作在方式一
MOV R6,#4;
SETB 20H ;定时器工作方式标志,20H为1,测量时间为64MS,否则为4秒
CLR 21H ;测量结束标志,21H为1则测量结束
MOV R7,#80
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,#00H
CLR P1.0 ;指示显示单位为1HZ,低电平点亮发光二极管
SETB P1.1 ;只是显示单位为1KHZ,低电平点亮发光二极管
MOV SBUF,#0C0H
JNB TI,$
MOV SBUF,#0C0H
JNB TI,$
MOV SBUF,#0C0H
JNB TI,$
MOV SBUF,#0C0H
JNB TI,$
MOV SBUF,#0C0H
JNB TI,$
MOV SBUF,#0C0H
JNB TI,$
FINDKEY: SETB P1.2
MOV C, P1.2
JC FINDKEY
CLR 21H
START:SETB P3.5;
MOV C,P3.5
JNC START
SETB TR0
SETB TR1
JNB 21H,$
CLR TR0
MOV A, P2
ANL A, #0FH
MOV B, A
MOV A, TL1
ANL A, #0FH
SWAP A
ORL A, B
MOV 40H, A
MOV A, TL1
ANL A, #0F0H
SWAP A
MOV B, A
MOV A, TH1
ANL A, #0FH
SWAP A
ORL A, B
MOV 41H, A
MOV A, TH1
ANL A, #0FH
SWAP A
MOV 42H, A
MOV A, 42H
JNZ FINDDATA
MOV A, 41H
JNZ FINDDATA
LJMP NEXTSTART ;频率低于256k,换档测量
FINDDATA: MOV R1, 40H
MOV R2, 41H
MOV R3, 42H
LCALL BCDTREAT0
MOV SBUF, 50H
JNB TI, $
MOV SUBF, 51H
JNB TI, $
MOV SBUF, 52H
JNB TI, $
MOV SUBF, 53H
JNB TI, $
MOV SBUF, 54H
JNB TI, $
MOV SUBF, 55H
JNB TI, $
CIR P1.0
SETB P1.1
LJMP KEYFIND
NEXTSTART: SETB P3.5;
MOV C,P3.5
JNC NEXTSTART
CLR 20H ;设置4秒测量方式
CLR 21H
SETB TR0
MOV TH0, #3CH
MOV TL0, #0B0H
MOV R7, #80
JNB 21H, $
CLR TR0
MOV 40H, P0
MOV A, P2
ANL A, #0FH
MOV 41H, A
MOV A, TL1
ANL A, #0FH
SWAP A
ORL A, 41H
MOV 41H, A
MOV A, TL1
ANL A, #0F0H
SWAP A
MOV 42H, A
MOV A, TH1
ANL A, #0FH
SWAP A
ORL A, 42H
MOV 42H, A
CLR C
RRC A
XCH A, 41H
RRC A
XCH A, 42H
CLR C
RRC A
XCH A, 41H
RRC A
XCH A, 40H
MOV 41H, A
MOV A, 42H
CLR C
RRC A
XCH A, 41H
RRC A
XCH A, 42H
CLR C
RRC A
XCH A, 41H
RRC A
XCH A, 40H
MOV 41H, A
MOV R1, 40H
MOV R2, 41H
MOV R3, 42H
LCALL BCDTREAT0
MOV SBUF, 50H
JNB TI, $
MOV SUBF, 51H
JNB TI, $
MOV SBUF, 52H
JNB TI, $
MOV SUBF, 53H
JNB TI, $
MOV SBUF, 54H
JNB TI, $
MOV SUBF, 55H
JNB TI, $
SETB P1.0
CLR P1.1
LJMP KEYFIND
CT0: JNB 20H, NEXTCT0
MOV TH0,#06H ;64毫秒
MOV TL0, #00H
DJNZ R6, CT0RETI
MOV R6, #4
SETB 21H
CLR TR1
CT0RETI: RETI
NEXTCT0: MOV TH0, #3CH
MOV TL0,#0B0H ;50毫秒定时
DJNZ R7, NEXTCT0RET
SETB 21H
MOV R7, #80
CLR TR1
NEXTCT0RET: RETI
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
BCDTREAT0:PUSH ACC ;将24位二进制数转换为BCD码
PUSH B7
PUSH PSW
MOV 36, #24
MOV R7, #0
MOV R6, #0
MOV R5, #0
MOV R4, #0
LOOP: CLR C
MOV A, R1
RLC A
MOV R1, A
MOV A, R2
RLC A
MOV A, R2
MOV R3, A
RLC A
MOV R3, A
MOV A, R4
ADDC A, R4
DA A
MOV R4, A
MOV A, R5
ADDC A, R5
DA A
MOV R5, A
MOV A, R6
ADDC A, R6
DA A
MOV R6, A
MOV A, R7
ADDC A, R7
DA A
MOV R7, A
DJNZ 36H, LOOP
MOV A, R4
ANL A, #0FH
MOV 50H, A
MOV A, R4
ANL A, #0F0H
SWAP A
MOV 51H, A
MOV A, R5
ANL A, #0FH
MOV 52H, A
MOV A, R5
ANL A, #0F0H
SWAP A
MOV 53H, A
MOV A, R6
ANL A, #0FH
MOV 54H, A
MOV A, R6
ANL A, #0F0H
SWAP A
MOV 55H, A
POP PSW
POP B
POP ACC
RET
End
结束语
1.结论
基于单片机的频率计的设计涉及到计算机的硬软件知识,通过对系统的设计
和调试,本次设计主要完成了以下工作:
1、提出基于单片机的数字频率计设计的基本方案;
2、完成了整形电路、同步电路、分频电路、主控门电路等相应的硬件电路设
计及仿真;
3、编译了数字式频率计的控制程序、数码转化程序、数据显示程序等系统软
件程序;
4、对硬件电路进行了仿真,进行了误差分析。
2.致谢
首先在这里感谢XX老师认真的指导,本次设计的过程和结果都给了我很多感触。初次拿到毕业设计的题目时,真的是对数字频率计一无所知。在初次见到XX老师的时候,对频率还不了解,怎么设计,几乎没有什么想法。在XX老师的指导和讲解下,对频率计的介绍有了一定的了解。后来通过不断的学习和查阅资料,终于清楚的知道了频率计的基本情况和设计的方案有了一定的理解。通过对各种性能的比较和所学知识能实现的状况,对本次毕业设计进行了设计。最后进行的是毕业论文的撰写,在写论文的过程中,因为对WORD 掌握的不好,所以在编写论文中出现了很多问题,但最后在朱老师和同学的帮助下,都一一的解决了。
通过本次设计,让我学会了从系统的高度来考虑设计的方方面面,对电路的设计和研究有了更深刻的体会;让我了解到软件的设计是建立在对硬件了解的基础上的,特别是对单片机的功能,引脚定义和内部结构要有较为详细的了解,此外对电路板中所用到的各个芯片的引脚和功能,也要进行了解;在编写程序时,进行模块化设计,以严谨的态度进行编程,避免出现低级错误,养成为程序添加注释和说明的好习惯,以便自己的修改和阅读者轻松的了解程序的各部分及整体的功能。
参考文献
[1] 李雷等编.《集成电路应用实验》.国防工业出版社2003
[2] 李雷等编.《电子技术应用实验教程》.电子科技大学出版社,2006
[3] 朱红等编.《电子技术综合实验》.电子科技大学出版社,2005
[4] 冯熙昌编.《电子电话机集成电路手册》.人民邮电出版社,1996
[5] 李华等编.《MCS-51 系列单片机实用接口技术》.北京航空航天大学出版社,1993
[6] 徐惠民,《安德宁等编.单片微型计算机原理接口及应用》.北京邮电大学出版社,2000
附录一 整体系统原理图
信号放大电路
信号整形
单片机AT89S51电路
数字显示电路
逻辑控制电路
时基电路
译码显示器
锁存器
计数器
闸门电路
放大整形电路
放大整形电路
计数器电路
译码显示电路
控制门电路
开始
设置T0的定时,T1计数方式1,初始定时时间溢出周期为64ms,溢出4次
设置测量方式为256毫秒测量范围100M-256KHZ,显示单位指示1HZ,P1.0为0
数码管显示000000
是否有检查键按下,P1.2是否为0
P3.5是否为高电压
启动T0,T1
测量是否结束标识21H是否为1
读取计数器的数据及T1内的数据,除以256后在40H,41H,42H内
判断测量值是否大于256K
调用24位二进制数转换6位BCD码及显示码,放置到50H,51H,52H,53H,54H,55H子程序
显示测量结果,P1.1为0指示显示单位为1KHZ
清21H位为0
设置测量方式为4秒方式,20H为0
P3.5是否为1
重新设置T0,T1,启动T0,T1,清21H位为0
查询检测是否结束标识位21H位是否为1
读取查测的数据,除以4后保存在40H,41H,42H内
调用将24位二进制数转换为BCD码,及显示码子程序,转换后保存在50H,51H,52H,53H,54H,55H
显示测量结果,P1.0为0指示单位为1HZ
Y
N
N
Y
N
Y
Y
N
N
Y
N
Y
查询测量标识20H是否为1,为1则为256毫秒测量方式为0则4秒测量方式
设置0为64毫秒测量方式
设置T0为4秒测量方式
R6减1后是否为0,为0则满256毫秒
R7减1后是否为0,为0则满4秒
设置测量结束标识位21H为1,关闭T1,TR1=0重新设置R6=4
设置测量结束标识位21H为1,关闭T1,TR1=0重新设置R7=80
T0中断返回
T0中断返回
Y
N
Y
N
N
Y
T0中断响应程序
- 6 -
- 5 -