单片机频率计课程设计.docx
《单片机频率计课程设计.docx》由会员分享,可在线阅读,更多相关《单片机频率计课程设计.docx(7页珍藏版)》请在冰豆网上搜索。
![单片机频率计课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/31/f15035eb-3a26-4a8c-9f9b-1e9118b8d3b7/f15035eb-3a26-4a8c-9f9b-1e9118b8d3b71.gif)
单片机频率计课程设计
单片机频率计课程设计
贵州大学课程设计
任务要求
运用所学单片机原理、、模拟和数字电路等方面的知识,设计由一个数字频率计。
数字频率计要求如下:
1)能对0〜50kHz的信号频率进行计数;
2)频率测量结果通过4位数码管显示。
二、课程设计
应完成的工作
1)硬件部分包括微处理器最小系统、频率
测量和数码管显示部分;
2)软件部分包括初始化、频率计算、显示等;3)用
PROTEU软件仿真实现;
4)画由系统的硬件电路结构图和软件程序框图;
内容摘要
1.数字频率计是计算机、通讯设备、音频视频等科研生
产领域不可缺少的测量仪器。
它是一种用十进制数字显示被
测信号频率的数字测量仪器。
2.采用12MHz的晶体振荡器的情况下,一秒的定时已
超过了定时器可提供的最大定
时值。
为了实现一秒的定时,采用定时和计数相结合的方法实现。
选用定时/计数器TO作定时器,工作于方式1
产生50ms的定时,再用软件计数方式对它计数20次,就
可得到一秒的定时。
第1页共13页
贵州大学课程设计
第1节引言
本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。
并且引导一种创新的思维,把学到的知识应用到日常生活当中。
在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。
全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。
数字频率计概述
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
任务分析与设计思路
频率的测量实际上就是在1s时间内对信号进行计数,
计数值就是信号频率。
在本次设计使用的AT89C51单片机,
本身自带有定时器和计数器,单片机的T0、T1两个定时/计
数器,一个用来定时,另一个用来计数,定时/计数器的工作相应的运行控制位TR控制,当TR置1,定时/计数器开始计数;当TR清0,停止计数。
在定时1s里,计数器计的脉冲数就是频率数,但是于1s超过了AT89C51的最大定时,因此我们采用50ms定时,在50ms内的脉冲数在乘以14就得到了频率数,在转换为十进制输由就可。
第2页共13页
贵州大学课程设计
第2节硬件系统设计
系统组成框图
晶振电路和复位电路
XTAL1与XTAL2管脚接两个22pF电容和12MHz晶振构成时钟电路。
RST管脚接10kQ电阻,20以F电容上电复位电路。
第3页共13页
贵州大学课程设计单片机与译码显示选择单片机AT89C51是因为有编程灵活、易调试的特点,
而且AT89C51的弓I脚较多,利于电路的展。
它集成了CPU
RAMROM定时器/计数器和多功能I/0口等一台计算机
所需的基本功能部件,有40个引脚,32个外部双向输入/输由(I/O)端口,同时内含两个外中断口,两个16位可编程定时计数器,两个全双工串行通信口。
还提供了对程序进行加密保护的功能。
P1端口与74HC4511译码器,输由待显示的个位与十位的数据。
P2端口也与74HC4511译码器连接,输由频率计的百位和千位。
P3端口连接信号输入电路。
74HC4511译码器是4线七段译码驱动器,在设计中用它来译码并且驱动数码显示管来显示数值,一共需要4个
74HC4511。
数码管是若干发光二极管组成显示的字段,当二极管导通时相应的一段发光,控制不同组合的二极管导通,就可以显示由各种字符。
对于共阴级显示管,将所有二极管的阴极连接在一起,公共端3、8接低电平,当莫个字段的阳极接高电平时,对应的字段就点亮。
设计中需要用到4个七段显
示数码管,用来显示频率的数值
输入信号
为验证本设计的频率计的准确性与快速性,采用三个不同频率的信号源。
程序流程图第4页共13页
贵州大学课程设计
初始化
ORG0000HAJMPSTARTORG0600H
START:
MOVTMOD,#51HMOVTH0,#3CHMOVTL0,#0B0HMOVIE,#82H
MOVTH1,#00HMOVTL1,#00HSETBTR0SETBTR1
采用12MHz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。
为了实现一秒的定时,采用定时和计数相结合的方法实现。
选用定时/计数器TO作
定时器,工作于方式1产生50ms的定时,再用软件计数方式对它计数20次,就可得到一秒的定时。
第5页共13页
贵州大学课程设计
将定时器/计数器的方式寄存器TMOD用软件赋初值
51H,即01010001B。
这时定时器/计数器1采用工作方式1,方式选择位C/T设为1,即设T1为16位计数器。
定时器/计数器O采用工作方式1,C/T设为0,即设TO为16位定时器。
16TCM-T/T50ms/1us155363CB0H,所以T0初值为3CB0H.计数2
频率计算
LOOP:
SJMP$;等待中断ORG000BH;入口地
址AJMPBTR0ORG0080H
BTR0:
CLRTR1;停计数
CLRTR0MOVA,TH1
CJNEA,#01H,NEXT1;判断TH1的计数是否大于01H。
SJMPNEXT2NEXT1:
JCBEGINJNCNEXT4NEXT2:
MOVA,TL1
CJNEA,#0F4H,NEXT3;等于则比较TL1的计数值和#0F4的大小SJMPNEXT4NEXT3:
JCBEGINJNCNEXT4
NEXT4:
MOVA,#99H;大于01F4H则输由9999
MOVP1,AMOVP2,A于定时50ms,采用4位显示,最大显示频率是9999,因此50ms里最大计数为500,否则显示不准确,500的十六进制为01F4H,当计数器的高八位大于01时,计数值大于500超过最大显示,即直接显示9999,档高八位等于01时,在判断第四位TL1与F4H的大小,大于或等于也直接显示频率9999,小雨时在进行十进制转换,
当高八位小于01时,在跳转到十六进制转换到十进制的程序中,再显示由来。
第6页共13页
贵州大学课程设计
十六进制转为十进制算法
设十六进制数为b4b3b2b1
b4X6+10=C1b3X6+10=C2b2X6+10=C3+
10=C4d3
+10=ed2+10=fd1b4x4+f=d0最后转换成的十进制数为d0d1d2d3
第7页共13页
贵州大学课程设计
第4节功能仿真调试
仿真电路图
仿真结果分析
本实验采用三个信号源分别为10000Hz,4180HZ,
120H乙分别模拟高频,中频和低频。
当开关打在10000HZ
时,数码管显示9999,与预期符合,当开关打在4180hz的
信号源上时,显示4180也吻合,打在120Hz的信号源上时,显示为120Hz与100Hz的跳变,显示有误差,造成误差的原因有几点:
①单片机技术速率的限制引起误差。
②晶振的准确度会影响一秒定时的准确度,从而引起测量误差。
③过多硬件连接会造成误差。
要减小误差,可以采用如下几条措施;①选用频率较高和稳定性较好的晶振。
②测量频率较高的信号时,可以先对信号进行分频,在进行测量。
③测量频率较低的信号时,可以适当调整程序,延长门限时间。
④尽可能选择少的硬件来实现所需功能。
第8页共13页
贵州大学课程设计
第5节附录
元件清单与管脚
51单片机译码器数码管
程序清单
ORG0000H
第9页共13页
贵州大学课程设计
AJMPSTARTORG0600H
START:
MOVTMOD,#51H;送方式字MOV
TH0,#3CH;T0赋初值MOVTL0,#0B0H
MOVIE,#82H;开T0中断MOVTH1,#00H;T1
清零MOVTL1,#00H
SETBTR0;开始计数SETRTR1
LOOP:
SJMP$;等待中断ORG000BH;入口地
址AJMPBTR0ORG0080H
BTR0:
CLRTR1;停计数
CLRTR0MOVA,TH1
CJNEA,#01H,NEXT1;判断TH1的计数是否大于01H,SJMPNEXT2NEXT1:
JCBEGINJNCNEXT4NEXT2:
MOVk,TL1
CJNEA,#0F4H,NEXT3;等于则比较TL1的计数值和
#0F4的大/」、SJMPNEXT4NEXT3:
JCBEGINJNCNEXT4
NEXT4:
MOVA,#99H;大于01F4H则输由9999
MOVP1,AMOVP2,A
LJMPLAST;长转移
BEGIN:
MOVATL1;小于01F4H则转换为十进制,以下程序段为十进制转换MOVB,#14HMULABMOVR2,BMOVB,#10HDIVABMOVRO,AMOV
R1,BMOVA,TH1MOVB,#14HMULABADDA,R2第10页共13页贵州大学课程设计
MOVB,#10HDIVABMOVR2,BMOVR7,AMOVB,#06HMULABMOVB,#0AHDIVABMOV
40H,AMOV41H,BMOVB,#06HMOVA,R0MULABMOVB,#0AHDIVABMOVR3,AMOVR4,B
MOVA,R2MOVB,#06HMULABMOVB,#0AHDIV
ABMOVR5,AMOVR6,BMOVA,R1ADDA,R4
ADDA,R6ADDA,41HMOVB,#0AH
DIVABMOVR1,BADDA,R0ADDA,R3ADDA,R5MOVR0,AMOVA,R2MOVB,#05HMULABADDA,R0MOVR0,AMOVA,R7MOVB,#09H
第11页共13页
贵州大学课程设计
MULABMOVB,#0AHDIVABMOV42H,AMOVA,BADDA,R0
ADDA,40HMOVB,#0AHDIVABMOVR0,BMOVR3,AMOVA,R2MOVB,#02HMULABADDA,R3ADDA,42HMOVB,#0AHDIVABMOVR4,AMOVR5,BMOVA,R7MOVB,#04HMULABADDA,R4MOVB,#01HMULABADDA,R5MOVP1,AMOVA,R0MOVB,#10HMULABADDA,R1MOVP2,A
LAST:
MOVTH0,#3CHMOVTL0,#0B0H
MOVTH1,#00HMOVTL1,#00H
SETBTR1,SETBTR0RETIEND
第12页共13页;重装初值;停计数;开始
计数;返回;结束
贵州大学课程设计
第6节总结
课程设计是培养学生综合运用所学知识,发现,提由,分
析和解决实际问题,锻炼实践能力的重要环节,是对学生实
际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,从理论到实践,在一个星期的日子里,可以说得是苦多于甜,但是可
以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得由结论,才能创造价值,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师指导下,终于游逆而解。
第7节