- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京化工大学
2012年生产实习报告
实习项目 ADC0809采样控制电路的实现
其中,ALE为地址锁存允许输入端,该信号的上升沿使多路开关的地址码ADDA、ADDB、ADDC锁存到地址寄存器中。
ST为启动信号输入端,此输入信号的上升沿使内部寄存器清零,下降沿使A/D转换器开始转换。
EOC为A/D转换结束信号,它在A/D转换开始,由高电平变为低电平;转换结束后,由低电平变为高电平。此信号的上升沿表示A/D转换完毕,常用作中断申请信号。
OE为输出允许信号,高电平有效,用来打开三态输出锁存器,将数据送到数据总线。
D7- -D0为8位数据输出端,可直接接入数据总线。
CLK为时钟信号输入端,时钟的频率决定A/D转换的速度。A/D转换器的转换时间Tc等于64个时钟周期。CLK频率范围为10——1280KHz。当时钟脉冲频率为640KHz时,Tc为100us。
REF(+)和REF(-)为基准电压输入端,他们决定了输入模拟电压的最大值和最小值。
?
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。如下表所示
???
?????????? ADDA、ADDB、ADDC真值表
三 硬件设计、焊接与调试
四 软件设计与仿真
1、VHDL代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ADCINT IS
PORT (D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CLK,EOC:IN STD_LOGIC;
ALE,START,OE,ADDA,LOCK0:OUT STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ADCINT;
ARCHITECTURE behav OF ADCINT IS
TYPE states IS (st0,st1,st2,st3,st4);——定义各状态子类型
SIGNAL current_state,next_state:states:=st0;
SIGNAL REGL :STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL LOCK :STD_LOGIC;——转换后数据输出锁存时钟信号
BEGIN
ADDA=1;——当ADDA=’0’,模拟信号进入0809通道0;当ADDA=’1’;则进入通道1
Q=REGL;LOCK0=LOCK;
COM1:PROCESS(current_state,EOC) BEGIN ——规定各状态转换方式
CASE current_state IS
WHEN st0= next_state=st1; ——0809初始化
WHEN st1= next_state=st2; ——启动采样
WHEN st2= IF(EOC=1)THEN next_state=st3;——EOC=1表明转换结束
ELSE next_state=st2;——转换未结束,继续等待
END IF;
WHEN st3= next_state=st4;——开启OE,输出转换好的数据
WHEN st4= next_state=st0;
WHEN OTHERS=next_state=st0;
END CASE;
END PROCESS COM1;
COM2:PROCESS(current_state) BEGIN
CASE current_state IS
WHEN st0=ALE=0;START=0;LOCK=0;OE=0;
WHEN st1=ALE=1;START=1;LOCK=0;OE=0;
WHEN st2=ALE=0;START=0;LOCK=0;OE=0;
WHEN st3=ALE=0;START=0;LOCK=0;OE=1;
WHEN st4=ALE=0;START=0;LOCK=1;OE=1;
WHEN OTHERS=ALE=0;START=0;LOCK=0;
END CASE;
END PROCESS COM2;
??
REG:PROCESS(CLK)
BEGIN
IF(CLKEVENT AND CLK=1)THEN current_state=next_state;
END IF;
END PROCESS REG;——由信号current_state将当前状态值带出此进程:REG
LATCH1:PROCESS(LOCK) ——此进程中,在LOCK的上升沿,
文档评论(0)