ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:148.94KB ,
资源ID:252391      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/252391.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AT89C52单片机的简易频率计设计说明.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于AT89C52单片机的简易频率计设计说明.docx

1、基于AT89C52单片机的简易频率计设计说明单片机系统开发与应用工程实习报告选题名称: 基于AT89C52单片机的简易频率计设计 系(院): 专 业: 计) 班 级: 姓 名: 学 号: 指导教师: 学年学期: 2009 2010 学年 第 2 学期 2010 年 5 月 30 日摘要: 在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了以AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。本项目利用单片机的内部定时器溢出产生中断来实现定时,把单

2、片机内部的定时/计数器0作为定时器,实现2.5ms定时。外部待测脉冲从单片机的TI(第15引脚)输入,以定时/计数器1作为计数器,利用中断方式来达到间接测量的目的。最后采用四位数码管显示。本设计采用C语言进行软件编程,用keil软件进行调试。最后把调试成功后的程序固化到AT89C52单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。关键词:单片机;频率计;AT89C521 项目综述 在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了选择AT89C52单片机作为核心器件,

3、采用模块化布局,设计一个简易数字频率计测量频率并进行显示。11 设计要求 基于AT89C52单片机简易频率计的设计要求如下:(1) 测量范围。幅度:0.55V;频率:1Hz1MHz.(2) 测试误差0.1%。(3) 用4位数码管显示。当频率变化时,能通过数码管及时看到变化后的信号频率。12 系统设计121 框图设计 基于AT89C52单片机简易频率计的电路主要由数码管显示电路、复位电路、晶振电路、电源电路等几部分组成,系统框图如图3.1所示。图3.1 基于AT89C52单片机简易频率计系统框图123 知识点本项目需要通过学习和查阅资料,掌握和了解如下知识:1) +5V电源原理及设计。2) 单片

4、机复位电路工作原理及设计。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单片机简易频率计元件清单元件名称型号数量/个用途单片机AT89C521控制核心晶振12MHz1晶振电路电容30pF2晶振电路电解电容10uF/

5、10V1复位电路电阻10k1复位电路驱动器74LS2441LED驱动非门74LS041位选信号数码管4位共阴1显示电路按键1复位电路电源+5V/0.5A1提供+5V2.3 主要芯片引脚说明2.3.1 AT89C52引脚说明AT89C52为40脚双列直插封装8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。AT89C52 共有6 个中断向量:两个外中断(INT0 和INT1

6、),3 个定时器中断(定时器0、1、2)和串行口中断。AT89C52引脚图如下:图2-2 AT89C52引脚图主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。P1,P2,P3是一组带有内部上拉电阻的8 位双向I/O 口。2.3.2 74HC244引脚说明74HC244可以让输入的数据保持比较长的时间,简单输入接口扩展通常使用的典型芯片为74HC244,

7、由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如下图所示:图2-3 74HC244引脚图74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1/OE和2/OE都为低电平时,输出端Y和输入端A状态相同;当1/OE和2/OE都为高电平时,输出呈高阻态。3 软件设计 本项目利用单片机的内部定时器溢出产生中断来实现定时。待测信号由单片机的TI中断来间接测量。定时/计数器0定时2.5ms中断并对中断次数进行计数,当2.5ms中断次数计到40次即0.1s时,查看定时/计数器1上的计得的数值,经过计算得到的待测信号的频率值,放入显示缓冲区,由数码管进行

8、显示。3.1 程序流程图 主程序流程图如图3-1所示。图3-1 主程序流程图3.2 软件设计简述1)利用单片机的内部定时器溢出产生中断来实现定时。2)待测信号由单片机的TI(第15引脚)中断来间接测量。3)采用12MHz晶振,机器周期为1us4)定时/计数器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单位,采用四

9、舍五入的方法保留一位小数。7)显示采用四位共阴LED数码管,用单片机P0口的8位控制数码管的8段二极管的明暗。用P2口的P2.0P2.3作为4位数码管的选通信号,采用从低到高逐位扫描的方法。3.3 程序清单基于AT89C52单片机简易频率计程序清单如下:#includebit timeint0,timeint1;unsigned char dispbuf4;unsigned int period;unsigned int timecount=0;unsigned int count_1s;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6

10、d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /7段数码管代码表HEX_TO_BCD(unsigned int n) /十六进制数转BCD码子程序,/将BCD码送至显示缓存数组 unsigned char i; /当显示的频率超出范围,显示EEEE报错 if (n9361) for(i=0;i4;i+) dispbufi=0x0e; else dispbuf3=n/1000; /取出千位字节 dispbuf2=(n/100)%10; /取出百位字节 dispbuf1=(n/10)%10; /取出十位字节 dispbuf0=n%10;

11、/取出个位字节 void scandisp(void) /显示子程序,/将显示缓存数组中的BCD码扫描并显示在数码管上 unsigned char posi=0x01; unsigned char i,j,temp; for(i=0;i4;i+) /依次选中4个数码管 temp=dispbufi; /查出字码 temp=tabletemp; /第三位显示小数点 if(i=1) for(j=0;j200;j+) P2=posi; P0=temp|0x80; else for(j=0;j200;j+) P2=posi; P0 =temp; /依次点亮字位 posi40) count_1s=0; /

12、每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); void timer1(void) interrupt 3 /定时器1中断服务程序,溢出后中断 TH1=0x00; TL1=0x00;void main(void) /主函数 /初始化 INIT_TMR1INT(); while(1) /显示子程序 scandisp()

13、; 4 系统仿真及调试 应用系统设计完成之后,就要进行硬件调试和软件调试,软件调试可以利用开发及仿真系统进行。4.1 硬件调试 硬件调试的调试主要是把电路各种参数调整到符合设计要求。先排除硬件电路故障,包括设计性错误和工艺性故障。一般原则是先静态后动态。 利用万用表或逻辑测试仪器,检查电路中各器件以及引脚是否连接正确,是否有短路故障。 先将单片机AT89C52芯片取下,对电路板进行通电检查,通过观察看是否有异常,是否有虚焊的情况,然后用万用表测试各电源电压,若这些都没有问题,则接上仿真机进行联机调试,观察各接口电路是否正常。4.2 软件调试 软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。本设计采用的调试软件是keil。程序调试时,先是一个模块一个模块地进行,一个子程序一个子程序地调试,最后联起来统调。当程序调试无误后,就可以用在系统编程器将程序固化到AT89C52的FLASH ROM中。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1