基于AT98C51单片机数字频率计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页摘要51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和接受及应用,51系列单片机还会在继后很长一段时间占据嵌入式低端市场。重要的。,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用时非常重要的。随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。在电子技术中,频率是最基本的参数之一,并且与许测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。本设计所要介绍的是以单片机AT89C51为核心设计了一种量程自选的数字频率计。在本文的设计采用单片机内部的定时器/计数器对脉宽的机器周期数进行计数,从而求得被测信号的频率值,最后通过静态显示电路显示数值由于单片机内部振荡频率很高,所以一个机器周期的量化误差相当小,可以有效地提高低频信号的测量准确性。关键字:单片机,AT98C51,量程自选频率计第2页目录摘要····················································1一、设计目的············································3二、设计要求及指标······································3三、单元电路分析········································31、上拉电路··········································32、信号输入电路······································63、显示电路··········································7四、系统框图············································9五、仿真图··············································10六、仿真结果············································10七、软件介绍············································12八、心得体会············································13九、参考文献············································13附录源程序············································14第3页一设计目的1.掌握量程自选数字频率计的设计、组装与调试方法。2.熟悉集成元器件的选择和集成电路芯片的逻辑功能及使用方法。3.熟悉仿真软件的使用。二设计要求及指标1.输入信号的频率量程可以自动选择。2.测试结果用6位数码管显示。三单元电路分析1、上拉电路AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。主要性能1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定时器/计数器;8、六个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定时器;13、双数据指针;14、掉电标识符。第4页图1--AT89C51的实物图图2--引脚说明单片机AT89C51内部具有2个16位定时/计数器,定时/计数器的工作可以由变成来实现定时、计数和产生计数溢出中断要求的功能。在构成为定时器时,每隔几期周期加1(使用12MHz时钟时,每1us加1)这样以及其周期为基准可以用来测量时间间隔[6]。在构成计数器时,在相应的外部引脚发生从1到0的第5页的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入每隔及其周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个震荡周期),所以最大计数速率为时钟频率的1/24(使用12MHz时钟时,最大计数速率为500KHz)。定时/计数器的工作由相应的运行控制位TR控制,当TR置1,定时/计数器开始计数;当TR清0,停止计数。AT89C51由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。1.一般51单片机的P0口在作为地址/数据复用时不接上拉电阻。2.作为一般的I/O口时用时,由于内部没有上拉电阻,故要接上上拉电阻!!3.当p0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效;4.当P0口用来驱动NPN管子的时候,就需要上拉电阻的,因为此时只有当P0为1时候,才能够使后级端导通。在本设计中,AT89C51的P0接通过上拉电阻到VCC,提高单片机端口驱动能力,电阻限流保护。图3--AT89C51的P0接上拉电阻示意图第6页2、信号输入电路将6种不同的频率方波信号输入,利用双向开关进行选择索要测试方波的信号频率,所要进行测试的信号通过单片机AT89C51内部的定时器/计数器T0引脚,AT89C51执行内部程序的同时,检测到信号,经过“读-修改-写”的过程,将最好的运行结果通过数码管进行显示。图4--信号输入电路图第7页3、显示电路数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。1)静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2)动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。第8页图5--数码管显示原理显示字符共阳极段码共阴极段码0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FH图6--字符对应段码显示表第9页五总体电路仿真图六仿真结果1.SW2打向上面的位置2、SW2打向下面的位置:第10页3、SW1打向上面的位置4、SW1打向下面的位置:5、SW0打向上面的位置:第11页5、SW0打向下面的位置:七软件介绍1、KeilC51KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。1)、系统概述KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。2)、KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由第12页OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。2、ProtuesProtues软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译.八心得体会经过一段时间的努力,量程自选的频率计基本完成。但设计中的不足之处仍然存在。这次设计是我第一次自己设计电路,并用Proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了数字频率计量程自选功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计中遇到了各种各样的问题,而其中最困难的就在于设计好一个没有差错的电路了。设计电路时我总先根据各种要求画出草图再改正继而进行仿真看其是否符合要求。再则,再编制程序时虽然老师在课堂上讲的够好,但自己却总因为这样或那样的原因没有全部弄清楚,最终依靠老师和同学的帮助编制出来。在这次设计数字电压表的过程中遇到的这些问题,让我明白

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功