《单片机课程设计基于mcs51单片机的频率计的设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计基于mcs51单片机的频率计的设计.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 方案论证微型计算机技术专业方向设计任务书题目名称:基于MCS-51单片机的频率计的设计专业 自动化 班级 姓名 学号 学校: 指导教师: 课程设计任务书课程名称:微型计算机技术设计题目:基于MCS-51单片机的频率计的设计系统硬件要求:1、最小系统设计:AT89C51单片机为本设计的控制器,包括外扩ROM,RAM各32KB (其大小由设计者自己设计),系统时钟电路、复位电路等构成的最小系统;2、频率计使用定时器的计数方式,记录频率的个数并显示;显示部分为LED动态显示设计;并有键盘设计;3、接口电路的设计:设计者扩展一个并行接口8155或8255,键盘设计由设计者根据需要设计键盘的数量
2、,显示采用LED显示,显示电路也根据显示的内容设计;4、有开机显示状态(如显示88.);软件设计: 1)主程序设计(包括初始化芯片,定时器,中断以及SP指针等); 2)各功能子程序设计,键盘子程序、显示子程序设计,定时,中断程序等;其他要求:1、 每位同学独立完成本设计。2、依据题目要求,提出系统设计方案。3、设计系统电路原理图。1、 调试系统硬件电路、功能程序。2、 编制课程设计报告书并装订成册,报告书内容(按顺序)(1)报告书封面(2)课程设计任务书(3)系统设计方案的提出、分析(4)系统中典型电路的分析(5)系统软件结构框图(6)系统电路原理图(7)源程序(8)课设字数不少于2000字成
3、绩评语 目录第一章 引言.-4-第二章 方案论证.-5- 2.1 采波选择方案.-5- 2.2 扩展I/O口芯片选择.-5- 2.3 理论分析与计算.-5-第三章 系统硬件设计.-5- 3.1 频率发生器的设计原理.-5- 3.2 整体结构设计.-5- 3.3 频率发生器的主机电路设计.-6- 3.4 系统整体原理图.-11-第四章 系统软件设计.-11- 4.1 测频软件实现原理.-11- 4.2程序清单.-11-总结.-12-参考文献.-12-附录.-13- 附录一:电路原理图.-13- 附录二:软件流程图.-13- 附录三:程序设计.-14-第1章 引言随着电子信息产业的发展,信号作为其
4、最基础的元素,其频率的测量在科技研究和实际应用中的作用日益重要,而且需要测频的范围也越来越宽。传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量范围低,精度低。因此我们需要寻找一种新的测频的方法。随着单片机技术的发展和成熟,用单片机来做为一个电路系统的控制电路逐渐显示出其无与伦比的优越性。因此本论文采用单片机来做为电路的控制系统,设计一个能测量高频率的数字频率计。用单片机来做控制电路的数字频率计测量频率精度高,测量频率的范围得到很大的提高。频率仪器是数字电路中一个典型应用,实际的硬件设计用到的器件较多,联机比较复杂,而且会产生比较大的延迟。随着复
5、杂可编程逻辑器件的广泛应用,将使整个系统大大简化。提高整体性能,它是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波,方波,三角波,尖脉冲信号和其他具有周期的信号的频率,而且还可以测量他们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪:可以测量电容做成数字电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪,计价器等。因此数字频率仪在测量物理量方面的广泛应用。频率计的设计原理实际上是测量单位时间内的周期数。这种方法免去了实测以前的预测,同时节省了划分频率的时间,克服了原来高频率采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。通常情况下计算每秒内
6、待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于1秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的时间隔就越长。闸门时间越短,测得频率值刷新据越快,但测得的频率精度就受影响。本论文的任务是设计一个基于单片机技术的数字频率计。主要介绍了整形电路、控制电路和显示电路的构成原理,以及其测频的基本方法。进行了相应的软硬件设计。本论文的任务是设计一个基于单片机技术的数字频率计。主要介绍了整形电路、控制电路和显示电路的构成原理,以及其测频的基本方法。进行了相应的硬软件设计。 第二章 方案论证 2.1采波选择方案 方案一:用定时器定时1s,用计数器记录1s内经过的
7、波的周期。 方案二:用计数器记录10次波峰,用定时器定时中间经历的时间。第一种方案波的周期接近一秒时,无法准确计数,进而无法得到波的频率,第二种方法免除了这个弊端因此选择方案二。 2.2外扩I/O口芯片选择 方案一: 8255A。操作方便,外扩I/O接口简单、实用。但所需控制端口太多。方案二:8155。操作方便,外扩I/O接口简单、实用,所需控制端口少。故选此方案。 2.3理论分析与计算 定时器部分:AT89C51本身带16位定时计数器,可以很方便的采用它来完成定时与计数功能,本设计需要一个可以自动装初值的计数器和一个可以定时尽量长的定时器。因此选用计数器T0和定时器T1。T0选用工作方式2可
8、以自动重装初值,T1选用工作方式1可以定时尽量长的时间,保证计时时间的充足。 第三章 系统硬件设计3.1 频率发生器的设计原理频率发生器系统由采样电路、控制芯片、显示组成。该系统采用AT89C51为主控芯片,用以控制采样、计算和控制显示。以8155作为扩展电路,用来完成开机显示和采样计算完成后的频率显示。在系统中运用定时中断和计数中断,来完成一定时间波的周期的采集,随后通过运算,计算出波的频率,进而经过处理后用数码管显示。频率计数开始用按键来控制,开始后完成一次计数并作处理显示检测波的频率。3.2 整体结构设计3.3 频率发生器的主机电路设计 ATC89C51可以完成ISP在线编程功能,ATC
9、89C51内部有EEPROM,可以在程序中修改,断电不丢失。还增加了两级中断优先级,STC推出的系列51单片机芯片是全面兼容其它51单片机的,而且51单片机是主流大军。189C51芯片介绍 许多由关硬件设计中都使用到单片机89C51,其功能7比以往的单片机强大的多。89C51引脚图如图3-1所示。 图3-1 89C51引脚图芯片引脚功能:主电源引脚Vcc和VssVcc(40脚):接5V电压;Vss(20脚):接地。89C51晶振接法如图3-2。 图3-2 89C51晶振接法图选用6MHz频率的晶体,允许输入的脉冲频率为250kHz。电容的大小范围为20pF40pF,本设计选用30pF电容。2单
10、片机复位状态单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟震荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST引脚保持10ms以上的高电平。只要保持高电平,则MCS-51单片机就循环复位;当RST从高电平变为低电平以后,MCS-51单片机从0000H地址开始执行程序。在复位有效期间,ALE、 引脚输出高电平。89C51上电复位电路图。图3-3 89C51上电复位电路图单片机复位状态表。 表 3-4 单片机复位状态表专用寄存器复位状态专用寄存器复位状态PC0000HTMOD00H
11、ACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0P3FFHSCON00HIPXXX0 0000BSBUFXXXX XXXXBIE0XX0 0000BPCON0XXX XXXXB 注:XXX不定复位后,P0口P3口输出高电平,且使这些准双向口皆处于输入状态,并且将07H写入栈指针SP(即设定堆栈底为07H),同时,将程序计数器PC和其余的特殊功能寄存器清为0(不定的位除外)。但复位不影响单片机内部的RAM状态 3. 显示器在单片机系统中,常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器
12、。而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。LED段显示器结构与原理LED显示器是由发光二极管显示字段组成的显示块,有7段和“米”字段之分。这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管(在图中以dP表示)用于显示小数点。通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号。LED显示块中的发光二极管共有两种连接方法:(1)共阳极接法发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。(2)共阴极接法发光二极管的阴极连
13、在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。数码管引脚如图3-5。图3-5 数码管引脚图共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段dP、g、f、e、d、c、b、a对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示P字符,
14、即对于共阴极LED显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。用LED显示器显示十进制转换成十六进制数的字形代码在表3-6中列出。表3-6 LED十六进制的数字代码表字形共阳极代码共阴极代码字形共阳极代码共阴极代码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3BOH4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH 4. 定时器部分:AT89C51本身带16位定时计数器,
15、可以很方便的采用它来完成定时与计数功能,本设计需要一个可以自动装初值的计数器和一个可以定时尽量长的定时器。因此选用计数器T0和定时器T1。T0选用工作方式2可以自动重装初值,T1选用工作方式1可以定时尽量长的时间,保证计时时间的充足。3.4 系统整体原理图 第四章 系统软件设计4.1 测频软件实现原理测频软件的实现是基于电路系统来进行设计的。本次设计采用的是脉冲定时测频法,所以在软件实现上基本遵照系统的设计原理,进行测频。本次软件设计语言采用汇编语言,在电脑上编译通过后即可下载到电路上的实际电路中,即可实现频率的测量。4.2 程序清单 单片机主要完成的工作是:开机显示,设定定时器计数器初值,波
16、频率采集并计算,控制数码管显示处理后的数据。 程序见附件。 总结 通过此次设计,我们小组的成员都受到了极大的锻炼,对团队合作的重要性有了深刻认识,虽然我们面对的是一个相对简单的课题,但由于初次进行基于单片机的课题设计,所以在设计过程中,我们遇到了一些困难,也经历一次又一次的困惑,最终我们尝试着美化我们的设计,以实现更多的功能和提高可操纵性。经过一周不断研究与尝试,最终成功的完成了对频率计的设计。这不仅增强了我们对单片机课程设计与实践的兴趣,更掌握了程序设计各个模块的设计方法与连接。具备了这些基本知识,为今后的自主学习奠定了良好的基础。本设计综合性较高,设计的时候一开始找不到头绪,不知道应该从哪
17、下手,直到小组讨论后,才弄清楚频率计设计中应该包括哪些部分,然后一起讨论写出了基本程序。然而遇到的挫折这不仅仅在于编程,再后来的调试过程中先后出现了各种问题,比如程序跳转出现问题,按键没有反应,调试没有反应等等。经过一次次的失败,一次次的编译执行,最终能够正确的测量和显示频率。 本次设计是以AT89C51为控制核心的频率计。系统由采样电路、控制芯片、显示组成。通过单片机控制定时与采样,采集外部波的周期进而计算出频率。通过单片机程控使最终处理结果显示在数码管上。此频率计可以完成中频波的频率采集显示。但是本设计还存在很多不足,对于高频和低频信号采集不准确,采集范围不太广。希望在以后的学习中能逐步改
18、善。课程设计过程是一个不断追求成功与完美的过程,然而这个过程确实给我们教育最深刻,我们小组一起讨论,在加深了我们友谊的同时教会了我们对待科学工作要有谨慎的态度,也为我们将来走向工作岗位奠定了基础。 参考文献【1】胡汉才 单片机原理及其接口技术(第三版)清华大学出版社【2】黄庆华,张永格.单片机开发技术和实训【M】. 【3】电子技术基础模拟部分(第四版)【M】.高等教育出版社.1996(2004重印).【4】全国大学生电子设计竞赛训练教程【M】.电子工业出版社.2005-1.【5】数字电子技术基础【M】高等教育出版社.1998-12.【6】仪器仪表学报【J】第33卷第六期.2012 附录附录一:
19、电路原理图附录二:软件流程图主程序流程图子程序流程图附录三:程序设计OVT EQU 30H ;计数器T0溢出次数BCHU_1 EQU 40H ;多字节除法寄存器BCHU_2 EQU 41HBCHU_3 EQU 42HCHU_1 EQU 44HCHU_2 EQU 45HCHU_3 EQU 46HM EQU 47HN EQU 48H ORG 0000H LJMP MAIN ORG 0000BH LJMP BRT0 ORG 001BH LJMP BRT1 ORG 0050HMAIN: MOV A,#03H ;8155工作方式; MOV DPTR,#8000HMOV X DPTR,AMOV A,#7F
20、H MOV DPTR,#8001HMOV X DPTR,AMOV A,#0C0H MOV DPTR,#8002HMOV DPTR,A MOV TMOD,#16H ;计数器0工作于方式2,定时器1工作于 方式1 SETB EA ;开总中断开关 IE=10H CLR ET0 ;关闭定时计数器开关 CLR ET1 ;关闭定时计数器开关 CLR TF0 ;清定时器0中断申请标志位 CLR TF1 ;清定时器1中断申请标志位 LOOP: MOV P1,#0FFHMOV A,P1JB ACC.0,$LCALL LOOP1 ;测试频率 LCALL LOOP2 ;数码管显示 LCALL DELAY AJMP
21、LOOPBRT0: INC OVT RETIBRT1: INC R2 RETILOOP1: MOV OVT,#00H 计数器溢出次数为0 MOV R2,#00H ;清零计数 MOV TH0,#0F6H MOV TL0,#0FFH ;测10个脉冲 MOV TH1,#00H MOV TL1,#00H ;定时器 CLR TF0 CLR ET0 SETB TR0 ;开计数器T0开关 JNB TF0,$ ;判断脉冲是否到,到了开始计时 CLR TF0 SETB TR1 ;开定时器1 CLR TF1 ;清中断标志位 SETB ET1 ;开定时器1中断 JNB TF0,$ ;10个周期脉冲到否,到了关闭定时
22、器 CLR TR0 CLR TR1 ;关闭定时计数器 CLR TF0 CLR TF1 ;清中断标志位 CLR ET0 CLR ET1 ;关闭定时计数器中断 MOV BCHU_1,#80H MOV BCHU_2,#96H MOV BCHU_3,#98H MOV BCHU_4,#00H ;公式F=10000000/T(1MS-50US) MOV A,TL1 MOV CHU_1,A MOV A,TH1 MOV CHU_2,A MOV A,R2 MOV CHU_3,A MOV R0,#BCHU_1 MOV R1,#CHU_1 MOV M,#4 MOV N,#3 LCALL LOOP3 MOV R7,B
23、CHU_1 MOV R6,BCHU_2 MOV R5,BCHU_3RET除法程序LOOP3 : MOV A,M CLR C SUBB A,N ;M-N字节差存到B MOV B,A ADD A,R0 ;取被除数第N字节 MOV R4,A ;保存到R4 XCH A,R0 ;R0指向被除数第N字节,并把R0中的值放到A MOV R3,A ;把R0中的值保存至R3 MOV A,R1 ;除数头字节地址送至A MOV R5,A ;除数头字节地址存至R5 MOV R2,#00H ;CHU1 : MOV R7,N CLR CCHU2 : MOV A,R0 SUBB A,R1 MOV R0,A INC R0 I
24、NC R1 DJNZ R7,CHU2 MOV A,R4 MOV R0,A MOV A,R5 MOV R1,A JC NDVMN3 ;有错位被除数比除数小 INC R2 SJMP CHU1CHU3 : MOV R7,N CLR CCHU4 : MOV A,R0 ;恢复余数 ADDC A,R1 MOV R0,A INC R0 INC R1 DJNZ R7,CHU4 MOV A,#08H MUL AB MOV B,ACHU5 : MOV A,R3 MOV R0,A MOV R7,M CLR CCHU6 : MOV A,R0 RLC A MOV R0,A INC R0 DJNZ R7,CHU6 MOV
25、 F0,C MOV A,R4 MOV R0,A MOV A,R5 MOV R1,A MOV R7,N CLR C RET显示程序LOOP2: MOV A,R5PUSH A ANL A ,#0FHADD A , #57 地址调整MOVC A, A+PCMOV DPTR, #8001HMOVX DPTR, AMOV DPTR, #8002HMOV A , #0FEHMOVX DPTR, APOP ASWAP AANL A , #0FHADD A , #45MOVC A , A+PCMOV DPTR, #8001HMOVX DPTR , AMOVDPTR , #8002HMOV A , #0FDHM
26、OVX DPTR, AMOV A,R6PUSH A ANL A ,#0FHADD A , #33 地址调整MOVC A , A+PCMOV DPTR , #8001HMOVX DPTR , AMOVDPTR, #8002HMOV A , #0FBHMOVX DPTR APOP ASWAP AANL A , #0FHADD A , #21MOVC A , A+PCMOV DPTR, #8001HMOVX DPTR , AMOVDPTR, #8002HMOV A , #0F7HMOVX DPTR , AMOV A,R7PUSH A ANL A ,#0FHADD A , #19 地址调整MOVC A
27、, A+PCMOV DPTR, #8001HMOVX DPTR, AMOVDPTR, #8002HMOV A , #0EFHMOVX DPTR , APOP ASWAP AANL A , #0FHADD A , #08HMOVC A , A+PCMOV DPTR, #8001HMOVX DPTR, AMOVDPTR , #8002HMOV A , #0DFHMOVX DPTR, ARETTABLE: DB 3FH, 06H, 5BH, 4FH, 66H, DB 6DH 7DH 07H 7FH 6FH ;-;延时子程序DELAY: MOV R6,#0FHDELAY1:MOV R7,#0FHDELAY2:NOP DJNZ R7,DELAY2 DJNZ R6,DELAY1 RET END20