[工学]exp5_王浩文_田媛_严建业

[工学]exp5_王浩文_田媛_严建业

ID:29868107

大小:87.18 KB

页数:4页

时间:2018-12-24

[工学]exp5_王浩文_田媛_严建业_第1页
[工学]exp5_王浩文_田媛_严建业_第2页
[工学]exp5_王浩文_田媛_严建业_第3页
[工学]exp5_王浩文_田媛_严建业_第4页
资源描述:

《[工学]exp5_王浩文_田媛_严建业》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、EDA技术与应用实验报告姓名王浩文田媛严建业学号113200880200010113200880200009113200880200020专业年级08电子信息实验题目实验五用状态机实现对ADC0809的采样控制电路实验目的学习用状态机实现对A/D转换器ADC0809的采样控制电路。实验原理ADC0809是CMOS的8位A/D转换芯片,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。转换时间约100us。由状态机可以控制ADC0809的ALE,START,OE,ADDA引脚,并根据ADC0809的输出引脚EOC进行数字信号的输出。最后,将采样转换后的数字信号显示在8段数码管的后两位静态

2、管上。实验内容用状态机控制ADC0809芯片的采样和输出,并将其显示在7段数码管上,实现软件仿真和硬件仿真。实验步骤1.熟悉整个实验的流程,熟悉ADC0809各引脚的作用;2.完成VHDL程序的编写;3.软件仿真;4.锁定引脚,下载到开发板上进行硬件仿真。实验结果及分析状态机实现了对ADC0809的采样控制,数码管上能够按照采样转换的结构进行顺利的显示,完成了实验所要求达到的水平。实验过程中所遇到的问题及相应的解决方法Ø问题:两位数码管显示的是乱码而不是16进制数Ø原因:输出段码时顺序反了Ø解决方法:将输出段码的顺序由“13downto0”改为“0to13”附录(原理图或VHDL代码)图一:采

3、样机结构图(见教材177页图7-5)图二:VHDL代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;ENTITYadcintIS--AD0809PORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK,EOC:INSTD_LOGIC;--状态机时钟CLK,AD0809工作状态信号EOCLOCK0:OUTSTD_LOGIC;--内部锁存信号LOCK的测试信号ALE,START,OE:OUTSTD_LOGIC;--AD0809控制信号outa:outstd_logic_vector(

4、0to13);add:outstd_logic_vector(2downto0));END;ARCHITECTUREbehavOFadcintIS--AD0809TYPEstatesIS(st0,st1,st2,st3,st4);SIGNALcurrent_state,next_state:states:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;signalfp:std_logic_vector(9downto0);signalf:std_logic;--BEGINADD<="000";LOCK0<=f;CO

5、M:PROCESS(current_state,EOC)--决定各状态转换方式BEGINCASEcurrent_stateISWHENst0=>ALE<='0';START<='0';LOCK<='0';OE<='0';next_state<=st1;--0809初始化wHENst1=>ALE<='1';START<='1';LOCK<='0';OE<='0';next_state<=st2;--启动采样WHENst2=>ALE<='0';START<='0';LOCK<='0';OE<='0';IF(EOC='1')THENnext_state<=st3;--转换结束ELSEnext_sta

6、te<=st2;--转换未结束,等待转换ENDIF;WHENst3=>ALE<='0';START<='0';LOCK<='0';OE<='1';next_state<=st4;--开启OE,输出有效wHENst4=>ALE<='0';START<='0';LOCK<='1';OE<='1';next_state<=st0;--锁存数据WHENOTHERS=>next_state<=st0;ENDCASE;ENDPROCESSCOM;PROCESS(CLK)--分频BEGINIF(CLK'EVENTANDCLK='1')THENiffp=50thenfp<="0000000000";f<=no

7、tf;elsefp<=fp+1;endif;ENDIF;ENDPROCESS;process(f)beginif(f'eventandf='1')thencurrent_state<=next_state;endif;endprocess;LATCH1:PROCESS(LOCK)--数据锁存器进程BEGINIFLOCK='1'ANDLOCK'EVENTTHENREGL<=D;ENDIF;ENDPR

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

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

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