当前位置:首页 > 技术学院 > 热搜器件
[导读]以前做硬件,现在转做软件了,对以前做的东西还是很怀念,想当年做的一个用Altera公司的EPM7128SLC84-7和ADC0809做的一个简单系统,玩得团团转,多有成就感啊。特别觉得状态机的思想很奇妙。所以现在找了一篇VHDL状态

以前做硬件,现在转做软件了,对以前做的东西还是很怀念,想当年做的一个用Altera公司的EPM7128SLC84-7和ADC0809做的一个简单系统,玩得团团转,多有成就感啊。特别觉得状态机的思想很奇妙。所以现在找了一篇VHDL状态机的程序,转帖怀念。

基于VHDL语言实现对ADC0809简单控制源码

--------------------------------------------------------------------------------

--文件名:ADC0809.vhd

--功能:基于VHDL语言,实现对ADC0809简单控制

--说明:ADC0809没有内部时钟,需外接10KHz~1290Hz的时钟信号,这里由FPGA的系

--统时钟(50MHz)经256分频得到clk1(195KHz)作为ADC0809转换工作时钟。

--最后修改日期:2004.3.20.

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity ADC0809 is

port ( d : in std_logic_vector(7 downto 0); --ADC0809输出的采样数据

clk,eoc : in std_logic; --clk为系统时钟,eoc为ADC0809转换结束信号

clk1,start, ale,en: out std_logic; --ADC0809控制信号

abc_in :in std_logic_vector(2 downto 0); --模拟选通信号

abc_out :out std_logic_vector(2 downto 0); --ADC0809模拟信号选通信号

q : out std_logic_vector(7 downto 0)); --送至8个并排数码管信号

end ADC0809;

architecture behav of ADC0809 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 qq:std_logic_vector(7 downto 0);

begin

com:process(current_state,eoc) --规定各种状态的转换方式

begin

case current_state is

when st0=>next_state<=st1;ale<='0';start<='0';en<='0';

when st1=>next_state<=st2;ale<='1';start<='0';en<='0';

when st2=>next_state<=st3;ale<='0';start<='1';en<='0';

when st3=> ale<='0';start<='0';en<='0';

if eoc='1' then next_state<=st3; --检测EOC的下降沿

else next_state<=st4;

end if;

when st4=> ale<='0';start<='0';en<='0';

if eoc='0' then next_state<=st4; --检测EOC的上升沿

else next_state<=st5;

end if;

when st5=>next_state<=st6;ale<='0';start<='0';en<='1';

when st6=>next_state<=st0;ale<='0';start<='0';en<='1';regl<=d;

when others=> next_state<=st0;ale<='0';start<='0';en<='0';

end case;

end process;

clock:process(clk) --对系统时钟进行分频,得到ADC0809转换工作时钟

begin

if clk'event and clk='1' then qq<=qq+1; --在clk1的上升沿,转换至下一状态

if QQ="01111111" THEN clk1<='1'; current_state <=next_state;

elsif qq<="01111111" then clk1<='0';

end if;

end if;

end process;

q<=regl; abc_out<=abc_in;

end behav;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Feb. 26, 2026 ---- 根据TrendForce集邦咨询最新调查显示,由于AI应用由LLM模型训练延伸至推理,推动CSPs业者的数据中心建置重心由AI Server延伸至General Server,进一步...

关键字: DRAM 数据中心 AI

Feb. 25, 2026 ---- 根据TrendForce集邦咨询最新AI server产业研究,为加速AI应用导入与升级,全球云端服务供应商(CSP)持续加强投资AI server及相关基础建设,预计2026年八大...

关键字: AI ASIC GPU

Feb. 24, 2026 ---- 根据TrendForce集邦咨询最新UV LED市场趋势与产品分析,由于贵金属、原物料与人工费用调涨,2026年第一季UV LED价格获得支撑,客制化产品甚至有机会季增5%。在全球光...

关键字: LED 太阳光源模拟器

电感作为电子学三大基础无源元件之一,其选型直接影响电路性能与可靠性。在电源转换、信号处理、电磁兼容等场景中,错误的电感选型可能导致效率下降、噪声增加甚至系统失效。

关键字: 电感 电源

在新能源汽车产业加速发展的背景下,锂电池作为核心储能元件,其制造工艺的精细程度直接决定了产品性能与安全性。传统机械加工技术因存在工具磨损、精度局限、热影响区大等问题,已难以满足锂电池高能量密度、长循环寿命的需求。激光技术...

关键字: 电池 锂电池

在移动支付、智能门禁和物联网设备广泛应用的今天,近场通信(NFC)技术已成为短距离无线交互的核心方案。其天线作为能量与数据传输的桥梁,通过13.56MHz频段的电磁感应实现设备间高效通信。

关键字: NFC 天线

在物联网与移动支付快速发展的背景下,NFC(近场通信)技术凭借其13.56MHz的高频特性,成为短距离无线通信的核心方案。其射频电路设计中,匹配电路与滤波器的协同作用直接决定了通信效率、功耗控制及电磁兼容性(EMC)。

关键字: NFC EMC

在嵌入式系统中,模数转换器(ADC)是连接物理世界与数字处理的核心桥梁。STM32系列微控制器内置的ADC采用逐次逼近型(SAR)架构,通过精密的硬件电路实现模拟信号到数字信号的转换。

关键字: ADC STM32

场效应管(Field Effect Transistor, FET)作为现代电子设备的核心半导体器件,其独特的电压控制特性使其在放大、开关和信号处理等领域广泛应用。

关键字: 半导体 电压

在电子技术领域,三极管放大电路作为信号处理的基础单元,其性能指标直接决定了信号传输的质量与效率。

关键字: 三极管 放大电路
关闭