用EDA设计音乐播放器

用EDA设计音乐播放器
用EDA设计音乐播放器

乐曲播放器的VHDL设计

1.设计背景

随着电子技术的飞速发展,微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体的工艺水平的线宽已经达到60nm,并在不断地缩小,表现在硅片单位面积上,集成了更多的晶体管。集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展,电子产品的功能越来越强大,体积越来越小,功耗越来越低。

传统电子电路的设计,首先要对系统进行分析,然后按功能对系统进行划分,接下来就要选择特定芯片,焊接成PCB电路板,最后对成品PCB电路板进行调试。这样的设计没有灵活性可言,搭成的系统需要的芯片种类多且数目大,而且对于电路图的设计和电路板的设计都需要很大的工作量,工作难度也很高。可编程逻辑器件和EDA 技术的使用使设计方法发生了质的变化。把以前“电路设计+硬件搭试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA 开发平台,采用可编程逻辑器件CPLD/FPGA 使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB 设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,增加了系统的可靠性和稳定性,提高了技术指标。

这些技术使得各种电子产品迅速的进入了我们的生活,我们处在一个被电子产品深度包围的时代,在一个普通老百姓的家里,衣食住行,每一个产品的诞生都离不开EDA技术,从彩色电视机,到智能冰箱,到全自动洗衣机,电饭煲,到微波炉,电磁炉,电子琴,再到个人随身用的手机,MP3音乐播放器都需要EDA 技术提供支持。

本次设计在EDA开发工具Quartus II 9.1平台上,应用语言层次化和模块化的设计方法,通过音符编码的设计思想,预先定制乐曲,在此基础上设计了一个乐曲硬件演奏电路,经过对整体进行模块化分析、编程、综合、仿真及最终下载,完整实现简易音乐器的播放功能。

2.设计方案

2.1音符准备知识

用以记录不同长短的音的进行的符号叫做音符。音符包括三个组成部分,即符头、符干和符尾。以节拍来划分音符的种类,如全音符为四拍;二分音符为二拍等。

在本次设计中采用了铃声《祝你生日快乐》作为要播放的乐曲,它的旋律下图所示

图2-1 《祝你生日快乐》歌曲简谱

为了便于理解,首先介绍一下硬件电路的发声原理。我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。而乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。

表2-1为简谱中音名与频率的对应关系。

表2-1 简谱音名与频率的关系

音名频率(Hz)音名频率(Hz)

中音1 523高音1 1047

中音2 587高音2 1175

中音3 659高音3 1382

中音4 698高音4 1397

中音5 784 高音5 1568

中音6 880 高音6 1760

中音7 988 高音7 1976

表2-2为频率点及音符与音谱对应定义。

表2-2音符语音谱定义

音符对应频率点对应音谱区别高中低音

0 2047 0 0

1 1091 1 1

2 1195 2 1

3 1288 3 1

4 1331 4 1

5 1409 5 1

6 1479 6 1

7 1541 7 1

8 1569 1 2

9 1621 2 2

10 1668 3 2

11 1689 4 2

12 1728 5 2

13 1763 6 2

14 1794 7 2

2.2系统总体设计方案

乐曲演奏电路主要包括音调发生器(ydfsq)模块、手动\自动选择(bmux)模块、音调编码器(ydbmq)模块及数控分频器(skfpq)模块。通过这几个模块的协调工作就可以完成相应的音乐播放功能。顶层框图如图2-2所示。

音调发生器

模块手动\自动选择模块音调编码器模块数控分频器模块

图2-2 乐曲演奏电路的结构示意

顶层乐曲演奏电路如下图2-3所示。

VCC

d1

INPUT VCC cs INPUT VCC

rst

INPUT VCC

clkj

INPUT VCC clk1INPUT VCC

clk2

INPUT spks

OUTPUT

code

OUTPUT code1

OUTPUT

clk clkj[1..0]rst toneindex[3..0]

ydfsq

u1

d1[3..0]d2[3..0]cs rst

q[3..0]

bmux u2

index[3..0]

code[3..0]code1[3..0]tone[10..0]

ydbmq

u3

clk tone[10..0]

spks

skfpq

u4

图 2-3 乐曲演奏电路原理图

2.3硬件电路设计

2.3.1音调发生器模块

在此模块中设置了一个8位二进制计数器(计数最大值为107),这个计数器的计数频率选为4Hz ,即每一计数值的停留时间为0.25s ,恰好为当全音符设为1s 时,四四拍的4分音符的持续时间。例如,ydfsq 在以下的VHDL 逻辑描述中,《祝你生日快乐》乐曲的第一个音符为“5”,此音在逻辑中停留了4个时钟节拍,即为1s 时间,相应地所对应“1”音符分频预置数为1409在skfpq 的输入端停留了1s 。随着ydfsq 中的计数器按4Hz 的时钟频率做加法计数时,乐谱逐次被选取,《祝你生日快乐》乐曲就开始自然连续而且循环的演奏起来了。

a.音调发生器模块的VHDL实现

library ieee;

use ieee.std_logic_1164.all;

entity ydfsq is

port(clk:in std_logic;

clkj:in std_logic_vector(1 downto 0);

rst:in std_logic;--工作时钟/输入信号/复位信号

toneindex:out integer range 0 to 14);--检测结果输出

end ydfsq;

architecture bhv of ydfsq is

signal counter:integer range 0 to 107;--定义8位二进制计数器的计数范围signal clker:std_logic;

signal count4:integer;

begin

process(clk)

begin

if clk'event and clk='1' then

if clkj="10" then

count4<=count4+1;

if count4>0 then

clker<=not clker;count4<=0;

end if;

elsif clkj="01" then

count4<=count4+1;

if count4>2 then

clker<=not clker;count4<=0;

end if;

else count4<=count4+1;

if count4>1 then

clker<=not clker;count4<=0;

end if;

end if;

end if;

end process;

process(clker,counter,rst)

begin

if rst='1' then

counter<=0;

elsif counter=107 then

counter<=0;

elsif clker'event and clker = '1' then

counter<=counter+1;

end if;

end process;

process(counter)—进入计数进程

begin

case counter is

when 0 to 3|8 to 11|24 to 27|32 to 35|48 to 51=>toneindex<=5; when 4 to 7|28 to 31|68 to 75=>toneindex<=6;

when 16 to 23|64 to 67=>toneindex<=7;

when 12 to 15|40 to 47|60 to 63|92 to 95|100 to 107=>toneindex<=8; when 96 to 99=>toneindex<=9;

when 56 to 59|88 to 91=>toneindex<=10;

when 84 to 87=>toneindex<=11;

when 52 to 55=>toneindex<=12;

when 76 to 83=>toneindex<=0;

when others=>NULL;--计其他数时输出为空

end case;

end process;

end bhv;

b.音调发生器模块的仿真图

图2-4音调发生器模块的仿真波形图

2.3.2手动\自动选择模块

根据设计的要求,该简易乐曲演奏器能实现手动或自动演奏乐曲的功能。于是,可通过一个按键cs来进行自动与手动的选择,当cs按下时,乐曲自动演奏,其他情况下均为手动演奏乐曲,即可以通过按下其他的按键(与cs相连的按键除外)来控制不同的音符。与此同时,还需要一个复位信号rst来控制该演奏器是否工作,当rst为1时,停止演奏,为0时,可以演奏。以上提到的手动与自动的选择只能在rst为0时有效。

a.手动\自动选择模块的VHDL实现

library ieee;

use ieee.std_logic_1164.all;

entity bmux is

port(d1:in integer range 0 to 14;

d2:in integer range 0 to 14;

cs,rst:in std_logic;--输入信号和复位信号

q:out integer range 0 to 14);--检测结果输出

end bmux;

architecture bhv of bmux is

begin

process(cs,rst)

begin

if rst='1'then

q<=0;--检测异步复位信号,复位信号后回到0

else

case cs is

when '0'=>q<=d1;--进入状态0后输出d1

when '1'=>q<=d2;--进入状态1后输出d2

when others=>q<=d1;--进入其他状态后输出d1

end case;

end if;

end process;

end bhv;--结束

b.手动\自动选择模块的仿真图

图2-5手动\自动选择模块的仿真波形图

此仿真图中输入cs代表手动\自动演奏的选择端,输入rst代表整体复位端,输入d1、d2分别代表手动和自动要演奏的音符,输出q代表经过选择后,要演奏的或是手动输入或是自动输入的音符。由此仿真图可清楚的看到当rst=1时,不论选择的是手动还是自动,输出都为零,达到了整体复位的功能;当rst=0且cs=1时,自动演奏乐曲,因为q与d2的值相同;当rst=0且cs=0时,手动演奏乐曲,因为这时的q与d1的值相同,从而也达到了演奏方式选择的功能。

2.3.3音调编码器模块

此模块的功能首先是为skfpq提供决定所发音符的分频预置数,而此数在skfpq输入端口停留的时间即为此音符的节拍值。ydbmq模块是乐曲简谱码对应的分频预置数查表电路,其中设置了《祝你生日快乐》乐曲全部音符所对应的分频预置数,共9个,每一音符的停留时间由音乐节拍和音调发生器模块ydfsq 的clk输入频率决定,在此为4Hz。这9个值的输出由对应于ydbmq的4位输入值index[3..0]来确定。与此同时,code[3..0]和code1[3..0]这两个输出接2个数码管分别显示乐曲音符的高、中、低音(“0”代表低音,“1”代表中音,“2”代表高音)和乐曲演奏的音符(高、中、低1~7音符)。

a.音调编码器模块的VHDL实现

library ieee;

use ieee.std_logic_1164.all;

entity ydbmq is

port(index:in integer range 0 to 14;--输入数据位

code:out integer range 0 to 15;

code1:out integer range 0 to 15;

tone:out integer range 0 to 2047);检测结果输出

end ydbmq;

architecture bhv of ydbmq is

begin

process(index)

begin

case index is

when 0=>tone<=2047;code<=0;code1<=0;--输出0 when 1=>tone<=1091;code<=1;code1<=1;

when 2=>tone<=1195;code<=2;code1<=1;

when 3=>tone<=1288;code<=3;code1<=1;

when 4=>tone<=1331;code<=4;code1<=1;

when 5=>tone<=1409;code<=5;code1<=1;

when 6=>tone<=1479;code<=6;code1<=1;

when 7=>tone<=1541;code<=7;code1<=1;--输出1 when 8=>tone<=1569;code<=1;code1<=2;

when 9=>tone<=1621;code<=2;code1<=2;

when 10=>tone<=1668;code<=3;code1<=2;

when 11=>tone<=1689;code<=4;code1<=2;

when 12=>tone<=1728;code<=5;code1<=2;

when 13=>tone<=1763;code<=6;code1<=2;

when 14=>tone<=1794;code<=7;code1<=2;--输出2 when others=>NULL;--其他情况时输出为空

end case;

end process;

end bhv;

b.音调编码器模块的仿真图

图2-6音调编码器模块的仿真波形图

在此仿真图中从上到下依次代表输出code、输出code1、输入index和输出tone。通过此仿真图能清楚的看到当音符分别为3、5、8、13、0时,它们所对应的分频预置数tone分别是1288、1409、1569、1763、2047;所对应的音谱code 分别是3、5、1、6、0;所对应的高中低音code1又分别是1(中)、1(中)、2(高)、2(高)、0(低)。其中code、code1能分别在两个数码管上显示,而tone则输入到数控分频模块作为分频的依据。于是,由仿真图印证了音调编码模块传送预置数及显示功能。

2.3.4数控分频器模块

该模块的clk端输入一个具有较高频率(本实验为12MHz)的信号,通过skfpq 分频后由spkout输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲信号,为了便于驱动喇叭,需另加一个D触发器均衡其占空比,也即作二分频处理。skfpq对clk输入信号的分频比由11位预置数tone[10..0]决定。spkout 的输出频率将决定每一音符的音调,这样分频计数器的预置数tone[10..0]与spkout的输出频率就有了对应关系。例如在ydbmq模块中取tone[10..0]=1479,作为发音符为“6”音的信号频率。

a.数控分频器模块的VHDL实现

library ieee;

use ieee.std_logic_1164.all;

entity skfpq is

port(clk:in std_logic;

tone:in integer range 0 to 2047;--工作时钟和输入信号

spks:out std_logic);--检测结果输出

end skfpq;

architecture bhv of skfpq is

signal preclk:std_logic;

signal fullspks:std_logic;

begin

process(clk)

variable count4:integer range 0 to 14;--给count赋值

begin

preclk<='0';

if count4>11 then

preclk<='1';count4:=0;

elsif clk'event and clk='1' then

count4:=count4+1;

end if;

end process;

process(preclk,tone)

variable count11:integer range 0 to 2047;

begin

if preclk'event and preclk='1'then

if count11=2047 then

count11:=tone;fullspks<='1';

else

count11:=count11+1;fullspks<='0';

end if;

end if;

end process;

process(fullspks)

variable count2:std_logic;

begin

if fullspks'event and fullspks='1' then

count2:=not count2;

if count2='1'then

spks<='1';--如果计数为1,输出高电平

else

spks<='0';--否则,输出低电平

end if;

end if;

end process;

end;

b.数控分频器模块的仿真图

图2-7数控分频器模块的仿真波形图

在此仿真图中,输入clk是一个频率较大的时钟信号,输入tone代表着某个音符的分频预置数,输出spks则代表将输入clk先经过12次分频,再经过(预置数终值2048-tone)次分频,最终在进行二分频处理后的信号,而这个信号的频率就是我们需要演奏的音谱的频率,根据频率的不同,从而能通过喇叭听到不同的声音,这就是我们一直想要演奏的《祝你生日快乐》了!

2.4顶层文件

2.4.1顶层音乐演奏器源程序

library ieee;

use ieee.std_logic_1164.all;

entity yyyzq is

port(clk1,clk2,cs,rst:in std_logic;

d1:in integer range 0 to 14;

clkj:in std_logic_vector(1 downto 0);--工作时钟和输入信号

code,code1:out integer range 0 to 15;

spks:out std_logic);--检测结果输出

end yyyzq;

architecture bhv of yyyzq is

signal x,y:integer range 0 to 14;

signal z:integer range 0 to 2047;--给变量赋值

component ydfsq is

port(clk:in std_logic;

rst:in std_logic;

clkj:in std_logic_vector(1 downto 0);--工作时钟和输入信号

toneindex:out integer range 0 to 14); --检测结果输出

end component;

component bmux is

port(d1:in integer range 0 to 14;

d2:in integer range 0 to 14;

cs,rst:in std_logic;--输入信号

q:out integer range 0 to 14);--检测结果输出

end component;

component ydbmq is

port(index:in integer range 0 to 14;--输入数据位

code:out integer range 0 to 15;

code1:out integer range 0 to 15;

tone:out integer range 0 to 2047);--检测结果输出

end component; component skfpq is port(clk:in std_logic;

tone:in integer range 0 to 2047;--工作时钟和输入信号 spks:out std_logic);--检测结果输出 end component; begin

u1:ydfsq port map(clk=>clk1,clkj=>clkj,toneindex=>x,rst=>rst); u2:bmux port map(d1=>d1,d2=>x,cs=>cs,rst=>rst,q=>y);

u3:ydbmq port map(index=>y,code=>code,code1=>code1,tone=>z); u4:skfpq port map(clk=>clk2,tone=>z,spks=>spks);--模块化语句 end bhv;

2.4.2顶层音乐演奏器原理图

经过了各个子模块的分析与验证后,我们只需将各个子模块之间的输入输出端、子模块与整体电路之间的输入输出端进行恰当的硬件连接就能得到正确的顶层乐曲演奏器的电路,结合以上程序,可转换为一个元件符号存盘,元件符号如图2-8所示:

y y y zq

inst

clk1clk2

cs rst d1[3..0]clkj[1..0]

code[3..0]code1[3..0]

spks

图2-8乐曲演奏电路的顶层原理图

2.4.2顶层程序仿真波形图

图2-9顶层程序的仿真波形图

首先,介绍一下总体程序中各个引脚的作用及硬件连接情况:输入clk1是一个频率较小的时钟信号,在进行硬件下载时它与实验箱上clock0模块的16Hz 频率相连,它决定着乐曲演奏的快慢;输入clk2是一个频率较大的时钟信号,因为要对它进行多次不同的分频,下载时它与实验箱上clock9模块的12MHz频率相连;输入d1[3..0]是当手动演奏时自己确定的音符,下载时它与实验箱上的按键6、5、4、3相连;输入rst和cs分别是整体复位端和演奏方式选择端,它们分别与实验箱上的按键2、1相连;输出code和code1分别用来显示音谱与高中低音,它们分别与实验箱上的数码管1和2相连(提示:选择工作模式为模式5);输出spks要与实验箱上的喇叭相连,用来发出声音。

其次,顶层电路的仿真波形图是否正确依赖于各个子模块的功能是否完善,同时顶层电路的功能实现又验证了各个子模块的正确性,二者相互依存。经过仔细分析,本次设计的顶层电路和各个子模块的波形都正确。

3.结果与结论

本次简易乐曲演奏器的设计经过了整体分析、模块化分析、整体与模块的仿真分析这样三个步骤,硬件实现了整体复位、按键选择演奏方式、循环演奏以及数码管显示乐谱的功能。

系统成功的实现了乐曲《祝你生日快乐》的播放,能自动从头开始循环播放,也可随时起停、整体复位、按键选择播放、循环播放以及发光二极管动态显示播放的音符。经过实际电路测试验证,基本达到了设计要求,但尚有需要改进的地方。随着乐谱的复杂程度加大,如果依然在音调发生器的程序中通过时钟计数来决定音符的输出,会加大编程的繁杂度,这时一个很好的解决办法就是把将要演奏的乐谱存放在人为开辟的存储空间里,这样只需要在相应地址中读出音符即可。

本次大作业设计,让我进一步了解了数控分频器的工作原理和功能作用,并学会了利用LPM模块制作ROM文件的方法,也更深一层地懂得了顶层文件通过比例语句与其他模块结合的好处,同时使我更加熟悉了VHDL语言,对QuartusⅡ软件的操作有了进一步了解,更加熟练掌握了EDA的文本编程设计方法和仿真波形的编辑。

音乐盒设计

基于89c52单片机音乐播放的设计安庆师范学院物理与电气工程学院

1、设计任务和要求 (1) 2、总体设计 (1) 3、硬件设计 (2) 3.1 硬件电路 (2) 3.2 原理说明 (2) 4、软件设计 (2) 5、仿真、安装和调试 (5) 6、收获与体会 (6) 附件1:元件清单 (6) 附件2: 总仿真电路图 (7) 附件3:音乐程序 (8)

音乐盒设计 1、设计任务和要求 (1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。 (2直接当前播放的歌曲。 (3)可通过功能键选择播放上一首、下一首和暂停播放歌曲。 2、总体设计 (1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲 (2)利用8052的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。 记数脉冲值与频率的关系公式如下: N=Fi/2/Fr N:记数值 Fi:内部计时一次为1微秒.故其频率为1MHZ Fr;要产生的频率 (3):起记数值的求法如下: T=65536-N=65536-Fi/2/Fr 例如:设K=65536,F==Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。 T=65536-N=65536-Fi/2/Fr=65536-/2/Fr=65536-500000/Fr 低音D0的T=65536-500000/262=63627 中音D0的T=65536-500000/523=64580 高音D0的T=65536-500000/1047=65059

EDA课程设计---流水灯设计

EDA课程设计流水灯设计

目录 一、摘要··3 二、流水灯设计目的··4 三、流水灯设计流程··4 四、流水灯设计程序··5 五、流水灯设计管脚分配··7 六、功能仿真图··8 七、原理图波形图··9 八、设计注意事项··10

九、课程设计总结··11 十、参考文献··12 十一、评分表··13 一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、

自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。

基于51单片机数字音乐盒的设计

单片机实物设计 题目: 单片机音乐盒设计 班级: K0312416-17 姓名:湛俊朱斌杨裕庆 学号:K031241705 K031241632 K031241737

摘要 本设计是一个基于STC89C51RC系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。本音乐盒共有四首歌曲,用4个按键控制。播放歌曲时,蜂鸣器发出某个音调。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS 仿真软件对硬件进行仿真调试,节约了设计时间。 【关键词】STC89C51RC 按键蜂鸣器 LCD1602液晶

目录 前言 ................................................................................................................................. 第一章工作原理 .............................................................................................................. 1.1设计目标 ............................................................................................................... 第二章软件设计与分析................................................................................................... 2.1 软件设计的组成................................................................................................... 2.2 各部分软件分析 ................................................................................................. 2.2.1 延时165MS,即十六分音符子函数 .......................................................... 2.2.2 延时1MS子函数...................................................................................... 2.2.3 定时器0中断子函数 .............................................................................. 2.2.4 播放音乐子函数...................................................................................... 2.5 定时器1中断子函数.................................................................................. 2.6 按键扫描子函数 ......................................................................................... 2.2.7 主函数..................................................................................................... 2.3 总源程序 ............................................................................................................ 第三章软件仿真 .............................................................................................................. 3.仿真图...................................................................................................................... 3.1 元件清单 ............................................................................................................... 总结 ..................................................................................................................................... 参考文献..............................................................................................................................

EDA课程设计报告

湖北职业技术学院《EDA技术》课程设计报告 题目动态输出4位十进制频率计的设计所在学院电子信息工程学院 专业班级电信08304 学生姓名马强 学号08024839 指导教师王芳 完成日期2010年11月18 日

目录 一、概述 (3) 二、设计正文 (4) (一)设计目的 (4) (二)设计实现 (4) 1、端口说明 (4) 2、Cnt10模块说明 (5) 3、Tctl模块说明 (6) 4、锁存器reg16模块说明 (8) 5、Scan_led模块说明 (9) 6、顶层文件仿真 (10) 7、硬件下载 (11) 三、总结 (13) 四、感言 (14) 五、参考文献 (15)

概述 此次设计的主要目的是学习掌握频率计的设计方法;掌握动态扫描输出电路的实现方法;学习较复杂的数字系统设计方法。通过单位时间(1秒)内频率的计数来实现频率计的设计。此设计主要用四位十进制计数器,所以频率计数范围为100~9999Hz。然后锁存防止闪烁显示,最后由译码扫描显示电路输出到数码管进行显示输出。并且下载后会有一秒钟的延时后才会显示输出所计频率输出。设计下载后能够进行仿真频率的计数和静态显示,但是分频的设计程序有所缺陷导致长时间显示后会有1Hz的抖动。通过这次的设计能够更清楚的理解VHDL程序的描述语言,进行简单程序的编写和仿真。

动态输出4位十进制频率计的设计 一、目的 1.学习掌握频率计的设计方法。 2.掌握动态扫描输出电路的实现方法。 3.学习较复杂的数字系统设计方法 二、设计实现 4位十进制频率计外部接口如图1所示,顶层文件如图2所示,包含4中模块;Tctl、reg16、scan_led和4个cnt10。 (1)端口说明 F1Hz:给Tctl模块提供1Hz的频率输入。 Fin:被测频率输入。 scan_led:给scan_led模块提供扫描输入频率输入。 bt[1..0]:片选信号输出。 sg[6..0]:译码信号输出。 cout:进位输出。

音乐盒设计

机电学院单片机课程设计 任务书 设计名称:音乐盒的设计 学生姓名:*** 指导教师:***** 起止时间:自*** 年* 月* 日起至*** 年*月* 日止 一、课程设计目的 利用AT89C51系列单片机,实现两首歌曲的依次、循环播放,并在播放歌曲的同时,与之对应的LED灯亮起,形成三种绚丽的灯光效果,制作成一个简单的音乐盒。 二、课程设计任务和基本要求 设计任务: 1.运用AT89C51系列单片机的技术原理,通过硬件电路制作以 及软件编译,设计制作出一个多功能音乐盒; 2.运用2N2905三极管放大技术,对扬声器音频信号进行放大, 实现音乐播放功能; 3.8个LED灯对应音乐的不同音阶,实现伴随音乐播放,发出 不同的花样效果的功能。 基本要求: 1. 能够实现设计任务的基本功能; 2. 至少设计两种音乐的播放和三种灯光效果的制作; 3. 能够完成音乐盒实物的焊接; 4. 完成设计后独立撰写3000字左右的设计报告。

目录 摘要 (1) 关键字 (1) 1 概述 (2) 1.1设计意义 (2) 1.2设计方案 (2) 1.3设计内容 (2) 2 硬件设计 (3) 2.1音乐盒的结构框图 (3) 2.2单片机模块 (3) 2.2.1 AT89C51系列单片机介绍 (3) 2.2.2 最小系统 (4) 2.3扬声器模块 (4) 2.4LED显示模块 (5) 2.5按键模块 (5) 3 软件设计 (6) 3.1音乐盒的功能框图 (6) 3.2音调、节拍以及编码的确定方法 (6) 3.2.1 音调的确定 (6) 3.2.2 节拍的确定 (7) 3.2.3 编码 (8) 3.3软件程序设计 (9) 3.3.1 程序流程图 (9) 3.3.2 程序源代码 (10) 4 调试 (10) 4.1实验环境 (10) 4.1.1 PROTEUS软件简介 (10) 4.1.2 KEIL简介 (11) 4.2仿真调试 (11) 4.3花样灯3种效果 (12) 4.4实物调试 (13) 5 总结 (14) 参考文献 (15) 附录 (16) 附录1仿真电路图 (16) 附录2实物图 (16) 附录3元器件清单 (16) 附录4程序源代码及注释 (17)

EDA课程设计

课程设计说明书 课程:EDA技术基础 题目:数字钟的设计 闹钟与整点报时模块 学生姓名:XXX 学号201265110204 班级 :1203班 专业:电子信息与科学 指导教师:XXX 2014年12月20日 长沙理工大学课程设计任务书 物理与电子科学学院电子信息与科学专业1203班姓名王玲课程名称EDA技术基础 题目数字钟的设计

长沙理工大学课程设计成绩评定表

目录 1数字钟设计闹钟模块基本任务要求4 2设计思想4 3简述闹钟模块的输入与输出5 4分进程描述6 5仿真结果与分析7 6简述数字钟的设计总成果10 7总结11 参考文献13 代码附件13

基本任务要求:运用QuartusⅡ13.1软件平台,用VHDL语言描述并设计的闹钟模块满足可调闹钟时间,当时钟时间到达闹钟时间后会响闹铃,(由于实验室权限问题会以FPGA开发板上12个LED灯交替发光来表现);整点报时过程表现为整点的前十秒内响铃,(以FPGA开发板上一个LED灯交替发光来实现)。 设计思想:闹钟模块要以分频模块、计数器模块和译码显示模块为基础,将闹钟模块分为三个进程,一个进程用来实现调闹钟,一个进程来实现闹响闹钟(即实现LED灯交替发光),另一个进程来是实现整点报时。 (上面截图为数字钟整体编译后的RTL电路的闹钟模块) 简述闹钟模块图的输入与输出:上图中的输入粗黑实线为计数器模块输出的小时、分钟的高低位和秒钟的高位(都用四位的二进制表示);输出的粗黑实线为定的闹钟时间(包括小时和分钟),将送到译码显示模块显示闹钟时间,闹钟时间与时钟都在FPGA上的数码管显示,用二选一实现交替显示。clk和clk1都是经过分频器分出的不同频率的信号分别用于整点报时的闪灯脉冲与闹钟调时、闹响的闪灯脉冲。

单片机课程设计---电子音乐盒的设计

课程设计(说明书) 电子音乐盒的设计 院(系)名称工学院机械系 专业名称机械设计制造及其自动化学生姓名 指导教师 2013年01月12日

课程设计任务书 题目: 电子音乐盒的设计 课程:单片机课程设计 课程设计时间 2012年12月21 日至2012年1 月3日共2 周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页) 1.设计要求 查阅资料,了解单片机控制单音喇叭发声原理;设计基于单片机的电子音乐盒;通过按钮可选择不同的音乐。 创新设计: 1、安装复位键,暂停、播放键; 2、有6首不同的音乐用程序编出可供选择。 2. 设计任务与要求 2.1系统硬件电路设计 根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。 2.2软件设计 根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。 2.3 Proteus仿真 用Proteus对系统进行仿真并进行软硬件调试。 2.4 编写设计说明书 内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于4000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前

加程序功能注释。 3.工作计划 4.主要参考资料 单片机课程设计指导书皮大能北京理工大学出版社2010.7 8051单片机实践与应用吴金戎清华大学出版社2003.8 单片机技术基础教程与实践夏路易电子工业出版社2008.1 MCS-51单片机原理接口及应用王质朴北京理工大学出版社2009.11 基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2009.7 指导老师签字: 日期:

EDA课程设计说明书参考格式

<>课程设计说明书 题目 院、部: 学生姓名: 指导教师:王晓丽职称助教 专业: 班级: 完成时间:

摘要(三号,黑体,居中,字间空两格字符) (空二行换行) 空4格打印摘要内容(小四号宋体,行距20)。 关键词:(摘要内容后下空一行打印“关键词”三字(小四号黑体),其后为关键词(小四号宋体),每一关键词之间用分号隔开,最后一个关键词后不打标点符号。 ABSTRACT ①居中打印“ABSTRACT”,再下空二行打印英文摘要内容。②摘要内容每段开头留四个空字符。③摘要内容后下空一行打印“Key words”,其后为关键词用小写字母,每一关键词之间用分号隔开,最后一个关键词后不打标点符号。 Key words :aaa;bbb;ccc

目录(3号,黑体,居中) (空1行,以小4号黑体设置字体及大小,行间距22、字间距标准) 1 XXXXXX………………………………………………………………………… 1.1 XXXXXX……………………………………………………………………… 1.2 XXXXXX……………………………………………………………………… ┇ 2 XXXXXX………………………………………………………………………… 2.1 XXXXXX……………………………………………………………………… 2.2 XXXXXX……………………………………………………………………… ┇ 3 4 结束语 参考文献………………………………………………………………………………. 致谢……………………………………………………………………………………附录……………………………………………………………………………………

课程设计-数字音乐盒

单片机课程设计-数字音乐盒 课程设计要求:1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)2.采用LCD显示信息 3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称) 4.可通过功能键选择乐曲,暂停,播放。 5.选作内容:显示乐曲播放时间或剩余时间 硬件电路:本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段 显示数码管LED。 原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并动LCD,显示歌曲号及播放时间。也可在LED显示歌曲号。 (1)硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。 (2)用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。 (3)用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。用P0.0~P0.7作为LCD的D0~D7的控制信号。 (4)用P3.7口控制蜂鸣器。 (5)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。

电路图: 【试验时请仔细阅读后文说明!此图仅为我站制作,并不代表原作者意愿;若您制作成功,望在网络推广。】实验控制流程图如下:

S BIT P2.0 ;定义液晶显示端口标号 RW BIT P2.1 E BIT P2.2 ;******************************************** L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H ;******************************************* org 0000h ljmp main ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT org 1000h main: ;-----------------------;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL ENABLE MOV P0,#38H ;8位,2行显示

EDA课程设计参考题目

附录I EDA课程设计参考题目 注:在以下设计中只可以用一个参考时钟 一、设计数码管显示控制器 要求: 1.能自动一次显示出数字0、1、2、3、4、5、6、7、8、9(自然数列),1、3、5、7、9(奇数列),0、2、4、6、8(偶数列),0、1、2、3、4、5、6、7、0、1(音乐符号序列);然后再从头循环; 2.打开电源自动复位,从自然数列开始显示。 二、设计乒乓球游戏机 要求: 1.用8个发光二极管表示球;用两个按钮分别表示甲乙两个球员的球拍; 2.一方发球后,球以固定速度向另一方运动(发光二极管依次点亮),当球达到最后一个发光二极管时,对方击球(按下按钮)球将向相反方向运动,在其他时候击球视为犯规,给对方加1分;都犯规,各自加1分; 3.甲、乙各有一数码管计分; 4.裁判有一个按钮,是系统初始化,每次得分后,按下一次。 三、设计智力竞赛抢答器 要求: 1.五人参赛每人一个按钮,主持人一个按钮,按下就开始; 2.每人一个发光二极管,抢中者灯亮; 3.有人抢答时,喇叭响两秒钟; 4.答题时限为10秒钟,从有人抢答开始,用数码管倒计时间,0、9、8…1、0;倒计时到0的时候,喇叭发出两秒声响。 四、设计数字钟 要求: 1.输入10HZ的时钟;(提示:对已有kHz频率时钟进行分频) 2.能显示时、分、秒,24小时制; 4.时和分有校正功能; 5.整点报时,喇叭响两秒; 6.可设定夜间某个时段不报时; 注意:硬件资源的节约,否则器件内资源会枯竭。 五、设计交通灯控制器 要求: 1.东西方向为主干道,南北方向为副干道; 2.主干道通行40秒后,若副干道无车,仍主干道通行,否则转换; 4.换向时要有4秒的黄灯期;

数字音乐盒的设计与实现

课程设计报告 课程设计名称:微机系统综合课程设计课程设计题目:数字音乐盒的设计与实现

1总体设计方案 1.1题目介绍与要求 本次课程设计的任务是运用伟福Lab8000试验箱和keil软件设计并实现一个数字音乐盒,要求采用I/O产生一定频率的方波,从而驱动蜂鸣器发出不同的音调,演奏乐曲;并且需要采用七段数码管显示当前播放的歌曲序号和播放时间;还得通过数字键盘直接选择乐曲,控制选择上一曲和下一曲音乐,具有暂停和播放控制功能。 1.2设计思路 1.2.1音调的产生 频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。在两个八度音之间又分为十二个半音。另外,音名A (简谱中的低音6)的频率为440Hz,音名B到C之间、E 到F之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每 个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。 要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以 2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。 利用51单片机的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。 此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。 例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系公式如下:

EDA课程设计题目

计算机辅助设计参考题目 设计一数字式竞赛抢答器 1、设计一个可容纳6组(或4组)参赛的数字式抢答器,每组设一个按钮,供抢 答使用。 2、抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。 3、设置一个主持人“复位”按钮。 4、主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显 示抢答组别,扬声器发出2~3秒的音响。 5、设置一个计分电路,每组开始预置100分,由主持人记分,答对一次加10 分,答错一次减10分。 教学提示: 1、此设计问题的关键是准确判断出第一抢答者并将其锁存,实现的方法可使 触发器或锁存器,在得到第一信号后将输入封锁,使其它组的抢答信号无效。 2、形成第一抢答信号后,用编码、译码及数码显示电路显示第一抢答者的组别, 用第一抢答信号推动扬声器发出音响。 3、计分电路采用十进制加/减计数器、数码管显示,由于每次都是加/减10 分,所以个位始终为零,只要十位、百位进行加/减运算即可。 设计二数字钟 1、设计一个能显示1/10秒、秒、分、时的12小时数字钟。 2、熟练掌握各种计数器的使用。 3、能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。 4、能用低位的进位输出构成高位的计数脉冲。 教学提示: 1、时钟源使用频率为0.1Hz的连续脉冲。 2、设置两个按钮,一个供“开始”及“停止”用,一个供系统“复位”用。 3、时钟显示使用数码管显示。 4、“时显示”部分应注意12点后显示1点。 5、注意各部分的关系,由低位到高位逐级设计、调试。 设计三数字频率计 1、设计一个能测量方波信号的频率的频率计。 2、测量的频率范围是1Hz~9999Hz。 3、结果用十进制数显示。 教学提示: 1、脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被 测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。 所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。 2、被测频率信号取自实验箱晶体振荡器输出信号,加到主控门的输入端。 3、再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms, 10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。 4、时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时 基信号的一个周期),输入信号才通过主控门。 5、f=N/T,改变时基信号的周期T,即可得到不同的测频范围。

基于单片机的音乐盒设计-毕业设计

基于单片机的音乐盒设计 学生:XXX指导老师:XXX 内容摘要:本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能数字音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。本设计利用KEIL 编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。 关键词:音乐盒 AT89C51 KEIL PROTEUS 音调

Design for AT89C51 digit music box Abstract:The digest this text has introduced the basic AT89C51 digit music box,According to AT89C51 principle,take it by hardware circuit and software compile to made a multifunction digit music box.this box main form button circuit rest circuit clock circuit and https://www.360docs.net/doc/dd12983961.html,e two button to control it,the one use to change music ,and the other one made the LED change the kind of light.this box had two songs,and LED had three kind of light.then the music has playing,the buzzer will take among of tone,meanwhile LED will give out light.the design on the basic of KEIL to compile and debugging this music box,at the same times match up PROTEUS to hardware going to simulation debugging,So save a lot of times. Keywords:music box AT89C51 KEIL PROTEUS Tone

EDA课程设计参考题目

EDA课程设计参考题目一、设计彩灯控制器一 要求: 1.有八只LED,L0……L7 2.显示顺序如下表 3

要求: 1.8 个灯全亮; 2.8 个灯全灭; 3.从左边第一个开始每隔一个亮; 4.从右边第一个开始每隔一个灭; 5.左4个灭,右4个亮; 6.左4个亮,右4个灭; 7.显示间隔0.5S,1S可调。 三、设计彩灯控制器三 要求: 1. 有十只LED,L0……L9 2. 显示方式 ①先奇数灯依次灭 ②再偶数灯依次灭 ③再由L0到L9依次灭 3.显示间隔0.5S,1S可调。 四、自设计动奏乐器一 要求: 1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。 1 1 5 5 6 6 5 – 4 4 3 3 2 2 1 – 5 5 4 4 3 3 2 – 5 5 4 4 3 3 2 – 3.附加:显示乐谱。 五、设计自动奏乐器二 要求: 1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。 1 3 1 3 5 6 5 – 6 6 ? 1 6 5 ––– 6 6 ? 1 6 5 5 3 1 2 2 3 2 1 ––– 3.乐曲自选。 4.附加:显示乐谱。 六、设计汽车尾灯控制器 要求: 1.用6个发光二极管模拟6个汽车尾灯(左、右各3个)。 2.汽车往前行驶时,6个灯全灭。当汽车转弯时,若右转弯,右边3个尾灯从左至右顺序 亮灭,左边3个灯全灭;若左转弯,左边3个尾灯从右至左顺序亮灭,右边3个灯全灭; 汽车刹车时,6个尾灯同时明、暗闪烁;汽车在夜间行驶时,左右两侧的灯同时亮,供照明使用。

要求: 1.在十字路口的两个方向上各设一组红绿黄灯,显示顺序为:其中一个方向是绿灯、黄灯、 红灯,另一个方向是红灯、绿灯、黄灯。 2.设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、 红灯的持续时间分别是20s、5s、25s。 八、设计数字频率计 要求: 1.输入为矩形脉冲,频率范围0~99MHz; 2.用五位数码管显示;只显示最后的结果,不要将计数过程显示出来; 3.单位为Hz和KHz两档,自动切换。 九、设计智力竞赛抢答器 要求: 1.四人参赛每人一个按钮,主持人一个按钮,按下就开始; 2.当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。 3.有人抢答时,喇叭响两秒钟; 4.答题时限为100秒钟(显示0~99),时间显示采用倒计时方式。当达到限定时间时,发出声响以示警告。 十、设计数字秒表 要求: 1.要求设置启/停开关。当按下启/停开关,将启动秒表开始计时,当再按一下启/停开关时, 将终止计时操作。 2.数字秒表的计时范围是0秒~59分59.99…… 3.要求计时精度为0.01s。 4.复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就 清零,并做好下次计时的准备。 十一、设计数字钟 要求: 1.具有时、分、秒计数显示功能,且以24小时循环计时。 2.具胡清零的功能,且能够对计时系统的小时、分钟进行调整。 3.具有整点报时功能。 十二、设计三层电梯控制器 要求: 1.每层电梯入口处设有上下请求开关,电梯内有乘客到达层数的的停站请求开关。 2.设有电梯所处位置指示装置及电梯运行模式(上升和下降)指示装置。 3.电梯每秒钟升(降)一层。 4.电梯到达有请求的楼层,电梯经过lS电梯门开,打开4S后,电梯门关闭(开门指示灯灭)。电梯继续运行,直至完成最后的一个请求信号后停留在当前层。 5.能记忆电梯内外所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号留至执行完后消除。 6.电梯运行规则:当电梯处于上升模式时,只响应比电梯所在的位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼清求执行完毕;如果高层有下楼请求,则直接升到有下

eda课程设计报告题目

EDA课程设计目录 1 乘法器设计2 1.1设计要求2 1.2设计提示2 2八位序列检测器设计4 2.1设计要求4 2.2 设计提示4 3 多功能数字钟的设计5 3.1 设计要求5 3.2 设计提示6 5 数字频率计7 5.1 设计要求7 5.2 设计提示8 6 拔河游戏机10 6.1设计要求10 6.2设计提示10 7 洗衣机控制器11 7.1 设计要求11 7.2设计提示12 8 简易音乐播放器14 8.1设计任务14 8.2设计提示14

1 乘法器设计 1.1设计要求 设计一个能进行两个十进制数相乘的乘法器,乘数和被乘数均小于100,通过按键输入,并用数码管显示,显示器显示数字时从低位向高位前移,最低位为当前显示位。当按下相乘键后,乘法器进行两个数的相乘运算,数码管将乘积显示出来。 系统框图如图1-1所示。 图1-1 乘法器系统框图 1.2设计提示 表1-1 编码器真值表

此设计问题可分为乘数被乘数输入控制模块、寄存模块、乘法模块和扫描显示模块几部分。 乘数和被乘数的输入仍用数据开关K1-K10分别代表数字1、2、…、9、0,用编码器对数据开关K1~K10的电平信号进行编码,编码器真值表如表1-1所列。用两个数码管显示乘数,两个数码管显示被乘数。 设置“相乘”信号mul,当乘数输入完毕后,mul有效使输入的乘数送寄存器模块寄存。再输入被乘数,显示在另两个数码管上。 设置“等于”信号equal,当乘数和被乘数输入后,equal有效,使被乘数送寄存模块寄存,同时启动乘法摸块。 两数相乘的方法很多,可以用移位相加的方法,也可以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将被乘数的值加到积上,同时乘数减一,这样反复执行,直到乘数为零。 硬件系统示意图如图1-2所示。 图1-2 乘法器硬件系统示意图 可参考你们的EDA教材中的乘法器设计。

基于单片机的电子音乐盒的设计与实现

课程设计报告设计名称基于单片机的电子音乐盒的设计与实现 学校陕西电子科技职业学院 学院电子工程学院 学生姓名滕一帆 班级1507 学号 2013062040311 指导教师聂弘颖 时间2017年09月22日

基于单片机的电子音乐盒的设计与实现 一、设计目的 为证明单片机可以通过软件程序控制硬件电路实现简单音乐播放器的功能,以此证明单片机的功能强大。 二、设计概述 本课题是一个基于51单片机的电子音乐盒,依据单片机控制技术原理,设计出一个可以播放多首音乐的数字音乐盒,通过数码管显示当前是第几首音乐,系统设计了三个按键,具体功能:S1:暂停/播放;S2:加一首(下一首);S3:减一首(上一首)。通过硬件电路制作以及以及软件编程,设计制作出一个多功能的电子音乐盒。 三、设计方案 在这个系统的设计中,单片机采用51兼容系列的STC89C52RC。有以下几部分构成:电源电路、单片机最小系统、发声系统、键盘控制电路、显示电路。经过论证后我确定的系统框图,如下图所示: 四、设计原理 1、原理 本系统由单片机系统,独立按键、数码管组成。利用I/O口产生一定频率的方波,驱动扬声器,发生不同的音调,从而实现乐曲的演奏。系统能通过功能键完成选择乐曲、播放、暂停、和复位的基本功能。在播放乐曲的同时LCD上显示所播放的歌曲序号,可以通过复位键使音乐盒从第一首歌曲重新播放,本系统成本低廉,功能强大

实用。 2、音乐基础简介 <1>音乐频率表 <2>音调表建立 由于单片机输出为方波输入信号,波形图如下: 高低电平各占1/2,根据单片机定时器工作原理。 定时时间=(满值-初值)X机器周期 初值=满值-定时时间/机器周期 =216-(1/f)X(1/2)X106 以低音11为例,初值为=216-(1/262)X(1/2)X106 =63627.6 =63628 同理得其他音调值,具体如下: Unsigned int code table[]={0,63628,63835,64021,64103,64260,64399,64523,64579,64684,64777,64 819,64898,64968,65030,65058,65110,65157,65178,65217,65252,65282}; <3>音乐表的建立 我们以两只老虎音乐为例子,然后我们就会得到该音乐表 Ucharcode music1[]={8,4,9,4,10,4,8,4,9,4,10,4,8,4,10,4,11,4,12,8,10,4,11,4,12,8,12,3,13,1,12, 3,11,1,10,4,8,4,12,3,13,1,12,3,11,1,10,4,8,4,9,4,5,4,8,8,9,4,5,4,8,8,0,0xff};

EDA课程设计流水灯设计

EDA课程实践报告 基于verilog的流水灯设计 学院:物理与电气工程学院 专业:11级电子信息工程 姓名:蒋美菊 学号:111102088

基于verilog的流水灯设计 一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。 利用学到的电子技术知识,通过布置具有一定难度的设计题目,帮助学生熟悉课程设计任务和设计方法。 二、设计目的

本科毕业设计(基于单片机的音乐盒的设计)

本科毕业设计(论文)基于单片机的音乐盒的设计 学院名称: 专业: 班级: 学号: 姓名: 指导教师姓名: 指导教师职称: 二〇一四年六月

江苏理工学院毕业设计说明书(论文) 基于单片机的音乐盒的设计 摘要:本次设计根据单片机技术原理,通过硬件电路制作以及软件编程,制作出一个基于AT89C52单片机的简易音乐播放器,该系统以单片机作为电路的主控核心,硬件电路主要由按键电路、复位电路、显示电路等模块组成。系统软件采用C语言进行编写,采用了模块化编程,其移植性较好。系统程序主要包括主程序、播放子程序、按键子程序、延时子程序等。该系统有歌曲播放、电子琴两种模式,可通过按键进行模式选择。 本论文包括系统方案的建立、硬件电路的具体设计及软件的程序实现等过程。并通过软硬件的联合调试,验证了设计方案的可行性。该系统最终实现了模式的选择、歌曲的选择及播放等功能,实验证明,该系统具有一定的实用性。 关键词:AT89C52单片机;软件编程;音乐盒 I

江苏理工学院毕业设计说明书(论文) The Design of Music Box of the Single Chip Microcomputer Abstract:This design according to principle of single chip microcomputer technology,through the hardware circuits and software programming,make a simple music player based on AT89C52 single chip microcomputer,the system with single chip microcomputer as control core of the circuit,the hardware circuit is mainly composed of keypad circuit,reset circuit,display circuit module .System software using C language to write,using the modular programming.the portablility is good.System program mainly includes the main program subroutine,played subroutines,buttons,delay subroutine.The system has a song play,keyboard two modes,can through the button to choose. This paper includes the establishment of the system,detailed design of hardware circuit and software program implementation process.And through the software and hardware joint debugging,verify the feasibility of design scheme.The system finally realize the pattern selection,selection of songs and play function,such as experiments show that the system has a certain practicality. Keywords: AT89C52 microcontroller,;Software programming;the music box II

相关文档
最新文档