eda课程设计基于vhdl数字电压表设计内容摘要:

clk = 39。 139。 ) THEN c_state = n_state。 END IF。 END PROCESS COM2。 LATCH1 : PROCESS(lock) BEGIN 9 IF (lock39。 EVENT AND lock = 39。 139。 ) THEN temp = din。 END IF。 END PROCESS LATCH1。 END behave。 以上程序中,使用了 ale、 start、 oe 和 eoc 等端口控制 ADC0809 器件的工作时序,根据 A/D 转换的状态转换关系,将一个完整的采样过程分为 st0、 st stst st4 五个状态,由两个主控进程和一个辅助进程控制,构成 Moore 型状态机。 A/D 转换控制模块的波形仿真图如图 所示,上电瞬间, c_state 处于 st0初始状态,时序控制信号 start、 oe、 ale 输出为 0;第一个 clk 脉冲,状态转换为st1, start 置 1,此时内部寄存器清零, oe=0, ale=1,对模拟启动采样;第 2 个clk 脉冲,进入 st2 状态, start 产生下降沿开始 A/D 转换, oe=0, ale=0,此时若eoc=1,表示 A/D 转换完成,可以进入 st3 状态;第 3 个 clk 脉冲,进入 st3 状态,statrt=0, ale=0, oe 置高电平,打开三态输出锁存器,允许转换数据输出;第 4个 clk 脉冲,进入 st4 状态,转换数据被稳定的锁存在锁存器中。 对照波形仿真图,我们看到 dout 端口的信号输出均发生在 st4 状态,仿真结果满足时序要求,输出结果正确,设计合理。 在 MAXPLUSⅡ平台上实现的 A/D 转换控制模块的符号如图 所示。 10 输入端口有数据输入端 din[7..0],时钟信号端 clk, A/D 转换结束信号端 eoc;输出端口有地址锁存允许信号端 ale,转换启动 信号端 start,输出允许信号端 oe,模拟信号通道地址端 adda。 3.数据转换模块 ADC0809 是 8 位模数转换器,它的输出状态共有 256 种,若信号为 0~ 5V电压范围,则每两个状态的电压差值为 5/(2561),约为。 本设计用查表命令来得到电压值,如表 491 所示为待转换数值与实际电压值的对应表。 11 程序如下: LIBRARY IEEE。 USE。 USE。 USE。 ENTITY bcd2 IS PORT(datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 q1, q2, q3, q4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END bcd2。 ARCHITECTURE behave OF bcd2 IS SIGNAL data0, data1 : STD_LOGIC_VECTOR(15 DOWNTO 0)。 SIGNAL sum1, sum2, sum3, sum4: STD_LOGIC_VECTOR(4 DOWNTO 0)。 SIGNAL c1, c2, c3 : STD_LOGIC_VECTOR(4 DOWNTO 0)。 8 BEGIN data1 =0000000000000000 WHEN datain(7 DOWNTO 4)=0000 ELSE 0000001100010100 WHEN datain(7 DOWNTO 4)=0001 ELSE 12 0000011000100111 WHEN datain(7 DOWNTO 4)=0010 ELSE 0000100101000001 WHEN datain(7 DOWNTO 4)=0011 ELSE 0001001001010101 WHEN datain(7 DOWNTO 4)=0100 ELSE 0001010101101001 WHEN datain(7 DOWNTO 4)=0101 ELSE 0001100010000010 WHEN datain(7 DOWNTO 4)=0110 ELSE 0010000110010110 WHEN datain(7 DOWNTO 4)=0111 ELSE 0010010100010000 WHEN datain(7 DOWNTO 4)=1000 ELSE 0010100000100100 WHEN datain(7 DOWNTO 4)=1001 ELSE 0011000100110111 WHEN datain(7 DOWNTO 4)=1010 ELSE 0011010001010001 WHEN datain(7 DOWNTO 4)=1011 ELSE 0011011101100101 WHEN datain(7 DOWNTO 4)=1100 ELSE 0100000001111000 WHEN datain(7 DOWNTO 4)=1101 ELSE 0100001110010010 WHEN datain(7 DOWNTO 4)=1110 ELSE 0100011100000110 WHEN datain(7 DOWNTO 4)=1111 ELSE 0000000000000000。 data0 =0000000000000000 WHEN datain(3 DOWNTO 0)=0000 ELSE 0000000000100000 WHEN datain(3 DOWNTO 0)=0001 ELSE 0000000000111001 WHEN datain(3 DOWNTO 0)=0010 ELSE 0000000001011001 WHEN datain(3 DOWNTO 0)=0011 ELSE 0000000001111000 WHEN datain(3 DOWNTO 0)=0100 ELSE 0000000010011000 WHEN datain(3 DOWNTO 0)=0101 ELSE 0000000100011000 WHEN datain(3。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。