正在加载图片...
PI035,EOC接PI08,ALE接PI033,状态机时钟CLK接 clock0(PIN2,可选 65536H”或更高),ADA接PI032(ADDB和ADDC都接GND),ADC0809的8 位输出数据线接PI023~PI016,锁存输出Q显示于数码8/数码7(PI0O47~ PI040),设目标器件是EPF10K10,ADC0809的转换时钟CLK已经事先接有750KHz 的频率),将实验系统左下角选择插针处的“转换结束”和“AD使能”用二短 路帽短接。下载目标文件后,可用螺丝刀旋转实验系统左下角的电位器,以便 为ADCo809提供变化的待测模拟信号,这时数码管8和7将显示ADC0809采样 输出并被锁存的数字值(16进制) 4、实验报告:根据以上的实验要求、实验内容写出实验报告。 5、写出实验心得体会。 6、思考题:如何将显示的16进制转化为真正的电压显示。 参考程序 USE IEEE STD LOGIC 1164.ALL ENTITY ADCINT IS PORT(D: IN STD LOGIC VECTOR(7 DOWNTO0);--0809的8位转换数据输出 CLK,EoC: IN STD LOGIC;-cLK是转换工作时钟 LOCK1, ALE START OE, ADDA OUT STD LOGIC Q: OUT STD LOGIC VECTOR(7 DOWNTO 0) END ADCINT ArChiteCtUre belay OF ADCINT IS TYPE states Is (sto, stl, st2, st3, st4, st5, st6 定义各状态子类型 SIGNAL current state, next state: states :=st0; SIGNAL REGL STD LOGIC VECTOR(7 DOWNTO 0 SIGNAL LOCK STD LOGI 转换后数据输出锁存时钟信号 BEGIN ROCESS( current state,EoC) BEGIN--规定各状态转换方式 current state sto = ALE<=0 START<=0 0E<=0, lOCK<=0 next state < stl: When st2 => Ale<=0 start<=1: oe<=0: lOcK<=0 ,next state < st3 WHeN st3 = ALE<=0, START<=0:OE<=0i LOCK<=0; IF (EOC='1)THEN next state < st3 测试Eoc的下降沿 IF(EOC="0") THEN next state<=st4;--测试Eoc的上升沿,=1表明转换结束PIO35,EOC 接 PIO8,ALE 接 PIO33,状态机时钟 CLK 接 clock0(PIN2,可选 “65536Hz”或更高),ADDA 接 PIO32(ADDB 和 ADDC 都接 GND),ADC0809 的 8 位输出数据线接 PIO23~PIO16,锁存输出 Q 显示于数码 8/数码 7(PIO47~ PIO40),设目标器件是 EPF10K10,ADC0809 的转换时钟 CLK 已经事先接有 750KHz 的频率),将实验系统左下角选择插针处的“转换结束”和“A/D 使能”用二短 路帽短接。下载目标文件后,可用螺丝刀旋转实验系统左下角的电位器,以便 为 ADC0809 提供变化的待测模拟信号,这时数码管 8 和 7 将显示 ADC0809 采样 输出并被锁存的数字值(16 进制) 4、 实验报告:根据以上的实验要求、实验内容写出实验报告。 5、 写出实验心得体会。 6、 思考题:如何将显示的 16 进制转化为真正的电压显示。 参考程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT ( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --0809 的 8 位转换数据输出 CLK ,EOC : IN STD_LOGIC; --CLK 是转换工作时钟 LOCK1, ALE, START, OE, ADDA : 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,st5,st6) ; --定义各状态子类型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; -- 转换后数据输出锁存时钟信号 BEGIN ADDA <= '1'; LOCK1 <=LOCK; PRO: PROCESS(current_state,EOC) BEGIN --规定各状态转换方式 CASE current_state IS WHEN st0 => ALE<='0';START<='0';OE<='0';LOCK<='0' ;next_state <= st1; WHEN st1 => ALE<='1';START<='0';OE<='0';LOCK<='0' ;next_state <= st2; WHEN st2 => ALE<='0';START<='1';OE<='0';LOCK<='0' ;next_state <= st3; WHEN st3 => ALE<='0';START<='0';OE<='0';LOCK<='0'; IF (EOC='1') THEN next_state <= st3; --测试 EOC 的下降沿 ELSE next_state <= st4; END IF ; WHEN st4=> ALE<='0';START<='0';OE<='0';LOCK<='0'; IF (EOC='0') THEN next_state <= st4; --测试 EOC 的上升沿,=1 表明转换结束
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有