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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的频率计数器课程设计.docx

1、基于单片机的频率计数器课程设计第1章 频率计数器设计 设计内容、要求及目的 大体原理与整体方框图第2章 硬件系统设计 各部份方案及说明 单片机部份 状态译码器数据显示电路第3章 软件系统设计 应用系统的程序设计 1s按时 T1计数程序 进制转换 数码显示 程序调试第4章 设计总结体会 参考文献附录第1章 频率计数器设计 设计的内容、要求及目的设计内容:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果通过6位动态数码管显示出来。要求能够对0250KHZ的信号频率进行准确计数,计数误差不超过1HZ。 设计要求:1.设计方案要合理、正确;2.系统硬件设计

2、;3.完成必要元器件选择;4.系统软件设计及调试;5. 写出设计报告 实验目的本应用系统实验的目的是通过在“单片机原理及应用”课堂上学习的知识,和查阅资料,培育一种自学的能力。而且引导一种创新的思维,把学到的知识应用到日常生活当中。在设计的进程中,不断的学习,试探和同窗间的彼此讨论,运用科学的分析问题的方式解决碰到的困难,把握单片机系统一样的开发流程,学会对常见问题的处置方式,积存设计系统的体会,充分发挥教学与实践的结合。全能提高个人系统开发的综合能力,开拓了思维,为尔后能在相应工作职位上的工作打下了坚实的基础。 大体原理与整体方框图大体原理 频率计数器的要紧功能是测量周期信号的频率。频率是单

3、位时刻( 1S )内信号发生周期转变的次数。若是咱们能在给定的 1S 时刻内对信号波形计数,并将计数结果显示出来,就能够读取被测信号的频率。测量进程中按时/计数器T0和T1的工作方式设置,T1是工作在计数状态下,对输入的频率信号进行计数,在本次设计利用的98C51单片机,由于检测一个由“1”到“0”的跳变需要两个机械周期,前一个机械周期测出“1”,后一个周期测出“0”。故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一,最大计数值为fOSC/24,由于fOSC12MHz,因此:T1的最大计数频率为。关于频率的概念确实是在一秒只数脉冲的个数,即为频率值。因此T0工作在按时状态下,每按时

4、1秒中到,就停止T1的计数,而从T1的计数单元中读取计数的数值,然后进行数据处置。送到数码管显示出来。整体方框图 课题设计的是一种以单片机为主操纵的频率计。数字频率计要紧由以下几部份组成:按时计数、搜集数据、进制转换和数码显示。 本课题主若是以单片机AT89C51 为核心, 通过计数电路, 和软件程序的编写, 实现脉冲频率的显示。频率计系统整体框图如下: 外部脉冲信号关闭中断 1s定时 同时开始计数AT89C51单片机中断响应段选频率数据采集进制转换数码管显示74LS138译码电路位选 图1 频率计系统整体框图 第2章 硬件系统设计 这次设计要求制作一频率计系统,需要利用的硬件要紧包括51单片

5、机芯片,74LS138译码器和数码管。另外仍是用到排线假设干,下载线及电源线。 各部份方案选定、功能 单片机部份 本次设计采纳了AT89C51 单片机, AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处置器。如图2所示: 图2 AT89C52引脚图 AT89C51拥有五个中断源,当有外部脉冲到来时可实现中断的响应,另外AT89C51拥有按时/ 计数器(T0、T1),可实现按时与计数的功能。单片机AT89C51的P0、P2的4个8位并行I/O口可进行外部存储设备扩展。 状态译码器(74LS138) 图3 74LS138译码器 74LS138译码器输出的状态

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

7、子上。 (4) 把(/INT1)与按键连接。 第3章 软件系统设计 应用系统的程序设 1s按时采纳T0按时50,持续循环按时20次即可完成1按时,用一个计数单元20H寄存循环的次数,每一次循环20H单元自减1,当20H单元为零时那么1按时到时。其程序流程图如图5所示。 开始初始化T0 是否启动定时器等待中断NY启动定时器产生中断N20H-1=0?-重装初值Y关闭中断 结束 图5 1s按时流程图 T1计数程序 设计中T1采纳计数功能,思路是除计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,如此,当一秒到不时搜集的计数

8、数据,23H单元寄存的是数据的最高位,TH1寄存的是数据的次高位,TL1寄存的是数据的最低位。固然,那个地址所说的“最高位”“次高位”和“最低位”都是针对十六进制而言的。T1计数程序的流程图如图6所示。 图6 T1计数流程图 进制转换算法的大体思路是:第一步将最高位的高半字节提出来,除以10,把商存储起来,余数与最高位的低半字节组合成一个字节,再除以10,再存储商,余数以此类推,直到最后一次计算取得的余数即为十进制数的个位;第二步把第一步存储的商组合成一个字节,依次除以10,仍然把每次取得的商存储起来,以此类推最后一次取得的余数即为十进制数的十位;以后也是以此类推取得十进制数的百位、千位以上算

9、法必需要注意的一个为题是,每次取得的余数与低位的半字节组合成一个字节时,余数必需放在该字节的高半字节,不然计算错误。该本次频率计系待测的时钟信号的最高频率为460800Hz,对应的十六进制数为70800H,那个地址就以70800H转换为十进制数为例来讲明这种算法。第一步:用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

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

11、位,只需要查六次表就能够够了,图7是将十进制数对应的LED显示代码存入以60H为首单元的流程图。 图7 十进制数转换为显示代码流程图 程序的调试编写的频率计整体程序编译成HEX文件,写入51单片机内,在观看数码管显示的时候,发觉高位的“0”仍然能够显示,而通常十进制的高位的“0”一般是省略的。为了解决那个问题,需要另外添加一段屏蔽高位的“0”的程序。具体程序编写如下:PINGBI: MOV 20H,#06H MOV R1,#55HPANDUAN:MOV A,R1 JNZ SCANNUM DEC R1 DEC 20H AJMP PANDUAN 程序通过调试以后,数码管从高位第一名不为“0”的数开

12、始显示。 参考文献1、单片机原理与应用 王迎旭等编 机械工业出版社2、51系列单片机设计实例 楼然苗等编 北京航空航天大学出版社3、运算机硬件技术基础实验教程 黄勤等编 重庆大学出版社4、微型运算机接口技术及应用 刘乐善主编 华中科技大学出版社五、单片微型运算机原理及接口技术陈光东等 华中科技大学出版社附录1源程序清单: ADD A,25H MOV B,#0AH DIV AB MOV 24H,A ;存储第一名商 MOV A,B M EQU 15N EQU 5ORG 0000HAJMP MAINORG 0003HAJMP CNINT0ORG 000BHAJMP T0INTORG 001BHAJM

13、P T1INTORG 0030HMAIN:MOV SP,#70H MOV IE,#8BH ;开放EA、T一、T0中断 MOV TMOD,#51H;初始化程序 MOV TH0,#3DH MOV TL0,#71H MOV 20H,#20 MOV TH1,#00H MOV TL1,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H SETB IT0 SJMP $CNINT0:SETB TR0 SETB TR1 RETIT0INT:DJNZ 20H,NEXT1;按时中断效劳程序 CLR TR1 CLR TR0 MOV 22H,TH1 MOV 21H,TL1 AJMP

14、 TRANSBDNEXT1:MOV TH0,#3CH MOV TL0,#0B0HEXIT:RETIT1INT:INC 23H;计数中断效劳程序 RETITRANSBD:MOV SP,#70H;将十六进制数转换成十进制数 MOV A,23H MOV B,#0AH DIV AB MOV 24H,A ;存储第一名商 MOV A,B MOV 30H,22H ANL 30H,#0F0H ADD A,30H SWAP A MOV B,#0AH DIV AB MOV 25H,A ;存储第二位商 MOV A,B SWAP A ANL 22H,#0FH ADD A,22H MOV B,#0AH DIV AB M

15、OV 26H,A ;存储第三位商 MOV A,B MOV 30H,21H ANL 30H,#0F0H ADD A,30H SWAP A MOV B,#0AH DIV AB MOV 27H,A ;存储第四位商 MOV A,B SWAP A ANL 21H,#0FH ADD A,21H MOV B,#0AH DIV AB MOV 28H,A ;存储第五位商 MOV 50H,B ;存储十进制数个位 MOV A,24H SWAP A SWAP A ADD A,26H MOV B,#0AH DIV AB MOV 25H,A ;存储第二位商 MOV A,B SWAP A ADD A,27H MOV B,#

16、0AH DIV AB MOV 26H,A ;存储第三位商 MOV A,B SWAP A ADD A,28H MOV B,#0AH DIV AB MOV 27H,A ;存储第四位商 MOV 51H,B ;存储十进制数十位 MOV A,24H SWAP A ADD A,25H MOV B,#0AH DIV AB MOV 24H,A ;存储第一名商 MOV A,B SWAP A ADD A,26H MOV B,#0AH DIV AB MOV 25H,A ;存储第二位商 MOV A,B SWAP A ADD A,27H MOV B,#0AH DIV AB MOV 26H,A ;存储第三位商 MOV 5

17、2H,B ;存储十进制数百位 MOV A,24H SWAP A ADD A,25H MOV B,#0AH DIV AB MOV 24H,A ;存储第一名商 MOV A,B SWAP A ADD A,26H MOV B,#0AH DIV AB MOV 25H,A ;存储第二位商 MOV 53H,B ;存储十进制数千位 MOV A,24H SWAP A ADD A,25H MOV B,#0AH DIV AB MOV 54H,B ;存储十进制数万位 MOV 55H,A ;存储十进制数十万位 DISPLAY:MOV R0,#60H;对60H-65H清零 MOV R1,#06HNEXT2: MOV R0

18、,#00H INC R0 DJNZ R1,NEXT2 MOV R0,#50H;将数码管要显示的频率送到60H开头的内存 MOV R1,#5FH MOV R2,#06H MOV DPTR,#TABNEXT3: MOV A,R0 MOVC A,A+DPTR INC R0 INC R1 MOV R1,A DJNZ R2,NEXT3PINGBI: MOV 20H,#06H MOV R1,#55HPANDUAN:MOV A,R1 JNZ SCANNUM DEC R1 DEC 20H AJMP PANDUAN SCANNUM:MOV R0,#60H;将60H开始的数送到数码管显示 MOV R1,#00H MOV R2,20H LIGHT: MOV A,R0 MOV P0,A MOV A,R1 MOV P2,A INC R0 INC R1 ACALL DELAY DJNZ R2,LIGHT AJMP SCANNUMDELAY:MOV R5,M WAIT:MOV R6,N WAITT:DJNZ R6,WAITT DEC R5 DJNZ R5,WAIT RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND附录2设计电路原理图:

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

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