




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理与接口技术课程设计报告 频率计目 录1功能分析与设计目标12 频率计的硬件电路设计32.1 控制、计数电路32.2 译码显示电路53 频率计的软件设计与调试63.1 软件设计介绍63.2 程序框图83.3 功能实现具体过程8 3.4 测试数据处理,图表及现象描述104 讨论115 心得与建议126 附录(程序及注释)131功能分析与设计目标背景:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。为了实现智能化的计数测频,实现一个宽领域、高精度的频率计,一种有效的方法是将单片机用于频率计的设计当中。用单片机来做控
2、制电路的数字频率计测量频率精度高,测量频率的范围得到很大的提高。题目要求:用两种方法检测( m ,t )要求显示单位时间的脉冲数或一个脉冲的周期。设计分析:电子计数式的测频方法主要有以下几种:脉冲数定时测频法(m法),脉冲周期测频法(t法),脉冲数倍频测频法(am法),脉冲数分频测频法(at法),脉冲平均周期测频法(m/t法),多周期同步测频法。下面是几种方案的具体方法介绍。脉冲数定时测频法(m法):此法是记录在确定时间tc内待测信号的脉冲个数mx,则待测频率为: fx=mx/ tc 脉冲周期测频法(t法):此法是在待测信号的一个周期tx内,记录标准频率信号变化次数mo。这种方法测出的频率是:
3、 fx=mo/tx 脉冲数倍频测频法(am法):此法是为克服m法在低频测量时精度不高的缺陷发展起来的。通过a倍频,把待测信号频率放大a倍,以提高测量精度。其待测频率为: fx=mx/ato 脉冲数分频测频法(at法):此法是为了提高t法高频测量时的精度形成的。由于t法测量时要求待测信号的周期不能太短,所以可通过a分频使待测信号的周期扩大a倍,所测频率为: fx=amo/tx 脉冲平均周期测频法(m/t法):此法是在闸门时间tc内,同时用两个计数器分别记录待测信号的脉冲数mx和标准信号的脉冲数mo。若标准信号的频率为fo,则待测信号频率为: fx=fomx/mo 多周期同步测频法:是由闸门时间t
4、c与同步门控时间td共同控制计数器 计数的一种测量方法,待测信号频率与m/t法相同。以上几种方法各有其优缺点:脉冲数定时测频法,时间tc为准确值,测量的精度主要取决于计数mx的误差。其特点在于:测量方法简单,测量精度与待测信号频率和门控时间有关,当待测信号频率较低时,误差较大。脉冲周期测频法,此法的特点是低频检测时精度高,但当高频检测时误差较大。脉冲数倍频测频法,其特点是待测信号脉冲间隔减小,间隔误差降低;精度比m法高a倍,但控制电路较复杂。脉冲数分频测频法,其特点是高频测量精度比t法高a倍,但控制电路也较复杂。脉冲平均周期测频法,此法在测高频时精度较高,但在测低频信号时精度较低。多周期同步测
5、频法,此法的优点是,闸门时间与被测信号同步,消除了对被测信号计数产生的1个字误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量。 功能描述:由于水平有限,本次设计采用相对简单的m法和t法两种方法测量简单方波的频率或脉宽(由于是输入简单方波信号,省去了被测输入信号通过脉冲形成电路进行放大与整形这个步骤)。利用at89c51单片机的t0、t1的定时计数器功能,来完成对输入的信号进行频率计数或脉宽计时,计数(计时)的频率结果通过5位八段led数码管显示器显示出来。 设计指标:m法由于t0、t1对外部脉冲信号的最高计数频率为振荡频率的1/24,而振荡频率为12mhz
6、,得m法最高计数频率为500khz,而本设计设定最高计数频率即为500khz。误差要求尽量小。 t法仅设定能测的外部脉宽范围为6553620us,以使定时计数器在不产生溢出中断的情况下进行测量。本设计的频率测量误差要求尽量小,实践证明误差控制在1/100范围内。2 频率计的硬件电路设计原理介绍 放大整形电路 控制门电路 计数器电路 译码显示电路待测信号图2-1 数字式频率计原理框图由上图可以看出,待测信号经过放大整形电路后得到一个待测信号的脉冲信号,然后通过计数器计数,可得到需要的频率值,最后送入译码显示电路中显示出来。但是控制部分相对重要,它在整个系统的运行中起至关重要的作用。本设计控制电路
7、和计数器电路以at89c51为核心,译码显示电路采用单片机静态显示计数来显示,采用5位七段led数码管显示器。下面分节介绍各部分硬件电路:2.1 控制、计数电路单片机作为控制系统和计数器,是本次设计的最重要的部分,at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微,俗称单片机。该器件采用atmel高密度非易失存储器制造制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个中,atmel的at89c51是一
8、种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。所以本次设计采用at89c51单片机。89c51单片机, 它提供下列标准特征:4k字节的程序存储器,128字节的ram,32条i/o线,2个16位定时器/计数器,,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。其引脚说明如下:引脚说明:vcc:电源电压。gnd:接地。p0口:p0口是一组8位漏极开路型双向i/o口,作为输出口用时,每个引脚能驱动8个ttl逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当p0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下
9、,p0口具有内部上拉电阻。在eprom编程时,p0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。p0口:p0口是一带有内部上拉电阻的8位双向i/o口。p0口的输出缓冲能接受或输出4个ttl逻辑门电路。当对p0口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,p0口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(iil)。p1口:p2是一带有内部上拉电阻的8位双向的i/o端口。p1口的输出缓冲能驱动4个ttl逻辑门电路。当向p1口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电
10、阻,某个引脚被外部信号拉低时会输出电流(iil)。p2口在访问外部程序存储器或16位地址的外部数据存储器(例如movx dptr)时,p2口送出高8位地址数据。在这种情况下,p2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例movx r1),p2口输出特殊功能寄存器的内容。当eprom编程或校验时,p2口同时接收高8位地址和一些控制信号。p3口:p3是一带有内部上拉电阻的8位双向的i/o端口。p3口的输出缓冲能驱动4个ttl逻辑门电路。当向p3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉
11、低时会输出电流(iil)。p3口同时具有at89c51的多种特殊功能,p3.0的第二功能是串行输入口rxd, p3.1的第二功能是串行输出口txd, p3.2的第二功能是外部中断0,p3.3的第二功能是外部中断1,p3.4的第二功能是定时器t0,p3.5的第二功能是定时器t1,p3.6的第二功能是外部数据存储器写选通/wr,p3.7的第二功能是外部数据存储器读选通/rd。m法主要使用管脚为p3.0、p3.1以及p3.5。其具体使用方法如下:p3.0口与寄存器74ls164的a,b端口连接,串行输出待显示的数据。 p3.1口接移位寄存器74ls164的clk(第8引脚),输出同步时钟信号。 p3
12、5口(即t1)输入脉冲信号。t法主要使用管脚为p2.0、p3.0、p3.1以及p3.3。其具体使用方法如下:p2.0口接开关用于控制何时输出显示脉宽时间。p3.0口与寄存器74ls164的a,b端口连接,串行输出待显示的数据。 p3.1口接移位寄存器74ls164的clk(第8引脚),输出同步时钟信号。 p35口(即t1)输入脉冲信号。2.2 译码显示电路显示电路采用静态显示方式。频率测量结果经过译码,通过89c51 的串行口送出。串行口工作于模式0 ,即同步移位寄存器方式。这时从89c51 的rxd(p3. 0) 输出数据,送至串入并出移位寄存器74164 的数据输入口a 和b ;从txd(
13、 p3. 1) 输出时钟,送至74164 的时钟输入口cp。74164 将串行数据转换成并行数据,进行锁存。74164 输出的8 位并行数据送至8 段l ed ,实现测量数据的显示。使用这种方法主程序可不必扫描显示器,从而单片机可以进行下一次测量。这种方法也便于对显示位数进行扩展。串行输入并行输出 7段led 74ls1643 频率计的软件设计与调试 3.1 软件设计介绍 本设计过程使用到的软件有:wave软件模拟器,keil uvision2,protuse。软件设计过程:在keil uvision2中输入所编程序 ,保存为以.c为后缀的文件,新建项目,加入刚保存的文件,编译,调试到程序编译
14、不显示错误。在option for target项中output中选中 creat hex files ,重新编译程序,软件生成以.hex为后缀的文件。 在protuse软件中画出所设计的电路模拟图,加载入前面生成的以. hex为后缀的文件,运行,观察,调试数码管显示的数值,并与设置的输入信号频率作比较,调试,分析误差产生原因,改进程序与电路图。使用伟福软件编译所设计的c程序,调试到正确无误。并最终通过硬件来验证所设计的频率计是否达到先前设定的设计指标。图示:keil软件程序设计 protuse软件模拟 protuse是数字电路模拟常用的工具,方便易用,如图是工作窗口:3.2 程序框图 t法:
15、m法:开始开始 初始化程序且th1=0,tl1=0 初始化程序,初始化数组、中间量延时程序,数码管显示函数延时子程序、数码管显示函数定义 外部输入方波到且=1,gate=1,t1计时 定时计数器t0、t1初始化否=0? 启动t0定时50ms,t1对方波计数否是t0溢出?停止计数t1停止计时,数值输出是 数值串行输出静态显示 t1计数值输出,静态显示 结束结束注:以上两流程图均只表示出程序设计的简单流程,并且只表示出处理一次测量的过程,多次测量重复以上步骤即可。具体细节或某些中间变量的赋值和对程序流程的影响详细见程序注释。3.3 功能实现具体过程m法具体过程:t0定时50ms,t1对方波的计数,
16、数值串行输出和静态显示三大部分内容,此外还要附加延时程序以使静态显示数值稳定等。具体描述如下:1 t0 实现50ms定时: 采用12 mhz的晶体的情况下,一秒的定时已超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的方法实现。选用定时计数器t0作定时器,工作于方式1产生50 ms的定时,定时完成所得的计数值乘以20即为所测信号频率。2 t1计数部分: 将定时器计数器的方式寄存器tmod,用软件赋初值51h,即01010001b。这时定时器计数器1采用工作方式1,方式选择位ct设为1,即设t1为16位计数器。定时器计数器o采用工作方式1,ct设为0,即设to为16位定时
17、器。 计算计数初值:设计数初值为m,本设计采用12 mhz的晶振。机器周期=12(1晶振频率),得等式。所以计数初值m=15536。 当定时器计数器t1设定为计数方式时,其计数脉冲是来源t1端口的外部事件。当t1端口上出现由“1”(高电平)到“0”(低电平)的负跳变脉冲时,计数器则加1计数。计算机是在每个机器周期的s5p2状态时采样t1端口,当前一个机器周期采样为1且后一个机器周期采样为0时,计数器加1计数。计算机需用两个机器周期来识别1次计数,因而最大计数速率为振荡频率的124。在采用12 mhz晶振的情况下,单片机最大计数速度为05 mhz即500 khz。另外,此处对外部事件计数脉冲的占
18、空比(即脉冲的持续宽度)无特殊要求,但必须保证所给出的高电平在其改变之前至少被采样1次,即至少保持1个完整的机器周期。由此可见,从t1口输入脉冲信号,t1可实现对脉冲个数的计数。3 数值串行输出和静态显示此部分用到了单片机的串行输出口p3.0与p3.1.串行口控制寄存器scon设置为0x00,即工作方式0同步移位寄存器输入输出方式。串行数据(计数值)通过rxd输出,而txd用于输出移位时钟,作为5个74ls164的同步信号,74ls164用于扩展并行输出口,这种方式下,收发的数据为8位,低位在前,五起始位、奇偶校验位及停止位,波特率固定为振荡频率的1/12。发送过程中,当执行一个数据写入发送缓
19、冲器sbuf的指令时,串行口把sbuf中的8为数据以1/12的波特率从rxd(p3.0)端输出,发送完毕置中断标志ti=1,传送过程中将8位数据由低位到高位一位一位顺序通过rxd输出,并在txd脚上输出/12的移位时钟。通过编码09和error(错误)的代号e(即当超出量程显示e),并根据所得计数值的各位数值,向单片机外部依次串行输出各位的编码,通过74ls164的并行输出并且依靠人眼的视觉暂留现象能够在5位7段led上同时显示各位的数值。具体程序编写,详见本论文附上的程序及程序注释。t法具体过程:由输如方波脉冲信号,t1对方波信号的高电平部分计时,计时结果串行输出和静态显示三大部分,与m法一
20、样,还要附加延时程序以使静态显示数值稳定等。具体描述如下:1 由输如方波脉冲信号方波信号通过管脚输入检测,此处该管脚相当于对信号的监测,通过软件方式告之单片机哪段时间输入信号为高电平,哪段时间为低电平。以便控制t1计时的开始和停止。2 t1对方波信号的高电平部分计时通过查询方式,当信号输入管脚为1(即高电平)时进行计时,设置tmod值为0x90,即t1为方式1的16位定时器(也可设置为计数器,效果一样),且t1受gate位的影响:因为gate=1,只有为高电平且由软件使tr1置一时,才能启动定时器工作。正因为如此,测量高电平脉宽显得精确可控。定时器计时结束则可将数值输出显示。3 计时结果串行输
21、出和静态显示此部分内容同m法一致,详见m法的功能实现描述。3.4 测试数据处理,图表及现象描述根据设计的程序连接好硬件电路,使用伟福硬件仿真器和实验台进行测量。数据处理:a. 将输入方波的频率由小到大进行变化,并读出静态显示出的测量值与示波器显示的测量值,比较二者的差别,分析误差随输入信号频率的变化情况及误差来源,提出改进方案。b. 过程中要求对同一频率的输入方波进行多组测量,取平均值f或t(频率或周期)。软硬件连接图如下:m法t法现象描述: m法:示波器显示数值与静态显示的数值十分吻合,误差相当小,一般在110hz内。本测量在低频段的相对测量误差较大。增大t可以提高测量精度,但在低频段仍不能
22、满足要求。 t法:在低频和高频时误差较大,在1khz到一定范围内误差很小。 理论上t法在低频段精度高。但此次设计中反映的现象却相反。初步分析为计时程序误差太大,不够合理。一个是采用的是查询方式,不易控制计时器何时开始计时和结束,另外p2.0的按键延时等,误差较大。总体而言的误差分析:(1) 单片机计数速率的限制引起误差。被测信号频率越高,测量误差越大,且所测信号频率不能超过480 khz。这是因为采用的是12 mhz的晶振,单片机最大计数速度为500 khz,所以当被测信号越接近500 khz时,测量结果与实际频率的误差就越大。而当被测信号大于500 khz时,频率计将测不出信号频率。(2)原
23、理上存在1误差。由于该设计是在计数门限时间一秒内的频率信号脉冲数,所以定时开始时的第一个脉冲和定时时间到时的最后一个脉冲信号是否被记录,存在随机性。这种误差对测量频率低的信号影响较大。由于d触发器必须在信号的上升沿才翻转,故t0对信号脉冲个数不存在1误差,而t1计时为信号信号周期的整数倍,则存在对t1计数的1误差,故测量精度与被测频率无关但若取计时时间大于0.1s(实际最小时间约为0.5s),误差则小于0001;若对低频信号f测量,则计时时间远大于0.1s,故误差极小但是在高频端分频时,由于软件中断、延时等原因,会导致脉宽的测量误差增大,而频率测量误差较小(保持在0.01)误差改进措施:a.
24、选用频率较高和稳定性好的晶振。如选24 khz的晶振可使测量范围扩大,稳定性好的晶振可以减小误差。b. 测量频率较高的信号时,可先对信号进行分频,再进行测量。c. 改进t法计时程序,从根本上减小误差。4 讨论 本次设计实现了用两种方法对外部未知频率的方波信号的测量。m法测量的设计达到了高范围(500khz,在led管位数足够的情况下,改进程序的显示程序部分即可)与高精度(110hz一般情况下);t法设计由于部分程序的缺陷并未能实现很好的测量频率的效果,仅能测量一定范围的频率。未达到设计目标的原因详见误差分析部分。此次设计还有很大不足,尤其是在信号的对象选择上,信号要求是方波信号。未能对任意未知
25、波形信号进行分析测量。在今后的时间里,我们小组会继续探索单片机设计数字频率计的设计,加上信号预处理电路,改进信号频率的测量方法,提高信号显示的精度,拓展本次设计未能实现的各项频率计应当具备的要求,如可选量程,科学计数显示等等。5 心得与建议 通过此次设计,我们小组的成员都受到了极大的锻炼,对团队合作的重要性有了深刻认识,虽然我们面对的是一个相对简单的课题,但由于初次进行基于单片机的课题设计,所以在设计过程中,我们遇到了一些困难,也经历了一次又一次的困惑,最初我们尝试着完美化我们的设计,以实现更多的功能和提高可操纵性,却没有从最基本的内容一步步做起,没有将核心部分放在首位。正如老师讲的,正确的顺
26、序是先把核心部分做好,就像盖房子一样,先打地基定时计数是我们这次设计的核心,然后再一步一步扩展,完善功能,向上盖房子。生活实际中确实如此,做任何事,没有打好基础,最终就不能有很好的发展。学习也是如此,对于工科的我们数学、物理等就是我们的基础,往往发展的瓶颈就在基础部分。今后,我们小组的成员会吸收此次设计实践收获的宝贵经验,更加努力地,更加坚定地在电子科技上一步一步脚踏实地地学习进步。6 附 录m法#include#define uchar unsigned char#define uint unsigned intuint numl,numh,f;code uchar k11=0xfc,0x6
27、0,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x02,0x9e;void init() /初始化函数 scon=0x00; /串行同步移位输出tmod=0x51; /t1计数,t0定时et0=1; /t0中断允许th0=(15535)/256;tl0=(15535)%256; /t0定时50ms的初值 th1=0; tl1=0; it0=1; /t1计数的初值 tr0=1; tr1=1; /开始计数、定时ea=1; void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); /延时函数,delay
28、(200);大约延时200ms.void send(uchar b) /串行输出显示函数部分一sbuf=b;while(!ti); /发送结束标志ti=0; void display(uint x) /串行输出显示函数部分二 if(x99999)send(0x00);/0x00表示该位不显示字符send(0x00);send(0x00);send(0x00);send(k11);/程序最大测量频率定为100k,大于此范围则显示“e,指示error。else if(x9999)send(kx/10000);send(kx%10000/1000);send(kx%10000%1000/100);s
29、end(kx%10000%1000%100/10);send(kx%10000%1000%100%10);else if(x999)send(0x00);send(kx/1000);send(kx%1000/100);send(kx%1000%100/10);send(kx%1000%100%10);else if(x99)send(0x00);send(0x00);send(kx/100);send(kx%100/10);send(kx%100%10);else if(x9)send(0x00);send(0x00);send(0x00);send(kx/10);send(kx%10);el
30、sesend(0x00);send(0x00);send(0x00);send(0x00);send(kx%10);void timer_0() interrupt 1 /定时器t0中断 th0=(15535)/256;tl0=(15535)%256; tr1=0; tr0=0; numh=th1; numl=tl1; th1=0; tl1=0;/恢复初始值待下一轮测量,并将结果赋值 f=(numh8)+numl; f=f*20;/20表示中断20次达到1s得到的频率值 display(f); delay(200); tr0=1; tr1=1;void main() init(); /初始化
31、while(1);/原地踏步,等待t0溢出中断t法#include#define uchar unsigned char#define uint unsigned intsbit i=p33;sbit d=p20;uint numl,numh,f,num=0;code uchar k11=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x9e;void init() /初始化函数 scon=0x00;/串行同步移位输出tmod=0x90;/t1设置为定时,16位th1=0; tl1=0;/定时初值 tr1=0;/起始时定为关定时void delay(uint z)/延时函数,delay(200);大约延时200ms.uint x,y;for(x=z;x0;x-)for(y=110;y0;y-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石油化工装置施工安全培训
- 保险早会流程幽默化设计指南
- 江小白配工作总结
- 隧道工程安全教育培训
- 幼儿园中班心理健康之微笑教育
- 口腔护理新手培训课件
- 论文的英文标红怎么处理
- 教师心理健康教育方案
- 毕业论文营销
- 中班养成教育:如厕习惯培养
- 2025年高考云南卷历史高考真题(无答案)
- 中医茶饮培训课件模板
- 2025至2030中国实木门行业发展趋势分析与未来投资战略咨询研究报告
- 2025年安徽省高考生物试卷(含答案解析)
- (湖北省高考卷)2024年湖北省普通高中学业水平选择性考试高考物化生+政史地真题试卷及答案
- 真实情境下的“5E”教学模式在高中化学教学中的应用与成效探究
- 湖北省武汉市武昌区三年级下学期数学期末试卷(含答案)
- 2025年人教版七年级下册地理全册知识点
- 2024-2025学年人教PEP英语六年级下学期期末模拟试卷(含答案含听力原文无音频)
- 广东省珠海市香洲区2023-2024学年七年级下学期语文期末试卷(含答案)
- 供热领域自查工作报告
评论
0/150
提交评论