⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkc7524接口电路程序.txt

📁 根据TLC7524输出控制时序
💻 TXT
字号:
library ieee:
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity TLC7524 is
  port(clk   :in std_logic;       --系统时钟
       rst   :in std_logic;        --复位信号
       data_out:out std_logic_vector(7 downto 0));     --波形数据
   end TLC7524;
architecture behav of TLC7524 is
 signal  b:integer range 0 to 63;      --地址计数器
 signal  q:integer range 0 to 4;        --计数器
 signal  d:integer range 0 to 255;      --波形数据寄存器
begin
process(clk)
       --此进程通过对系统时钟的分频,完成的地址计数器的循环计数
begin
if rst='1' then b<=0;   --复位时,对地址寄存器清零
elsif clk'event and clk='1' then
   if q=4 then q<=0;    --此IF语句完成对系统时钟的5分频
    if b=63 then b<=0;  --此IF语句完成对地址的循环计数
    else b<=b+1;
     end if;
    else q<=q+1;
  end if;
 end if;
end process;
process(b)   --此进程存储了正弦波64个采样点的波形数据
begin
case b is
when 00=>d<=255  ; when 01=>d<=254 ;
when 02=>d<=252  ; when 03=>d<=249 ;
when 04=>d<=245  ; when 05=>d<=239 ;
when 06=>d<=233  ; when 07=>d<=225 ;
when 08=>d<=217  ; when 09=>d<=207 ;
when 10=>d<=197  ; when 11=>d<=186 ;
when 12=>d<=174  ; when 13=>d<=162 ;
when 14=>d<=150  ; when 15=>d<=137 ;
when 16=>d<=124  ; when 17=>d<=112 ;
when 18=>d<=99   ; when 19=>d<=87 ;
when 20=>d<=75   ; when 21=>d<=64 ;
when 22=>d<=53   ; when 23=>d<=43 ;
when 24=>d<=34   ; when 25=>d<=26 ;
when 26=>d<=19   ; when 27=>d<=13 ;
when 28=>d<=8    ; when 29=>d<=4 ;
when 30=>d<=1    ; when 31=>d<=0 ;
when 32=>d<=0    ; when 33=>d<=1 ;
when 34=>d<=4    ; when 35=>d<=8 ;
when 36=>d<=13   ; when 37=>d<=19 ;
when 38=>d<=26   ; when 39=>d<=34 ;
when 40=>d<=43   ; when 41=>d<=53 ;
when 42=>d<=64   ; when 43=>d<=45 ;
when 44=>d<=87   ; when 45=>d<=99 ;
when 46=>d<=112  ; when 47=>d<=124;
when 48=>d<=137  ; when 49=>d<=150 ;
when 50=>d<=162  ; when 51=>d<=174 ;
when 52=>d<=186  ; when 53=>d<=197;
when 54=>d<=207  ; when 55=>d<=217 ;
when 56=>d<=225  ; when 57=>d<=233 ;
when 58=>d<=239  ; when 59=>d<=245 ;
when 60=>d<=249  ; when 61=>d<=252 ;
when 62=>d<=254  ; when 63=>d<=255 ;
when others=> null;
end case;
end process;
data_out<=conv_std_logic_vector(d,8);   --正弦波形输出
end  behav;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -