- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AD转换电路的设计与实现
实验五 AD转换电路的设计与实现(4课时)
实验目的
1.学习AD0809模数转换芯片的工作原理和接口电路时序特征。
2.学习点阵显示器的工作原理和驱动方法。
3.掌握利用VHDL语言设计并行总线时序的方法。
4.掌握AD芯片通道切换方法和点阵显示器灵活驱动的设计方法。
实验原理
ADC0809接口电路图
ADC0809芯片工作时序图:
地址输入和控制线共4条,ALE为地址锁存允许输入线,高电平有效,当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换,A,B,C为地址输入线,用于选通IN0-IN7的一路模拟量输入,通道选择表如下表所示:
C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 … … … … 1 1 1 IN7
数字量输出及控制线:11条
START为转换启动信号,当START上升沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,START应保持低电平。EOC为转换结束信号,当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。D7-D0为数字量输出总线。要注意:实验箱电路板上的D0-D7的标注是反的。即D7应该是最低位,D0应该是最高位。REF(-)接GND,REF(+)接VCC5V。
电路改进及相应的简化时序
ADC0809接口的完全控制时序比较复杂,通过增加三个与门后(实验箱上的实际电路,见上图)可以简化接口时序。电路改进后的时序:
4.依据时序图归纳时序状态
状态S0:CS=1,WR=1,RD=0(请求转换)
状态S1:CS=0,WR=0,RD=0(此时0809进行转换,若转换结束,将INT置1)
状态S2:CS=1,WR=0,RD=1(读数据总线值)
状态S3:CS=0,WR=0,RD=0(空闲,等待下一次转换启动)
5.16*16点阵显示器件
列选信号为SEL0-SEL3经4-16译码器后,最右端为第一列;行选信号为L0-L16,最上方为第一行。点阵显示接口对应关系表:
Sel3 Sel2 Sel1 Sel0 点亮列号 1 1 1 1 第1列 1 1 1 0 第2列 1 1 0 1 第3列 . . . . . 0 0 0 0 第16列 实验内容与要求
设计一个AD0809模数转换芯片的驱动电路,能将A0通道的模拟电压(0-5V)值以16位光柱对应显示,即电压低时光柱矮,电压高时光柱高。此光柱建议采用点阵显示器的一列(16个LED)。(6)
在上述设计的基础上,扩展显示精度。即采用点阵显示器的256个LED表示5V之内的电压大小(面积表示法)。(3)
改进电路,使之能测量并分别显示AD0809芯片至少4个通道的电压值。建议采用4个光柱(16级)显示(3分)。
相应程序:
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
Entity zjf1 is
Port (clk,int:in std_logic;
data:in std_logic_vector(7 downto 0);
CS,WR,RD:out std_logic;
DX: out std_logic_vector(15 downto 0));
End entity zjf1;
Architecture ADC0809 of zjf1 is
Type state is(st0,st1,st2,st3,st4,st5,st6);
Signal current_state, next_state: state:=st0;
Signal zj:std_logic_vector(7 downto 0);
Signal q:std_logic_vector(3 downto 0);
Signal lock:std_logic;
Begin
Process(clk)
Begin
if(clkevent and clk=1)then
current_state=next_state;
End if;
End process;
Process(current_state,int)is
Begin
Case current_state is
when st0 =CS=0;WR=0;RD=0;lock=0;next_state=st1;--chu shi tai
when st1 =CS=1;WR=1;RD=0;lock=0;next_state=s
文档评论(0)