基于cpld的频率计设计(毕业设计)(编辑修改稿)内容摘要:

0 ]OUTPUT43ENDD6101415CHEKFFINPUTCHOICEINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCSTARTCLRTRIGFSTDSEL [ 2 .. 0 ]TF18161719208 11 图 测频 模块逻辑图 测频 /测周期的实现 (1) 令 TF=0,选择等精度测频,然后在 CONTRL 的 CLR 端加一正脉冲信号以完成测试电路状态的初始化。 (2) 由预置门控信号将 CONTRL 的 START 端置高电平,预置门开始定时,此时由被测信号的上沿打开计数器 CNT1 进行计数,同时使标准频 率信号进入计数器CNT2。 (3) 预置门定时结束信号把 CONTRL 的 START 端置为低电平 (由单片机来完成 ),在被测信号的下一个脉冲的上沿到来时, CNT1 停止计数,同时关断 CNT2 对fs的计数。 (4) 计数结束后, CONTRL 的 EEND 端将输出低电平来指示测量计数结束,单片机得到此信号后,即可利用 ADRC()、 ADRB()、 ADRA()分别读回 CNT1和 CNT2 的计数值,并根据等精度测量公式进行运算,计算出被测信号的频率或周期值。 控制部件设计 如图 所示,当 D 触发器的输入端 START 为高电平时,若 FIN 端来一个上升沿,则 Q 端变为高电平,导通 FIN→ CLK1 和 FSD→ CLK2,同时 EEND 被置为高电平作为标志;当 D 触发器的输入端 START 为低电平时,若 FIN端输入一个脉冲上沿,则 FIN→ CLK1 与 FSD→ CLK2 的信号通道被切断。 12 D QC L K 2C L R CE E N DC L RF I NS T A R TC L K 1CF S D 图 测频与测周期控制部分电路 计数部件设计 图 中的计数器 CNT1/CNT2 是 32 位二进制计数器,通过 DSEL 模块的控制,单 片机可分 4次将其 32位数据全部读出。 脉冲宽度测量和占空比测量模块设计 根据上述脉宽测量原理,设计如图 (CONTRL2)所示的电路原理示意图。 图 脉冲宽度测量原理图 13 测量脉冲宽度的工作步骤如下: (1) 向 CONTRL2 的 CLR 端送一个脉冲以便进行电路的工作状态初始化。 (2) 将 GATE 的 CNL端置高电平,表示开始脉冲宽度测量,这时 CNT2 的输入信号为 FSD。 (3) 在被测脉冲的上沿到来时, CONTRL2 的 PUL 端输出高电平,标准频率信号进入计数器 CNT2。 (4) 在被测脉冲的下沿到来时, CONTRL2 的 PUL 端输出低电平,计数器 CNT2 被关断。 (5) 由单片机读出计数器 CNT2 的结果,并通过上述测量原理公式计算出脉冲宽度。 CONTRL2 子模块的主要特点是:电路的设计保证了只有 CONTRL2 被初始化后才能工作,否则 PUL 输出始终为零。 只有在先检测到上沿后 PUL 才为高电平,然后在检测到下沿时, PUL 输出为低电平; ENDD 输出高电平以便通知单片机测量计数已经结束;如果先检测到下沿, PUL并无变化;在检测到上沿并紧接一个下沿后, CONTRL2 不再发生变化直 到下一个初始化信号到来。 占空比的测量方法是通过测量脉冲宽度记录 CNT2 的计数值 N1,然后将输入信号反相,再测量脉冲宽度,测得 CNT2 计数值 N2 则可以计算出: 单片机主控模块 硬件电路 设计 AT89C51 单片机 AT89C51 单片机是一种带 4K字节 FLASH 存储器( FPEROM— Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器。 单片机 14 的可擦除只读存储器可以反复擦除 1000 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51 内部主要包含以下部件: ( 1) 一个 8 位 CPU; ( 2) 一个片内振荡器及时钟电路; ( 3) 4K 字节 ROM 程序存储器: ( 4) 128 字节 RAM 数据存储器; ( 5) 两个 16 位定时器 /计数器; ( 6) 可寻址 64K 外部数据存储器和 64K外部程序存储 器空间的控制电路; ( 7) 32 条可编程的 I/O 线(四个 6位并行 I/O 端口) ( 8) 一个可编程全双工串行口; ( 9) 具有五个中断源、两个优先级嵌套中断结构。 AT89C51 单片机各个管脚作用 : AT89C51 单片机各个管脚如 图 所示: 15 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 15vX1CR Y S T A LR11k R21 0 kC13 3 p fC23 3 p fC31 0 u f 图 AT89C51 单片机 最小系统及 管脚图 VCC/GND:供电电源。 P0 口:可以被定义为数据 /地址的低八位,能够用于外部程序 /数据存储器。 在FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时P0外部必须被 拉高。 P1 口:标准输入输出 I/O, P1口管脚写入 1后,被内部上拉为高,可用作输入。 在 FLASH 编程和校验时, P1口作为第八位地址接收。 P2 口:既可用于标准输入输出 I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。 P2口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 16 P3 口:既可以作标准输入输出 I/O,也可作为 AT89C51 的一些特殊功能口: 管脚 备选功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0外部输入) T1(记时器 1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 PSEN:外部程序存储器的选通信号。 在由外部程序存储 器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA / VPP:当 /EA 保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 17 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 74HC138 译码器 逻辑原 理图: A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U17 4 HC1 3 8 图 74HC138 译码器管脚图 3 线 8 线译码器 74HC138 译码器 的功能表: 输入 输出 0E 2E 3E 0A 1A 2A 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7Y H X X X H X X X L X X X X X X X X X H H H H H H H H H H H H H H H H H H H H H H H H L L L L L L H H H L H L L L H L L L L H H H L H H H L H H H。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。