当前位置:文档之家› 简易数字频率计

简易数字频率计

宁波工程学院电子信息工程学院课程设计报告课程设计题目:简易数字频率计起讫时间:2011年05月23日至2011年06月03日目录第一章技术指标1.1整体功能要求1.2电气指标1.3扩展指标1.4设计条件第二章整体方案设计2.1 算法设计2.2 整体方框图2.3 计数原理第三章单元电路设计3.1 波形变换电路3.2 闸门电路设计3.3小数点显示电路设计第四章测试与调整4.1 硬件测试与调整4.2 软件测试与调整4.3 整体指标测试第五章设计小结5.1 设计任务完成情况5.2 问题及改进5.3心得体会附录第一章技术指标1.1整体功能要求设计并制作一台数字显示的简易频率计,主要用于测量正弦波、方波等周期信号的频率值。

1.2 电气指标1.2.1 信号波形:方波;1.2.2 信号幅度;TTL电平;1.2.3 信号频率:100Hz~9999Hz;1.2.4 测量误差:≤1%;1.2.5 测量时间:≤1s/次,连续测量;1.2.6 显示:4位有效数字,可用数码管,LED或LCD显示。

1.3扩展指标1.3.1 可以测量正弦波信号的频率,电压峰-峰值VPP=0.1~5V;1.3.2 方波测量时频率测量上限为3MHz,测量误差≤1%;1.3.3 正弦(Vopp=0.1V~5V)测量时频率测量上限为3MHz,测量误差≤1%;1.3.4量程自动切换,且自动切换为四位有效数字输出;1.4设计条件1.4.1 电源条件:+5V。

1.4.2开发平台:本系统以高速SOC单片机C8051F360和FPGAEP2C8T144为核心,主要包括9个模块,其主要配置见表1-1。

表1-1数字电子系统设计实验平台模块一览型号名称主要配置MCU模块SOC单片机8051F360,CPLD芯片EMP3064TC44 74151 FPGA模块EMP3064TC44,串行配置芯片,JTAG和AS配置接口74153 LCD和键盘模块12864中文液晶,16个按键7404 8位高速A/D模块30MHz8位A/D转换器ADS930,信号调理电路4518 10位高速D/A模块双路100MHz10位D/A转换器THS5651,差分放大电路,反相器74132 数码显示和温度检测模块4位数码管,LED显示器,DS1624S温度传感器74160 大容量SRAM模块512kBRAM芯片IS62WV5128C392 音频放大滤波模块拾音器,放大电路,4阶有源带通滤波器4017 音频滤波功放模块音频功放LM386第二章 整体设计方案2.1 算法设计频率是周期信号每秒钟内所含的周期数值。

可根据这一定义采用如图2-1所示的算法。

2.2 整体方框图2.3 计数原理(1) 由信号发生器产生方波信号,用单片机的两个定时器中的一个定时器精确定时T=1s,另一个定时器进行对外部脉冲的从0开始计数。

(2) 当要对正弦信号进行频率计数时,将正弦信号经过LM324运放进行过滤为TTL。

输出的信号先由示波器显示,观测幅度范围。

将信号接入单片机。

(3) 用C语言将定时器和计数器功能写入单片机程序,并写好LCD 显示程序。

信号发生器运放LM324 MCU模块LCD显示第三章单元电路设计3.1 波形变换电路图3-1 波形变换模块图中的V+为+5V,V-接地,这是因为单片机输入引脚只能输入TTL电平,正弦波信号进入波形变换模块转换为同频率TTL电平的方波信号。

3.2闸门电路设计和定时计数以下为我们的程序设计TMOD=0x51; //T0、T1方式1,T1计数方式CKCON=0; //系统时钟12分频TL0=0x66;TH0=0x3e;TL1=0X0;TH1=0X0; //计数器清0fp=T_C; 宏定义值为40;TMR2CN=0X04; //16位自动重装TMR2RLL=0XF0; //10MSTMR2RLH=0XD8;TMR3CN=0X0C; //双8位自动重装入,系统时钟1/12TMR3RLL=0XE0; //定时100usTMR3RLH=0XFF;TR0=1;TR1=1;我们把T0作为闸门定时器,T1作为对外部信号的计数器,在定时的50ms内,对外部的信号进行计数。

在制作过程中,需要定时一秒,所以要对T0进行多次计数,于是用下面的T0中断服务实现//*****T0中断服务*************************************** int j=0;TL0=0x66; //0Xb0;TH0=0x3d; //0X3c;每单位0.5微秒*50000*40fp--;if(fp) return;TR1=0;fp=T_C; //1sf=65536*f1+256*TH1+TL1;//溢出次数乘以FF加上目前计数值,即1S的计数次if(n==0){jishu[n%11]=f;}else{if(abs(jishu[n%11-1]-f)>=10){for(j=0;j<=10;j++){jishu[j]=f;}}else{jishu[n%11]=f;}}//把计数所得数分给数组各个部分易变显示3.3小数点显示电路设计小数点显示的设计,涉及到两种情况,第一,当计数值在1S内小于1000,那么计数没有四位有效数字,我们需要将数值通过添加小数点后面0的个数补为四位;第二,当计数值在1S内大于10000,那么需要提取出显示需要的四位最高位数值,并进行量程切换,因为量程有HZ,KHZ和MHZ档,故要在各个档位以四位有效数字切误差最小的数值,在MAIN里实现各个显示切换。

实现切换的子程序如下//*******************************************void get_f(float s1){int term;term=(int)(s1*10000);F_DISP[0]=term/1000%10+0x30;F_DISP[1]=term/100%10+0x30;F_DISP[2]=0x2E;F_DISP[3]=term/10%10+0x30;F_DISP[4]=term%10+0x30;}//*******************************************void get_flow(float s1){ int term;term=(int)(s1*100);F_DISPLOW[0]=term/1000%10+0x30;F_DISPLOW[1]=term/100%10+0x30;F_DISPLOW[2]=0x2E;F_DISPLOW[3]=term/10%10+0x30;F_DISPLOW[4]=term%10+0x30;}//******************************************** void tofHZ(void){F_DISPLOWHIGH[0]=f/100%10+0x30;F_DISPLOWHIGH[1]=f/10%10+0x30;F_DISPLOWHIGH[2]=f%10+0x30;F_DISPLOWHIGH[3]=0x2E;F_DISPLOWHIGH[4]=0x30;}//******************************************** void toHZ(void){F_DISPHIGH[0]=f/1000%10+0x30;F_DISPHIGH[1]=f/100%10+0x30;F_DISPHIGH[2]=f/10%10+0x30;F_DISPHIGH[3]=f%10+0x30;}//******************************************* void toKHZ(void){if(f>=10000&&f<=99999){F_DISPHIGHONE[0]=f/10000%10+0x30;F_DISPHIGHONE[1]=f/1000%10+0x30;F_DISPHIGHONE[2]=0x2E;F_DISPHIGHONE[3]=f/100%10+0x30;F_DISPHIGHONE[4]=f/10%10+0x30;}else{ F_DISPHIGHONE[0]=f/100000%10+0x30;F_DISPHIGHONE[1]=f/10000%10+0x30;F_DISPHIGHONE[2]=f/1000%10+0x30;F_DISPHIGHONE[3]=0x2E;F_DISPHIGHONE[4]=f/100%10+0x30;}}//******************************************void toMHZ(void){F_DISPHIGHTHREE[0]=f/1000000%10+0x30;F_DISPHIGHTHREE[1]=0x2E;F_DISPHIGHTHREE[2]=f/100000%10+0x30;F_DISPHIGHTHREE[3]=f/10000%10+0x30;F_DISPHIGHTHREE[4]=f/1000%10+0x30;}//********************************************第四章测试与调整4.1 硬件测试与调整(1)波形变换模块的调试由于LM324的频率限制,当输入的信号频率大于2MHz时,频率计的示数无法正确显示原始波形的频率值。

(2)频率计的调试经过测试频率测试上限可达到3MHz,且量程会随着频率值自动切换显示HZ,KHZ和MHZ,都显示四位有效数字。

4.2 软件测试与调整将所编写的程序(见附录)通过软件编译,出现错误时先在运行停顿临近处寻找错误,若查找不出,再一步步运行查找,改正错误并重新编译,编译成功后下载到实验箱进行进一步测试。

在整个设计模块中,调试是重要的步骤,也是考验人耐心的一步,只有耐心的将调试所得结果进行思考分析,然后修改程序中某些小细节,重复这些细小但又重要的步骤才能将频率计做的更精确。

4.3 整体指标测试表4-1 被测信号频率测量结果函数发生器10HZ 30HZ 100HZ 500HZ 1KHZ实际测量10.00HZ 30.00HZ 99.00HZ 499.0HZ 998.2HZ函数发生器10KHZ 500KHZ 1MHZ 2MHZ实际测量9.983KHZ 499.6KHZ 998.8K 1996K从上表中计算得到所测频率误差 0.2%,在设计指标范围内。

第五章设计小结5.1 设计任务完成情况通过老师一周的理论指导,对各个模板有了一定的了解认知。

经过小组间一星期的设计与实验,较为精确的完成了简易频率计,误差控制在0.2%。

5.2 问题及改进初步调试结果误差较大,通过修改定时器的定时参数,使得误差最后调整为0.2%,更为精确的达到了设计指标。

相关主题