VHDL实验:用状态机实现ADC0809的采样控制电路.doc

VHDL实验:用状态机实现ADC0809的采样控制电路.doc

ID:57395614

大小:24.50 KB

页数:6页

时间:2020-08-15

VHDL实验:用状态机实现ADC0809的采样控制电路.doc_第1页
VHDL实验:用状态机实现ADC0809的采样控制电路.doc_第2页
VHDL实验:用状态机实现ADC0809的采样控制电路.doc_第3页
VHDL实验:用状态机实现ADC0809的采样控制电路.doc_第4页
VHDL实验:用状态机实现ADC0809的采样控制电路.doc_第5页
资源描述:

《VHDL实验:用状态机实现ADC0809的采样控制电路.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VHDL实验二用状态机实现ADC0809的采样控制电路一、实验目的1.学习用状态机对A/D转换器ADC0809的采样控制电路的实现。二、实验仪器1.PC机一台2.KHF-5CPLD/FPGA实验开发系统一套。三、实验要求1.查阅ADC0809芯片资料。2.预习实验内容。四、原理说明ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。ADC0809的分辨率为8位,转换时间约100us,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。主要控制信号说明:如图1所示,START是转换启动信号,高电平有效;ALE是3

2、位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号(类似于AD574的STATUS),当启动转换约100us后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线。至此ADC0809的一次转换结束了。图1五、实验内容及实验步骤1、利用quartus2进行文本编辑输入和仿真测试;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证对ADC0809的控制功能。实验

3、代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYadc0809ISPORT(ina:INSTD_LOGIC_VECTOR(7DOWNTO0);--0809的8位转换数据输出CLK,EOC:INSTD_LOGIC;--CLKxitong工作时钟ALE,ck,OE:OUTSTD_LOGIC;--ck是0809de工作时钟adda,addb,addc:outstd_logic;outa:OUTSTD_LOGIC_VECTOR(13DOWNTO0));ENDadc0809;ARCHITECTUREbehavOFadc0809IS--

4、signalsa:std_logic_vector(7downto0);signalfp:std_logic_vector(9downto0);signalf:std_logic;TYPEstatesIS(st0,st2,st3,st4,st5,st6);--定义各状态子类型SIGNALcurrent_state,next_state:states:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;--转换后数据输出锁存时钟信号BEGINADDA<='1';addb<='0';addc<='0'

5、;--sa<=ina;process(CLK)beginif(CLK'eventandCLK='1')theniffp=15thenfp<="";f<=notf;elsefp<=fp+1;endif;endif;endprocess;ck<=f;PRO:PROCESS(current_state,EOC)BEGIN--规定各状态转换方式CASEcurrent_stateISWHENst0=>ALE<='0';START<='0';OE<='0';LOCK<='0';next_state<=st2;--WHENst1=>ALE<='1';START<='1';OE<='0'

6、;LOCK<='0';next_state<=st2;WHENst2=>ALE<='1';START<='1';OE<='0';LOCK<='0';next_state<=st3;WHENst3=>ALE<='0';START<='0';OE<='0';LOCK<='0';IF(EOC='1')THENnext_state<=st3;--测试EOC的下降沿ELSEnext_state<=st4;ENDIF;WHENst4=>ALE<='0';START<='0';OE<='0';LOCK<='0';IF(EOC='0')THENnext_state<=st4;--测试EO

7、C的上升沿,=1表明转换结束ELSEnext_state<=st5;--继续等待ENDIF;WHENst5=>ALE<='0';START<='0';OE<='1';LOCK<='0';next_state<=st6;WHENst6=>ALE<='0';START<='0';OE<='1';LOCK<='1';next_state<=st0;WHENOTHERS=>ALE<='0';START<='0';OE<='0';LOCK<='0';next_state<=st0;ENDCASE;ENDPROCESSPRO;PROCES

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。