基于单片机的频率计数器

上传人:xmg****18 文档编号:120449957 上传时间:2020-02-06 格式:DOC 页数:30 大小:181KB
返回 下载 相关 举报
基于单片机的频率计数器_第1页
第1页 / 共30页
基于单片机的频率计数器_第2页
第2页 / 共30页
基于单片机的频率计数器_第3页
第3页 / 共30页
基于单片机的频率计数器_第4页
第4页 / 共30页
基于单片机的频率计数器_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于单片机的频率计数器》由会员分享,可在线阅读,更多相关《基于单片机的频率计数器(30页珍藏版)》请在金锄头文库上搜索。

1、. . . . .基于C52单片机的数字式频率计设计 . 专业.专注 .目 录第1章 频率计数器设计 2 1.1设计内容、要求及目的2 1.2 基本原理与总体方案 3第2章 硬件系统设计4 2.1各部分方案及说明 4 2.1.1 单片机部分 42.1.2数据显示电路 5第3章 软件系统设计8 3.1 应用系统的程序设计8 3.1.1 频率测试程序8 3.1.2 数值显示10 3.1.3 LCD显示 10第4章 测试数据12第5章 设计总结体会13参考文献 14附录1 15附录2 20第1章 频率计数器设计1.1 设计的内容、要求及目的设计内容:本课题以AT89C52单片机为核心,设计和制作一个

2、数字式频率计,来完成对输入的信号进行频率计数,计数的频率结果通过LCD1602显示出来。要求能够对10Hz100KHz的方波信号和正弦信号的频率进行测量。 设计要求:1. 设计方案要合理、正确;2. 系统硬件设计;3. 完成必要元器件选择;4. 系统软件设计及调试;5. 撰写设计报告 实验目的:本实验的目的是设计一种基于C52单片机的数字频率计,可以测试信号发生器产生的方波信号和正弦信号的频率,课设要求频率范围10Hz-100kHz,且在显示设备上准确显示信号频率。把在“单片机原理及应用”课堂上学习的知识运用于实践,并通过查阅相关资料,来丰富对单片机的认识和使用,培养一种自学和动手的能力。同时

3、,引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全面提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。1.2 本设计的基本原理与总体方案基本原理:频率计数器的主要功能是测量周期信号的频率。频率是单位时间( 1S )内信号发生周期变化的次数。正弦信号的判定一个周期通常是通过极值点判断,两个极小值的时长既是一个正弦信号的周期,方波信号也是可以通过两个下降沿之间的时

4、长为一个周期。只要计算出1s中方波信号和正弦信号的周期数,也就能得到我们所需要的频率数值。本设计是基于C52单片机平台做的,需要采用定时器的计数、定时和中断功能。由于C52单片机的所有中断均是低电平或者下降沿触发,因此我们只需要检测方波信号和正弦信号的低电平对信号的周期进行计数,因次需要用到两个定时器。测量过程中定时/计数器T2和T0的工作方式设置,T0是工作在计数状态下,对输入的频率信号进行计数,在本次设计使用的AT89C52单片机中,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之

5、一,最大计数值为fOSC/24,由于fOSC12MHz,因此,T0的最大计数频率为0.5MHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T0工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理,送到LCD1602显示出来。总体方案: 本课题设计的是一种以C52单片机为主控制的频率计。数字频率计主要由以下几部分组成:信号源、C52单片机及其最小系统和LCD显示。本课题主要是以单片机AT89C52 为核心, 通过计数电路, 以及软件程序的编写,实现脉冲频率的显示。频率计系统总体框图如下:正弦信号、方波信号信号源C52单片机及其最小

6、系统LCD显示设备图1 总体方案第2章 硬件系统设计 此次设计要求制作一频率计系统,需要使用的硬件主要包括52单片机芯片和LCD。另外还是用到排线若干,下载线及电源线。2.1 各部分方案选定、功能2.1.1 单片机部分 本次设计采用了AT89C52 单片机, AT89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS微处理器,属于8位的单片机。如图2所示:图2 AT89C52引脚图 AT89C52拥有五个中断源,当有外部脉冲到来时可实现中断的响应,另外AT89C52拥有定时/ 计数器(T0、T1),可实现定时与计数的功能。单片机AT89C52的P0、P2的4个8位并行I/

7、O口可进行外部存储设备扩展。 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:电源电路、复位电路、时钟电路。1.电源电路:电源电路就是单片机的供电电路,一般是3.3V或者5V,STC89C52采用的5V电压供电。 2.复位电路:复位是单片机的初始化操作,只需给AT89C52单片机的复位引脚RST加上大于两个机器周期(即24个时钟振荡周期)的高电平就可使AT89C52复位。包括上电复位和手动复位。3.时钟电路:用于产生AT89C52单片机工作时必需的控制信号,AT89C52单片机的内部电路正是在时钟信号的控制下,严格地

8、按时序执行指令进行工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。AT89C52单片机最小系统的最高时钟频率为12MHz。2.1.2 数据显示电路 图3 显示电路图(1) C51系列单片机采用的显示设备通常由LCD1602或者数码管。由于本设计需要显示字符和数字。因此本设计优先采用LCD1602。LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形。1602液晶也叫1602字

9、符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。开发板上硬件连线 :(2) 把单片机系统中的P0.0P0

10、.7口连接LCD的D0-D7端口。由于P0口上电后是上电复位后是开漏输出。且作为C52单片机的扩展输出,相比较P1、P2、P3口没有上拉电阻,因此LCD1602连接C52单片机P0口时,应该外接上拉电阻。把单片机系统中的P2.5P2.7与LCD1602的RS,RW,E引脚相连,再RESPACK-8和LCD1602的D0-D7端口连接 。(3) P3.4是C52单片机的定时器0端口,因为需要计数单片机信号的周期因此可以直接将信号源的端口,接入到定时器T0(P3.4)端口。 第3章 软件系统设计3.1 应用系统的程序设计 系统的应用程序设计主要包括两个方面,核心部分的程序是频率测试程序,另外一部分

11、是LCD1602显示程序。频率测试程序将频率测试出来后,将数值传递给STC89C52单片机,单片机将数值传递给LCD1602显示。3.1.1 频率测试程序频率测试程序采用了C52单片机的两个定时器T0和T2,两个中断计数器中断0和的定时器中断2,计数器T0采用计数功能,计量外部信号的低电平数量,定时器2采用单片机最小系统定时1s。采用T2定时62.5ms,连续循环定时16次即可完成1s定时,用一个unsigned char型的 time存放循环的次数,每一次循环自动加1,当time为16时则1s定时到时。当定时器T2和T1同时开始工作,当定时器T2的时间达到1s后,计算T0的count数,同时

12、进行数值转换。将转换后的数据传递给单片机和LCD1602显示。设计中T0采用计数功能,思路是除了计数器T0的TH0放初值和TL0用于计数外,再选用一个unsigned long 型的count,每当计数器T0溢出回零时产生中断,中断程序执行count自增1,这样,当一秒到时时采集的计数数据,count存放的是数据的最高位,TH0存放的是数据的次高位,TL0存放的是数据的最低位。当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。其程序流程图如图4所示。 图4 频率测试流程图3.1.2 数值显示由于我们的最大值是100KHZ,我们以HZ为单位。最高位为结果 / 100000

13、,第二位是结果 / 10000再取10的余数。依次下来可以得到相应位的数字。用ASCII码所以应该输出0x30+对应位的数字(0x30是48,ASCII码中48是0)。3.1.3 LCD显示将要显示的内容转换为相应的LCD显示的ASCII码,由于P0口地址是80H,输入的地址应该是0x80 +第几个,再通过P0口输出数字。RS为低电平时,输入地址第一行0x80+ add,第二行0x80+0x40 + add。RS为高电平时,输入数值0x30 +dat,字母按照ASCII码输入。每次输入信息都需要开使能端,延时后再关闭。 开始RS=0;输入地址0x80 +addRS=1;输入数据0x30+datLcden=1;延时;Lcden=0Lcden=1;延时;Lcden=0结束开始RS=0;输入地址0x80 +addRS=1;输入数据0x30+datLcden=1;延时;Lcden=0Lcden=1;延时;Lcden=0结束图5 LCD1602显示流程图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号