数字频率计的设计.docx

上传人:b****0 文档编号:9123463 上传时间:2023-05-17 格式:DOCX 页数:16 大小:157.94KB
下载 相关 举报
数字频率计的设计.docx_第1页
第1页 / 共16页
数字频率计的设计.docx_第2页
第2页 / 共16页
数字频率计的设计.docx_第3页
第3页 / 共16页
数字频率计的设计.docx_第4页
第4页 / 共16页
数字频率计的设计.docx_第5页
第5页 / 共16页
数字频率计的设计.docx_第6页
第6页 / 共16页
数字频率计的设计.docx_第7页
第7页 / 共16页
数字频率计的设计.docx_第8页
第8页 / 共16页
数字频率计的设计.docx_第9页
第9页 / 共16页
数字频率计的设计.docx_第10页
第10页 / 共16页
数字频率计的设计.docx_第11页
第11页 / 共16页
数字频率计的设计.docx_第12页
第12页 / 共16页
数字频率计的设计.docx_第13页
第13页 / 共16页
数字频率计的设计.docx_第14页
第14页 / 共16页
数字频率计的设计.docx_第15页
第15页 / 共16页
数字频率计的设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字频率计的设计.docx

《数字频率计的设计.docx》由会员分享,可在线阅读,更多相关《数字频率计的设计.docx(16页珍藏版)》请在冰点文库上搜索。

数字频率计的设计.docx

数字频率计的设计

 

题  目 数字频率计的设计

系别电子电气工程系

姓名 xxx    

学号 xxxxxxxxxxxx 

专业 自动化  

 

2011年6月14日

摘要:

在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

本项目主要阐述了以AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。

本项目利用单片机的内部定时器溢出产生中断来实现定时,把单片机内部的定时/计数器0作为定时器,实现2.5ms定时。

外部待测脉冲从单片机的TI(第15引脚)输入,以定时/计数器1作为计数器,利用中断方式来达到间接测量的目的。

最后采用四位数码管显示。

本设计采用C语言进行软件编程,用keil软件进行调试。

最后把调试成功后的程序固化到AT89C52单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。

关键词:

单片机;频率计;AT89C52

目录

1项目综述1

1.1设计要求1

1.2系统设计1

1.2.1框图设计1

1.2.3知识点1

2硬件设计2

2.1电路原理图2

2.2元件清单2

2.3主要芯片引脚说明3

2.3.1AT89C52引脚说明3

2.3.274LS244引脚说明4

3软件设计4

3.1程序流程图4

3.2软件设计简述5

3.3程序清单6

4系统仿真及调试9

4.1硬件调试10

4.2软件调试10

5结果分析10

总结10

参考文献11

附页12

1项目综述

在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。

本项目主要阐述了选择AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计测量频率并进行显示。

1.1设计要求

基于AT89C52单片机简易频率计的设计要求如下:

(1)测量范围。

幅度:

0.5~5V;频率:

1Hz~1MHz.

(2)测试误差≤0.1%。

(3)用4位数码管显示。

当频率变化时,能通过数码管及时看到变化后的信号频率。

1.2系统设计

1.2.1框图设计

基于AT89C52单片机简易频率计的电路主要由数码管显示电路、复位电路、晶振电路、电源电路等几部分组成,系统框图如图3.1所示。

图3.1基于AT89C52单片机简易频率计系统框图

1.2.3知识点

本项目需要通过学习和查阅资料,掌握和了解如下知识:

1)+5V电源原理及设计。

2)单片机复位电路工作原理及设计。

3)单片机晶振电路工作原理及设计。

4)频率信号发生器的特性及使用。

5)驱动电路74LS244的特性及使用。

6)AT89C52单片机引脚结构及功能。

7)单片机C语言程序设计方法。

2硬件设计

2.1电路原理图

基于AT89C52单片机简易频率计电路原理图如图2-1所示。

图2-1基于AT89C52单片机简易频率计电路原理图

2.2元件清单

基于AT89C52单片机简易频率计元件清单如表2-1所示。

表2-1基于AT89C52单片机简易频率计元件清单

元件名称

型号

数量/个

用途

单片机

AT89C52

1

控制核心

晶振

12MHz

1

晶振电路

电容

30pF

2

晶振电路

电解电容

10uF/10V

1

复位电路

电阻

10kΏ

1

复位电路

驱动器

74LS244

1

LED驱动

非门

74LS04

1

位选信号

数码管

2位共阴

1

显示电路

按键

1

复位电路

电源

+5V/0.5A

1

提供+5V

2.3主要芯片引脚说明

2.3.1AT89C52引脚说明

AT89C52为40脚双列直插封装8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

AT89C52共有6个中断向量:

两个外中断(INT0和INT1),3个定时器中断(定时器0、1、2)和串行口中断。

AT89C52引脚图如下:

图2-2AT89C52引脚图

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

P1,P2,P3是一组带有内部上拉电阻的8位双向I/O口。

 

2.3.274LS244引脚说明

74LS244可以让输入的数据保持比较长的时间,简单输入接口扩展通常使用的典型芯片为74LS244,由该芯片可构成三态数据缓冲器。

74LS244芯片的引脚排列如下图所示:

图2-374LS244引脚图

74LS244芯片内部共有两个四位三态缓冲器。

3软件设计

本项目利用单片机的内部定时器溢出产生中断来实现定时。

待测信号由单片机的TI中断来间接测量。

定时/计数器0定时2.5ms中断并对中断次数进行计数,当2.5ms中断次数计到40次即0.1s时,查看定时/计数器1上的计得的数值,经过计算得到的待测信号的频率值,放入显示缓冲区,由数码管进行显示。

3.1程序流程图

主程序流程图如图3-1所示。

图3-1主程序流程图

3.2软件设计简述

1)利用单片机的内部定时器溢出产生中断来实现定时。

2)待测信号由单片机的TI(第15引脚)中断来间接测量。

3)采用12MHz晶振,机器周期为1us

4)定时/计数器0工作方式:

定时方式,工作方式1,每次定时2.5ms。

实现2.5ms定时算法:

(3-1)

即TH0=0xf6,TL0=0x3c

5)定时/计数器1工作方式:

计数方式,工作方式1。

当2.5ms中断次数计到40次即0.1s时,查看定时/计数器1上的计得的数值。

6)通过公式:

(3-2)

可以计算出脉冲频率。

最后的数据以KHz单位,采用四舍五入的方法保留一位小数。

7)显示采用四位共阴LED数码管,用单片机P0口的8位控制数码管的8段二极管的明暗。

用P2口的P2.0~P2.1作为2位数码管的选通信号,采用从低到高逐位扫描的方法。

3.3程序清单

基于AT89C52单片机简易频率计程序清单如下:

#include

bittimeint0,timeint1;

unsignedchardispbuf[4];

unsignedintperiod;

unsignedinttimecount=0;

unsignedintcount_1s;

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};//7段数码管代码表

HEX_TO_BCD(unsignedintn)//十六进制数转BCD码子程序,

//将BCD码送至显示缓存数组

{

unsignedchari;//当显示的频率超出范围,显示EE报错

if(n>100)

for(i=0;i<2;i++)

dispbuf[i]=0x0e;

else

{

dispbuf[1]=(n/10)%10;//取出十位字节

dispbuf[0]=n%10;//取出个位字节

}

}

voidscandisp(void)//显示子程序,

//将显示缓存数组中的BCD码扫描并显示在数码管上

{

unsignedcharposi=0x01;

unsignedchari,j,temp;

for(i=0;i<2;i++)//依次选中2个数码管

{

temp=dispbuf[i];

//查出字码

if(i==1)

{

for(j=0;j<200;j++)

{

P2=posi;

P0=temp|0x80;

}

}

else

{

for(j=0;j<200;j++)

{

P2=posi;

P0=temp;

}

}

//依次点亮字位

posi<<=1;

}

}

voidINIT_TMR1INT(void)//定时器初始化了程序,定义了两种

{

//定时/计数器0工作定时器方式,定时/计数器1工作在计数器方式

TMOD=0x51;

ET1=1;

//中断0开中断

ET0=1;

//CPU开中断

EA=1;

count_1s=0;

//启动定时/计数器0开始定时

TR0=1;

TR1=1;

}

voidtime0(void)interrupt1//定时器0中断服务程序,系统自动调用,

//每2.5ms执行一次

{

TH0=0xf6;

TH1=0x3c;

//每次定时是2.5ms,40次即0.1s

if(++count_1s>40)

{

count_1s=0;

//每0.1s对计数器1所计数值进行统计

timecount=TH1*256+TL1;

TH1=0;

TL1=0;

//精确到小数点后1位,以KHz为单位

period=timecount/10;

//四舍五入显示

if((timecount%10)>4)

period++;

timecount=0;

HEX_TO_BCD(period);

}

}

voidtimer1(void)interrupt3//定时器1中断服务程序,溢出后中断

{

TH1=0x00;

TL1=0x00;

}

voidmain(void)//主函数

{

//初始化

INIT_TMR1INT();

while

(1)

{

//显示子程序

scandisp();

}

}

4系统仿真及调试

应用系统设计完成之后,就要进行硬件调试和软件调试,软件调试可以利用开发及仿真系统进行。

4.1硬件调试

硬件调试的调试主要是把电路各种参数调整到符合设计要求。

先排除硬件电路故障,包括设计性错误和工艺性故障。

一般原则是先静态后动态。

利用万用表或逻辑测试仪器,检查电路中各器件以及引脚是否连接正确,是否有短路故障。

先将单片机AT89C52芯片取下,对电路板进行通电检查,通过观察看是否有异常,是否有虚焊的情况,然后用万用表测试各电源电压,若这些都没有问题,则接上仿真机进行联机调试,观察各接口电路是否正常。

4.2软件调试

软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。

本设计采用的调试软件是keil。

程序调试时,先是一个模块一个模块地进行,一个子程序一个子程序地调试,最后联起来统调。

当程序调试无误后,就可以用在系统编程器将程序固化到AT89C52的FLASHROM中。

5结果分析

把电路按要求接好,接上待测脉冲信号,插上电源即可测量出待测脉冲信号的频率。

本设计利用实验室提供的单片机实验箱上的脉冲信号进行测试,当接入的脉冲信号为0.25MHz时,可以看到数码管上的显示值为259.4KHz;当接入的脉冲信号为0.5MHz时,可以看到数码管上的显示值为508.3KHz。

经计算,测量值都在误差允许范围内,因此符合设计要求,本设计成功完成预期目标。

总结

经过一个星期的努力和老师的耐心指导,终于顺利完成了此次的单片机课程设计。

整个过程可以说就是一个不断发现问题和解决问题的过程,虽然有点累,但收获颇多。

通过此次的单片机课程设计,我学到了许多以前在课本上学不到的东西,同时也把以前学到的理论知识运用到了此次的课程设计中,很好地加强了我在单片机方面的知识,特别是在中断处理部分。

整个调试程序的过程让我对keil软件有了更深一步的了解。

并且,此次的课程设计也很好地锻炼了我的动手能力,让我能够发现问题,积极开动脑筋去解决问题,同时也让我对硬件有了进一步的了解。

课程设计是培养我们综合运用所学知识,发现、提出、分析和解决问题的实际能力,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考查过程。

这次课程设计使我懂得了理论与实际相结合的重要性,只掌握书上的理论知识是远远不够的,而应该把所学的理论知识与实践相结合,把理论运用与实践,从实践中验证理论,从而提高自己的实际动手能力和独立思考的能力,为以后踏入社会打下基础。

在设计的过程中不免会遇到一些问题,通过老师和同学的帮助,以及去图书馆查找资料,终于把问题都解决了,在解决问题的过程中,我发现自己的不足之处,同时也巩固了所学的知识。

参考文献

1李广弟,朱月秀,冷祖祁.单片机基础.北京:

北京航天航空大学出版社,2007.6

2扬居义.单片机课程设计指导.北京:

清华大学出版社,2009.9

3张义和,陈敌北.例说8051.北京:

人民邮电出版社,2006.1

4求是科技.单片机典型模块设计实例导航.北京:

人民邮电出版社,2004.5

5周兴华.手把手教你学单片机C程序设计.北京:

北京航空航天大学出版社,2007.10

 

附页1

总电路图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2