欢迎来到天天文库
浏览记录
ID:14222145
大小:47.00 KB
页数:4页
时间:2018-07-27
《实验九 adc0809的采样控制电路实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验四ADC0809的采样控制电路实现一、实验目的1、学习和理解状态机的设计和工作原理。2、学习用状态机对A/D转换器ADC0809的采样控制电路的实现。二、实验原理ADC0809是CMOS的8位A/D转换器(如图一所示),片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。ADC0809的分辨率为8位,转换时间约100us,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。图一波形仿真图主要控制信号说明:如图4-1所示,START是转换启动信号,高电平有效;ALE是3位通道选择地址(ADDC、ADDB、AD
2、DA)信号的锁存信号。当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号(类似于AD574的STATUS),当启动转换约100us后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线。至此ADC0809的一次转换结束了。三、实验步骤1、用VHDL实现一个硬件电子琴,利用quartusII进行文本编辑输入和仿真测试;给出仿真波形。并下载测试2、测试步骤:根据图二锁定引脚:ST
3、ART接PIO34,OE接PIO35,EOC接PIO8,ALE接PIO33,状态机时钟CLK接clock0(PIN2,可选“65536Hz”或更高),ADDA接PIO32(ADDB和ADDC都接GND),ADC0809的8位输出数据线接PIO23~PIO16,锁存输出Q显示于数码8/数码7(PIO47~PIO40),具体查EDA/SOPC技术实验讲义附录第三节(P55)。3、设目标器件是EP1K30TC144-3,本实验电路结构图NO.5(即结构图NO.5A,图二,由该图可见,ADC0809的转换时钟CLK已经事先接有750KH
4、z的频率),将实验系统左下角多位选择多路开关的4,,6,7向下拨,其余向上,即使0809工作使能。4、下载目标文件后,可用螺丝刀旋转实验系统左下角的电位器,以便为ADC0809提供变化的待测模拟信号,这时数码管8和7将显示ADC0809采样输出并被锁存的数字值(16进制),数据来自FPGA的输出。数码管2和1也将显示同样数据,此数据直接来自0809的数据口。5、用螺丝刀旋转实验系统左下角的电位器得到不同的电位并观察记录其对应的输出值(记录16组左右)并把记录结果绘制为曲线。表一实验结果记录电位值37输出值37图二实验电路结构图N
5、O.5五、问题讨论与提高1、在不改变原代码功能的条件下将附录4-1中表达成用状态码直接输出型的状态机。2、实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;设计原程序,程序分析报告、仿真波形图及其分析报告。附录:4-1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYADCINTISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);--0809的8位转换数据输出CLK,EOC:INSTD_LOGIC;--CLK是转换工
6、作时钟LOCK1,ALE,START,OE,ADDA:OUTSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDADCINT;ARCHITECTUREbehavOFADCINTISTYPEstatesIS(st0,st1,st2,st3,st4,st5,st6);--定义各状态子类型SIGNALcurrent_state,next_state:states:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;--转
7、换后数据输出锁存时钟信号BEGINADDA<='1';LOCK1<=LOCK;PRO:PROCESS(current_state,EOC)BEGIN--规定各状态转换方式CASEcurrent_stateISWHENst0=>ALE<='0';START<='0';OE<='0';LOCK<='0';next_state<=st1;WHENst1=>ALE<='1';START<='0';OE<='0';LOCK<='0';next_state<=st2;WHENst2=>ALE<='0';START<='1';OE<='0';
8、LOCK<='0';next_state<=st3;WHENst3=>ALE<='0';START<='0';OE<='0';LOCK<='0';IF(EOC='1')THENnext_state<=st3;--测试EOC的下降沿ELSEnext_state<=
此文档下载收益归作者所有