资源描述
智能频率测试仪设计专业:应用电子技术班级:09应电2班学号:95姓名:崔建宇指导老师:董卫军1前言本次设计是以STC12C5A3252单片机为控制核心的频率及相位测试仪。本次设计可完成对 信号频率的频率测量和相位差测量。要求测量频率的范围为20Hz到20KHz,相位的范围为0 到360。可通过按键实现测频或测相,用LED数码管直接显示读数,显示清楚直观。误差小, 稳定性高。设计要求:.功能要求 .可以测量被测信号的频率。 .利用多周期同步测量原理,实现全频段等精度测量。 .输入采用交流耦合方式。 .利用220V/50Hz交流电源,设置电源开关、电源指示灯和电源保护功能。.主要技术指标 .测量频率范围:1Hz1MHz .测量误差:W% (全频段) .额定输入信号电压:500mV .最大输入信号电压:100V .输入阻抗:1MQ .显示方式:6位LED数码管显示被测信号的频率。2整体方案设计方案比较2.1.1方案一 方案一的结构框图如下图所示。图方案一方框图2.1.2方案二方案二的结构框图如下图所示。图方案二方框图方案论证本设计要完成信号频率的测量和相位差的测量。设计中有两路输入信号,也是被测量信号, 它们是两个频率相同的正弦信号,频率范围为20Hz到20KHz,幅度为1到5V(可以扩展到(到 5V),但二者幅度不必然相等。令正弦信号为A(t)= Am sin(t +甲),式中:A称为幅值(最大 值),且A二捉A, A称为有效值;0G)=t +甲称为相位,甲称为初相位,w称为角频率。A、 甲、w称为正弦量的三要素。方案一和方案二的比较见表。表方案一和方案二的比较项目芯片部分741741整形部分LM324LM339信号转换部分74HC08FPGA适配板单片机部分STC12C5A3252AT89C51显示部分LEDLED只有两个同频率的(正弦)信号才有相位差的概念。不妨令两个同频率的正弦信号为A1 G)= A1 sin (tot + 甲 01)A2 Q= A2 sinQot + 甲02)则相位差6 = Qt+甲01)-(+甲02)=甲01甲02,由此可看出,相位差在数值上等于初相位之差,6是一个角度。不妨令。=吧,式中*是相位差6对应的时间差,且令T为周期信号,则有比例关系T :360 =孔:6,可以推导取得6 = * 360此式说明,相位差6与T一一对应,可以通过测量时间差T及周期信号T的测量,也就 是时间的测量,而时间的测量则要用到电子计数器。信号频率的测量可以采用直接测频率的方 式和周期测频率的方式。一般信号频率较高时,采用直接测频率法,而信号频率较低时,采用 测周期的方式。用直接测频率的方式取得信号频率即是让按时器/计数器T1对外部事件计数, 而让按时器/计数器T1按时1s,只有在这1s内T1启动对外部事件(即信号I)计数,则T1的 计数值就是待测信号的频率。用测周期的方式取得信号频率即是对I进行2分频后的波形中, 高电平的宽度正好对应I的周期,咱们将此高电平信号作为单片机内部按时器的硬件启动/停止 信号,即可测得周期T,由公式f = 1T,得频率f。方案一工作原理:两路待测信号经整形后变成了矩形波信号1和2, 1和2是同频率,不同 相位的矩形波。(1)频率的测量:STC对信号频率的测量可以采用直接测量法和测周期法。一般信号频率较高 时采用直接测量法,而信号频率较低时用测周期法。本设计我组采用测周期法。由图2.1.2可 知,将输入信号送入单片机再对高电平进行扫描,记录在1s内高电平出现的次数N,则N就是 测得的频率。信号图输入信号图(2)相位差的测量我组用一个与门将两输入的待测信号比较后叠加,而输出的波形中,正脉冲宽度就是要测 量的待测1和待测2相位差所对应的时间差t,跟据公式可得相位值。如图所示。信号1与门 输出图相位比较图方案一工作原理:让FPGA实现数据的收集,即待测信号的频率f、两路输入信号的相位差 所对应的时间差t别离转换为二进制数据,供STC单片机读取利用。STC从FPGA获取数据并通 过CPU计算、转换等有关处置后,取得信号的频率和相位差并送LED数码管显示。待测信号一、待测信号2经整形电路处置后,变成矩形波,不妨令其为A、B,可以以为A、 B为两个同频率的有相位差的矩形波。FPGA通过对整形后的信号A、B的处置,要取得二进制数 形式表示的信号频率和相位差对应的时间差。(1)频率的测量。对频率的测量采用测周期的方式,即在信号周期T时间内,对时标信号进行 计数。设时标信号的频率为f,时标信号周期为T,对信号A二分频都得信号高平宽度就是信号 周期T,此高电平宽度作为闸门的控制信号,控制计数器在T时间内对f进行计数,则有N/F=T, 被测信号的频率为:f=1/T=f/N上式中N计数器的计数值,当f一按时,它的大小表示信号频率的大小。(2)相位差对应的时间差T的测量。对相位差的测量跟频率测量的方式类似,不过闸门控制信 号为AB的高电平宽度,则有:N/f=T(3)f的肯定及其FPGA的二进制数据位数的肯定。因为相位差测量的绝对误差,而FPGA 在测量T时有一个字的误差,对待测信号频率f=20kHz而言,下式成立:2: T9 = 360: 50us则有即FPGA收集相位差对应时间差T时,至少要能分辨出的时间距离比较方案一和方案二可以看出:(1)方案一例如案二加倍靠得住;(2)利用到的元器件也都是咱们所常常利用到的一些元件,如:74HC138译码器,74HC573锁 存器,按键等;(3)从操作和可行性上说方案一思路清楚;(4)虽然方案一略显复杂一些,但由于本次设计是第一次将单片机运用于实际的电路设计中, 且尚未学过EDA,用FPGA设计有必然困难。方案选择综上所述,而且考虑系统的方案可行性和本钱等各类因素,本设计采用方案一作为最终的 方案。3单元模块设计各单元模块功能介绍及电路设计3.1.1移相整形电路模块RR T1图移相整形电路模块电路图 这一模块,由741和运算放大器LM324组成。输入正弦波通过741发生移相,使得相位滞后原初始信号,原来的正弦信号和发生移相后 的信号别离通过LM324放大整形成矩形波形式,再将整形后的信号引入单片机的计数引脚,原 正弦波接至T0,移相信号接至T1和INT1。原正弦波通过计算T0在1S内计数信号发生负跳变 的次数,取得其频率。T的肯定,由单片机产生高频率的时钟信号,对输入信号进行扫描,即 与输入信号进行逻辑与运算。输入信号为低电平时,没有时钟脉冲输出;为高电平时输出时钟 信号,对其进行记数,假设为N,就可以够计算出脉宽,为N*T1,即T=N*T1。将参考信号整形为方波信号,并以此信号为基准,延时产生另一个同频的方波信号,再通 过波形变换电路将方波信号还原成正弦波信号。以延时的长短来决定两信号间的相位值。这种 处置方式的实质是将延时的时间映射为信号间的相位值。相位的测量则是通过将原正弦信号和移相后的信号别离通过整形后相与,由GATE门和INT1 控制T1,通过按时对外部信号高电平进行计时,从而测得相与后的高电平持续时间。再通过之 前测得频率的倒数除以2取得它们时间差t,由7 :360 = 70 :9 ,算出9即为相位滞后角3.1.2显示模块这一部份由2个8位数据锁存器74HC573、ULN2803和8位LED数码显示管组成,ULN2803 在电路中能起到大电流输出和高压输出作用,专门用来驱动继电器的芯片。当LE2为高电平, 即Y2 = 1时,LED位锁存器工作,那时序由高电平变成低电平时即发生负跳变时,将位选信号锁 存,再通过ULN2803进行位选。当LE1为高电平,即Y =1时,数据通过P0 口,那时序由高电 1平变成低电平时即发生负跳变时,经74HC573锁存,LED段锁存器工作,再通过延时,就可以够 将咱们所要显示的频率或相位依照咱们的要求显示出了。锁存器74HC573电路见图(a)。(a)显示模块电路见图(b)。QQQQQQQQD(b)图显示模块电路图n1 11X3.1.3片选模块片选模块电路见图。片选译码器P26_2P273P251|VCCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y7图片选模块电路图OOOODOOOIC4C 74HC02这一模块由3-8线译码器74HC138和四2输入或非门74HC02组成。通过74HC138译码器, 将A,B,C3路信号译码,Y3 = CBA, Y4 = CAB,所得信号CS3,CS4与WR信号相或非来控制锁存器的工作情况,Y = CS3 + WR, Y = CS4 + WR。23.1.4电源输入模块电源模块电路见图。C1 2104USB连接器+1 5 V图电源输入模块电路图这部份电路由USB连接器,电源输入组成,为系统提供靠得住稳定的电源。电路参数的计算及元器件的选择显示部份(见图),因为本组所测频率范围为20Hz到20KHz,共需5个八位LED数码显示 管,所以选用了两组4个的LED显示管。在移相整形部份(见图),R3、R五、R13、R14、R18 采用10KQ电阻,R4用100Q电阻,R7、R16用510Q电阻,R八、R10用30KQ电阻,C1用电容。在片选部份(见图)选用74HC138作译码器,选用74HC02对输出信号进行或非处置产生片 选信号。特殊器件的介绍74HC573的介绍74HC573为八进制3态非反转透明锁存器,是高性能硅门CMOS器件。器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。当锁存使能端为高时,这些 器件的锁存对于数据是透明的(即输出同步)。当锁存使能变低时,符合成立时间和维持时间的 数据会被锁存。其特点有:(1)输出能直接接到CMOS,NMOS和TTL接口上;(2)操作电压范围:(3)低输入电流:(4)CMOS器件的高噪声抵抗特性其引脚图如图。IC174HC573.11幻OC1LE111CAD021D1Q19aAD1318bAD242D2Q17cAD353D3Q16dAD464D4Q15eAD575D5Q14fAD686D6Q13gAD797D7Q12dp8D8Q图74HC573引脚图其功能表:见表。表74HC573功能表黜嫩amLH1.:HL:LHX DQ:nLLX碰X2X:任意变量Z:高阻抗+额定功率的下降PDIP:10mW/C,65C125C SOIC:-7 mW/C , 65C125C 74HC573参数最大值范围见表。表74HC573参数最大值范围表符号参数值承位DC班电电压匚参考GNEO-0.5-+ 7.-0VvlwDC输X电压匚参考GND)-1.5-VCC+1.5VVoutDC输出电压参考GMLOVI LN每一个FD4的DC输入电流20mAloLT每一个FD4的DC澈山电流mAkc*IX:供电电流.Vcv-fB OND之间75mAF 口在自然环境下,FDIF fit SOIC封装下的 功耗750500mWTstg存储温度-65-+15-0Tj引线温度-E秒tFDIP- SOIC)26-074HC573推荐操作条件见表。表74HC573推荐操作条件表符号参裁最小最大单位VcvDC供电电斥.(参考GND)2.06.flVVm7Voi_rrC输入也压.输出电压(落考GD)0VocVTa所有封装的操作温度55+ 125输入上升利F降时间VcZW0IflOOnsVc=4.5VasacYc?r=.aVa400这个器件带有保护电路,以避免被高的静态电压或电场损坏。但是,对于高阻抗电路,必 需要采取预防以避免工作在任何高于最大值范围的条件下工作。VIN和VOUT应该被约束在GND W(VIN 或 VOUT)WVCC。3.3.2 RS232 的介绍RS232是由电子工业协会(EIA)所制定的异步传输标准接口。通常RS-232接口以9个引脚 (DB-9)或是25个引脚(DB-25)的型态出现,一般个人计算机上会有两组RS-232接口,别离 称为COM1和COM2。其电气特性:EIA-RS-232对电器特性、逻辑电平和各类信号线的功能都作了规定。(1) 在 TxD 和 RxD 上:(2) 逻辑 1(MARK)=-3V -15V(3) 逻辑 0(SPACE)=+3 +15V在RTS、CTS、DSR、DTR和DCD等控制线上:(5) 信号有效(接通,ON状态,正电压)=+3V+15V(6) 信号无效(断开,OFF状态,负电压)=-3V-15V各单元模块的联接各个单元模块连接的具体关系参见附录1。4软件设计软件设计的整体结构系统软件设计整体结构如图。图系统软件设计整体结构图主要模块的设计流程框图程序流程如图。数据处置模块流程图见图。图程序流程方框图显示部份模块流程图见图。图数据处置部份方框图图显示部份方框图5系统调试Proteus软件仿真5.1.1 Proteus仿真总图Proteus仿真结果总图见附录25.1.2 Proteus仿真的元件参数Proteus仿真元件参数见表所示。表Protues仿真元件参数表元件编号元件型号元件编号元件型号电阻R1510电阻R18100电阻R210K电阻R1930K电阻R310K电阻R2030K电阻R4100排阻RP11K电阻R5510排阻RP21K电阻R610K无极性电容C1电阻R710KU1AT89C52电阻R8100U2:ALM324电阻R9510U2:BLM324电阻R10510U3:A74HC02电阻R11100U3:B74HC02电阻R12100U474HC573电阻R13100U5ULN2803电阻R14100U674HC573电阻R15100U774HC138电阻R16100U8741电阻R17100U974085.1.3 Proteus仿真的具体操作软件仿真是设计的一个重要部份,一般来讲,若是能够在软件仿真取得成功,下一步的硬件 调试就不会出多大的问题。咱们运用的软件仿真平台式Proteus的ISIS仿真工具。首先按硬件 调试平台或是按照设计的原理图绘制出仿真的原理总图,然后按照需要一部份一部份的进行调 试。在进行软件调试的时候,特别是对移相及整形电路进行调试的时候,为了看它的时序是不是 符合技术资料上的时序要求,最好单步进行调试。这里提供了一个比较好的解决方案。通过KEIL C和Proteus (及以上版本),可以通过驱动让Proteus和KEIL C联合调试,并通过ISIS的数 字示波器实时监视单总线的时序。连接图如图所示。频率及相位测试仪部份的仿真连接见图。图频率及相位测试仪部份的仿真连接图6系统功能指标参数系统功能本系统可完成对信号频率的频率测量和相位差测量。可实现测量频率的范围为20Hz到20KHz, 相位的范围为0到360。可通过按键实现测频或测相,用LED数码管直接显示读数,显示清 楚直观。通过与现实温度的对比,可以粗略的测得该设计的准确度,从而对比该设计的指标。 咱们用标准的温度计对一杯温水的温度进行测量,而且将测量结果同本系统所测得结果作对比, 得出如表所示的结果。系统指标参数测试通过与现实频率相位的对比,可以粗略的测得该设计的准确度,从而对比该设计的指标。咱 们用标准的频率相位计对一信号的频率相位进行测量,而且将测量结果同本系统所测得结果作 对比,得出如表所示的结果。系统性能参数测试表频率相位计测得频率(HZ)频率相位计测得相位( )系统测得 频率(HZ)系统测得 相位( )频率相位计测得频率(HZ)频率相位计测得相位( )系统测得频率(HZ)系统测得 相位( )1001731011771600279160628020019919920521002912102295500233499234270031026883111000256100126233003393295343系统功能及指标参数分析从表可得,本设计能够比较准确的测量温度相位,而且能够实时显示其值,灵敏度较高。7结论本次设计中碰到很多平常不常注意的和碰到的问题,知识面和实践上都有一些问题,在本 次设计中充分感到了时间的紧迫和创新的快乐。理论上斗胆假设,实践上小心求证。本组同窗 同心合力在周围时间里完成了设计。本设计的数字测频测相仪具有原理简单、易于编程的特点。 利用单片机的按时器与计数器实现频率的等精度测量是本次设计的亮点,但由于时间与技术上 的问题,本次设计还有诸多问题。但总的来讲本次设计是成功的。8总结与体会通过这次课程设计,使自己的知识水平有了显著的提高,并学会了如何将自己所学的运用 于实践当中,本系统所涉及的东西几乎涵盖了大学所学的方方面面的知识,如电子技术、电路 原理、程序设计基础、检测与转换、单片机等,虽然下半年就将毕业,可是学习却是终身受益 的事情,只有不断学习才能不断进步,只有不断的将所学运用于实践,才能查验出所学是不是正确,自己是不是真的掌握。本系统还有很多有待提高的地方,这需要在以后的学习中完善自 己的知识不断补充。通过这次课程设计,咱们学会了把书本上的理论知识如何运用到实践中, 在以后的生活学习中,咱们也将不断尽力、创新。9.主要参考书单片机原理与接口技术李朝青北京航空航天大学出版社单片机原理与应用李建忠 西安电子科技大学出版社智能仪器原理,设计及调试季建华等 华东理工大学出版社单片机应用系统设计应用何立民主编北京航空航天大学出版社智能化仪器原理及应用 曹建平 西安电子科技大学出版社智能仪器原理与设计赵新民哈尔滨工业大学出版社智能仪器原理及应用赵茂泰电子工业出版社现代科学仪器中国分析测试协会主办自动化仪表 中国仪器仪表学会 上海工业自动化仪表研究所主办仪器仪表学报中国仪器仪表学会主办仪器仪表网()仪器商城网()附录1:系统的电路原理图8I I I III IlliN N V 3 2 MG GC器连2134566892 I680 I 2 3 4 5 6 7P P P P P P P P2 D2 Y t1 c X T SXISK R P P k O K L E P P MML DdDDDddDAAAAAAAARk邛DADAAD3 4 5 678 9 0YYYYYYYYA B C1 2 32 *PPP5C也5 1附录2: PCB图/*延时函数*/延时ms级写壮态/送入数据/打开数据锁存器附录3:程序代码/*头文件概念*/#ifndef _HEAD_H_ #define _HEAD_H_ #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define Data P0 /数据口 #define Addr P0 /地址口 uchar ksp2=0xfe,0xfd;sbit Write=P3A6;写信号低电平有效sbit A1=P2A5;/低位sbit B2=P2A6;中位sbit C3=P2A7;高位uchar led=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x 6F; /7SEG-CC uchar address=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; uchar button; ulong time0; ulong freq=0; uchar frequ8; #endif /*头文件函数库*/ #ifndef _FUNCTION_H_ #define _FUNCTION_H_ void delay() unsigned int i;for(i=0;i10;i+); void delay1() unsigned int i;for(i=0;i2000;i+);void delay_1ms(uchar t) uchar i,j; while(t) t-;for(i=0;i10;i+)for(j=0;j100;j+);/*显示函数,先将段码通过P0 口送出经74HC573锁存, 再将位码通过P0 口输出经74HC573,ULN2803输出 位码*/display(uchar temp,uchar i)Write=0;Data=ledtemp;C3=1;delay();C3=0;Addr=addressi;A1=1;B2=1;delay1();Addr=0x00;A1=0;B2=0;void jisuan(ulong database)对所得数据信号(频率或相位)进行处置frequ0=database/;frequ1=database/1000000-frequ0*10;frequ 2 =database/100000-frequ0*100-frequ1*10 ;frequ3=database/10000-frequ0*1000-frequ1*10 0-frequ *10;frequ4=database/1000-frequ0*10000-frequ1*10 00-frequ2*100-frequ3*10;frequ5=database/100-frequ0*100000-frequ1*10 000-frequ *1000-frequ3*100-frequ4*10;frequ6=database/10-frequ0*1000000-frequ1*1000 00-frequ2*10000-frequ3*1000-frequ4*100-frequ5*10;frequ7=database-frequ0*-frequ1*1000000-frequ * 100000-frequ3*10000-frequ4*1000-frequ5*100-freq u6*10;/*键盘扫描程序,通过向P1 口输出0Xff,通过判断P1 口 的信号是不是发生了改变,若是发生了改变,考虑到键盘 的抖动,通过延时后,再次判断P1 口的值,并将P1 口的 键值返回到主程序*/uchar keypad_scan()uchar i;uchar key;for(i=0;i2;i+)if(P1=kspi)delay();key=P1;if(key=kspi)return(key);uchar test_freqT0(void)uint aa;TMOD=0x05;计数器0方式1EA=1;TH0=0X00;TL0=0X00;ET0=1;TR0=1;delay_1ms(1000);TR0=0;aa=TH0;aa=TH0 8;aa=aa+TL0;return(aa);uchar test_pahse(void) uchar bb;SP=0X60;TMOD=0X00;TL1=0X00;TH1=0X00;LOOP:if(P3_3=1) goto LOOP;TR1=1;LOOP1:if(P3_3=0)goto LOOP1;LOOP2:if(P3_3=1)goto LOOP2;TR1=0;bb=TL1return(bb)#endif#include #include ”#include ”void main() uchar i;uchar freq,phase,ph;int x,y=0;while(1)button=keypad_scan();调接键盘扫描程序if(button=0xfe)/判断键值,若是为0xfe,则进行测试频率的操作freq=test_freqT0();挪用测频函数jisuan(freq);挪用数据处置函数for(i=0;i8;i+)display(frequi, i);显示频率else if(button=0xfd)/判断键值,若是为0xfd,则进行测试相位的操作Ph=test_phase();phase=180-(1-2*freq*ph);jisuan(phase);for(i=0;i8;i+)display(frequi, i);附寸录4元器件见表所示。表元器件选择表类别型号封装个数电阻100RES314510RES3810KRES35排阻SIP9210K电位器W2230KRES35二极管1N4148DIODE23三极管9014TO-924901890134IC74HC02DIP14374HC138DIP16174HC573DIP202ULN2803DIP181STC12C5A16S2DIP40174136DIP1417408DIP141741DIP081LM324ADIP142电容RB1230pFRAD1522uF/16VRB12极性电容25VRB11晶振CY11继电器JDQ-T71T711曰二取 显示器4LED-SM4205644按键KEY43USB连接器J5USB扁头1电源输入J41程序下载口CON3SIP61电源模块KEY3KEY31
展开阅读全文