版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机和CPLD技术数字频率计 课题设计方案 自动化09-9班 李雄、张杰、马勇1 绪论 测量频率是电子测量技术中最常见的测量之一。不少物理量的测量, 如时间、速度等都涉及到或本身可转化为频率的测量。目前, 市场上有各种多功能、高精度、高频率的数字频率计, 但价格不菲。而在实际工程中, 并不是对所有信号的频率测量都要求达到非常高的精度。 本系统以单片机AT89C51为核心,采用自上向下的设计方法,设计了基于复杂可编程逻辑器件的数字频率计。以AT89C51单片机作为系统的主控部件,完成电路的测试信号控制、数据运算处理、键盘扫描和控制数码管显示。用VHDL语言编程,由CPLD(Comple
2、x Programmable Logic Device)完成各种时序控制及计数功能。不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。该系统具有结构紧凑、可靠性高、测频范围宽和精度高等特点。2 系统设计方案的选择 常用的频率测量方案一下几种:直接测频法:把被测频率信号经脉冲整形电路处理后加到闸门的一个出入端,只有在闸门开通时间T(以秒计)内,被计数的脉冲送到十进制计数器进行计数;设计数器的值为N,则可得到被测信号频率为f=N/T,经分析,本测量在低频率的相对测量误差较大,即在低频段不能满足本设计的要求。组合测频法:这种方法可以在一定程度上弥补方法(1)中的不足,但
3、是难以确定最佳分测点,且电路实现较复杂。倍频法:是指把频率测量范围分成多个频段,使用倍频技术,根据频段设置倍频系数,将经整形的低频信号进行倍频后在进行测量,对高频段则直接进行测量。倍频法较难实现。等精度测频法:其实现方式可用图2.1来说明。图中,预置门控信号是宽度为TPR的一个脉冲,CNT1和CNT2是两个可控计数器。标准频率信号从CNT1的时钟输出端CLK输入,其频率为fs,经整形后的被测信号从CNT2的时钟输入端CLK输入,设其实际频率为fx;当预置门控信号为高时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动计数器CNT1和CNT2。CNT1和CNT2分别对被测信号(频率为fs)和
4、标准频率信号(频率为fx)同时计数。当预置门信号为低时,随后而至的被测信号的上升沿将两个计数器同时关闭。设在一次预置门时间Tpr内对被测信号的计数值为Nx,对标准信号的计数值为Ns。则下式成立:fx/Nx=fs/Ns由此推得:fx=fs*Nx/Ns图2.1 等精度测频法原理框图若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是该信号的上跳沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,即fx/Nx=fs/Ns,则下式成立: fxe/Nx=fs/Ns+et 可分别推得 fx=fs*Nx/Ns fxe=fs*Nx/
5、Ns+et 根据相对误差的公式有:fxe/fxe=fxe-fx/fxe 经整理可得到:fxe/fxe=et/Ns因et1,故fxe/fxe1/Ns Ns=Tpr*fs根据以上分析,我们可知等精度测频法具有三个特点:1,相对测量误差与被测频率的高低无关;2,增大Tpr或fs可以增大Ns,减少测量误差,提高测量精度;3,测量精度与预置门宽度和标准频率有关,与被测信号的频率无关,在预置门和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变;经过综合考虑,结合设计需求,选用第种方案,即用等精度测频法来实现本设计频率测量。3 系统总体设计方案3.1 系统整体结构电路系统原理框图如
6、图3.1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;CPLD完成各种测试功能;键盘控制命令通过一片74LSl65并入串出移位寄存器读入单片机,实现测频、测脉宽及测占空比等功能,单片机从CPLD读回计数数据并进行运算,向显示电路输出测量结果;显示器电路采用七段LED动态显示,由8个芯片74LSl64分别驱动数码管。系统总体设计本系统的硬件电路包括键盘控制模块、显示模块、输入信号整形模块以及单片机主控和CPLD模块。键控制模块设置5个功能键和3个时间选择键,键值读入采用一片74LSl65来完成,显示模块用8只74LSl64完成LED的串行显示。系统由一片CPLD完成各种测试功能
7、,对标准频率和被测信号进行计数。单片机对整个测试系统进行控制,包括对键盘信号的读入与处理;对CPLD测量过程的控制、测量结果数据的处理;最后将测量结果送LED显示输出。被测信号整形电路主要对被测信号进行限幅、放大、再经施密特触发器整形后送入CPLD。用50MHz的有源晶振作为CPLD的测试标准频率,单片机由外接12MHz标准晶振提供时钟电路。可 编 程 芯 片电源部分显示电路单键盘输入时钟电路单 片 机片机50MHZ标准频率被测信号整信电路自较输入图3.1 系统原理框图3.2 显示电路 系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静
8、态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8位并出的74LS164芯片组成。 图3.2显示电路图这种显示方式不仅占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路如图4.4所示。74LS164是一种8位高速串入/并出的移位寄存器,随着时钟信号的高低变化,串行数据通过一个2输入与门同步的送入,使用独立于时钟的主控复位端让寄存器的输出端变为低电平,并且采用肖特基钳位电路以达到高速运行的目的。并且还具有以下的特点:典型的35MHZ移位频率;异步主控复位;门控串行输入;同步数据传输;采用钳位二极管限制高速的
9、终端;静电放电值大于3500V。在本系统中,74LS164的连接方式为:74LS164的输出Q0Q7分别接LED数码管的dp、g、f、e、d、c、b、a,并且Q7连接下一个74LS164的A,B端,时钟CLK连接单片机的TXD端,第一片芯片的AB端连接单片机的RXD端,74LS164芯片的主控复位端接高电平VCC。在这种状态下,数码管的编码如下表所示。 数码管的编码表显示数码段 码显示数码段 码00c0h880h10f9h990h20a4hA88h30b0hB83h499hC0c6h592hD0a1h682hE86h70f8hF8eh 3. 3电源模块 整个电路的供电电源如图3.3所示,220
10、V交流电经变压、整流、滤波后,由一片7805三端稳压器向系统提供+5V电压信号。本设计采用5V电源电压供电,直流稳压电源一般由电源变压器、整流滤波电路以及稳压电路所组成。电源变压器时将交流电网220V的电压变为所需要得值,然后经过整流电路将交流电压变成脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须经过滤波电路加以滤除,从而得到平滑的直流电压。但这样的电压还随时电网波动(一般由10%左右的波动)负载和温度的变化变化。因而再整流、滤波电路之后,还需接稳压电路。稳压电路的作用是当电网电压波动、负载和温度变化时,维持输出直流电压稳定。选用输出电压固定为+5V的三端集成稳压器7805。变压器
11、将电网220V电压变为+9V电压,经二极管桥式整流后,为78V的电压送入7805的输入端,电容C5和C6用来实现频率补偿,防止稳压器7805产生高频自激和抑制电路引入的高频干扰,C4和C7是电解电容,以减少稳压电源输出端由输入电源引入得低频干扰。D8为大电流保护二极管,防止在输入端偶然短路到地时,输出端大电容上存储的电压反极性加到输出、输入端之间而损坏芯片。图中用一个发光二极管来检测电源电路是否通电,同时还可作为电源电路是否出现故障的标志,当LED亮则完好,否则电源电路可能未上电或出现错误,起到一个很好的自动电源检测功能。图3.3 电源电路3.4 信号整形电路 图3.4为输入信号整形电路。放大
12、整形电路由9018和74F14等组成,其中9018组成放大电路将输入为FX得周期信号如正弦波、三角波等进行放大。74F14施密特触发器对放大器得输出信号进行整形,使之称为矩形脉冲。其连线如图所示。待测信号经过时,由D1、D2两个二极管进行限幅,以免电压过大而烧毁,信号经过9018进行放大,由74F14对其进行整形,产生出得波形为标准方波,方便CPLD进行计数。图3.4 被测信号整形电路 3.4其它电路单片机的时钟电路由12MHz的晶振提供。CPLD的标准频率信号由50 MHZ的有源晶振提供。自校输入信号取自单片机的12MHZ晶振。被测信号经过放大整形电路调理后输入。4. 单片机控制与运算程序的
13、设计4.1.1单片机控制电路 单片机测频控制电路如图4.1所示,由单片机完成整个测量电路的测试控制、数据处理和显示输出,CPLD完成测频功能。(1) 由于CPLD在对频率进行计数时,采用32位二进制计数器,8位数据总线的单片机分四次将32立数据全部读出。利用AT89C51的PO口读计数器COUNT 输出B 7. . 0标准频率信号的值,P2口读计数器COUNT输出B15. .8 被测信号的值。被读出的四组8位数据通过AT89C51的SSO, SSl地址编码选择。由Pl口输出控制。(2) CS:由单片机的P1. 0口控制。CS=0时,等精度测频;CS=1时,测脉宽。(3) CLR:系统全清零功能
14、。 (4) ED2:脉宽计数结束状态信号,ED2=1计数结束。图4.1单片机控制电路(5) AS:自校和测频选择。AS=1测频,AS=0自校。(6) STROBE:为预置门闸,门宽可通过键盘由单片机控制,打开;STROBE=0时,预置门关闭。(7) ED1:测频计数结束状态信号,ED1=0时计数结束。(8) SSO, SSl:计数值读出选通控制。若令SS=SS1, SSO,STROBE=1时,预置门则当SS=0, 1, 2, 3时可从PO口和P2口由低8位至高8位分别读出两组4个8位计数值。(9) FS为标准频率信号输入,此频率来源于50MHZ的有源晶振。(10) FX为被测信号输入,此信一号
15、是经过限幅整形电络后的信号。(11) FC为自校频率,取自单片机的外接晶振。4.1.2 单片机主程序图4.2表示单片机主程序流程图。各种测试功能流程如下:系统初始化后,主程序不断扫描键盘子程序,当开始键按下后,程序转到测频子程序执行测频功能。那么读入开始键之后马上跳转到测频子程序,测频子程序先置测频控制位CLR(P1.0),将CPLD内的计数器清零,然后通过健盘将顶置门的时间值读入单片机,打开预置门进行测频计数,等预置门时间到后,关断预置门,CPLD关断预置门后将给单片机一个结束信号,单片机读到结束信号后,通过置 SS1,SS0的四个状态,分四次将测频结果的32位数据读入单片机,计算后将结果转
16、换为BCD码送LED显示输出。显示子程序通过查表方式,将频率测量值以十进制的形式显示出来。空闲状态程序始终扫描键盘,等待输入,并在LED上显示CPUREADY的字样,执行完某一功能后程序又会回到键盘扫描状态上来。图4.2主程序流程图4.2.1 测频程序流程图测频程序先置测频控制位CLR(P1.6). AS(P1.4),将CPLD内的计数器清零,选择测量被测信号。并将CS (P1. 3)置零,即为选择测频。然后通过键盘将预置门的时间值读入单片机,打开预置门进行测频计数,等预置门时间到后,关断预置门,CPLD关断预置门后将给单片机一个结束信号,单片机读到结束信号后,通过置SS1,SSO的四个编码状
17、态,分四次将测频结果的3位数据读入单片机,计算后将结果转换为BCD码送LED显示输出。开始置测频控制位清计数器读入预置门时间值 开预置门定时读结束位调显示子程序关预置门计算并将结果转换BCD码返回读入计算结果图4.1测频程序流程图4.2.2具体程序见附录5. 系统调试的方法本系统既含有FPGA自编程硬件设计电路,又含有单片机控制电路,整个系统比较复杂,因此我们采用自底向上的调试方法,也就是先进行各个单元电路的软件仿真和硬件调试,在各个单元电路调试好后再进行系统联调,最后进行硬件的编程固化及系统的组装。5.1 调试的软/硬件 系统设计开发软件:MAX+plus 10.0,伟福6000(WAVE
18、6000 for windows)。(2) 单片机及FPGA/CPLD调试设备:PIV计算机,伟福E6000L单片机仿真器及POD8X5XP仿真头,GW48-CK EDA实验开发系统及EPF10K20TC144-4FPGA适配板,GWDVPB电子设计开发板单片机最小系统,炜煌WH-500B程序编写加密器,GDS-820S数字存储示波器。5.2系统的硬件验证 单元电路的调试 FPGA/CPLD测频专用电路的调试:使用MAX+plus 10.0,计算机,GW48-CK EDA实验开发系统等软件和设备,对FPGA/CPLD测控电路进行VHDL程序的调试,有关仿真以及编程下载,硬件测试等。统的联合调试
19、 在各个单元电路调试好后即可进行系统联调。统的硬件验证系统联合调试成功后,可将单片机程序通过编程器固化到单片机中并插入EDA实验开发系统中的单片机插座上,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,输入相关的信号,并进行有关性能指标的测试,直到满足系统的设计要求为止。5.3系统扩展思路 (1) 设计并制作系统工作的外围电路:系统用方波信号源、直流工作电源。(2) 系统联合调试成功后,可将单片机程序通过编程器固化到单片机中,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,将整个系统的外围电路设计制作印刷电路板。 6.技术难点分析本设计因采用单片机与CP
20、LD结合设计系统,难点在于单片机程序编写和写入,CPLD的自学以及调试软件的学习以及VDHL语言的学习和运用。在调试成功后的外围电路制版焊接也是难点之一。附录附录 单片机控制程序清单*主程序*ORG OOOOHKEYIN: ACALL LOAD ;装入CPUREADY ACALL DISP ;调显示子程序START: STEB P3.5 ;开键盘控制CLR P3.2 ;并行置入键值 STEB P3.2 ;允许串行移位 MOV SCON, #00010000B ;设置串行口模式0,启动接收WAIT1: JNB RI ,WAIT1 ;等待接受一帧数据的结束 CLR RI MOV A, SBUF ;
21、取键值 ANL A,#01H ;屏蔽高三位 MOV R3,A ;暂存键值 ACALL D_10MS ;延时,去抖 CLR P3.2 STEB P3.2 MOV SCON,#00010000HWAIT2: JNB RI,WAIT2 CLR RI MOV A,SBUF ANL A,#01H MOV 20H,A MOV A R3 CJNE A,20H,KEYIN ;判断键值是否由抖动引起的 CJNE A,FEH,KEYIN ;判断开始键是否按下 CLR P3.5 ;关键盘控制 ACALL KEY ;调测频子程序 ACALL DISP ;调显示子程序 JMP KEYIN*测频子程序*KEY: LCAL
22、L CLEAR ;调LED熄灭子程序 LCALL TIME ;调预置时间值 MOV R0,20H ;读入预置门时间值 STEB P1.0 ;计数器清零 CLR P1.0 STEB P1.1 ;开始计数DELY: ACALL D_100MS DJNZ R0,DELY CLR P1.1 EEND: MOV C,P1.2 ;读计数结束标志位 JC EEND MOV A,#11100111B ;置SS=0,读数 ANL P1,A NOP MOV A,P0 ;将NS的值存入70-73H MOV 70H,A MOV A,P2 MOV 71H,P2 STEB P1.3 ;置SS=1 NOP MOV A,P0
23、 MOV 72H,A MOV A,P2 MOV 73H,A STEB P1.4 ;将NX的值存入74-77H CLR P1.3 NOP MOV A,P0 MOV 74H,A MOV A,P2 MOV 75H,A STEB P1.3 NOP MOV A,P0 MOV 76H,A MOV A,P2 MOV 77H,A MOV R0,#00H ;40HZ标准频率转换为16进制为2625A00H MOV R1,#O5AH MOV R2,#O62H MOV R3,#02H MOV R4,74H MOV R5,75H MOV R6,76H MOV R7,77H ACALL MUL_SUB ;调四字节乘法子
24、程序FS*NX ACALL NDIV ;调除法子程序FX=(FS*NX)/NS ACALL BIN_BCD ;调二进制转换BCD码子程序 ACALL EXTD ;调字节展开子程序 RET*显示子程序*DISP: SETB P3.4 ;开显示控制 MOV R7,#08H ;设置显示个数 MOV R0,#30H ;置显示缓冲区指针 MOV SCON,#00H ;设串行口方式SEND: MOV A RO ADD A,#0DH ;设置偏移值 MOVC A,A+PC MOV SBUF,A ;启动发送WAIT: JNB TI,WAIT ;判断1帧数据是否发送完毕 CLR TI INC RO DJNZ R7
25、,SEND ;判断数据是否发送完毕 CLR P3.4 ;关显示控制 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H, ;0,1,2,3,4 DB 92H,82H,0F8H,80H,98H, ;5,6,7,8,9 DB 88H,83H,0C6H,0A1H,86H,8EH, ;A,B,C,D,E,F DB 7FH,0FFH,0C6,8CH,0C1H, ;.,暗,C,P,U DB 0CEH,86H,88H,0A1H,91H ;R,E,A,D,Y DB 86H,0C8H,0F8H,86H,0CEH,;E,N,T,E,R DB 0BFH,92H,0F0H, ;-,S,J*提示字装入
26、子程序*LOAD: MOV R7,#08H MOV R0,#30H MOV A,#13H ;CPUREADYLD: MOV R0,A INC R0 INC A DJNZ R7,LD RET LED熄灭子程序CLEAR: MOV R7,#08H MOV R0,#30H MOV A,#12H ;显示熄灭ABCL: MOV R0,A INC R0 DJNZ R7,ABCL RET*时间值输入子程序*TIME: MOV R7,#08H MOV R0,#30H MOV A,#19H ;显示ENTER-SJLP: MOV R0,A INC R0 INC R0 DJNZ R7,LP LCALL DISPBE
27、GIN:STEB P3.5 ;开键盘控制CLR P3.2 ;并行置入键值 STEB P3.2 ;允许串行移位 MOV SCON,#00010000BWTI: JNB RI,WTI ;判断是否接收完毕 CLR RI MOV A,#0EH ;屏蔽开始键 MOV R3,A LCALL D_10MS ;延时,消抖 CLR P3.2STEB P3.2MOV SCON,#00010000BWT2: JNB RI,WT2 CLR RI MOV A,SBUF ANL A,#0EH MOV 22H,A MOV A,R3 CJNE A,22H,BEGIN CJNE A,#FDH,S_10 MOV 20H,#01H
28、 ;预置门时间0.1S CLR P3.5 ;关键盘控制 RET S_10 :CJNE A,#FBH,S_20 MOV 20H,#0AH ; 预置门时间1S CLR P3.5 RETS_20: CJNE A,#F7H,BEGIN MOV 20H,#64H ; 预置门时间10S CLR P3.5 RET*延时10MS子程序*D_10MS: MOV R7,#14HLOOP1: MOV R6,#0F9HLOOP2: DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET*延时100MS子程序*D_100MS: MOV R7,#0C8HDL1: MOV R6,#0F9HDL2: DJNZ R6,
29、DL1 DJNZ R7,DL2 RET*字节展开子程序*EXTD: MOV R1,#30H MOV R7,#04HAGAN: MOV A,R0 MOV R3,A ANL A,#00001111B MOV R1,A MOV A,R3 INC R1 ANL A,#11110000B MOV R1,A INC R1 INC R0 DJNZ R7,AGAN RET*4字节乘法子程序FS*NX*MUL_SUB:MOV A,M ADD A,R0 MOV R5,A XCH A,R1 XCH A,R5 ADD A,N XCH A,R0 MOV R6,A MOV B,M MOV NCNT,BNMLMN1: DE
30、C R0 DEC R1 CLR A XCH A,R1 MOV R0,A DJNZ NCNT,NMLMN1 MOV NCNT,BNMLMN2: CLR A XCH A,R0 MOV R2,A MOV A,R6 MOV R0,A MOV A,R5 MOV R1,A MOV R7,N CLR CNMLMN3: MOV A,R2 MOV B,R1 INC R1 MUL AB ADDC A,R0 MOV R0,A INC R0 MOV A,B ADDC A,R0 MOV R0,A DJNZ R7,NMLMN3 INC R0 INC R6 DJNZ NCNT,NMLMN2 MOV A,R0 CLR C*除
31、法子程序(FS*NX)/NS*NDIV: MOV A,M CLR C SUBB A,N MOV B,A ADD A,R0 MOV R4,A XCH A,R0 MOV R3,A MOV A,R1 MOV R5,A MOV R2,#00HNDVMN1 :MOV R7,N CLR CNDVMN2 :MOV A,R0 SUBB A,R1 MOV R0,A INC R0 INC R1 DJNZ R7,NDVMN2 MOV A,R4 MOV R0,A MOV A,R5 MOV R1,A JC NDVMN3 INC R2 SJMP NDVMN1NDVMN3 :MOV R7,N CLR CNDVMN4 :MOV A,R0 ADDC A,R1 MOV R0,A INC R0 INC R1 DJNZ R7,NDVMN4 MOV A,#08H MUL AB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆两江新区人民医院招聘4人考试参考题库及答案解析
- 2026遂宁大英农商银行寒假实习生招聘考试参考试题及答案解析
- 2026江苏苏州张家港农商银行寒假实习招募考试备考题库及答案解析
- 2026云南西双版纳州中级人民法院第一次招聘聘用制审判辅助人员1人考试备考题库及答案解析
- 2026江苏中国药科大学智能药学交叉研究院工作人员招聘5人考试备考试题及答案解析
- 2026年甘肃省天水市清水县秦亭镇中心卫生院编外人员招录考试备考题库及答案解析
- 2026年齐齐哈尔讷河市人民医院招聘3人考试备考题库及答案解析
- 2026陆军工程大学社会招聘8人考试参考题库及答案解析
- 2026年甘肃省承仁中医药研究所诚聘医护20人考试备考题库及答案解析
- 2026湖南岳阳市屈原管理区数据局编外人员招聘2人考试参考试题及答案解析
- 种鸡免疫工作总结
- 河南省商丘市柘城县2024-2025学年八年级上学期期末数学试题(含答案)
- 教育机构财务管理制度及报销流程指南
- 给女朋友申请书
- 2023-2024学年北京市海淀区八年级上学期期末考试物理试卷含详解
- 2024版房屋市政工程生产安全重大事故隐患判定标准内容解读
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- 智能法理学习通超星期末考试答案章节答案2024年
- JB∕T 13026-2017 热处理用油基淬火介质
- 人教版高一化学方程式大全
- 长护险护理培训课件
评论
0/150
提交评论