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

简易数字频率计


第三章 单元电路设计
3.1 波形变换电路
图 3-1 波形变换模块 图中的 V+为+5V,V-接地,这是因为单片机输入引脚只能输入 TTL 电平,正弦波 信号进入波形变换模块转换为同频率 TTL 电平的方波信号。 3.2 闸门电路设计和定时计数 以下为我们的程序设计 TMOD=0x51; CKCON=0; TL0=0x66; TH0=0x3e; TL1=0X0; TH1=0X0; fp=T_C; 宏定义值为 40; TMR2CN=0X04; TMR2RLL=0XF0; TMR2RLH=0XD8; TMR3CN=0X0C; TMR3RLL=0XE0; TMR3RLH=0XFF; TR0=1; TR1=1; 我们把 T0 作为闸门定时器,T1 作为对外部信号的计数器,在定时的 50ms 内, 对外部的信号进行计数。在制作过程中,需要定时一秒,所以要对 T0 进行多次 计数,于是用下面的 T0 中断服务实现 //16 位自动重装 //10MS //双 8 位自动重装入,系统时钟 1/12 //定时 100us //计数器清 0 //T0、T1 方式 1,T1 计数方式 //系统时钟 12 分频
2.1 算法设计 频率是周期信号每秒钟内所含的周期数值。可根据这一定义采用如图 2-1 所示的算法。
2.2 整体方框图
信号发生器
运放LM324
MCU模块
LCD显示
2.3 计数原理 (1) 由信号发生器产生方波信号,用单片机的两个定时器中的一个定时器精 确定时T=1s,另一个定时器进行对外部脉冲的从0开始计数。 (2) 当要对正弦信号进行频率计数时,将正弦信号经过 LM324 运放进行过滤 为TTL。输出的信号先由示波器显示,观测幅度范围。将信号接入单片机。 (3) 用C语言将定时器和计数器功能写入单片机程序, 并写好 LCD 显示程序。
} //******************************************** 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; } //********************************************
函数发生器 10KHZ 实际测量 9.983KHZ
从上表中计算得到所测频率误差 0.2%,在设计指标范围内。
第五章 设计小结
5.1 设计任务完成情况 通过老师一周的理论指导, 对各个模板有了一定的了解认知。经过小组间一星期 的设计与实验,较为精确的完成了简易频率计,误差控制在 0.2%。 5.2 问题及改进 初步调试结果误差较大,通过修改定时器的定时参数,使得误差最后调整为 0.2%,更为精确的达到了设计指标。 5.3 心得体会 本次课程设计让我们受益良多。作为电信专业学生,自主设计是必修之课, 也是将课本所学知识得到良好应用的主要途径。 丛图书馆查找资料到理论分析再 到最后的电路设计与编程调试,都对我们所学的知识进行了检验。 在编写程序初始,由于平时上课的知识积累不够,掌握得不熟练,对于这种 较为复杂的内容表达非常吃力。 甚至编写到一半时都不知自己到底在表达什么内 容。 通过开始时的失败, 我们决定将各个主干部分分开编写与调试,这样思路就 比较清晰,以免到后来程序又混沌不清。通过查阅资料,充分了解了元器件引脚 功能,然后尝试着编写,耐心的调试修改,总程序达到了简易频率计的效果。 通过本次课程设计也认识到了自身知识的不足,平时训练太少,课外衍生也 做得不够, 尤其是对于编程类的习题练习不多直接导致这次设计举步维艰。所以 在将来的学习中我们要加强所学知识的应用练习。
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;
//*****T0 中断服务*************************************** int j=0; TL0=0x66; //0Xb0; TH0=0x3d; //0X3c;每单位 0.5 微秒*50000*40 fp--; if(fp) return; TR1=0; fp=T_C; //1s f=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;
第三章
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 模块 74151 FPGA 模块 主要配置 SOC 单片机 8051F360,CPLD 芯片 EMP3064TC44 EMP3064TC44,串行配置芯片,JTAG 和 AS 配置 接口 74153 7404 4518 LCD 和键盘模块 8 位高速 A/D 模块 10 位高速 D/A 模块 12864 中文液晶,16 个按键 30MHz8 位 A/D 转换器 ADS930,信号调理电路 双路 100MHz10 位 D/A 转换器 THS5651,差分放 大电路,反相器
相关主题