VHDL实验:用状态机实现ADC0809的采样控制电路
VHDL实验二 用状态机实现ADC0809的采样控制电路 一、实验目的
1.学习用状态机对A/D转换器ADC0809的采样控制电路的实现。 二、 实验仪器
1(PC机一台
KHF-5 CPLD/FPGA实验开发系统一套。 2(
三、实验要求
1(查阅ADC0809芯片资料。
2(预习实验
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
。
四、原理说明
ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8
个模拟量中的一个进入转换器中。ADC0809的分辨率为8位,转换时间约
100us,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供
电。
主要控制信号说明:如图1所示,START是转换启动信号,高电平有效;
ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。当模拟量
送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由
ALE锁存;EOC是转换情况状态信号(类似于AD574的STATUS),当启动转换
约100us后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若
使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据
结果输至数据总线。至此ADC0809的一次转换结束了。
图1
五、实验内容及实验步骤
1、利用quartus2进行文本编辑输入和仿真测试;给出仿真波形。最后
进行引脚锁定并进行测试,硬件验证对ADC0809的控制功能。
实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY adc0809 IS
PORT ( ina : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --0809的8位
转换数据输出
CLK ,EOC : IN STD_LOGIC; --CLK xitong工
作时钟
ALE, ck, OE : OUT STD_LOGIC; --ck是0809de 工作时钟
adda,addb,addc:out std_logic;
outa : OUT STD_LOGIC_VECTOR(13 DOWNTO 0) );
END adc0809 ;
ARCHITECTURE behav OF adc0809 IS
--signal sa:std_logic_vector(7 downto 0);
signal fp:std_logic_vector(9 downto 0);
signal f:std_logic;
TYPE states IS (st0, 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';addb<='0';addc<='0';--sa<=ina;
process( CLK)
begin
if( CLK'event and CLK='1')then
if fp=15 then
fp<="0000000000";
f<=not f;
else
fp<=fp+1;
end if;
end if;
end process;
ck<=f;
PRO: PROCESS(current_state,EOC) BEGIN --规定各状态转换方式
CASE current_state IS
WHEN st0 => ALE<='0';START<='0';OE<='0';LOCK<='0' ;next_state <= st2;
-- WHEN st1 => ALE<='1';START<='1';OE<='0';LOCK<='0' ;next_state <=
st2;
WHEN st2 => ALE<='1';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
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
明转
换结束
ELSE next_state <= st5; --继续等待
END IF ;
WHEN st5=> ALE<='0';START<='0';OE<='1';LOCK<='0';next_state <= st6;
WHEN st6=> ALE<='0';START<='0';OE<='1';LOCK<='1';next_state <= st0;
WHEN OTHERS => ALE<='0';START<='0';OE<='0';LOCK<='0';next_state <= st0;
END CASE ;
END PROCESS PRO ;
PROCESS (f)
BEGIN
IF ( f'EVENT AND f='1') THEN
current_state <= next_state; -- 在时钟上升沿,转换至下一状态
END IF;
END PROCESS; -- 由信号current_state将当前状态值带出此进程,进
入进程PRO
PROCESS (LOCK) -- 此进程中,在LOCK的上升沿,将转换好的
数据锁入
BEGIN
IF LOCK='1' AND LOCK'EVENT THEN REGL <= ina ;
END IF;
END PROCESS ;
with REGL(3 downto 0) select
outa(6 downto 0) <="0110000"when"0001",--1
"1101101"when"0010",--2
"1111001"when"0011",--3
"0110011"when"0100",--4
"1011011"when"0101",--5
"1011111"when"0110",--6
"1110000"when"0111",--7
"1111111"when"1000",--8
"1111011"when"1001",--9
"1110111"when"1010",--A
"0011111"when"1011",--b
"1001110"when"1100",--c
"0111101"when"1101",--d
"1001111"when"1110",--e
"1000111"when"1111",--f
"1111110"when others;--0 with REGL(7 downto 4) select outa(13 downto 7) <="0110000"when"0001",--1
"1101101"when"0010",--2
"1111001"when"0011",--3
"0110011"when"0100",--4
"1011011"when"0101",--5
"1011111"when"0110",--6
"1110000"when"0111",--7
"1111111"when"1000",--8
"1111011"when"1001",--9
"1110111"when"1010",--A
"0011111"when"1011",--b
"1001110"when"1100",--c
"0111101"when"1101",--d
"1001111"when"1110",--e
"1000111"when"1111",--f
"1111110"when others;--0
END behav;
2、建议引脚锁定为:oe为p18。ale为p19。ina0--ina7为p24 p25 p26
p27 p28 p29 p30 p31。adda addb addc分别对应芯片管脚p36 p37 p38。
eoc为p39。ck(08096时钟)为p40。Inclk(状态机时钟)为p80。Start
引脚和ale短接,因此共用p19。
采样数据用数码管seg1,seg2显示:
seg1的a,b,c,d,e,f,g段 -------161,162,163,164,166,167,168;
seg2的a,b,c,d,e,f,g段 ------ 170,172,173,174,175,176,177。
3、实验现象为采样0809的数字量由数码管显示,w1 5k可调节输入0809
电平的大小。下载目标文件后,可用螺丝刀旋转实验系统的电位器w1,以便
为ADC0809提供变化的待测模拟信号,这时数码管1和2将显示ADC0809
采样输出并被锁存的数字值(16进制)。
4. 时钟模块对外部输入时钟进行分频,形成模数转换器所需的工作时钟
和各控制信号基础脉冲。具体对AD0809来说,其最小控制信号脉宽为100
ns,可取外部输入时钟 ,对其进行 分频得到。
六、
心得体会
决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载
通过联系教材有关章节,学习用用状态机对A/D转换器ADC0809的采样控制电路的实现。实验中,对VHDL软件进行探索、学习,逐步熟悉软件的使用。并学习完成了用状态机对ADC0809的采样控制电路的实现。通过这次实验,初步学会了用电路的原理与电路设计,对实验软件VHDL也有一定的认识,更进一步掌握了课本的相关知识。