基于单片机的频率计数器课程设计.doc
《基于单片机的频率计数器课程设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的频率计数器课程设计.doc(18页珍藏版)》请在三一办公上搜索。
1、 目 录第1章 频率计数器设计 1.1设计内容、要求及目的 1.2 基本原理与总体方框图第2章 硬件系统设计 2.1各部分方案及说明 2.1.1 单片机部分2.1.2 状态译码器2.1.3数据显示电路第3章 软件系统设计 3.1 应用系统的程序设计 3.1.1 1s定时 3.1.2 T1计数程序 3.1.3 进制转换 3.1.4 数码显示 3.2 程序调试第4章 设计总结体会 参考文献附录第1章 频率计数器设计1.1 设计的内容、要求及目的设计内容:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果通过6位动态数码管显示出来。要求能够对0250KHZ
2、的信号频率进行准确计数,计数误差不超过1HZ。 设计要求:1. 设计方案要合理、正确;2. 系统硬件设计;3. 完成必要元器件选择;4. 系统软件设计及调试;5. 写出设计报告 实验目的本应用系统实验的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗
3、位上的工作打下了坚实的基础。1.2 基本原理与总体方框图基本原理 频率计数器的主要功能是测量周期信号的频率。频率是单位时间( 1S )内信号发生周期变化的次数。如果我们能在给定的 1S 时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。测量过程中定时/计数器T0和T1的工作方式设置,T1是工作在计数状态下,对输入的频率信号进行计数,在本次设计使用的98C51单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一,最大计数值为fOSC/24,由于fOSC12MHz,
4、因此:T1的最大计数频率为0.5mHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T0工作在定时状态下,每定时1秒中到,就停止T1的计数,而从T1的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。总体方框图 课题设计的是一种以单片机为主控制的频率计。数字频率计主要由以下几部分组成:定时计数、采集数据、进制转换和数码显示。 本课题主要是以单片机AT89C51 为核心, 通过计数电路, 以及软件程序的编写, 实现脉冲频率的显示。频率计系统总体框图如下: 外部脉冲信号关闭中断 1s定时 同时开始计数AT89C51单片机中断响应段选频率数据采集进制转换数码管显示74LS1
5、38译码电路位选 图1 频率计系统总体框图 第2章 硬件系统设计 此次设计要求制作一频率计系统,需要使用的硬件主要包括51单片机芯片,74LS138译码器和数码管。另外还是用到排线若干,下载线及电源线。2.1 各部分方案选定、功能2.1.1 单片机部分 本次设计采用了AT89C51 单片机, AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。如图2所示: 图2 AT89C52引脚图 AT89C51拥有五个中断源,当有外部脉冲到来时可实现中断的响应,另外AT89C51拥有定时/ 计数器(T0、T1),可实现定时与计数的功能。单片机AT89C51的P0、
6、P2的4个8位并行I/O口可进行外部存储设备扩展。 2.1.2 状态译码器(74LS138) 图3 74LS138译码器 74LS138译码器输出的状态控制数码管的亮与灭,它有6个状态,连接到数码管的位选,达到点亮数码管点亮的要求。2.1.3 数据显示电路 图4 显示电路图 数据显示电路由限流电路和7段数码管组成,采用器件LED 显示器。本设计中采用了六个七段数码管进行数据显示, 将五个数码管串接起来进行显示, 显示数据即是对频率计的测量结果。系统板上硬件连线 :(1) 把“单片机系统”中的P0.0P0.7口连接动态数码的段选ABCDEFGH端口。(2) 把“单片机系统”中的P2.0P2.2与
7、译码器74LS138的A、B、C、引脚相连,再把译码器经“非门”与“动态数码显示”区域中的1、2、3、4、5、6端口用6芯排线连接 。(3) 把“单片机系统”中的P3.5(T1)端子用导线连接到“频率源”的端子上。 (4) 把P3.2(/INT1)与按键连接。 第3章 软件系统设计3.1 应用系统的程序设 3.1.1 1s定时采用T0定时50,连续循环定时20次即可完成1定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1定时到时。其程序流程图如图5所示。 开始初始化T0 是否启动定时器等待中断NY启动定时器产生中断N20H-1=0?-重装初值Y关闭中断
8、 结束 图5 1s定时流程图 3.1.2 T1计数程序 设计中T1采用计数功能,思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。T1计数程序的流程图如图6所示。 图6 T1计数流程图3.1.3 进制转换算法的基本思路是:第一步将最高位的高半字节提出来,除以10,把商存储起来,余数与最高位的低半字节组合成一个字节,
9、再除以10,再存储商,余数以此类推,直到最后一次计算得到的余数即为十进制数的个位;第二步把第一步存储的商组合成一个字节,依次除以10,仍然把每次得到的商存储起来,以此类推最后一次得到的余数即为十进制数的十位;以后也是以此类推得到十进制数的百位、千位以上算法必须要注意的一个为题是,每次得到的余数与低位的半字节组合成一个字节时,余数必须放在该字节的高半字节,否则计算错误。该本次频率计系待测的时钟信号的最高频率为460800Hz,对应的十六进制数为70800H,这里就以70800H转换为十进制数为例来说明这种算法。第一步:用7H除以10,商0H余7H,把商0存储在24H单元,余数7H与下一个字节08
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 频率 计数器 课程设计
链接地址:https://www.31ppt.com/p-4148770.html