用51单片机完成等精度频率测量仪的设计(编辑修改稿)内容摘要:

极开路型双向 I/O 口, 也即地址 /数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“ 1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地 址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在 Flash 编程时, P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口: P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 与 AT89C51 不同之处是, 和 还可分别作 为定时 /计数器 2 的外部计数输入( )和输入( ), P2 口: P2 是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口 P2 写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时, P2 口送出高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行 MOVX @RI 指令)时, P2 口输出 P2锁存器的内容。 Flash 编程或校验时, P2 亦接收高位地址和一些控制信号。 P3 口: P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对 P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能 P3 口还接收一些用于 Flash 闪速存储 器编程和程序校验的控制信号。 RST:复位输入。 当振荡器工作时, RST 引脚出现两个机器存储以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址存储允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能存储器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 13 MOVC 指令才能将 ALE 激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN:程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器存储两次 PSEN 有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP:外部访问允许。 欲使 CPU 仅访问外部程序存储(地址为 0000H—FFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA端状态。 如 EA端为高电平(接 Vcc 端), CPU 则执行内部程序存储中的指令。 Flash 存储编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 AT89C52 主要性能 兼容 MCS51 指令系统; 8kB 可反复擦写 (大 于 1000 次) Flash ROM; 32 个双向 I/O 口; 256x8bit 内部 RAM; 3 个 16 位可编程定时 /计数器中断; 时钟频率 024MHz; 2 个串行中断,可编程 UART 串行通道; 2 个外部中断源,共 8个中断源; 2 个读写中断口线, 3级加密位; 低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; 1有 PDIP、 PQFP、 TQFP 及 PLCC 等几种封装形式,以适应不同产品的需求。 各部分电路图及电路工作原理分析 时钟脉冲电路 时钟脉冲电路的主要作用是对外发出时序控制信号,在 AT89C52 芯片上,XTAL1 和 XTAL2 分别为反向放大器的输入和输出,其中,当与本试验线路相同时,即使用内部时钟方式时, XTAL1 和 XTAL2 必须外接石英晶体和微调电容,其中电容 C C2 对振荡频率起稳定的作用,振荡频率应在 —— 12MHz。 该反向放大器可以配置为片内振荡器。 如采用外部时钟源驱动器件, XTAL2 应不接。 有西安交通大学城市学院本科生毕业设计(论文) 14 余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 产生的时钟信号送至单片机内部的各个部分,时钟频率越高,单片机控制器的节拍越快,运算速度也越快。 时钟电路可以简单定义如下:。 用于产生这个时间的电路就是时钟电路。 时钟电路一般由晶体振荡器、晶震控制芯片和电容组成。 时钟电路应用十分广泛,如电脑的时钟电路、电子表的时钟电路以及 MP3MP4 的时钟电路。 如图 35所示。 12Y1XTAL30pFC1C10030pFC2C100EA/VPP31XTAL119XTAL218RST9(RD)17(WR)16(INT0)12(INT1)13(T0)14(T1)15(T2)1(T2EX)2345678(AD0)39(AD1)38(AD2)37(AD3)36(AD4)35(AD5)34(AD6)33(AD7)32(A8)21(A9)22(A10)23(A11)24(A12)25(A13)26(A14)27(A15)28PSEN29ALE/PROG30(TXD)11(RXD)10GND20VCC40U3AT89C52GND 图 35 时钟方式 同步门逻辑控制电路 同步门逻辑控制电路由 D 触发器构成,由它来产生同步门信号 Ts。 在测试开始后,利用单片机的 作为预置门信号 Ts的输出线。 当 =1 时,在被测信号的上升沿作用下 D 触发器的输出 Q=1,使得单片机的 INT0 和 INT1 同时为1,启动单片机内部的定时 /计数器开始工作。 其中, T0 对被测信号的输出 Q 仍然为 1,因此两个计数器并不停止计数,直到随后而至的待测信号的上升沿到来时,才使得 D触发器的输出为 0,同步门关闭,两个计数器才同时停止计数。 如图 36所示。 15 图 36同步门逻辑控制电路 静态显示电路 显示电路是六位数码管的静态显示电路。 ( 1) 单片机系统扩展 LED 数码管时多用共阳 LED:共阳数码管每个段笔画是用低电平 (“ 0” )点亮的 ,要求驱动功率很小;而共阴数码管段笔画是用高电平 (“ 0” )点亮的,要求驱动功率较大。 通常每个段笔画要串一个数百欧姆的降压电阻。 ( 2)静态显示:各个数码管在现实过程中持续得到送显信号 ,与各数码管接口的 I/O 口线是专用的。 ( 3)动态显示: 各个数码管在现实过程中轮流得到送显信号, 与各数码管接口的 I/O 口线是共用的。 ( 4)静态电路显示特点:无闪烁,用元器件多, 占 I/O 线多,无须扫描,节省 CPU 时间,编程简单。 ( 5)动态显示电路特点:有闪烁,用元器件少,占 I/O 线少,必须扫描,花费 CPU 时间,编程复杂。 共阴极共阳极数码管 如图 37所示。 西安交通大学城市学院本科生毕业设计(论文) 16 图 37 共阴极与共阳极数码管 17 4 软件设计 KEIL51 软件简介 Keil IDE(u Vision2)集成开发环境是 Keil Software Inc/Keil Elektronik GmbH 开发的基于 MCS 8051 内核的微处理器软件平台,内嵌多种符合当前工业标准的开发工具,可以完成从 工程的建立和管理、编译、连接、目标代码的生成到软件仿真、硬件仿真等完整的开发流程。 尤其是 C语言编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时是非常理想的工具。 Keil 本身是一个纯软件工具,不能直接进行硬件仿真,必须挂接类似 TKS系列仿真器的硬件才可以进行仿真。 软件的模块化设计及各部说明 一个程序在编程以前,功能的分析和总结非常重要。 在此基础上进行自上而下的模块化划分,这样可以缩短程序的编制周期,而且维护方便。 还可以做成数据和操作分离的面向对象的 模式,这样更加增强了程序的灵活性。 通过对软件功能的分析,基于单片机控制测量的恒精度频率计可以用 4个模块来实现,如图 41所示,它们分别是:定时中断模块,计数模块,测量模块,显示模块。 这些模块的具体功能如下: 图 41软件模块图 定时中断模块 定时中断模块对预置门控制信号进行启动中断。 在系统时钟频率 f=12MHZ时, f0=f/12=1MHZ。 对被测信号和标准频率信号的测量的时间进行开启和关闭,对预置门信号定时中断。 计数模块 在闸门信号 开启时对被测信号计数,闸门信号开启时间为 1s,所以计数值即为被测信号的频率,计数值从 0~999999,计数模块要求的输出为 6位 10进制数。 计数模块的复位信号也是闸门信号,其复位电平与其它模块相反,低电平复定时中断 模块 计数 模块 测量 模块 显示 模块 主程序 西安交通大学城市学院本科生毕业设计(论文) 18 位,所以在闸门闭合时,计数模块复位,准备下一次计数。 当计数超过 999999时给出溢出标志,计数模块输出 111111111111111111111111。 测量模块 对计数所得的数据进行测量计算。 通过对被测信号和标准频率信号的周期测量,根据公式: f1/N1=f2/N2 得到: f1= f2﹡ N1/N2 测得被测信号的实际频率。 通过显示电路显示出来。 显示模块 显示模块先将输入的 6位十进制数的个位译码,加在七段数码管的段控制线上,在显示扫描时钟的作用下,选通个位上的数码管,个位上的数码管亮,其它数码管灭。 然后输出十位上数码管要显示的内容,选通十位上的数码管。 这样依次输出各位上的译码值,逐个选通数码管。 由于扫描频率为 1kHz,看起来不会有闪烁的感觉。 系统软件的设计主要是保证和硬件电路相结合,正确地实现等精度测量。 整个系统软件的设计采用了自顶向下的模块化的结构方式 ,将各个功能分成独立模块,由系统的监控程序统一管理执行。 系统的软件程序框图如图 42所示: 42软件程序框图 开始 开中断 初始化定时 /计 数 器 启动定时 /计 数 器 等待 Gate 变低 计数停止 数据处理计算 显示 等待 Gate 变高 19 5 系统仿真与调试 Proteus 软件简介 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件(该软件中国总代理为广州风标电子技术有限公司)。 它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。 它是目前最好的仿真单片机及外围器件的工具。 虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教 学的教师、致力于单片机开发应用的科技工作者的青睐。 Proteus 是世界上著名的 EDA 工具 (仿真软件 ),从原理图布图、代码调试到 单片机 与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。 是目前世界上唯一将 电路仿真 软件、 PCB设计软件和虚拟模型仿真软件合一的设计平台,其处理器模型支持 805 HC1 PIC10/12/16/18/24/30/DsPIC3AVR、 ARM、 8086 和 MSP430 等, 20。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。