简易频率测量仪.docx
《简易频率测量仪.docx》由会员分享,可在线阅读,更多相关《简易频率测量仪.docx(14页珍藏版)》请在冰豆网上搜索。
![简易频率测量仪.docx](https://file1.bdocx.com/fileroot1/2023-2/2/e167c3ab-48fd-4da3-8e7b-4989738d3b8d/e167c3ab-48fd-4da3-8e7b-4989738d3b8d1.gif)
简易频率测量仪
简易频率测量仪
一、设计任务和主要内容
1、设计题目
简易频率测量仪
2、设计内容与要求
对800—1200HZ中频电源进行频率监控,测量精度不低于1%并用数码管实时显示被测脉冲频率值。
(1)信号传送:
对被测信号实现两个转换:
强电→弱电;正弦→方波
(2)频率计算:
计算频率并保存两位小数
(3)频率显示:
十六进制→BCD码
3、设计目的
1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
2.通过频率计的设计系统掌握单片机的应用。
根据课题的要求,提出选择设计方案,查找所需元器,编程写入EPROM并进行调试等。
3.通过频率计的设计,掌握单片机的扩展芯片CD4093B的应用
二、设计原理
1.频率计
频率计是直接用十进制来显示被测信号频率的一种测量装置。
利用放大整形电路将输入信号整形为方波,即将被测信号变成脉冲信号,其重复频率等于被测频率fx。
通过利用计数器测量1s内脉冲的个数,利用锁存器锁存,稳定显示在数码管上,即可。
频率,即是周期信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期信号的重复变化次数N,则其频率就可以表示:
由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率
。
我们选择通过待测电路产生的脉冲信号与基准电路的脉冲信号比较计数的总体思路,即时间基准信号发生器提供标准的时间脉冲信号,其周期为1s,门控电路的输出信号持续时间亦准确地等于1s。
闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。
秒信号结束时闸门关闭,计数器停止计数。
测量结果便以数字显示的方式读出,实现设计要求。
2.STC89C52
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
其引脚如图1。
STC89C52引脚图
3.三端稳压集成电路7805
常见的三端稳压集成电路有正电压输出的7805,顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
它的样子象是普通的三极管,TO-220的标准封装,也有9013样子的TO-92封装。
7805参数表见图2.
2.时钟电路
单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。
STC89C52内部有一个用于构成振荡器的可控高增益反向放大器。
两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
在片外跨接一晶振和两个匹配电容C1、C2如图2所示,就构成一个自激振荡器。
振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。
匹配电容C1、C2要根据石英晶体振荡器的要求选取。
当晶振频率为12MHz时,C1C2一般选30pF左右。
上述电路是靠CD4093B单片机内部电路产生振荡的。
也可以由外部振荡器或时钟直接驱动CD4093B。
本设计采用内部电路产生振荡。
图4时钟电路的内部及外部方式
3.复位电路
RST引脚是复位端,高电平有效。
在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。
RST引脚内部有一个斯密特ST触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。
使用时,一般在此引脚与VSS引脚之间接一个8.2kΩ的下拉电阻,与VCC引脚之间接一个约10μF的电解电容,即可保证上电自动复位。
图5自动和手动复位电路图
上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。
本设计采用手动复位电路。
4.电源电路设计
本电源电路是通过变压器,把外部接入的220V电源转变为5V电源,采用7805使电源稳定。
图6电源电路
5.总电路
单片机最小系统模块包括主控单元和基本外围电路,具体如图4所示。
采用外部5V电源,STC89C52为主控芯片,手动高电平复位方式。
通过P3.4采集外部输入频率。
图7主电路
五、程序流程图与源程序
1、程序流程图
根据设计项目所需功能,我们先进行初始化,在待机状态下,采集频率。
然后把采集的频率进行十进制转换,然后检测是否有键按下,若键0按下,则数码管显示所采集的频率,再按下键0时则不显示。
系统实现所有功能,其程序框图如图8所示。
图8系统框图
2、主程序
ORG0000H
SJMPMAIN
ORG000BH
LJMPTO_S
ORG0030H
MAIN:
MOVSP,#60#
SETBETO
SETBEA
MOVTMOD,#51H
MOVR7,#04H
CLRA
MOVRO,#41H
CLEAR:
MOV@RO,A
INCRO
DJNZR7,CLEAR
MOVTH0,#3CH
MOVTLO,#0B0H
MOVTH1,#00H
MOVTH1,#00H
MOVTL1,#00H
MOV40H,#00H
MOVTCON,#50H
START:
LCALLH_BCD
LCALLDISP
SJMPSTART
ORG0200H
TO_S:
PUSHACC
MOVTH0,#3CH
MOVTL0,#0B0H
INC40H
MOVA,40H
CJNEA,#14H,DONE
MOVTCON,#0A0H
MOV46H,TL1
MOV45H,TH1
MOV40H,#00H
MOVTH1,#00H
MOVTL1,#00H
MOVTCON,#05H
DONE:
POPACC
RET1
ORG0300H
H_BCD:
PUSHPSW
SETBRSO
MOVR1,#41H
MOVR5,#03H
CLRA
HB1:
MOV@R1,A
INCR1
DJNZR5,HB1
MOVR7,#10H
HB2:
MOVR0,#45H
MOVR6,#02H
CLRC
HB3:
MOVA,@R0
RLCA
MOV@R0,A
INCR0
DINZR6,HB3
MOVR1,#41H
MOVR5,#03H
NOP
HB4:
MOVA,@R1
ADDCA,@R1
DAA
MOV@R1,A
INCR1
DJNZR5,HB4
DJNZR7,HB2
POPPSW
RET
ORG0400H
DISP:
MOVR1,#41H
MOVR3,#02H
MOVR4,#0FEH
MOVDPTR,#TAB
LOP:
MOVA,@R1
ANLA,#0FH
MOVCA,@A+DPTR
MOVP1,A
MOVP2,R4
LCALLDELAY
MOVA,R4
RLA
MOVR4,A
MOVA,@R1
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVP1,A
MOVP2,R4
LCALLDELAY
INCR1
DJNZR3,LOP
RET
TAB:
DBSFH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
ORG0500H
DELAY:
MOV31H,#200
DL1:
NOP
NOP
NOP
DJNZ31H,DL1
RET
六、软硬件调试
软件调试的任务是利用开发工具进行调试,发现和纠正程序的错误,同时也能发现硬件的故障。
软件调试是一个模块接一个模块进行的。
首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。
最后调试整个程序。
尤其注意的是各模块间能否正确的传递参数。
1.检查数码管显示模块程序。
观察数码管上是否能够显示相应的字符。
2.检查定时计数模块程序。
可以在硬件电路的输入端P3.4输入已知的4个频率,分别观察数码管上是否显示相应的频率值。
3.检查数据的转换模块程序。
程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。
①数据采集系统:
采用单片机内部两个定时器,定时器1定时,定时器0计数,采集输入频率,并转换为用于显示的代码。
②显示系统的调试:
要显示的数据存放在71H、72H单元中,先在30H~39H分单元中存放0~9的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。
③整体测试:
把三部分进行程序联调,编译程序,看是否存在错误。
经过多次的尝试与查找相资料,最后做出并完善了整体的方案。
七、体会与收获
经过近一周的单片机课程设计,终于完成了我的频率计的设计,基本达到设计要求。
对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。
第一,则是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。
由于以前都是使用C语言编写程序,对汇编语言的编程能力还不够,所以在经过了解硬件电路后只编写了C语言程序并调试成功。
第二,在一个课题中,要设计一个完整的电路,必须要有耐心,要有坚持的毅力。
在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上,如程序地址的正确,不然就会与原程序对应不上。
这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。
完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。
第三,在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。
我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整,这就要求我们应更加注重实践环节。
最后,还要在此感谢课程设计的指导老师,他们在整个过程中都给予了我充分的帮助与支持。
八、参考文献
[1]林志琦、黄艳秋.《单片机原理及应用教程设计指导书》.长春工业大学
[2]林志琦等.《单片机原理接口及其应用》.高等教育出版社.
[3]吴国经.《单片机应用技术》.北京:
中国电力出版社,2003.
[4]蔡美琴等.《MCS-51系列单片机系统及其应用》.高等教育出版社.
附录
附录1:
电路原理图