中北大学单片机数字频率计课程设计.doc

上传人:土8路 文档编号:10071770 上传时间:2021-04-16 格式:DOC 页数:16 大小:286.50KB
返回 下载 相关 举报
中北大学单片机数字频率计课程设计.doc_第1页
第1页 / 共16页
中北大学单片机数字频率计课程设计.doc_第2页
第2页 / 共16页
中北大学单片机数字频率计课程设计.doc_第3页
第3页 / 共16页
中北大学单片机数字频率计课程设计.doc_第4页
第4页 / 共16页
中北大学单片机数字频率计课程设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《中北大学单片机数字频率计课程设计.doc》由会员分享,可在线阅读,更多相关《中北大学单片机数字频率计课程设计.doc(16页珍藏版)》请在三一文库上搜索。

1、1. 绪论1.1 数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。1.2 任务分析与设计思路频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。在本次设计使用的AT89C51单片机,

2、本身自带有定时器和计数器,单片机的T0、T1两个定时/计数器,一个用来定时,另一个用来计数,定时/计数器的工作由相应的运行控制位TR控制,当TR置1,定时/计数器开始计数;当TR清0,停止计数。在定时1s里,计数器计的脉冲数就是频率数,但是由于1s超过了AT89C51的最大定时,因此我们采用50ms定时,在50ms内的脉冲数乘以14就得到频率数,再转换为十进制数出即可。1.3 基本设计原理本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对方波的频率进行自动的测量。单片机在采用了12MHz的晶体振荡器,采用定时和计数相结合的方法,选用定时计数器TO作定时器,工作方式

3、1产生50ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时,然后通过74HC4511译码器将显示管驱动以显示初测量结果。2. 硬件系统设计2.1 系统硬件的构成本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。可分为以下五个模块:晶振电路、复位电路、译码转换、单片机系统、数码显示模块。各模块关系图如图1所示。图1 系统组成框图2.2 系统硬件各模块简介2.2.1 晶振电路和复位电路 XTAL1与XTAL2管脚接两个22pF电容和12MHz晶振构成时钟电路。RST管脚接10k电阻,20F电容上电复位

4、电路。2.2.2 AT89C51单片机本设计采用的是AT89C51单片机,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。 设计中主要用到P2端口与74HC4511译码器连接输出待显示的个位与十位的数据,P1端口与74HC4511译码器连接输出频率计的百位和千位,P3端口连接信号输入电路。P3是一带有内部上拉电阻的8位双向的I/O端口,它的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部

5、存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。2.2.3 译码显示74HC4511译码器是4线七段译码驱动器,在设计中用它来译码并且驱动数码显示管来显示数值,共需要4个74HC4511和4个七段显示数码管。89C51单片机P2端口与74HC4511译码器连接输出待显示的个位与十位的值,P1端口与74HC4511译码器连接输出频率计的百位和千位的值。2.2.4 系统硬件电路图图2 系统硬件电路图3 设计过程3.1 程序流程图图3 程序流程图3.2 初始化程序部分采用12MHz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的

6、方法实现。选用定时计数器TO作定时器,工作于方式1产生50ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时。将定时器计数器的方式寄存器TMOD,用软件赋初值51H,即01010001B。这时定时器计数器1采用工作方式1,方式选择位CT设为1,即设T1为16位计数器。定时器计数器O采用工作方式1,CT设为0,即设TO为16位定时器。,所以T0的初始值为3CB0H。以下为程序代码。ORG 0000HAJMP STARTORG 0600HSTART: MOV TMOD ,#51HMOV TH0 ,#3CHMOV TL0 ,#0B0HMOV IE ,#82HMOV TH1 , #00HM

7、OV TL1 , #00HSETB TR0SETB TR13.3 频率计算由于定时50ms,采用4位显示,最大显示频率是9999,因此50ms里最大计数为500,否则显示不准确,500的十六进制为01F4H,当计数器的高八位大于01时,计数值大于500超过最大显示,即直接显示9999,当高八位等于01时,在判断第四位TL1与F4H的大小,大于或等于也直接显示频率9999,小于时在进行十进制转换,当高八位小于01时,在跳转到十六进制转换到十进制的程序中,再显示出来。最后将十六进制数转换为十进制数。以下为程序代码:LOOP:SJMP $ ;等待中断ORG 000BH ;入口地址AJMP BTR0

8、ORG 0080HBTR0:CLR TR1 ;停计数CLR TR0MOV A,TH1CJNE A,#01H,NEXT1 ;判断TH1的计数是否大于01H,(500十六进制为01F4H)SJMP NEXT2NEXT1:JC BEGINJNC NEXT4NEXT2:MOV A,TL1CJNE A,#0F4H,NEXT3 ;等于则比较TL1的计数值和#0F4的大小SJMP NEXT4NEXT3:JC BEGINJNC NEXT4NEXT4:MOV A,#99H ;大于01F4H则输出9999MOV P1,A MOV P2,A4. 仿真调试4.1 仿真结果本次仿真是在Proteus平台上进行,仿真电路

9、如下:图4 方波频率为10kHz显示结果图5 方波频率为800Hz显示结果4.2仿真结果分析本实验采用两个分别为10kHz,800Hz的信号源来验证所设计的频率计的准确性,分别模拟量程范围09999Hz外和量程范围09999Hz内的显示结果。当开关打在10kHz时,数码管显示9999,与预期符合,当开关打在800Hz的信号源上时,显示800也符合。总结5.1 设计小结该频率计设计,实现了测被测信号的频率,周期和脉宽的功能。在调测的过程中发现测量频率时,档位在1Hz9999Hz,最终得到的结果的符合预期要求,测量结果在误差允许范围之内。5.2 心得体会 数字频率计是计算机、通讯设备、音频视频等科

10、研生产领域不可缺少的测量仪器。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。通过这次课程设计,不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知识与应用于实践的结合更加丰富了自己的知识。扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,而且较系统的掌握单片机应用系统的开发过程,因而自身的综合素质有了全面的提高 。在本次课程设计中,发现了自己的不足之处,对以前所学过的知识理解得不够深刻,比如在硬件仿真时,由于对数电、模电的知识掌握得不够牢

11、固,导致仿真结果一直不能实现,还有在进行编程的时候对单片机的寄存器、接口电路等不够了解,也遇到了很多问题,但最终通过查资料、同学的帮助解决了这些问题。同时也熟练掌握了proteus、keil这两个软件,提高了自己的动手能力。参考文献1胡汉才.单片机原理及其接口技术清华大学出版社,1996.2胡汉才.单片机原理及系统设计.清华大学出版社,2002.3李朝青.单片机原理及接口技术.北京航空航天大学出版社,1994.4徐惠民,安德宁.单片微型计算机原理、接口、应用.北京邮电大学出版社,1990.5张友德,赵志英,涂时亮.单片微型机原理、应用与实验.复旦大学出版社,1992.6proteus帮助文档.

12、7keil帮助文档.8高海生,杨文焕.单片机应用技术大全.西南交通大学出版社,1996.9E.A.Nichols,J.C.Nichols,K.R.Musson.微型计算机数据通信,1989.10徐爱钧.智能化测量控制仪表原理与设计.北京航空航天大学出版社,1999.附录 程序清单 AJMP STARTORG 0600HSTART:MOV TMOD,#51H ;送方式字MOV TH0,#3CH ;T0赋初值MOV TL0,#0B0HMOV IE,#82H ;开T0中断MOV TH1,#00H ;T1清零MOV TL1,#00HSETB TR0 ;开始计数SETB TR1 LOOP:SJMP $

13、;等待中断ORG 000BH ;入口地址AJMP BTR0ORG 0080HBTR0:CLR TR1 ;停计数CLR TR0MOV A,TH1CJNE A,#01H,NEXT1 ;判断TH1的计数是否大于01H,(500十六进制为01F4H)SJMP NEXT2NEXT1:JC BEGINJNC NEXT4NEXT2:MOV A,TL1CJNE A,#0F4H,NEXT3 ;等于则比较TL1的计数值和#0F4的大小SJMP NEXT4NEXT3:JC BEGINJNC NEXT4NEXT4:MOV A,#99H ;大于01F4H则输出9999MOV P1,A MOV P2,ALJMP LAST

14、 ;长转移BEGIN:MOV A ,TL1;小于01F4H则转换为十进制,以下程序为十进制转换MOV B,#14HMUL ABMOV R2,BMOV B,#10HDIV ABMOV R0,AMOV R1,BMOV A,TH1MOV B,#14HMUL ABADD A,R2MOV B,#10HDIV ABMOV R2,BMOV R7,AMOV B,#06HMUL ABMOV B,#0AHDIV ABMOV 40H,AMOV 41H,BMOV B,#06HMOV A,R0MUL ABMOV B,#0AHDIV ABMOV R3,AMOV R4,BMOV A,R2MOV B,#06HMUL ABMO

15、V B,#0AHDIV ABMOV R5,AMOV R6,BMOV A,R1ADD A,R4ADD A,R6ADD A,41HMOV B,#0AHDIV ABMOV R1,BADD A,R0ADD A,R3ADD A,R5MOV R0,AMOV A,R2MOV B,#05HMUL ABADD A,R0MOV R0,AMOV A,R7MOV B,#09HMUL ABMOV B,#0AHDIV ABMOV 42H,AMOV A,BADD A,R0ADD A,40HMOV B,#0AHDIV ABMOV R0,BMOV R3,AMOV A,R2MOV B,#02HMUL ABADD A,R3ADD A,42HMOV B,#0AHDIV ABMOV R4,AMOV R5,BMOV A,R7MOV B,#04HMUL ABADD A,R4MOV B,#01HMUL ABADD A,R5MOV P1,AMOV A,R0MOV B,#10HMUL ABADD A,R1MOV P2,ALAST:MOV TH0,#3CH ;重装初值MOV TL0,#0B0HMOV TH1,#00H ;停计数MOV TL1,#00HSETB TR1 ;开始计数SETB TR0RETI ;返回END ;结束

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1