版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、等级: 课 程 设 计课程名称单片机原理及应用课题名称频率计数器专 业 班 级测控技术与仪器学 号201301200135姓 名傅名扬指导老师寻大勇等2016年3月11日电气信息学院课程设计任务书课题名称频率计数器姓 名傅名扬 专业测控技术与仪器班级1301学号35指导老师寻大勇课程设计时间2016年2月29日-2016年3月11日教研室意见意见: 审核人:一、任务及要求设计任务:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果能够显示出来。要求能够对0250KHz的信号频率进行准确计数,计数误差不超过±1HZ。设计要求:(1)确定系统设
2、计方案;(2)进行系统的硬件设计;(3)完成应用程序设计; (4) 应用系统的硬件和软件的调试。二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。周二周三:完成硬件设计和电路连接周四周日:完成软件设计第二周:周一周三:程序调试周四周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考资料1、王迎旭等.单片机原理及及应用. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010目 录第1章 设计任务及要求11.1设计任务11.1设计要求21.3设
3、计目的2第2章 系统方案设计32.1频率计数器的基本原理32.2总体方案4第3章 系统硬件电路设计52.2总体方案42.2总体方案4第4章 系统软件设计6 4.1总体思路74.2局部设计8第5章 系统仿真及调试10参考文献11附录A 仿真图12附录B 程序清单13第1章设计任务及要求11设计任务:本课题以单片机为核心,设计和制作一个频率计数器,来完成对输入的信号进行频率计数,计数的频率结果能够显示出来。要求能够对0250KHz的信号频率进行准确计数,计数误差不超过±1HZ。12设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4)应用系统的硬件和软
4、件的调试。1.3设计目的(1)了解定时、计数器的结构及其工作原理;(2)掌握单片机的定时、计数器的控制方式;(3)掌握应用单片机进行频率测试控制的原理;(4)能根据设计任务要求编制数显频率计数器的程序,理解程序对计数器的控制原理;(5)会利用电路仿真软件绘制数显频率计数器的电路原理图; (6)会用KeilC51软件对源程序进行编译调试及与Proteus软件联调,实现电路仿真。第2章 系统方案设计21率计数器的基本原理频率的测量实际上就是在1S时间内对信号进行计数,计数值就是信号频率。也就是用一个频率稳定度高的频率源作为基准时钟, 对比测量其他信号的频率。通常情况下计算每秒内待测信号
5、的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。测量一个信号的频率有两种方法:第一种是计时法,用基准信号去测量被测信号的高电平持续的时间,然后转换成被测信号的频率。第二种是 计数法,计算在基准信号高电平期间通过的被测信号个数。根据设计要求 测量0HZ250KHZ的正弦信号,首先要将正弦信号通过过零比较转换成方 波信号,然后变成测量方波信号。如果用第一种方法,当信号频率超过 1KHZ 的时候测量精度将超出测量精度要求,所以当被测信号的频率
6、高于 1KHZ 的时候需要将被测信号进行分频处理。如果被测信号频率很高需要 将被测信号进行多次分频直到达到设计的精度要求。本课程设计采用 AT89C51 单片机为控制器件来制作一个0HZ250KHZ 的频率计数器,并将 所得到的频率通过数码管显示出来。根据设计要求用单片机的内部T0 生基准信号,由INTO输入被测信号,通过定时方式计算被测信号的持续 时间。通过单片机计算得出结果,最后通过数码管显示测量结果。系统的原理框图如下图所示: 频率源AT89C51单片机数码显示管22总体方案系统采用AT89C51单片机作为控制核心,门控信号由AT89S51 内部的 计数定时器产生,单位为1s。由于单片机
7、的计数频率上限较低(12MHZ 完成运算、控制及显示功能。由于使用了单片机,使整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。原理图如下图:在本设计方案中,我通过程序设定T0工作在计数状态下,T1工作在计时状态下。T0计数器对输入的信号经行计数,其最大计数值为fOSC/24, 当fOSC=12MHz 时,T0的最大计数频率为500kHz。由于信号的频率就是每秒钟信号脉冲的个数,于是我让T1工作在定时状态下,定时时间为1每定时1秒钟到,就停止T0的计数,然后从T0的计数单元中读取计数的数值,即完成了信号频率的测量,最后通过六位数码管显示出频率值。单片机处理数码管显示。第3章 系
8、统硬件电路设计3.1 主要控制模块 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
9、AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。 管脚说明:VCC:供电电压。 GND:接地。 P0:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部 必须被拉高。 P1:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输 出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入, P1口被外部下拉为低
10、电平时,将输出电流,这是由于内部上拉的缘故。 在FLASH编程和校验时,P1口作为第八位地址接收。 P2:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外 部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收 高八位地址信号和控制信号
11、。 P3:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门 电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由 于上拉的缘故。P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部 输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选 通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程 校验接收一些控制信号。I/O口作为输入口时有两种工作方式即所谓的
12、读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁 存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁 存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发 出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看 上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为 0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以
13、使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入 操作时还必须附加一个准备动作所以这类I/O口被称为准双向口 89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另 一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高 电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存 地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外
14、部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行 MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP :当/EA 保持低电平时,则在此期间外部程序存储器 (0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定
15、为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的3.2时钟模块如图所示是采用内部振荡方式使 8051 单片机产生时钟信号,在单片 机芯片的X1 和X2 引脚两端跨接石英晶体振荡器和两个电容构成稳定的自激振荡电路,其中电容对振荡频率起微调作用,晶振频率为12MHZ。3.3复位模块 复位是单片机的初始化操作,其功能是CPU 从000H 单元开始执行程序, 除了使系统正常初始化,当程序运行出错或操作错误使系统处于锁死状态时,为摆脱困境,也
16、需要按复位键重新启动。如图为按键手动复位方式, 通过复位端经电阻和电源+5V 接通实现复位功能。3.4 显示模块本次设计中采用了LED显示器,即数码管。数码管的每一个数码段是 一只发光二极管。当发光二极管导通时,相应的一个点或者一个笔画发光, 控制发光二极管发光组合,可以显示出所需字符。本电路采用的是共阴的 数码管,其编码如下: 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40 语言程序为:unsignedchar code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,
17、0x7f,0x6f,0x00,0x40; 第4章 系统软件设计4.1 总体思路根据课程设计所要求的功能,在KEIL51 开发环境下编译程序,首先要定义相关参量,然后初始化中断,打开外中断,T0 是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大的计数值为f OSC /24,由于f OSC 12MHz, 因此: T0 的最大计数频率为 250KHz。对于频率的概念就是在一秒计数脉冲的个数,即为频率值。所以T1 工作在定时状态下,每定时1 秒中到,就停止T0 的计数,而从T0 的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。 T1 工作在定时状态下,最
18、大定时时间为65ms,达不到1 秒的定时,所以采用定时50ms,共定时20 次,即可完成1 秒的定时功能。参考相关资料编译实现相关功能程序,实现课程设计所要求的功能,其大致流程为:初始化 T0/T1 初始化(设置T0 部脉冲计数,T1为1S 定时) P3*2接受外 部中断请求 T1 定时器 是否达到1S 计数显示 结束 12 按照程序流程图把编写好的程序用KEIL-51 单片机编译系统编译,编译成 功后,再把程序转换为可执行文件。4.2局部设计在程序编写过程中首先要考虑数码管是共阴还是共阳的,不同的数码管的结构不一样,所采用的编码也不一样, 本电路采用的是共阴的数码管,所以其编码: 0x3f,
19、0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40 熄灭所用C 语言程序为:unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40; 接下来要考虑哪个口做定时器哪个口做计数器接口,该电路的设计思做定时器接口,而T0做计数器接口,并且还要考虑定时器/计 数器的工作模式,根据设计思路来设计程序,故编写出了如下的C 语言程 序:TMOD 位寄存器,用于控制T0和T1 的工作方式和工作模式。低4 位用于T0,高4 位用于T1
20、。我们要将T0 口作为定时器那么低四位中的位的编码应该为1,而将T1口作为计数器接口那么高四位中的C/ 的编码应该为0,并且要使T0和T1 都工作在模式1 方式,那么其编码都应该为01,所以就有编码为00010101,转化为十六进制编码就是0x15。 所以有TMOD=0x15 TH0=0; /初始化计时器1 的高位 TL0=0; /初始化计时器1 的低位 TH1=(65536-4000)/256;/初始化计时器1 的高位 TL1=(65536-4000)%256;/初始化计时器1 的低位 TR1=1; /开计时器1 TR0=1; /开计时器0 ET0=1; /开外部计时中断0 13 ET1=1
21、; /开外部计时中断1 EA=1; /开总中断 定义完了定时器和计数器以及中断的内容之后进入主程序的编写,编写完所有程序之后进行编译并将生成的可执行文件后写入AT89C51 单片机。此时单片机上显示6 位全零,加入信号源时数码管 能显示输入信号的频率说明程序基本上没有问题了。心得体会本次实习让我们体味到设计电路、连接电路、调测电路过程中的乐苦与酸甜。设计是我们将来必需的技能,这次实习恰恰给我们提供了一个应用自己所学知识的机会,从到互联网上查阅资料到对电路的设计对电路的调试再到最后电路的成型,都对我所学的知识进行了检验。在实习的过程中发现以前学的单片机知识掌握不牢。同时,在设计的过程中,我遇到了
22、一些以前没有见到过的元件,于是我通过查找资料来学习认识这些元件的功能和作用。 制作是一个考验人耐心的过程,不能有丝毫的急躁,马虎,对电路的检查要一步一步来,最重要的是要熟练地掌握课本上的知识,这样才能对试验中出现的问题进行分析解决。在整个课程设计完后,最大的感觉是:有收获。以前上课都是上一些最基本的东西而现在却可以将以前学的东西作出有实际价值的东西。在这个过程中,我的确学得到很多在书本上学不到的东西,如:如何利用现有的元件组装得到所需产品、利用计算机来画图等等。但也遇到了不少的挫折,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是接头的方向接错了,有时更是忘接电源了。在学习中的小问
23、题在课堂上犯的很少,在动手的过程中却犯的很多。特别是在接电路时,一不小心就会犯错,而且很不容易检查出来。但现在回过头来看,还是挺有成就感的。我的动手能力又有了进一步的提高,这让我甚是欣慰。通过紧张有序的设计实践,在完成目标的那一刻,不知不解自信心也增强了.在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这又巩固和深化了自己的知识结构。由于种种原因,我们实习之前准备严重不足,包括心理上和自身能力上。不过最终还是圆满的完成了给定的目标。不辱使命!当然也要特别感谢学校给我们这次学习的机会。这次课设对我来说意义非凡,和老师同学们一起为之奋斗的过程也是一份难以忘怀的美好回忆。 参考文献
24、1.单片机原理与应用 机械工业出版社2.51 系列单片机设计实例 北京航空航天大学出版社3.计算机硬件技术基础实验教程 重庆大学出版社4.微型计算机接口技术及应用 刘乐善主编 华中科技大学出版社 5.单片微型计算机原理及接口技术陈光东等 华中科技大学出版社附录A:仿真图 附录B:源程序 #include <AT89X51.H>Unsigned char code dispbit= 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f;/共阴数码管选通数组unsigned char code dispcode= 0x3f, 0x06, 0x5b
25、, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f,0x6f,0x00,0x40;/数码管显示的数字数组unsigned char dispbuf8=0,0,0,0,0,0,10,10;/数码管显示内容数组unsigned char temp8;/数码管显示内容缓冲数组 unsigned char dispcount;/显示计数unsigned char T0count; /计时器0的计数 unsigned char timecount; bit flag; /频率计开始工作标志位 unsigned long x; /八个数码管显示的数 void main(void) un
26、signed char i; TMOD=0x15;/设置两个计时器模式 TH0=0; /初始化计时器1的高位 TL0=0; /初始化计时器1的低位 TH1=(65536-3991)/256;/初始化计时器1的高位 TL1=(65536-3991)%256;/初始化计时器1的低位 TR1=1; /开计时器1 TR0=1; /开计时器0 ET0=1; /开外部计时中断0 ET1=1; /开外部计时中断1 EA=1; /开总中断 while(1) if(flag=1) flag=0; x=T0count*65536+TH0*256+TL0; for(i=0;i<8;i+) / tempi=0; /清缓冲数组内容 i=0; while(x/10) tempi=x%10; /把个位数给缓冲区 x=x/10; i+; tempi=x; / 把十位数给缓冲 for(i=0;i<6;i+) dispbufi=tempi;/把高六位的数给显示缓冲区 timecount=0;/清0 T0count=0; TH0=0; TL0=0; TR0=1; void t0(void) interrupt 1 using 0 /中断计时器0实行的函数 T0count+; vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 函数的奇偶性、周期性-2026高三一轮复习讲与练
- 患者日常护理方法
- 2025年财务管理综合测试题及答案
- 2025年《政策法规与导游服务》考试试卷及答案
- (2025年)口腔组织病理学题库及答案
- 2025年电工考试安规题库及答案
- (2025年)教师职业道德与教育法律法规试题(含答案)
- 学习方法我最多
- 口腔科龋齿防治技术要点培训指南
- 传统成本管理的内容与方法
- 乳腺癌转移护理查房
- 医保政策讲解与培训课件
- 无人机快递技术-无人机的应用
- 白茶及加工工艺
- 教师读书记录表
- 质量控制计划QCP
- 避暑山庄汇编课件
- 第八章-材料工程-伦理问题-全
- GB/T 4937.3-2012半导体器件机械和气候试验方法第3部分:外部目检
- GB/T 41304.1-2022知识管理方法和工具第1部分:工艺知识管理
- GB/T 27734-2011压力管道用聚丙烯(PP)阀门基本尺寸公制系列
评论
0/150
提交评论