智能仪器课程设计——智能频率计设计_第1页
智能仪器课程设计——智能频率计设计_第2页
智能仪器课程设计——智能频率计设计_第3页
智能仪器课程设计——智能频率计设计_第4页
智能仪器课程设计——智能频率计设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 电子仪器综合课程设计报告 题 目 智能数字频率计 学院(部) 信 息 工 程 学 院 专 业 电 子 信 息 工 程 班 级 学生姓名 学 号 2021.02.20 至 2021.03.04 共 2 周 指导教师(签字): 王选民、郭晨 一、课设题目:智能频率计设计二技术指标: 测频的范围是1Hz1MHz三设计内容本次设计的基于单片机的数字式频率计包括波形整形电路、分频电路、多路数据选择器、单片机和显示电路等几个模块。所以本次设计的数字式频率计的电路由以下几块构成:由施密特触发器构成的波形整形放大电路、由74LS90构成的分频电路、由74LS153四选一电路构成的四选一电路、AT89C51单

2、片机以及由74LS138译码电路、74LS245上拉电路和八段数码管显示电路构成的数码显示电路构。其原理图如图1所示:放大整形电路分频电路多路数据选择器单片机显示电路待测信号 图1 系统框图 控制电路在数字频率计中起至关重要的作用。采用什么样的控制电路,直接决定了数字频率计的性能。为了得到一个高性能的数字频率计,本次设计采用单片机来做为数字频率计的核心控制电路,辅之于少数的外部控制电路。本系统让被测信号经过放大整形后,进入单片机开始计数,利用单片机内部定时计数器定时,在把所记得的数经过相关处理后送到显示电路中显示。基于单片机的数字频率计的设计,包括一个由放大整形电路、分频电路、多路数据选择器、

3、AT89C51以及显示电路,其系统总电路图如图2所示: 图2 总电路图1.1放大整形电路因为在单片机计数中只能对脉冲波进行计数,而实际中需要测量频率的信号是多种多样的,有脉冲波、还有可能有正弦波、三角波等,所以需要一个电路。把待测信号转化为可以进行计数的脉冲波。 矩形脉冲波的整形电路有两种:施密特触发器、单稳态触发器。而这两种电路都可以有门电路或是555定时器构成。由于本次设计的基于单片机的数字频率计的放大整形电路局部需求比拟简单,所以我们选择由555定时器构成的施密特触发器来作为信号波形整形电路, 施密特触发器常见的逻辑符号如图3所示。 图3 施密特触发器的逻辑符号集成施密特触发器,常用TT

4、L电路集成施密特触发器有7413等。常用CMOS电路集成施密特触发器有CC40106等。本次设计采用的是脉冲定时测频法,由于考虑到单片机的定时计数器得计数能力有限,无法对过高频进行测量,所以我们对待测信号进行了分频,这样能提高测量频率的范围,还能相应的提高频率测量的精度。所以我们需要把待测信号进行分频。在本次设计中,因为我们要进行的是十分频、一百分频和一千分频,所以我们选用74LS90电路,经过正确的连接后就可以进行十分频,进行三次十分频就可以得到分频一千次的信号。其引脚图和功能表分别如图4和表1所示。 图4 74LS90引脚图 表1 74LS90功能表 信号经过分频电路74LS90,其频率将

5、减小到原信号的十分之一。本次设计需要用到一个四选一电路,用来选择输入单片机进行计数的待测信号。74LS153就是其中比拟好用和常用的一种四选一电路元件。所以这次采用很常见的74LS153集成电路,其电路图如以下图5所示: 图5 74LS153电路原理图 数据选择器有多个输入,一个输出。其功能类似于单刀多掷开关,故又称为多路开关(MUX)。在控制端的作用下可从多路并行数据中选择一路送输出端。TTL中规模数据选择器是根据多位数据的编码情况将其中一路数据由输出端 送出的电路,74LS153是双四选一数据选择器,其中有两个四选一数据选择器,它们各有四个数据输入端:1D3、1D2、1D1、1D0和2D3

6、、2D2、2D1、2D0。一个输出端1Y、2Y和一个控制许可端S。系统控制端S为低电平有效。当控制许可端S=1时,传输通道被封锁,芯片被禁止,Y=0,输入的数据不能传送出去;当控制许可端S=0时,传输通道翻开,芯片被选中,处于工作状态,输入的数据被传送出去A1、A0是地址选择端,两路选择器共用。74LS153逻辑功能见表。从功能表可看出,当S端输入为低电平时,四选一数据选择器处于工作状态,它有4位并行数据输入D0D3,单项选择择地址输入A1、A0的二进制码依次由00递增至11时,4个通道的并行数据便依次传送到输出端W。 表2 74LS153的功能表A1A0/SW10000D0010D1100D

7、2110D3单片机作为控制系统和计数器,是本次设计的最重要的局部,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROMFalsh Programmable and Erasable Read Only Memory的低电压,高性能CMOS8位微406%25u5668&s= %3A/ picavr /news/2021-02/4133.htm&rn=74898&v=1&ref= %3A/ picavr /news/c38/defaultp3.htm&province=%25u4E91%25u5357&city=%25u6606%25u660E t _blank 处理器,俗称单片机

8、。该器件采用ATMEL高密度非易失存储器制造ck/click.php?cpid=12&ads_id=12&pid=99002440&cid=2447&url= %3A/pc.toshiba /product/minisite/minisite_L100_M500_A100_M100.html&k=%25u6280%25u672F&s= %3A/ picavr /news/2021-02/4133.htm&rn=926749&v=1&ref= %3A/ picavr /news/c38/defaultp3.htm&province=%25u4E91%25u5357&city=%25u6606%2

9、5u660E t _blank 技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个/news/2021-02/4133.htm&rn=284362&v=1&ref= %3A/ picavr /news/c38/defaultp3.htm&province=%25u4E91%25u5357&city=%25u6606%25u660E t _blank 芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。所以本次设计采用AT89C51单片机。本次设计采用的是89C51单片机, 89C51是一种

10、高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供以下标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。 我们测量的频率最终要显示出来。八段LED数码管显示器根本电路如图6所示。 图6 八段LED数码管显示器八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英ttp%3A/ picavr /news/c38/defaultp4.htm&province=%2

11、5u91CD%25u5E86&city=%25u91CD%25u5E86 t _blank 文字母。LED数码管显示器有两种形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如以下图所示。共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节8位的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就能表示欲显示字符的字形代码。在单片机应用系统中,数码管显示器显

12、示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,能供应单独锁存的I/O接口电路很多。在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,那么取决于COM

13、端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的约1ms,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。综合以上内容,我们在这次设计中采用LED数码管,采用单片机静态显示计数来显示。采用一个74LS138译码器来控制各个数码管,采用一个74LS245来做上拉电路,使数码显示管有足够的电压进行显示。显示电路由数码管和74LS1

14、38组成,数码管已经介绍过了,现在介绍显示电路组成的另一重要电路:74LS138。在本次设计中,由74LS138连接数码管的接地端,由此来控制数码管的亮和灭。其引脚图和功能表分别如图7和表3所示。 图7 74LS153引脚图 表3 74LS138功能表G1G2CBAY0Y1Y2Y3Y4Y5Y6Y711111111101111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110由图和功能表可以看出,74LS138译码器有三个地址输入端

15、A、B、C和八个译码输出端Y0Y7,当输入为000时,Y0输出端为0,其他输出端都为1;同理可推出其他输出状态,即只有输出变量下标对应的二进制代码与输入代码相等的输出端为0,其他的输出端都为1。另外,该译码器还有三个使能端:G1、/G2A、/G2B,只有当G1=1、/G2A=0、/G2B=0同时满足,才能译码。三个条件中任何一个不满足就禁止译码。其中译码选通端/G2B也被称作数据输入端,主要指它用于数据分配时所起的作用。设置多个使能端使得该译码器能被灵活组成各种电路。由于单片机输出的显示数据电压不够高,无法直接送到数码管上直接显示,因此需要用一个上拉电路来提高输出数据的电压值,以便送到数码管显

16、示。在本次设计中我们选用DM74LS245N。其电路图如图8所示。 图8 DM74LS245N测频软件实现原理测频软件的实现是基于电路系统来进行设计的。本次设计采用的是脉冲定时测频法,所以在软件实现上根本遵照系统的设计原理,进行测频。本次软件设计语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。软件设计的根本思路是:1、把要用到的内部存储器的地址运用伪指令标号,方便后面设计中运用;2、跳转到中断程序进行初步数据采集;3、开始主程序,首先判断是否有待测信号,无信号就等待信号,有信号那么进行下一步;4、判断是否认时到1S,假设没有到达1S定时,那么执行下面的5和

17、6步得操作,假设到达1S,那么执行第6步以后的操作;5、判断是否第一次,假设是,那么判断当前的档位是否设置适宜,假设适宜那么直接跳转到返回主程序,假设不适宜,那么进入第6步;6、调整档位,重新进入中断开始初步计数;7、判断档位是否适宜,适宜那么把测得的数据转换为十进制数据,根据当前的档位相应的调整数位,并取表找到相应的显示数据,然后执行第10步操作;8、假设上一步中判断出档位不适宜,那么根据频率进行相应的档位调整。9、恢复初值,重新开始计数;10、返回主程序。 数码转换开始次数加1调整档位,重新设置计时返回主程序判断是否有信号判断是定时到1s判断是否适合显示 返回否否是是是是否第一次档位是否适

18、宜适否否是是否 1、控制程序:本文设计的是基于单片机的数字频率计的设计,用单片机来做为数字频率计的控制局部。因此,单片机的控制程序在本次设计中显得非常重要。经过设计,我们得到了如下的控制程序。;*;- MAIN -;* MAIN: NOP CALL DISPLAY0;LED动态显示刷新 CALL DELAY100 JNB B_T1IF,MAIN;每50ms处理一次。;= CLR B_T1IF MOV A,TIMES_50MS CJNE A,#20,NO_1S JMP YES_1S; 满20次即为一秒钟;=NO_1S:MOV A,TIMES_50MSCJNE A,#1,NO_1S_END ;TI

19、MES_50MS不为1,返回;当TIMES_50MS为1时,判断当前所选档位是否过高或者过低;假设计数器BUF大于100,那么说明满1秒时必然大于2000,那么提前调高频率衰减档位,;并清零各计数值,重新在新档位测量MOV A,COUNTER_BUF_H JNZ NO_1S_1;计数器高位不为0,说明超100 MOV A,COUNTER_BUF_LCJNE A,#100,NO_1S_0NO_1S_0:JC NO_1S_LOW;计数器BUF小于100,继续跳转到NO_1S_LOW判断是否需要调低档位NO_1S_1:MOV A,FREQ_LOSS;超量程,判断当前频率衰减档位,假设小于3那么加一档

20、CJNE A,#3,NO_1S_2JMP NO_1S_ENDNO_1S_2:JC NO_1S_3MOV A,#3MOV FREQ_LOSS,A;档位大于3,那么修正为3NO_1S_3:INC FREQ_LOSS;频率衰减档位加1MOV A,FREQ_LOSSCJNE A,#1,NO_1S_4SETB P153_B;FREQ_LOSS=1CLR P153_AJMP NO_1S_20NO_1S_4:CJNE A,#2,NO_1S_5CLR P153_B;FREQ_LOSS=2SETB P153_AJMP NO_1S_20NO_1S_5:CLR P153_B;FREQ_LOSS=3CLR P153_

21、AJMP NO_1S_20;=NO_1S_LOW:MOV A,COUNTER_BUF_LCJNE A,#10,NO_1S_10NO_1S_10:JNC NO_1S_END;偏低,那么判断是否需要降低频率衰减档位MOV A,FREQ_LOSS;JZ NO_1S_END;已经是最低档,无需调整DEC FREQ_LOSS;减一档MOV A,FREQ_LOSSCJNE A,#0,NO_1S_11SETB P153_B;FREQ_LOSS=0SETB P153_AJMP NO_1S_20NO_1S_11:CJNE A,#1,NO_1S_12SETB P153_B;FREQ_LOSS=1CLR P153_

22、AJMP NO_1S_20NO_1S_12:CLR P153_B;FREQ_LOSS=2SETB P153_AJMP NO_1S_20NO_1S_20:;调整档位后,重新计数CLR AMOV TIMES_50MS,AMOV COUNTER_BUF_L,AMOV COUNTER_BUF_H,ANO_1S_END:JMP MAIN;=;=YES_1S:;把计数器的数转换成10进制,并根据当前档位设定好要显示的6个数字,;存放在DISPLAY_DATA1-DISPLAY_DATA6中。MOV A,COUNTER_BUF_HMOV R7,AMOV A,COUNTER_BUF_LMOV R6,ACALL

23、 CHANGE16_10;=;在频率衰减控制下,计数器数据不会超出2000多少,因此只取转换后的低4位转换成数据显示MOV A,R3ANL A,#0FHMOV TEMP1,AMOV A,R3ANL A,#0F0HSWAP AMOV TEMP2,A MOV A,R4ANL A,#0FHMOV TEMP3,A MOV A,R4ANL A,#0F0HSWAP AMOV TEMP4,A;=;根据频率衰减档位调整数位MOV A,FREQ_LOSSCJNE A,#0,LOSS_1CLR AMOV DATA4,AMOV DATA5,AJMP LOSS_ENDLOSS_1:CJNE A,#1,LOSS_2MO

24、V A,DATA3MOV DATA4,AMOV A,DATA2MOV DATA3,AMOV A,DATA1MOV DATA2,AMOV A,DATA0MOV DATA1,ACLR AMOV DATA0,AMOV DATA5,AJMP LOSS_ENDLOSS_2:CJNE A,#2,LOSS_3MOV A,DATA3MOV DATA5,AMOV A,DATA2MOV DATA4,AMOV A,DATA1MOV DATA3,AMOV A,DATA0MOV DATA2,ACLR AMOV DATA0,AMOV DATA1,AJMP LOSS_ENDLOSS_3:MOV A,DATA2MOV DAT

25、A5,AMOV A,DATA1MOV DATA4,AMOV A,DATA0MOV DATA3,ACLR AMOV DATA0,AMOV DATA1,AMOV DATA2,ALOSS_END:;高位假设为0,那么置为11,取出显示代码为LED全灭MOV R0,#DATA5;取最高位数据地址MOV R2,#5LOOP_CLR:MOV A,R0JNZ DISCDMOV A,#11MOV R0,ADEC R0DJNZ R2,LOOP_CLR;=;取表找相应显示代码DISCD:MOV R0,#DATA_ADDR;MOV R1,#DISPLAY_DATA_ADDR;MOV R2,#6;MOV DPTR,#

26、TABDILP:MOV A,R0MOVC A,A+DPTRMOV R1,AINC R0INC R1DJNZ R2,DILP;=;重新计数CLR AMOV TIMES_50MS,AMOV COUNTER_BUF_L,AMOV COUNTER_BUF_H,AJMP MAINTAB: ;/显示码码表/ DB 3FH,06H,5BH,4FH,66H; DB 6DH,7DH,07H,7FH,6FH,0FFH;2、数码转化程序:在本次设计中,单片机计数器所计得的数是二进制,以十六进制数的形式存放在存放器中,而我们需要显示的是十进制数的频率,因此需要进行转化才能显示。数码转化程序设计的原理:本次设计的单片机

27、数码转换是通过单片机的移位乘二特性和单片机的十进制调整功能来实现的。先把双字节的十六进制数转换为8421BCD码,在控制显示的时候通过位调整就可以得到计数所得频率的十进制数据,供应显示。其具体的转换程序如下。;*; - 16进制转10进制 -;*;双字节十六进制整数转换成双字节码整数;入口条件:待转换的双字节十六进制整数在R6、R7中。;出口信息:转换后的三字节码整数在R3、R4、R5中。;影响资源:PSW、A、R2R7 堆栈需求: 字节CHANGE16_10: CLR A ;码初始化 MOV R3, A MOV R4, A MOV R5, A MOV R2, #10H ;转换双字节十六进制整

28、数CHANG_1: MOV A, R7 ;从高端移出待转换数的一位到CY中 RLC A MOV R7, A MOV A, R6 RLC 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 MOV A, R3 ADDC A, R3 MOV R3, A ;双字节十六进制数的万位数不超过,不用调整 DJNZ R2, CHANG_1 ;处理完 RET数码显示程序:单片机控制其内部计数器得到的数据要送到8位数码显示管中显示出来,才能被我们所看到,直接得到我们所测量的频率。我们本次设计所采用的是数码管静态显示,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论