用状态机实现ADC0809的采样控制电路
更新时间:2024-04-08 01:43:01 阅读量: 综合文库 文档下载
实验一 用状态机实现ADC0809的采样控制电路
一、实验目的:
学习用状态机对A/D转换器ADC0809的采样控制电路的实现。
二、原理说明:
ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。ADC0809的分辨率为8位,转换时间约100us,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。
主要控制信号说明:如图1所示,START是转换启动信号,高电平有效;ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号(类似于AD574的STATUS),当启动转换约100us后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线。至此ADC0809的一次转换结束了。
图1
三、实验内容:
1、利用MAX+plusII对例3-1进行文本编辑输入和仿真测试;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证例3-1电路对ADC0809的控制功能。
2、根据附图2-12,建议引脚锁定为:START接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)。
3、设目标器件是EPF10K10,建议选择实验电路结构图NO.5(即结构图NO.5A,ADC0809的转换时钟CLK已经事先接有750KHz的频率),将实验系统左下角选择插针处的“转换结束”和“A/D使能”用二短路帽短接。下载目标文件后,可用螺丝刀旋转实验系统左下角的电位器,以便为ADC0809提供变化的待测模拟信号,这时数码管8和7将显示ADC0809采样输出并被锁存的数字值(16进制)。
【例3-1】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS
PORT ( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --0809的8位转换数据输出 CLK ,EOC : IN STD_LOGIC; --CLK是转换工作时钟 LOCK1, ALE, START, OE, ADDA : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
END ADCINT;
ARCHITECTURE behav OF ADCINT IS
TYPE states IS (st0, st1, st2, st3,st4,st5,st6) ; --定义各状态子类型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; -- 转换后数据输出锁存时钟信号 BEGIN
ADDA <= '1'; LOCK1 <=LOCK;
PRO: PROCESS(current_state,EOC) BEGIN --规定各状态转换方式 CASE current_state IS
WHEN st0 => ALE<='0';START<='0';OE<='0';LOCK<='0' ;next_state <= st1; WHEN st1 => ALE<='1';START<='0';OE<='0';LOCK<='0' ;next_state <= st2;
WHEN st2 => ALE<='0';START<='1';OE<='0';LOCK<='0' ;next_state <= st3; WHEN st3 => ALE<='0';START<='0';OE<='0';LOCK<='0'; IF (EOC='1') THEN next_state <= st3; --测试EOC的下降沿 ELSE next_state <= st4; END IF ;
WHEN st4=> ALE<='0';START<='0';OE<='0';LOCK<='0';
IF (EOC='0') THEN next_state <= st4; --测试EOC的上升沿,=1表明转换结束 ELSE next_state <= st5; --继续等待 END IF ;
WHEN st5=> ALE<='0';START<='0';OE<='1';LOCK<='0';next_state <= st6;
WHEN st6=> ALE<='0';START<='0';OE<='1';LOCK<='1';next_state <= st0; WHEN OTHERS => ALE<='0';START<='0';OE<='0';LOCK<='0';next_state <= st0; END CASE ;
END PROCESS PRO ; PROCESS (CLK) BEGIN
IF ( CLK'EVENT AND CLK='1') THEN
current_state <= next_state; -- 在时钟上升沿,转换至下一状态 END IF;
END PROCESS; -- 由信号current_state将当前状态值带出此进程,进入进程PRO PROCESS (LOCK) -- 此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN
IF LOCK='1' AND LOCK'EVENT THEN REGL <= D ; END IF;
END PROCESS ; Q <= REGL; END behav;
四、思考题:
在不改变原代码功能的条件下将例3-1表达成用状态码直接输出型的状态机。
五、实验报告:
根据以上的实验要求、实验内容和实验思考题写出实验报告。
正在阅读:
用状态机实现ADC0809的采样控制电路04-08
2019小学生禁毒征文300字06-13
天心ERP标准实施方案12-27
服装营业员销售技巧07-20
现浇连续箱梁(钢管桩贝雷梁支架)施工工艺03-20
例题05-11
最新人教版英语九年级Unit14单元试卷(含答案)01-26
《煤矿新工人安全知识》培训教案04-16
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 采样
- 电路
- 状态
- ADC0809
- 实现
- 控制