基于单片机的频率计数器1讲解Word文档下载推荐.docx

上传人:b****1 文档编号:3015363 上传时间:2023-05-01 格式:DOCX 页数:21 大小:213.74KB
下载 相关 举报
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第1页
第1页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第2页
第2页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第3页
第3页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第4页
第4页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第5页
第5页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第6页
第6页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第7页
第7页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第8页
第8页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第9页
第9页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第10页
第10页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第11页
第11页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第12页
第12页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第13页
第13页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第14页
第14页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第15页
第15页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第16页
第16页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第17页
第17页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第18页
第18页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第19页
第19页 / 共21页
基于单片机的频率计数器1讲解Word文档下载推荐.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的频率计数器1讲解Word文档下载推荐.docx

《基于单片机的频率计数器1讲解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的频率计数器1讲解Word文档下载推荐.docx(21页珍藏版)》请在冰点文库上搜索。

基于单片机的频率计数器1讲解Word文档下载推荐.docx

第一周

星期一、上午:

布置课题任务,课题介绍及讲课。

下午:

借阅有关资料,总体方案讨论。

星期二、确定总体方案,学习与设计相关内容。

星期三、各部分方案设计。

星期四、各部分设计。

星期五、设计及上机调试。

第二周

星期一:

设计及上机调试。

星期二:

调试,中期检查。

星期三:

调试、写说明书。

星期四--星期五上午:

写说明书、完成电子版并打印成稿。

星期五下午:

答辩。

第1章频率计数器设计………………………………………………

1.1设计内容、要求及目的…………………………………………

1.2基本原理与总体方框图………………………………………

第2章硬件系统设计……………………………………………

2.1各部分方案及说明………………………………………………

2.1.1单片机部分…………………………………………………

2.1.2状态译码器…………………………………………………

2.1.3数据显示电路………………………………………………………

第3章软件系统设计……………………………………………

3.1应用系统的程序设计………………………………………………

3.1.11s定时………………………………………………………………

3.1.2T1计数程序………………………………………………………

3.1.3进制转换………………………………………………………

3.1.4数码显示………………………………………………………

3.2程序调试………………………………………………………………

第4章设计总结体会……………………………………………

参考文献………………………………………………………………

附录………………………………………………………………………………

 

第1章频率计数器设计

1.1设计的内容、要求及目的

设计要求:

5.写出设计报告

实验目的

本应用系统实验的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。

并且引导一种创新的思维,把学到的知识应用到日常生活当中。

在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。

全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。

1.2基本原理与总体方框图

基本原理

频率计数器的主要功能是测量周期信号的频率。

频率是单位时间(1S)内信号发生周期变化的次数。

如果我们能在给定的1S时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。

测量过程中定时/计数器T0和T1的工作方式设置,T1是工作在计数状态下,对输入的频率信号进行计数,在本次设计使用的98C51单片机,由于检测一个由“1”到“0”的跳变需要两个机器周期,前一个机器周期测出“1”,后一个周期测出“0”。

故输入时钟信号的最高频率不得超过单片机晶振频率的二十四分之一,最大计数值为fOSC/24,由于fOSC=12MHz,因此:

T1的最大计数频率为0.5mHz。

对于频率的概念就是在一秒只数脉冲的个数,即为频率值。

所以T0工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。

送到数码管显示出来。

总体方框图

课题设计的是一种以单片机为主控制的频率计。

数字频率计主要由以下几部分组成:

定时计数、采集数据、进制转换和数码显示。

本课题主要是以单片机AT89C51为核心,通过计数电路,以及软件程序的编写,实现脉冲频率的显示。

频率计系统总体框图如下:

图1频率计系统总体框图

第2章硬件系统设计

此次设计要求制作一频率计系统,需要使用的硬件主要包括51单片机芯片,74LS138译码器和数码管。

另外还是用到排线若干,下载线及电源线。

2.1各部分方案选定、功能

2.1.1单片机部分

本次设计采用了AT89C51单片机,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

如图2所示:

图2AT89C52引脚图

AT89C51拥有五个中断源,当有外部脉冲到来时可实现中断的响应,另外AT89C51拥有定时/计数器(T0、T1),可实现定时与计数的功能。

单片机AT89C51的P0、P2的4个8位并行I/O口可进行外部存储设备扩展。

2.1.2状态译码器(74LS138)

图374LS138译码器

74LS138译码器输出的状态控制数码管的亮与灭,它有6个状态,连接到数码管的位选,达到点亮数码管点亮的要求。

2.1.3数据显示电路

图4显示电路图

数据显示电路由限流电路和7段数码管组成,采用器件LED显示器。

本设计中采用了六个七段数码管进行数据显示,将五个数码管串接起来进行显示,显示数据即是对频率计的测量结果。

系统板上硬件连线:

(1)把“单片机系统”中的P0.0-P0.7口连接动态数码的段选ABCDEFGH端口。

(2)把“单片机系统”中的P2.0-P2.2与译码器74LS138的A、B、C、引脚相连,再把译码器经“非门”与“动态数码显示”区域中的1、2、3、4、5、6端口用6芯排线连接。

(3)把“单片机系统”中的P3.5(T1)端子用导线连接到“频率源”的端子上。

(4)把P3.2(/INT1)与按键连接。

第3章软件系统设计

3.1应用系统的程序设

3.1.11s定时

采用T0定时50

,连续循环定时20次即可完成1

定时,用一个计数单元20H存放循环的次数,每一次循环20H单元自减1,当20H单元为零时则1

定时到时。

其程序流程图如图5所示。

图51s定时流程图

3.1.2T1计数程序

设计中T1采用计数功能,思路是除了计数器T1的TH1和TL1用于计数外,再选用一个计数单元23H,每当计数器T1溢出回零时产生中断,中断程序执行23H单元自增1,这样,当一秒到时时采集的计数数据,23H单元存放的是数据的最高位,TH1存放的是数据的次高位,TL1存放的是数据的最低位。

当然,这里所说的“最高位”“次高位”以及“最低位”都是针对十六进制而言的。

T1计数程序的流程图如图6所示。

图6T1计数流程图

3.1.3进制转换

算法的基本思路是:

第一步将最高位的高半字节提出来,除以10,把商存储起来,余数与最高位的低半字节组合成一个字节,再除以10,再存储商,余数以此类推,直到最后一次计算得到的余数即为十进制数的个位;

第二步把第一步存储的商组合成一个字节,依次除以10,仍然把每次得到的商存储起来,以此类推最后一次得到的余数即为十进制数的十位;

以后也是以此类推得到十进制数的百位、千位……以上算法必须要注意的一个为题是,每次得到的余数与低位的半字节组合成一个字节时,余数必须放在该字节的高半字节,否则计算错误。

该本次频率计系待测的时钟信号的最高频率为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,把商0H存储在27H单元,余数0H与0H组合成一个字节00H。

00H除以10,商0H余0H,把商0H存储在28H单元,余数0即为所需十进制数的个位。

第二步:

把存储在24H与25H单元的商组合成一个字节0BH。

0BH除以10,同第一步,存储商,余数与下一个商组合成一个字节,再除以10,一次类推得到十进制数的十位0。

第三步:

方法同第二步,得到十进制数的百位8。

第四步:

方法同第三步,得到十进制数的千位0。

第五步:

方法同第四步,得到十进制数的万位6和十万位4。

最后得到了十进制数460800。

3.1.4数码显示

将十进制数转换为相应的LED显示的代码,最容易实现的编程方法就是查表,因数码管最多只需要显示六位,只需要查六次表就可以了,图7是将十进制数对应的LED显示代码存入以60H为首单元的流程图。

图7十进制数转换为显示代码流程图

3.2程序的调试

编写的频率计总体程序编译成HEX文件,写入51单片机内,在观察数码管显示的时候,发现高位的“0”仍然能够显示,而通常十进制的高位的“0”通常是省略的。

为了解决这个问题,需要另外添加一段屏蔽高位的“0”的程序。

具体程序编写如下:

PINGBI:

MOV20H,#06H

MOVR1,#55H

PANDUAN:

MOVA,@R1

JNZSCANNUM

DECR1

DEC20H

AJMPPANDUAN

程序经过调试以后,数码管从高位第一位不为“0”的数开始显示。

参考文献

1、《单片机原理与应用》王迎旭等编机械工业出版社

2、《51系列单片机设计实例》楼然苗等编北京航空航天大学出版社

3、《计算机硬件技术基础实验教程》黄勤等编重庆大学出版社

4、《微型计算机接口技术及应用》刘乐善主编华中科技大学出版社

5、《单片微型计算机原理及接口技术》陈光东等华中科技大学出版社

附录1

源程序清单:

ADDA,25H

MOVB,#0AH

DIVAB

MOV24H,A;

存储第一位商

MOVA,BMEQU15

NEQU5

ORG0000H

AJMPMAIN

ORG0003H

AJMPCNINT0

ORG000BH

AJMPT0INT

ORG001BH

AJMPT1INT

ORG0030H

MAIN:

MOVSP,#70H

MOVIE,#8BH;

开放EA、T1、T0中断

MOVTMOD,#51H;

初始化程序

MOVTH0,#3DH

MOVTL0,#71H

MOV20H,#20

MOVTH1,#00H

MOVTL1,#00H

MOV21H,#00H

MOV22H,#00H

MOV23H,#00H

SETBIT0

SJMP$

CNINT0:

SETBTR0

SETBTR1

RETI

T0INT:

DJNZ20H,NEXT1;

定时中断服务程序

CLRTR1

CLRTR0

MOV22H,TH1

MOV21H,TL1

AJMPTRANSBD

NEXT1:

MOVTH0,#3CH

MOVTL0,#0B0H

EXIT:

RETI

T1INT:

INC23H;

计数中断服务程序

TRANSBD:

MOVSP,#70H;

将十六进制数转换成十进制数

MOVA,23H

MOVA,B

MOV30H,22H

ANL30H,#0F0H

ADDA,30H

SWAPA

MOV25H,A;

存储第二位商

ANL22H,#0FH

ADDA,22H

MOV26H,A;

存储第三位商

MOV30H,21H

MOV27H,A;

存储第四位商

ANL21H,#0FH

ADDA,21H

MOV28H,A;

存储第五位商

MOV50H,B;

存储十进制数个位

MOVA,24H

ADDA,26H

ADDA,27H

ADDA,28H

MOV51H,B;

存储十进制数十位

MOV52H,B;

存储十进制数百位

MOV53H,B;

存储十进制数千位

MOV54H,B;

存储十进制数万位

MOV55H,A;

存储十进制数十万位

DISPLAY:

MOVR0,#60H;

对60H-65H清零

MOVR1,#06H

NEXT2:

MOV@R0,#00H

INCR0

DJNZR1,NEXT2

MOVR0,#50H;

将数码管要显示的频率送到60H开头的内存

MOVR1,#5FH

MOVR2,#06H

MOVDPTR,#TAB

NEXT3:

MOVA,@R0

MOVCA,@A+DPTR

INCR1

MOV@R1,A

DJNZR2,NEXT3

SCANNUM:

将60H开始的数送到数码管显示

MOVR1,#00H

MOVR2,20H

LIGHT:

MOVP0,A

MOVA,R1

MOVP2,A

ACALLDELAY

DJNZR2,LIGHT

AJMPSCANNUM

DELAY:

MOVR5,M

WAIT:

MOVR6,N

WAITT:

DJNZR6,WAITT

DECR5

DJNZR5,WAIT

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

附录2

设计电路原理图:

电气信息学院课程设计评分表

项目

评价

及格

设计方案合理性与创造性(10%)

开发板焊接及其调试完成情况*(10%)

硬件设计或软件编程完成情况(20%)

硬件测试或软件调试结果*(10%)

设计说明书质量(20%)

答辩情况(10%)

完成任务情况(10%)

独立工作能力(10%)

出勤情况(10%)

综合评分

指导教师签名:

________________

日期:

________________

注:

表中标*号项目是硬件制作或软件编程类课题必填内容;

此表装订在课程设计说明书的最后一页。

课程设计说明书装订顺序:

封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2