打印

大家帮忙看看这段程序

[复制链接]
1434|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小艾|  楼主 | 2007-12-4 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AN, ST, ic, ge, logic
library ieee;
use ieee.std_logic_1164.all;
entity fana is
  port(a:in integer range 0 to 10204;
       clk:in std_logic;
       q:out std_logic);
end fana;
archirecture fan_arc of fana is
begin
  process(clk)
  variable b,d:std_logic;
  variable c:integer range 0 to 10204;
  begin
    if clk'event and clk='1' then
       if b='0' then
          c:=a;
          b:='1';
       else
         if c=0 then
            b:='0';
            d:=not d;
         else
            c:=c-1;
         end if;
       end if;
    end if;
   q<=d;
  end process;
end fan_arc;  
这个程序是实现歌曲播放的一个模块,输入a[13..0]的值由前面一个控制每个音长短的模块送给,但我看不懂这个控制音高的程序,请高人指点一下啊!

相关帖子

沙发
月光破盒| | 2007-12-5 16:30 | 只看该作者

顶。

Support!

使用特权

评论回复
板凳
风中De舞者| | 2007-12-6 08:34 | 只看该作者

你带的是小喇叭还是蜂鸣器?

蜂鸣器是有源还是无源的?  我看带的应该是有源蜂鸣器吧?  

使用特权

评论回复
地板
风中De舞者| | 2007-12-6 08:38 | 只看该作者

这只是一个控制音长的程序

应该是控制有源蜂鸣器发声的  可以唱歌  但是不是很悦耳。。。

使用特权

评论回复
5
xwj| | 2007-12-6 08:43 | 只看该作者

呵呵,这也太有钱了吧?用CPLD或FPGA来做FM音源?

使用特权

评论回复
6
computer00| | 2007-12-6 09:51 | 只看该作者

c就是一个递减的计数器,当递减到0时,翻转IO口,并重新用a

这样a值不一样时,c递减到0的时间就不一样,从而翻转IO口的频率就不一样,也就是音高不一样。

使用特权

评论回复
7
风中De舞者| | 2007-12-6 10:50 | 只看该作者

C只是来控制脉冲宽度的

可以控制无源蜂鸣器发出音节的频率  有源蜂鸣器的话就是音长了  

怎么没人去看看我的帖呢  我汗

使用特权

评论回复
8
liangzhitu| | 2007-12-6 11:54 | 只看该作者

回复

没有歌曲播放模块呀!!!a[13..0]只是音调选择模块,所以您的模块不会播放歌曲,要播放歌曲还有许多模块要设计。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

0

粉丝