当前位置:文档之家› AT89C51单片机

AT89C51单片机

AT89C51单片机
AT89C51单片机

第一章绪论

随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代测量仪器。频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。对石英晶体振荡器,各种信号发生器,各种倍频和分频电路输出信号的频率需要测量;广播,电视,电讯,微电子技术等现代化的科学领域,更需要进行频率测量。

采用不同的测量原理,可以设计出不同结构的频率测量仪器,所以按测量原理来分,数字频率计可分为谐振式,比较式和计数式三类;按选用电路形式来分,它又可以分为模拟式和数字式两类。

通常能对频率和时间两种以上功能测量的数字化测量仪器,称为数字频率计,有时也称为通用计数器或电子计数器。当前较多采用的是数字频率计。计数式频率计是基于时间或频率的A/D转换原理,并依赖于数字计数技术发展起来的一类新型数字仪器。与其他电子仪器一样,数字频率计也经历了电子管,晶体管和集成电路等几个阶段,其性能日臻完善,功能不断扩大,若配以适当的插件或传感器,还可以对多种电量和非电量进行测量。

1.1 频率计的概述

数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。

本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz—10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。

1.2 频率计的主要性能

1.2.1. 测试功能

它表明数字频率计所具备的全部测试功能,一般包括测频,周期,累计脉冲数,频率比,时间间隔及自较等功能。

1.2.2. 测量范围

它说明不同功能的有效测量范围。如测频率时,测量范围是数字频率计处于正常工作条件下,被测信号的频率范围,一般用频率的上,下限值表示,低端大部分从10HZ开始;高端因不同的频率计而异。因此高端频率是确定低,中,高速计数器的依据。在测量周期时,测量范围常用周期的最大值,最小值表示。

1.2.3. 输入特性

数字频率计一般有2~3个输入通道,测试不同项目时,被测信号可经不同的通道输入仪器。输入特性是表明数字式频率计于被测信号源相连的一组特性参数,通常包括以下几个方面。(1)输入灵敏度。通常指仪器能正常工作的最小输入电压的有效值。常用的数字频率计的灵敏度在100mV左右。

(2)最大输入电压。指仪器所能允许的最大输入电压值,被测信号超过该值,则仪器不能保证正常工作,甚至会损坏。

(3)输入耦合方式。仪器设置AC和DC两种耦合方式。AC耦合时,被测信号经隔直电容输入,DC耦合时,被测信号直接进入输入电路。AC耦合时适用于测量带有直流电平的信号,DC耦合适用于低频脉冲或阶跃方波信号的测量。(4)输入阻抗。为了减轻信号源的负载,数字式频率计一般采用高频输入阻抗。输入阻抗由输入电阻和输入电容两部分组成。

1.2.4. 显示及工作方式

它表明可显示的内容,显示数字的位数,所用的显示器件以及一次测量完毕显示测量结果的持续时间。有的还说明电子计数器是“不记忆”显示方式或“记忆”显示方式。

1.2.5. 输出

仪器可以直接输出的标准频率信号有几种,而且可以表明输出测量数据的编码方式和输出电平等。

第二章方案选择及论证

2.1 方案论证和设计

方案一:系统测频、测周期部分采用中小规模数字集成电路,用机械功能转换开关换挡,完成测频率、测量周期及测脉宽等功能。该方案的特点是中小规模集成电路应用技术成熟,概念清楚,能可靠的完成频率计的基本功能,但由于系统功能要求较高,所以电路过于复杂。而且多量程转换开关使用不便。

方案二:采用测频集成芯片,如5G7226B是采用CMOS大规模集成电路工艺制造的单片电子计数器芯片。它只需外接几个元件就可以构成一台体积小、成本低的多功能通用计数器。其直接测量频率范围为0~10MHz,测周期范围为0.5us~10s;有4个内部闸门时间(0.01s、0.1s、1s、10s)可供选择;位和段的信号线均能直接驱动LED数码管,并且有益处指示;仅要求单一的5V直流电源供电,使用非常方便。

方案三:系统采用STC89C51单片机作为控制核心,门控信号由单片机产生。由于使用了单片机,使得整个系统具有极为灵活的可编程性,能方便地对系统进行功能扩展与改进。

以上方案均需使用小信号放大、整形通道电路来提高系统的测量精度和灵敏度。方案比较及其选用依据:

虽然方案一要比方案二简洁、新颖,可以满足系统设计的指标要求,但是不符合题意。采用带有运算器的单片机使本系统可以通过对软件改进而扩展功能,提高测量精度,因此我们采用方案三作为具体实施方案。

图1 系统总框图

2.2 基本设计原理

基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。秒信号结束时闸门关闭,计数器停止计数。由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率

fx=NHz。测频率原理分析:

若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:

fs=N/T 通常测量时间T取1秒或它的十进制时间。

2.3 设计思路

所设计的等精度宽范围的频率计用单片机AT89C51 、计数器74HC393 及D 触发器74HC74 等构成。利用外扩的计数器(如74HC393) 和单片机AT89C51 内含的16 位计数器来构成多位计数器分别对待测信号和标准信号计数。在待测信号和标准信号同步条件下,当标准信号的计数达到一定时,可对两个信号的计数进行处理来实现待测信号的测频。由于引进对标准信号的计数来定时,因此可达到与标准信号相当的精度。

采用的74HC393 最高计数频率可达39MHz ,比Maxim 公司的ICM7240 计数频率要高的多。若对外部信号进行分频计数,然后再利用AT89C51 对所测信号进行相对应的扩频,这样可使频率计的最高测量频率达GHz 数量级范围。由此达到频率计测量的宽范围的要求。

现讨论用AT89C51 和74HC393 扩展计数器对外部待测信号计数的工作原理,原理图如图5所示。

图2 74HC393 和AT89C51 扩展计数器测量待测信号原理图

使对待测信号计数的外部扩展的计数器74HC393 的最高计数位C7 引到AT89C51 的T0端,再利用AT89C51 的T0 口即可构成多位计数器。将AT89C51 的定时器/ 计数器设置为16 位的计数方式可构成24 位的计数器,若利用T0 定时器计数溢出中断还可构成总共32 位或32 位以上的计数器。可视具体应用场合而定。

2.4 系统组成

频率计由单片机89C51 、信号预处理电路、串行通信电路、测量数据显示电路和系统软件所组成,其中信号予处理电路包含待测信号放大、波形变换、波形整形和分频电路。

系统硬件框图如图3 所示。信号予处理电路中的放大器实现对待测信号的放大,降低对待测信号的幅度要求;波形变换和波形整形电路实现把正弦波样的正

负交替的信号波形变换成可被单片机接受的TTL/ CMOS 兼容信号;分频电路用于扩展单片机的频率测量范围并实现单片机频率测量和周期测量使用统一的输入信号。

图3 系统硬件框图

系统软件包括测量初始化模块、显示模块、信号频率测量模块、量程自动转换模块、信号周期测量模块、定时器中断服务模块、浮点数格式化模块、浮点数算术运算模块、浮点数到BCD 码转换模块。系统软件框图如图3 所示。

图4 系统软件框图

2.5 处理方法

本频率计的设计以AT89C51 单片机为核心,利用它内部的定时/ 计数器完成待测信号周期/ 频率的测量。单片机AT89C51 内部具有2 个16 位定时/计数器,定时/ 计数器的工作可以由编程来实现定时、计数和产生计数溢出中断要求的功能。在构成为定时器时,每个机器周期加1 (使用12MHz 时钟时,每1us 加1) ,这样以机器周期为基准可以用来测量时间间隔。在构成为计数器时,在相应的外

- 8 -

部引脚发生从1 到0 的跳变时计数器加1 ,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入每个机器周期被采样一次,这样检测一次从1 到0 的跳变至少需要2 个机

器周期(24 个振荡周期) ,所以最大计数速率为时钟频率的1/ 24 (使用12MHz 时钟时,最大计数速率为500 KHz) 。定时/计数器的工作由相应的运行控制位TR 控制,当TR置1 ,定时/ 计数器开始计数;当TR 清0 ,停止计数。

设计综合考虑了频率测量精度和测量反应时间的要求。例如当要求频率测量结果为3 位有效数字,这时如果待测信号的频率为1Hz ,则计数闸门宽度必须大于1000s。为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法。当待测信号的频率大于100Hz 时,定时/ 计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,这时要满足频率测量结果为3 位有效数字,则计数闸门宽度大于1s 即可。当待测信号的频率小于100Hz 时,定时/ 计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等于待测信号的周期。用方波作计数闸门,当待测信号的频率等于100Hz ,使用12MHz 时钟时的最小计数值为10000 ,完全满足测量精度的要求。

2.6 频率计的量程自动切换

在使用计数方法实现频率测量时,这时外部的待测信号为定时/ 计数器的计数源,利用软件延时程序实现计数闸门。频率计的工作过程为:首先定时/计数器的计数寄存器清0 ,运行控制位TR 置1 ,启动定时/ 计数器;然后运行软件延时程序,同时定时/计数器对外部的待测信号进行计数,延时结束时TR 清0 ,停止计数;最后从计数寄存器读出测量数据,在完成数据处理后,由显示电路显示测量结果。

在使用定时方法实现频率测量时,这时外部的待测信号通过频率计的予处理电路变成宽度等于待测信号周期的方波,该方波同样加至定时/ 计数器的输入脚。这时频率计的工作过程为:首先定时/ 计数器的计数寄存器清0 ,然后检测方波高电平是否加至定时/ 计数器的输入脚;当判定高电平加至定时/计数器的输入脚,运行控制位TR 置1 ,启动定时/计数器对单片机的机器周期的计数,同时检测方波高电平是否结束;当判定高电平结束时TR 清0 ,停止计数,然后从计数寄存器读出测

- 9 -

量数据,在完成数据处理后,由显示电路显示测量结果。

测量结果的显示格式采用科学计数法,即有效数字乘以10 为底的幂。这里设计的频率计用5 位数码管显示测量结果:前3 位为测量结果的有效数字;第4 位为指数的符号;第5 位为指数的值。采用这种显示格式既保证了测量结果的显示精度,又保证了测量结果的显示范围(0. 100Hz - 9. 99MHz) 。

量程自动转换的过程由频率计测量量程的高端开始。由于只显示3 位有效数字,在测量量程的高端计数闸门不需要太宽, 例如在10. 0 KHz -9919 KHz 频率范围,计数闸门宽度为10mS 即可。频率计每个工作循环开始时使用计数方法实现频率测量,并使计数闸门宽度为最窄,完成测量后判断测量结果是否具有3 位有效数字,如果成立,将结果送去显示,本工作循环结束;否则将计数闸门宽度扩大10 倍,继续进行测量判断,直到计数闸门宽度达到1s ,这时对应的频率

测量范围为100Hz - 999Hz。如果测量结果仍不具有3 位有效数字,频率计则使用定时方法实现频率测量。定时方法测量的是待测信号的周期,这种方法只设一种量程,测量结果通过浮点数运算模块将信号周期转换成对应的频率值,再将结果送去显示。这样无论采用何种方式,只要完成一次测量即可,频率计自动开始下一个测量循环,因此该频率计具有连续测量的功能,

同时实现量程的自动转换。

第三章系统的硬件设计

3.1 信号预处理电路

频率计信号预处理电路如图5 所示,它由四级电路构成。第一级为零偏置放大器,当输入信号为零或者为负电压时,三极管截止,输出高电平;当输入信号为正电压时,三极管导通,输出电压随着输入电压的上升而下降。零偏置放大器把如正弦波样的正负交替波形变换成单向脉冲,这使得频率计既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。放大器的放大能力实现了对小信号的测量,本电路可以测量幅度≥0. 5V 的正弦波或脉冲波待测信号。三极管应采用开关三极管以保证放大器具有良好的高频响应。第二级采用带施密特触发器的反相器7414 ,它用于把放大器生成的单向脉冲变换成与TTL/ CMOS 电平相兼容的方波。第三级采用十进制同步计数器74160 ,第二级输出的方波加到74160 的CL K,当从74160 的TC 输出可实现10分频(多个74160 的级连可以进一步扩展测频范围) 。第四级同样采用十进制同步计数器74160 ,第三级输出的方波加到它的CL K,从它的Q0 输出即可实现2 分频,且其输出为对称方波,方波宽度等于待测信号的周期,从而为测量信号周期提供基础。

图5 信号预处理电路

3.2 AT89C51单片机及引脚的说明

频率测量电路选用89C51 作为频率计的信号处理核心。89C51 包含2 个16 位定时/ 计数器、1个具有同步移位寄存器方式的串行输入/ 输出口和4 K×8 位片内FLASH 程序存储器。16 位定时/ 计数器用于实现待测信号的频率测量或者待测信号的周期测量。同步移位寄存器方式的串行输入/ 输出口用于把测量结果送到显示电路。4 K ×8 位片内FLASH 程序存储器用于放置系统软件。89C51 与具有更大程序存储器的芯片管脚兼容,如: 89C52(8 K×8 位) 或

89C55 (32 K×8 位) ,为系统软件升级打下坚实的物质基础。

单片机的外部计数口测频率的局限性分析:

在每个机器周期的S5P2期间,CPU采样引脚的输入电平。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个1到0的跳变需要两个机器周期,故外部脉冲频率不超过振荡器频率的1/24。

复位电路的基本功能是:系统上电时提供复位信号直至系统电源稳定后撤销复位信号,为可靠起见电源稳定后还要经一定的延时才撤销复位信号以防电源开关或电源插头分-合过程中引起的抖动而影响复位,有效的防止系统有时会出现一些不可预料的现象,如无规律可循的“死机”、“程序走飞”等。

89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。引脚说明:·VCC:电源电压·GND:地

·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。

- 12 -

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。

·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL 逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @ DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。

当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。·P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。·ALE:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,

每当访问外部数据存储器时将跳过一个ALE脉冲。

程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。

·VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。

当执行内部编程指令时,应该接到VCC端。

·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。·XTAL2:振荡器反相放大器的输出端。

在本次设计中,采用89C51作为CPU处理器,充分利用其硬件资源,结合D触发器CD4013,分频器CD4060,模拟转换开关CD4051,计数器74LS90等数字处理芯片,主要控制两大硬件模块,量程切换以及显示模块。

3.3 1s定时的实现

在频率计设计过程当中,如何实现1s 的定时时间是一个关键。一般思路是利用AT89C51 本身的定时器的软件中断来实现1s 的定时。此种方法由于要达到1s 的定时,必须用AT89C51 的定时中断的多次中断来实现。若每次软件定时50ms ,则需20 次中断才能达到1s。由于定时器的软件中断响应会存在延时,而且还会随着AT89C51 外部晶振频率的不同而不同,因此用软件中断很难调整到确定的1s 定时时间。并且由于内部定时器的计数频率是经过晶振频率的十二分频以后得到的,因此也很难达到所需的精度。用硬件来实现定时的硬件电路可将图3 中待测信号输入换成标准信号输入即可,本设计中为晶振输入。因此在整个频率计的设计中需用两片74HC393 来计数。硬件实现定时的方法是对标准信号,如晶振产生的时钟信号,用外部扩展的计数器和AT89C51 内部的计数器共同计数来实现。可将用于对标准信号计数的外部扩展计数器的最高位引到AT89C51 的T1 端,利用AT89C51 单片机的T1 口计数溢出中断可以实现对标准信号的计数和定时。若采用10MHz 晶振,要实现1s 定时,可由外部扩展的计数器和AT89C51 内部计数器构成的整个计数器计数,当其计数到10 兆个数后利用T1 口的计数器计数溢出中断来实现定时即可。要使用于定时的计数器达到10 兆个计数,仅需对AT89C51 的

T1 计数器设置计数初始值。同理,要实现0. 01s、0. 1s 和10s的定时,也仅需设置用于定时的标准计数器的初始值,这可用软件来设定。实践证明用此硬件计数器

- 14 -

计数定时方法可使所设计的频率计的精度得到提高,且易于对基准信号时钟进行调整,便于产品的后期调试工作。

3.4 同步问题的实现

除了定时信号的确定之外,在设计频率计时,还必须考虑基准信号和待测信号同步。若待测信号和基准时钟信号不同步,也很难达到所需的精度。下面介绍用74HC74 来实现同步,图6 是

同步原理图。

图6 同步原理图

工作原理:先使CD 端和D 端为低电平,在测量开始前使CD 和D 为高电平,然后靠待测信号的脉冲来使Q 端输出为高电平。用Q 端启动待测信号到达计数器输入端,同时也启动用于定时的对标准信号计数的计数器计数。当对标准信号计数的计数器计数时间到达1 秒定时时间后,使CD 和D 端为低电平,即可达到标准信号与待测信号的同步。然后再在AT89C51 的定时器中断子程序中处理两个信号计数器的计数值可得到待测信号的频率。利用此方法来实现信号的同步,可使设计的频率计的精度得到进一步提高。

3.5 数据显示电路

显示电路采用静态显示方式。频率测量结果经过译码,通过89C51 的串行口送出。串行口工作于模式0 ,即同步移位寄存器方式。这时从89C51 的RXD(P3. 0) 输出数据,送至串入并出移位寄存器74164 的数据输入口A 和B 从TXD( P3.

- 15 -

1) 输出时钟,送至74164 的时钟输入口CP。74164 将串行数据转换成并行数据,进行锁存。74164 输出的8 位并行数据送至8 段L ED ,实现测量数据的显示。使用这种方法主程序可不必扫描显示器,从而单片机可以进行下一次测量。这种方法也便于对显示位数进行扩展。

3.6 单元模块设计

3.6.1 整形放大电路的设计

整形放大电路采用如下图所示电路,该电路的关键点在于开关管V的选择,采用9018NPN

型高频开关三极管能很好的满足题目要求。电路如下:

图7 整形放大电路图

3.6.2 标准频率信号电路的设计

标准频率发生电路能产生12MHz的标准方波信号,其内部由12MHz的晶振与74LS04共同产生12MHz的正弦波后经过整形得到方波。

图8 标准频率信号基本电路图

3.6.3 等误差计数电路的设计

等误差测量电路的硬件电路如下图所示,其主要由单片机控制部分、同步门控部分、计数部分组成。单片机控制部分主要完成测量过程的控制、测量结果的处理和显示。单片机选用STC89C51,其中P1.0用于控制同步门D触发器74LS74产生同步的闸门信号,P1.2用于对74LS393组成的计数器清零。74LS393产生的溢出位送单片机的T0与T1口,由单片机进行

运算处理,并送出显示。

图9 等误差测量电路的硬件电路图

在图中OUT1为经整形和放大的被测信号,U4、U5为两个可控计数器,标准频率信号从U5的时钟输入端CLK1输入,其频率为csf;经整形后的被测信号从U4的时钟输入端CLK1输入,其频率为xf,测得xF。P1.0为门控信号,它是一个宽度为prT的脉冲。当门控信号为低电平时,经整形后的被测信号的上升沿通

过D触发器的CP端口则Q__

端的信号同时启动计数器U4、U5。U4、U5分别对被测信号(频率为xF)和标准信号(频率为csf)同时计数;当门控信号为高电平时,经整形后的被测信号的一个上升沿将使这两个计数器同时关闭。

设在一次预置门时间prT中对被测信号计数值xN,对标准信号的计数值为sN,

cs

即css

。对其两边微分得:

相关主题
文本预览
相关文档 最新文档