|
library ieee;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity dac is
port(
rst : in std_logic;--单片机输出复位信号,用来控制CPLD
clk : in std_logic;--单片机IO输出时钟信号
--------------------------------------------------
updata: out std_logic;--max7537 数据更新信号,低有效
cs : out std_logic; --max7537 片选信号,低有效
wr : out std_logic; --max7537 写信号,低有效
A0 : out std_logic; --max7537 地址信号
A1 : out std_logic; --max7537 地址信号
ack: out std_logic; --指示信号,CPLD上电成功,指示给单片机,高电平有效
dat_out: out std_logic_vector(7 downto 0)--max7537 数据更新信号,低有效
);
end entity;
architecture one of dac is
signal addres : std_logic_vector(2 downto 0);
begin
ack<='1';
cnt: process(clk,rst)--地址及控制信号生成器
begin
if(rising_edge(clk)) then
if(rst='1') then
addres<= addres + 1 ;
else addres<= "000" ;
end if;
end if;
end process cnt;
DAC: process (rst,addres)
begin
if(rst='0') then--复位,max7537初始化在不工作状态
updata<='1';
cs<='1';
wr<='1';
A0 <='1';
A1 <='1';
dat_out<=X"00";
else --max7537开始工作
cs <=addres(2);
updata<= not addres(2);--当addres大于3时候,开始更新数据,片选无效
wr<='0';
A0 <=addres(0);
A1 <=addres(1);
dat_out<="11111111";
end if;
end process DAC;
end one ;
![](http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_630699HTCLB6.GIF)
(原文件名:1.GIF)
![](http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_630700C3PBKI.GIF)
(原文件名:2.GIF)
点击此处下载 ourdev_630701FBBIIT.pdf(文件大小:5.58M) (原文件名:MX7537-MX7547.pdf) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|