毕业设计-基于单片机的频率计数器设计

上传人:aa****6 文档编号:38211240 上传时间:2018-04-28 格式:DOC 页数:30 大小:489.50KB
返回 下载 相关 举报
毕业设计-基于单片机的频率计数器设计_第1页
第1页 / 共30页
毕业设计-基于单片机的频率计数器设计_第2页
第2页 / 共30页
毕业设计-基于单片机的频率计数器设计_第3页
第3页 / 共30页
毕业设计-基于单片机的频率计数器设计_第4页
第4页 / 共30页
毕业设计-基于单片机的频率计数器设计_第5页
第5页 / 共30页
点击查看更多>>
资源描述

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

1、设设计计内内容容与与设设计计要要求求设计内容:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果通过 6 位动态数码管显示出来。要求能够对 0250KHZ 的信号频率进行准确计数,计数误差不超过1HZ。设计要求:1.设计方案要合理、正确;2.系统硬件设计;3.完成必要元器件选择;4.系统软件设计及调试;5.写出设计报告。1主要设计条件1.MCS-51 单片机实验操作台 1 台;2.PC 机及单片机调试软件;3.单片机应用系统板 1 套;4.制作工具 1 套;5.系统设计所需的元器件。说 明 书 格 式课程设计封面课程设计任务书目 录一、设计的内容、要

2、求及目的二、系统总体方案选择与说明三、系统方框图与工作原理四、各部分方案选定、功能及计算五、器件说明六、应用系统的程序设计七、调试说明、使用说明八、设计总结九、参考文献 附录:程序清单,设计电路原理图2进 度 安 排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。下午:借阅有关资料,总体方案讨论。星期二、确定总体方案,学习与设计相关内容。星期三、各部分方案设计。星期四、各部分设计。星期五、设计及上机调试。第二周星期一:设计及上机调试。星期二:调试,中期检查。星期三:调试、写说明书。星期四-星期五上午:写说明书、完成电子版并打印成稿。星期五下午:答辩。3目目 录录第第 1 1

3、章章 频率计数器设计频率计数器设计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 4 章章 设计总结体会设计总结体会 参考文献参考文献附录附录4第第 1 1 章章 频率计数器设计频率计数器设计1.11.1 设计的内容、要求及目的设计的内容、要求及目的设计内容:本课题以单片机为核心

4、,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果通过 6 位动态数码管显示出来。要求能够对 0250KHZ 的信号频率进行准确计数,计数误差不超过1HZ。设计要求:1. 设计方案要合理、正确;2. 系统硬件设计;3. 完成必要元器件选择;4. 系统软件设计及调试;5.写出设计报告实验目的实验目的本应用系统实验的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握5单片机系统一般的开发流程

5、,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。 1.21.2 基本原理与总体方框图基本原理与总体方框图基本原理基本原理频率计数器的主要功能是测量周期信号的频率。频率是单位时间( 1S )内信号发生周期变化的次数。如果我们能在给定的 1S 时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。测量过程中定时/计数器 T0 和 T1 的工作方式设置,T1 是工作在计数状态下,对输入的频率信号进行计数,在本次设计使用的 98C51 单片机,由于检测一个由“1”到“0”

6、的跳变需要两个机器周期,前一个机器周期测出“1” ,后一个周期测出“0” 。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一,最大计数值为 fOSC/24,由于 fOSC12MHz,因此:T1 的最大计数频率为 0.5mHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以 T0 工作在定时状态下,每定时 1 秒中到,就停止 T0 的计数,而从 T0 的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。总体方框图总体方框图 课题设计的是一种以单片机为主控制的频率计。数字频率计主要由以下几部分组成:定时计数、采集数据、进制转换和数码显示。 本课题主要是以单片机

7、AT89C51 为核心, 通过计数电路, 以及软件程序的编写, 实现脉冲频率的显示。频率计系统总体框图如下:AT89C51 单片机外部脉冲信号1s 定时 同时开始 计数关 闭 中 断6图 1 频率计系统总体框图第第 2 2 章章 硬件系统设计硬件系统设计此次设计要求制作一频率计系统,需要使用的硬件主要包括51单片机芯片,74LS138译码器和数码管。另外还是用到排线若干,下载线及电源线。2.12.1 各部分方案选定、功能各部分方案选定、功能2.1.12.1.1 单片机部分单片机部分本次设计采用了AT89C51 单片机, AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能C

8、MOS8位微处理器。如图2所示:段选位选中断响应频 率 数 据 采 集进 制 转 换74LS1 38 译 码电 路数 码 管 显 示7图2 AT89C52引脚图AT89C51拥有五个中断源,当有外部脉冲到来时可实现中断的响应,另外AT89C51拥有定时/ 计数器(T0、T1) ,可实现定时与计数的功能。单片机AT89C51的P0、P2的4个8位并行I/O口可进行外部存储设备扩展。 2.1.22.1.2 状态译码器(状态译码器(74LS13874LS138)8图3 74LS138译码器74LS138译码器输出的状态控制数码管的亮与灭,它有6个状态,连接到数码管的位选,达到点亮数码管点亮的要求。2

9、.1.32.1.3 数据显示电路数据显示电路图4 显示电路图数据显示电路由限流电路和7段数码管组成,采用器件LED 显示器。本设计中采用了六个七段数码管进行数据显示, 将五个数码管串接起来进行显示, 显示数据即是对频率计的测量结果。系统板上硬件连线系统板上硬件连线 :9(1)把“单片机系统”中的P0.0P0.7口连接动态数码的段选ABCDEFGH端口。(2)把“单片机系统”中的P2.0P2.2与译码器74LS138的A、B、C、引脚相连,再把译码器经“非门”与“动态数码显示”区域中的1、2、3、4、5、6端口用6芯排线连接 。10(3)把“单片机系统”中的P3.5(T1)端子用导线连接到“频率

10、源”的端子上。(4) 把P3.2(/INT1)与按键连接。11第第 3 3 章章 软件系统设计软件系统设计3.13.1 应用系统的程序设应用系统的程序设3.1.13.1.1 1s1s定时定时采用 T0 定时 50,连续循环定时 20 次即可完成 1 定时,用一个计mss数单元 20H 存放循环的次数,每一次循环 20H 单元自减 1,当 20H 单元为零时则 1 定时到时。其程序流程图如图 5 所示。s图 5 1s 定时流程图YNYN开始初始化 T0是否启动 定时器等待中断启动定时器产生中断20H- 1=0?- 关闭中断重装初值结束123.1.23.1.2 T1T1 计数程序计数程序设计中 T

11、1 采用计数功能,思路是除了计数器 T1 的 TH1 和 TL1 用于计数外,再选用一个计数单元 23H,每当计数器 T1 溢出回零时产生中断,中断程序执行 23H 单元自增 1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1 存放的是数据的次高位,TL1 存放的是数据的最低位。当然,这里所说的“最高位” “次高位”以及“最低位”都是针对十六进制而言的。T1 计数程序的流程图如图 6 所示。图 6 T1 计数流程图开始23H=0T1初始化 置初值0计数开始计数溢出 产生中断23H=23H+11s到时否?采集数据NY结束133.1.33.1.3 进制转换进制转换算法的基

12、本思路是:第一步将最高位的高半字节提出来,除以 10,把商存储起来,余数与最高位的低半字节组合成一个字节,再除以 10,再存储商,余数以此类推,直到最后一次计算得到的余数即为十进制数的个位;第二步把第一步存储的商组合成一个字节,依次除以 10,仍然把每次得到的商存储起来,以此类推最后一次得到的余数即为十进制数的十位;以后也是以此类推得到十进制数的百位、千位以上算法必须要注意的一个为题是,每次得到的余数与低位的半字节组合成一个字节时,余数必须放在该字节的高半字节,否则计算错误。该本次频率计系待测的时钟信号的最高频率为 Hz,对应的十六进制数为 70800H,这里就以 70800H 转换为十进制数

13、为例来说明这种算法。第一步:用 7H 除以 10,商 0H 余 7H,把商 0 存储在 24H 单元,余数7H 与下一个字节 08H 的高半字节 0H 组合成一个字节 70H。70H 除以 10,商 BH 余 2H,把商 BH 存储在 25H 单元,余数 2H 与 8H 组合成一个字节28H。28H 除以 10,商 4H 余 0H,把商 4H 存储在 26H 单元,余数 0H 与0H 组合成一个字节 00H。00H 除以 10,商 0H 余 0H,把商 0H 存储在 27H单元,余数 0H 与 0H 组合成一个字节 00H。00H 除以 10,商 0H 余 0H,把商 0H 存储在 28H 单

14、元,余数 0 即为所需十进制数的个位。第二步:把存储在 24H 与 25H 单元的商组合成一个字节 0BH。0BH 除以 10,同第一步,存储商,余数与下一个商组合成一个字节,再除以 10,一次类推得到十进制数的十位 0。第三步:方法同第二步,得到十进制数的百位 8。第四步:方法同第三步,得到十进制数的千位 0。第五步:方法同第四步,得到十进制数的万位 6 和十万位 4。最后得到了十进制数。143.1.4.4 数码显示数码显示将十进制数转换为相应的 LED 显示的代码,最容易实现的编程方法就是查表,因数码管最多只需要显示六位,只需要查六次表就可以了,图 7是将十进制数对应的 LED 显示代码存

15、入以 60H 为首单元的流程图。图 7 十进制数转换为显示代码流程图开始R0=#50H R1=#5FH R2=#6 DPTR=#TABR0AA+DPTRAR0+1R0 R1+1R1AR1R2-1=0?结束YN153.2 程序的调试程序的调试编写的频率计总体程序编译成 HEX 文件,写入 51 单片机内,在观察数码管显示的时候,发现高位的“0”仍然能够显示,而通常十进制的高位的“0”通常是省略的。为了解决这个问题,需要另外添加一段屏蔽高位的“0”的程序。具体程序编写如下:PINGBI: MOV 20H,#06HMOV R1,#55HPANDUAN:MOV A,R1JNZ SCANNUMDEC R1DEC 20HAJMP PANDUA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

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