大家帮忙看看这段程序

[复制链接]
2837|7
 楼主| 小艾 发表于 2007-12-4 12:28 | 显示全部楼层 |阅读模式
AN, ST, ic, ge, logic
library&nbsp;ieee;<br />use&nbsp;ieee.std_logic_1164.all;<br />entity&nbsp;fana&nbsp;is<br />&nbsp;&nbsp;port(a:in&nbsp;integer&nbsp;range&nbsp;0&nbsp;to&nbsp;10204;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk:in&nbsp;std_logic;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q:out&nbsp;std_logic);<br />end&nbsp;fana;<br />archirecture&nbsp;fan_arc&nbsp;of&nbsp;fana&nbsp;is<br />begin<br />&nbsp;&nbsp;process(clk)<br />&nbsp;&nbsp;variable&nbsp;b,d:std_logic;<br />&nbsp;&nbsp;variable&nbsp;c:integer&nbsp;range&nbsp;0&nbsp;to&nbsp;10204;<br />&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;clk'event&nbsp;and&nbsp;clk='1'&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;b='0'&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c:=a;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b:='1';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;c=0&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b:='0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d:=not&nbsp;d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c:=c-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;q&lt=d;<br />&nbsp;&nbsp;end&nbsp;process;<br />end&nbsp;fan_arc;&nbsp;&nbsp;<br />这个程序是实现歌曲播放的一个模块,输入a[13..0]的值由前面一个控制每个音长短的模块送给,但我看不懂这个控制音高的程序,请高人指点一下啊!
月光破盒 发表于 2007-12-5 16:30 | 显示全部楼层

顶。

Support!
风中De舞者 发表于 2007-12-6 08:34 | 显示全部楼层

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

蜂鸣器是有源还是无源的?&nbsp;&nbsp;我看带的应该是有源蜂鸣器吧?&nbsp;&nbsp;
风中De舞者 发表于 2007-12-6 08:38 | 显示全部楼层

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

应该是控制有源蜂鸣器发声的&nbsp;&nbsp;可以唱歌&nbsp;&nbsp;但是不是很悦耳。。。
xwj 发表于 2007-12-6 08:43 | 显示全部楼层

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

  
computer00 发表于 2007-12-6 09:51 | 显示全部楼层

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

这样a值不一样时,c递减到0的时间就不一样,从而翻转IO口的频率就不一样,也就是音高不一样。
风中De舞者 发表于 2007-12-6 10:50 | 显示全部楼层

C只是来控制脉冲宽度的

可以控制无源蜂鸣器发出音节的频率&nbsp;&nbsp;有源蜂鸣器的话就是音长了&nbsp;&nbsp;<br /><br />怎么没人去看看我的帖呢&nbsp;&nbsp;我汗
liangzhitu 发表于 2007-12-6 11:54 | 显示全部楼层

回复

没有歌曲播放模块呀!!!a[13..0]只是音调选择模块,所以您的模块不会播放歌曲,要播放歌曲还有许多模块要设计。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部