您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于AT89C52单片机的简易频率计设计
单片机系统开发与应用工程实习报告选题名称:基于AT89C52单片机的简易频率计设计系(院):专业:计)班级:姓名:学号:指导教师:学年学期:2009~2010学年第2学期2010年5月30日摘要:在电子技术中,频率是一个经常用到的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了以AT89C52单片机作为核心器件,采用模块化布局,设计一个简易数字频率计,以达到测量频率并进行显示的目的。本项目利用单片机的内部定时器溢出产生中断来实现定时,把单片机内部的定时/计数器0作为定时器,实现2.5ms定时。外部待测脉冲从单片机的TI(第15引脚)输入,以定时/计数器1作为计数器,利用中断方式来达到间接测量的目的。最后采用四位数码管显示。本设计采用C语言进行软件编程,用keil软件进行调试。最后把调试成功后的程序固化到AT89C52单片机中,接到预先焊好的电路板上,接上待测脉冲,通电运行,数码管成功显示待测脉冲频率。关键词:单片机;频率计;AT89C52目录1项目综述……………………..……………………………………………………..…………………..11.1设计要求.....................................................................................................................................11.2系统设计.....................................................................................................................................12硬件设计………………………………………………………………………………………………..22.1电路原理图....................................................................................................................................22.2元件清单........................................................................................................................................22.3主要芯片引脚说明........................................................................................................................33软件设计………………………………………………………………………………………………..43.1程序流程图....................................................................................................................................43.2软件设计简述................................................................................................................................53.3程序清单........................................................................................................................................64系统仿真及调试……………………………...……………...…………………...……………….…104.1硬件调试......................................................................................................................................104.2软件调试......................................................................................................................................105结果分析…………...…………………………………………………………………………….……10总结............…………………………………...………….……………………….……...….11参考文献………………………………………………………………………....………….12单片机系统开发与应用工程实习报告11项目综述在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本项目主要阐述了选择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知识点本项目需要通过学习和查阅资料,掌握和了解如下知识:单片机系统开发与应用工程实习报告21)+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单片机简易频率计元件清单元件名称型号数量/个用途单片机AT89C521控制核心晶振12MHz1晶振电路电容30pF2晶振电路电解电容10uF/10V1复位电路电阻10kΏ1复位电路驱动器74LS2441LED驱动非门74LS041位选信号数码管4位共阴1显示电路按键1复位电路电源+5V/0.5A1提供+5V单片机系统开发与应用工程实习报告32.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口。单片机系统开发与应用工程实习报告42.3.274HC244引脚说明74HC244可以让输入的数据保持比较长的时间,简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如下图所示:图2-374HC244引脚图74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1/OE和2/OE都为低电平时,输出端Y和输入端A状态相同;当1/OE和2/OE都为高电平时,输出呈高阻态。3软件设计本项目利用单片机的内部定时器溢出产生中断来实现定时。待测信号由单片机的TI中断来间接测量。定时/计数器0定时2.5ms中断并对中断次数进行计数,当2.5ms中断次数计到40次即0.1s时,查看定时/计数器1上的计得的数值,经过计算得到的待测信号的频率值,放入显示缓冲区,由数码管进行显示。3.1程序流程图主程序流程图如图3-1所示。单片机系统开发与应用工程实习报告5图3-1主程序流程图3.2软件设计简述1)利用单片机的内部定时器溢出产生中断来实现定时。2)待测信号由单片机的TI(第15引脚)中断来间接测量。3)采用12MHz晶振,机器周期为1us4)定时/计数器0工作方式:定时方式,工作方式1,每次定时2.5ms。实现2.5ms定时算法:1663(2)102.510(63036)1111011000111100DXX(3-1)即TH0=0xf6,TL0=0x3c5)定时/计数器1工作方式:计数方式,工作方式1。当2.5ms中断次数计到40次即0.1s时,查看定时/计数器1上的计得的数值。6)通过公式:0.2540计数值脉冲频率(3-2)可以计算出脉冲频率。单片机系统开发与应用工程实习报告6最后的数据以KHz单位,采用四舍五入的方法保留一位小数。7)显示采用四位共阴LED数码管,用单片机P0口的8位控制数码管的8段二极管的明暗。用P2口的P2.0~P2.3作为4位数码管的选通信号,采用从低到高逐位扫描的方法。3.3程序清单基于AT89C52单片机简易频率计程序清单如下:#includereg52.hbittimeint0,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;//当显示的频率超出范围,显示EEEE报错if(n9361)for(i=0;i4;i++)dispbuf[i]=0x0e;else{dispbuf[3]=n/1000;//取出千位字节dispbuf[2]=(n/100)%10;//取出百位字节dispbuf[1]=(n/10)%10;//取出十位字节单片机系统开发与应用工程实习报告7dispbuf[0]=n%10;//取出个位字节}}voidscandisp(void)//显示子程序,//将显示缓存数组中的BCD码扫描并显示在数码管上{unsignedcharposi=0x01;unsignedchari,j,temp;for(i=0;i4;i++)//依次选中4个数码管{temp=dispbuf[i];//查出字码temp=table[temp];
本文标题:基于AT89C52单片机的简易频率计设计
链接地址:https://www.777doc.com/doc-2568504 .html