文档库 最新最全的文档下载
当前位置:文档库 › 数控分频器的设计实验报告

数控分频器的设计实验报告

数控分频器的设计实验报告
数控分频器的设计实验报告

1 引言

计算机组成原理与设计是计算机通信与技术专业本科生的必修课程。在完成理论学习和必要的实验后,本科学生掌握了它的基本原理和各种基本功能的应用,但对硬件实际应用设计和其完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。

计算机组成原理与设计的课程设计既要让学生巩固课本学到的理论,还要让学生学习硬件电路设计和用户程序设计,同时学习查阅资料、参考资料的方法。

计算机原理与设计的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对该课程的认识和理解,充分发挥我们的个体创新能力。

1.1 设计的目的

本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对该课程的认识和理解,充分发挥我们的个体创新能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。

1.2 需求分析

这次课程设计的题目是实现基于CPLD的数控分频器及其应用。设计乐曲程序能实现演奏电路,并用原理图方法设计数字时钟,使电路具有校时校分的功能与传统的纯硬件方法相比简单有效。此设计可以适应多家可编程逻辑器件,便于组织大规模的系统设计;便于设计的复用继承和升级更新,具有广阔的应用前景。

1.3 设计的基本内容

传统数字电路设计是利用标准集成电路、电路板来实现电路功能。可编程逻辑器件和EDA技术使设计方法发生了质的变化。把以前“电路设计+硬件搭

试+调试焊接”转化为“功能设计+软件模拟+仿真下载”。利用EDA开发平台,采用可编程逻辑器件CPLD/FPGA使硬件的功能可通过编程来实现,这种新的基于芯片的设计方法能够使设计者有更多机会充分发挥创造性思维,实现多种复杂数字逻辑系统的功能,将原来由电路板设计完成的工作放到芯片的设计中进行,减少了连线和体积,提高了集成度,降低了干扰,大大减轻了电路设计和PCB 设计的工作量和难度,增强了设计的灵活性,有效地提高了工作效率,MUSICFLOW增加了系统的可靠性和稳定性,提高了技术指标。

本文设计利用VHDL语言设计数控分频器电路,利用数控分频的原理,设计了乐曲演奏电路。采用原理图方法设计数字时钟电路,该电路具有校时、校分功能,由60进制的秒分模块、24进制的小时模块、动态扫描显示模块组成,把数倾家荡产分频电路应用于数字名整点报时的乐曲演奏中,演奏时间为15s.

2 VHDL简介

VHDL的简介:VHDL是Very High speed Integrated Circuit Hardware Description Language (非常高速集成电路硬件描述语言)的英文缩写。它是由美国国防部支持的一项研究计划,于1983年创建,目的是以文字化方法描述电子电路与系统。至今VHDL约有40年的发展历史,1987年,VHDL成为IEEE

标准,即IEEE1076标准,1993年修改为IEEE1164标准,1996年,IEEE又将电路合成的标准程序与规格加入到VHDL语言中,称为1076.3标准。之后,又有1076.4标准和1076.6标准。

3 设计过程

3.1 数控分频器系统各部分电路设计

系统方框图如图1所示:

图1 系统结构方框图

3.2 数控分频器音乐演奏电路设计

产生音乐的两个因素是音乐频率和音响的持续时间,首先需要准确地产生音乐中各音符所对应的频率信号,并根据音符的长短控制节拍输出时间。其数控分频音乐演奏电路顶层,设计原理图如图2所:

图2 数控分频音乐演奏电路顶层设计图

3.2.1 音乐拍发生器(MUSICFlow)

此模块存有一首《茉莉花》乐曲简谱真值表。由一个计数器来控制此真值表按顺序输出简谱,简谱的编码为低音1-7,中音8-14,高音1521。计数器的时钟为4Hz,即每一计数值的停留时间为0.25s,当全音符为Is时,四四拍的四分音符的持续时间。因此真值表表示持续时间的表示方法为全音符重复4,2/4音符重复2,1/4音符重复1。

计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。

3.2.2音拊查表器(MAHTaba)

音符查表电路即音调发生器实际上是一个查表电路,放置21个音乐简谱对应的频率表,主要作用是由简谱查找到对应的频率,而此频率值作为初值,送到数控分频计数器。

3.2.3数控分频器电路(M_GENERAT)

数控分频电路是由一个初值可变的加法计数器构成。原理如下:该计数器的模为2047,当计数器记满时,计数器产生一个溢出信号overspks,此溢出信号就是用作发音的频率信号。在计数器的输入端给定不同的初值,而此预置初数就是前一级音符查表电路(MACHTaba)模块来的简谱的频率,它计满所需要的分频比(补数)可由下式来表示:Tone+分频比二2047+溢出信号

低音时Tone值小,分频比大,溢出信号周期长,扬声器发出的声音低,Tone 随音乐的乐谱而变化,自动控制分频比,实现了数控分频,发声信号的频率与音调Tone成正比。这就是利用数控分频器自动演奏音乐的原理。

由于数控分频器输出信号是脉宽很窄的信号,为了有利于驱动扬声器,需要

加一个D触发器以均衡占空比,但这时的频率是原来的二分之一。

ClklMHz数控分频计数器的时钟频率为1MHz,大小选择应该使发声频率在人们的正常听觉范围内。

3.3 数字钟小时电路

运用VHDL语言计时电路为24进制,低位为10进制,用2进制计数器74161,当计到1010时,通过与非门,反馈到低位的CLRN清零端,反馈清零法构成10进制,同时该信号作为进位信号,接到高位计数器74161的CLK时钟,当高位计到010,同时低位计到0100时,把hour5和低位的hour2及hour0的反相信号经过与非门,作为清除信号分别连到各自CLRN清零端,低位的clm前还要接一2输入与门,以便区分低位自身的10进制清零,这样两级反馈清零法构成两位的24进制。校时电路,采用R-S触发器消除开关抖动的二选一的校时方法,校时时钟为1Hz信号。当settime为低电平时,为正常工作状态;需要校时的时候,置, settime=l,则小时计时器每秒增加1次,从而完成校时。小时电路原理图如图3所示。

图3 小时计时及校准电路图

3.3.2 分、秒模块

分、秒电路为60进制,低位计数器用10进制计数器74162,RCO进位信号反相后作为高位的CLK时钟,高位用74161计数器,当计到0110时,通过与非门,反馈到CLRN清零端,反馈清零法构成6进制,两位级连实现60进制。

3.3.3 译码显示模块

采用动态扫描方式,把秒分时的低位高位分别送入BCD一段译码电路,位选信号经138译码依次选通LED公共端,显示出时间。

3.4 整点报时音乐电路

整点报时音乐电路如图4所示。

图4 数字钟及整点报时控制电路仿真图

时序仿真分析:把系统时钟产生的4Hz信号分别送入音调发生器和本分频器输入端,将它4分频,得到1Hz信号作为数字钟的时钟源。当整点时,输出高电平控制信号en_spks,此使能信号把输出音乐信号的闸门开启,音乐就演奏出来。在音乐演奏一开始便开始计时,当计数器计数到第15个脉冲时输出低电平,关闭输出音乐信号的闸门,从而实现音乐整点自动演奏15s报时。报时15s 控制信号仿真波形如图4所示。

4系统综合调试

程序调试在MAX-PLUS11软件系统中进行,先将VHDL设计程序或原理图输入的文件分别编译、综合、仿真,完成各功能模块的调试,生成各子电路符号,然后在顶层设计中把各功能模块调入,把各模块接口连接起来,根据CPLD的引脚资源指定引脚,重新编译,最后把sof或pof文件下载CPLD/FPGA中验证。本电路经下载到EDA实验箱,结果正确。

该电路系统采用自顶向下方式将系统按功能逐层分割的层次化设计方法,达到了设计目的。整个系统集成在EPF10K10LC84-4可编程逻辑器件上,大大简化了外部电路,既减少了大量硬件连线,又降低了干扰,系统实现方便、性能稳

定。采用VHDL这种与硬件工艺无关的描述语言,可以适应多家可编程逻辑器件,便于组织大规模的系统设计;便于设计的复用继承和升级更新,具有广阔的应用前景。

5 结束语

上机实践中,我发现一不小心就会调用错误,说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。

在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。

通过的紧张工作,完成了我的设计任务——数控分频器及其应用。通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。对软件工程的一些错误理解有了重新的认识。在设计过程中,遇到了很多问题,在解决这些问题的过程中,对它们有了重新的正确认识。更重要的是在设计过程中培养锻炼了我科学严谨的学习、工作作风和认真的态度。本次设计课不仅仅培养了我们的实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。此次系统设计给我提供了一个既动手又动脑、自学、独立实践的机会,使我养成了勤翻阅各种相关资料的习惯,将书本上的理论知识和实际有机地结合起来,锻炼了实际分析问题和解决问题的能力,提高了适应实际的能力,为今后的学习和实践打下了良好的基础。

6致谢

特别感谢在这次课程设计中肖晓丽老师对我的指导,正是由于她的耐心指导,我才可以顺利完成这次的设计。锻炼了动手能力,给以后的学习指出了一个方向。

参考文献

1 潘松,王国栋.VHDL实用教程.成都:电子科技大学出版社,2001

2 廖裕评,陆瑞强.CPLD数字电路设计.北京:清华大学出版社,2001

3 高书莉,罗朝霞.可编程逻辑设计技术及应用.北京:人民邮电出版社,2001

4 罗炎林等.数字电路.北京:机械工业出版社,1997

附录

数控分频器VHDL程序如下(略去声明部分):

genspks:process(clk,tone) --“spk_clk=1MHZ”;

variable digcount:integer range0to16#7ff#;--“2047”

begin

if clk'event and clk='1'then

if dig_count=16#7ff#then --b"111,1111,1111";

dig_count:=tone; --若记满,将预置数重新置入

overspks<='1'; --产生overspks溢出信号

else dig_count:=digcount+1; --否则继续加计数

overspks<='0;

end if;

endprocess;

delay:process(overspks) --将输出再进行二分频,展宽脉冲使扬声器有足够的功率发音

if overspks'event and overspks='1'then

count2:=notcount2;

if count2='1'then spks<--'1;

else spks<二,'0;

end if;

end if;

整点报时15s,VHDL程序如下:

architecture behav of alertlis

signal irrclk:std_logic;

signal cou :std-logic-vector(Idownto0); --将信号四分频

begin

process

begin

wait until clk4hz='1';

cou<=cou+1;

end process;

clk<=cou(1);

irrclk<=cou(1); --分频结果赋给CLK endprocess;

genspks:process(irrclk) --定时控制15秒variable countl5:integer range0to15; variablestate:integer range0to3; --分四个状态begin

if irrclk'event and irrclk='1' then

if(min="0000000")then

if countl5=15then

count15:=0;

en_spks<='0';

if state=3 then state:=0;

else state:=state+1;

end if;

else countl5:=countl5+1;

ifstate=0then ennspks<='1';

endif;

数控铣床加工实验报告

(一)实验目的 1、了解数控铣床组成及其工作原理。 2、了解零件数控加工的手工编程和自动编程方法。 3、掌握用数控铣床加工零件的工艺过程。 (二)实验内容及安排 1)实验前仔细阅读本实验指示书的内容。 2)教师讲解数控铣床的组成及其工作原理,演示数控铣床操作过程。 3)学生进行程序传输和机床操作,完成零件加工。 (三)实验设备 1)数控铣床。 2)由10台计算机组成的局域网。 3)与机床通讯用计算机5台。 (四)数控铣床的组成 数控铣床的基本组成见图1,它由床身、立柱、主轴箱、工作台、滑鞍、滚珠丝 杠、伺服电机、伺服装置、数控系统等组成。 床身用于支撑和连接机床各部件。主轴箱用于安装主轴。主轴下端的锥孔用于安装铣刀。当主轴箱内的主轴电机驱动主轴旋转时,铣刀能够切削工件。主轴箱还可沿立柱上的导轨在Z向移动,使刀具上升或下降。工作台用于安装工件或夹具。工作台可沿滑鞍上的导轨在X向移动,滑鞍可沿床身上的导轨在Y向移动,从而实现工件在X和Y向的移动。无论是X、Y向,还是Z向的移动都是靠伺服电机驱动滚珠丝杠来实现。伺服装置用于驱动伺服电机。控制器用于输入零件加工程序和控制机床工作状态。控制电源用于向伺服装置和控制器供电。 (五)数控铣床加工说明 1.机床手动操作及手轮操作 (1)手动:选择手动功能键(FANUC系统为功能旋钮“手动”档)(见附图), 然后按动方向按键+X +Y +Z –X –Y –Z,使机床刀具相对于工作台向坐标轴某一 个方向运动。 (2)手轮:选择手轮(单步)功能键(FANUC系统为功能旋钮“手轮”档)(见 附图),然后选择运动方向,KND系统为X Y Z方向按键,FANUC系统为方向旋钮。 2.回零操作 (1)零前准备:用手轮方式将工作台,尤其是刀轴移动至中间部位。(Z向行 程较小,只有100mm,多加注意) (2)零操作:选择回零按键,(FANUC系统为功能旋钮指向回零)。点动+X+Y+Z 按键(FANUC系统为按住+X +Y +Z按键),等待系统自动回零。 3.程序传输 FANUC系统: ①功能旋钮指向“编辑”功能,点击“PROG”按键; ②依次选择屏幕下方“操作”、“READ”、“EXEC”软键,等待程序输入;

杭州电子科技大学数电大作业实验报告电子琴

数电大作业实验报告如图是CODE3的case语句程序,该模块是一个编码器,即将输入的8位琴键信号进行编码,输出一个4位码,最多能对应16个音符(若有16个键)。 如图所示是INX2CODE的case语句程序,该模块是一个译码器,它将来自键盘输入的编码信号译码成数控分频器SPK0输出信号的频率控制字。 另外两个模块是M_CODE和DCD7SG,它们的case语句程序如上图所示。前者的功能是将来自CODE3的键盘编码译成简谱码和对应的音调高低值H,后者是一个数码管7段显示译码器,负责将简谱码译成数码管的显示信号。 如图所示是SPK0模块的内部结构。其中的计数器CNT11B是一个LPM宏模块,这是一个11位二进制加法计数器。在设置其结构参数时,应该选择同步加载控制,即sload(Synchronous Load),这样能较好地避免来自进位信号cout中可能的毛刺影响。异步加载aload极易受到随机窄脉冲的误触发,在此类电路中不宜采用。图中D触发器和反相器的功能是将用于控制加载的进位信号延迟半个时钟周期,一来也是为了滤除可能的毛刺,以免对加载更为可靠,因为这时,时钟上升沿正好处于加载脉冲的中点。 模块CODE3,INX2CODE和SPK0的主要工作过程是这样的: 当按琴键后,产生的数据经编码器获得一个编码(例如,当按下第二个键,对应0010,即2),它对应模块INX2CODE中的一个值(2对应390H)。当这个值(如390H)被置入模块SPK0中的11位可预置计数器中后。由于计数器的进位端与预置数加载段端相连,导致此计数器将不断以此值作为计数起始值,直至全1。

以下以预置值为390H为例,来计算SPK0输出信号的频率值。 当以390H为计数器起始值后,此计数器成为一个模(7FFH-390H=46FH=1135)的计数器。即每从CLK端输入1135个脉冲,BEEP端输出一个进位脉冲。由于输入的时钟频率是1MHz (周期是1us),于是BEEP输出的信号频率是1/(1135us)=841Hz。 由下面电子琴的顶层电路可见,SPK0的输出信号经过一个由D触发器接成的T’触发器后才输出给蜂鸣器。这时信号被作了二分频,于是,预置值390H对应的与蜂鸣器发音的基频F 约等于440Hz。 B 电子琴顶层电路中T’触发器有两个功能,一个作用是作二分频器;另一个作用是作为占空比均衡电路。这是因为由SPK0模块输出信号的脉宽极窄,功率极低,无法驱动蜂鸣器,但信号通过T’脉宽就均匀了(F 的占空比为50%)。 B 如图所示是电子琴顶层设计电路,含2个输入口和3个输出口。 1.工作时钟CLK,频率:1MHz。用于在主控模块中产生与琴键对应的振荡频率,以驱动蜂 鸣器发出相应的声音。 2.琴键输入DIN[7..0].8个音符,8位中只能有一位为0,即8个琴键中每一时刻只能按 一个键。 3.输出端口SPK0用于驱动蜂鸣器。 4.输出信号LED接数码管,用于显示对应的简码谱。H显示音高低。

VHDL非整数分频器设计实验报告

非整数分频器设计 一、 输入文件 输入时钟CLK: IN STD_LOGIC 二、 设计思路 1. 方法一:分频比交错 (1) 确定K 值 先根据学号S N 确定M 和N :为了保证同学们的学号都不相同,取学号的后四位,即N S =1763 ()mod 1920(mod 17)0 17mod 17 S S S N N if N then M else M N =+=== 由以上公式,得N=(1763 mod 19)+20=35 M=(1763 mod 17)=12 然后根据下式计算分频比K 的值: 8()9N M M K N -+= = =8.34285714 (2) 确定交错规律 使在35分频的一个循环内,进行12次9分频和23次8分频,这样,输出F_OUT 平均为F_IN 的8.34285714分频。为使分频输出信号的占空比尽可能均匀,8分频和9分频应‘交替’进 (3) 设计框图:要求同步时序设计

(4)代码 在实体内定义两个进程(PROCESS P1和PROCESS P2),一个进程控制输出8/9分频,一个进程控制35分频周期比例输出。控制器输出FS_CTL信号控制输出是8分频还是9分频,分频器输出C_ENB信号来控制35分频计数器计数。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DIV IS--定义实体,实体名DIV PORT(F_IN: IN STD_LOGIC;--输入时钟信号 F_OUT: OUT STD_LOGIC--输出时钟信号 ); END DIV; ARCHITECTURE A OF DIV IS SIGNAL CN1: INTEGER RANGE 0 TO 7;--8分频计数器 SIGNAL CN2: INTEGER RANGE 0 TO 8;--9分频计数器 SIGNAL CN: INTEGER RANGE 0 TO 34;--整体计数器 SIGNAL C_ENB: STD_LOGIC;--整体计数器时钟驱动信号 SIGNAL FS_CTL: STD_LOGIC;--控制8、9分频比例信号,高电平8分频,低电平9分频 BEGIN P1:PROCESS(F_IN)--8、9分频计数进程 BEGIN IF (F_IN'EVENT AND F_IN='1') THEN IF(FS_CTL='0') THEN--9分频 IF CN2=8 THEN--计数 CN2<=0; ELSE CN2<=CN2+1; END IF; IF CN2>4 THEN--控制输出,占空比0.5 F_OUT<='1'; ELSE F_OUT<='0'; END IF; IF CN2=8 THEN--控制整体计数器驱动信号 C_ENB<='1'; ELSE C_ENB<='0'; END IF; ELSE IF CN1=7 THEN--8分频计数,同上 CN1<=0; ELSE CN1<=CN1+1; END IF; IF CN1>3 THEN F_OUT<='1'; ELSE F_OUT<='0'; END IF; IF CN1=7 THEN C_ENB<='1'; ELSE C_ENB<='0'; END IF; END IF; END IF; END PROCESS P1; P2:PROCESS(C_ENB)--整体计数进程 BEGIN IF (C_ENB'EVENT AND C_ENB='1') THEN--由驱动信号驱动 IF CN=34 THEN--计数 CN<=0; ELSE CN<=CN+1; END IF; IF (CN=34 OR CN=2 OR CN=5 OR CN=8 OR CN=11 OR CN=14 OR CN=17 OR CN=20 OR CN=23 OR CN=26 OR CN=29 OR CN=32) THEN FS_CTL<='0'; ELSE FS_CTL<='1'; END IF;--8、9分频比例分配 ELSE CN<=CN; END IF; END PROCESS P2; END A;

分频器设计实验报告

竭诚为您提供优质文档/双击可除分频器设计实验报告 篇一:n分频器分析与设计 一、实验目的 掌握74190/74191计数器的功能,设计可编程计数器和n分频器,设计(n-1/2)计数器、分频器。 二、实验原理 分频是对输入信号频率分频。1、cD4017逻辑功能 2、74190/74191逻辑功能 3、集成计数器级联 当所需计数器模数超过所选计数器最大计数状态时,需要采取多片计数器级联。方法分为异步级联和同步级联。4、集成计数器的编程 在集成计数器的时序基础上,外加逻辑门电路等,反馈集成计数器的附加功能端,达到改变计数器时序的目的。可采用复位编程和置数编程两种。5、多片74190/74191计数器级联 可根据具体计数需求和增减需求,选用74190或74191,

选择不同功能、同步或异步设计等。 6、74190/74191计数器编程 由于没有复位端,因此只能使用置数编程,置数端置为0即可异步置数。可根据需求设计n进制加法或减法计数器。 n与译码逻辑功能如下。 7、74191组成(n-1/2)分频器电路如下图: u3 计数器的两个循环中,一个循环在cp的上升沿翻转;另一个是在cp的下降沿翻转,使计数器的进制减少1/2,达到(n-1/2)分频。 三、实验仪器 1、直流稳压电源1台 2、信号发生器1台 3、数字万用表1台 4、实验箱1台 5、示波器1台 四、仿真过程 1、按照cD4017和74191功能表验证其功能。 2、74191组成可编程计数器 (1)构成8421bcD十进制加法计数器,通过实验验证正确性,列出时序表。设计图如下 仿真波形如下 (2)构成8421bcD十进制减法计数器,通过实验验证正确性,列出时序表。设计图如下: 仿真波形如下

数控机床-实验报告模板

成绩: 数控机床与编程实验报告 课程数控机床与编程 专业机械设计制造及其自动化 学号2500100408 姓名何益群 指导教师曾文健 机械与电子信息工程学部 2013年11月21日

一、实验目的 1、熟悉数控机床的典型结构组成和工作原理。掌握手工编程的步骤; 2、掌握数控加工仿真系统的操作流程。 二、实验内容 1、观看机械零件的数控加工生产现场; 2、演示手工编程的操作步骤; 3、演示FANUC系统的数控加工操作流程。 三、实验设备 在工厂员工的带领下,我们观看的数控设备有: 华中数控系统的数控车床; 30系统的数控铣床; FUNAC系统的数控床; 华中数控的镗床: 沈阳机床厂的数控加工中心; 各种普通的车床、铣床,龙门刨床。 四、数控工艺分析 1、零件工艺分析 (1)零件图上尺寸数据的给出,应符合程序编制方便的原则。 1)、零件图上尺寸标注方法应适应数控加工的特点在数控加工零件图上,应以同一基准引注尺寸或直接给出坐标尺寸。 2)、构成零件轮廓的几何元素的条件应充分,便于在手工编程时计算基点或节点坐标。(2)零件各加工部位的结构工艺性应符合数控加工的特点。 1)、零件的内腔和外形最好采用统一的几何类型和尺寸。这样可以减少刀具规格和换刀次数,使编程方便,生产效益提高。 2)、内槽圆角的大小决定着刀具直径的大小,因而内槽圆角半径不应过小。零件工艺性的好坏与被加工轮廓的高低、转接圆弧半径的大小等有关。 3)、零件铣削底平面时,槽底圆角半径r不应过大。 4)、应采用统一的基准定位。在数控加工中,若没有统一基准定位,会因工件的重新安装而导致加工后的两个面上轮廓位置及尺寸不协调现象。因此要避免上述问题的产生,保

EDA实验报告

实验一计数器设计 一、实验目的 计数器是实际中最为常用的时序电路模块之一,本实验的主要目的是掌握使用HDL描述计数器类型模块的基本方法。 二、实验仪器与器材 1.EDA开发软件一套 2.微机一台 3.实验开发系统一台 4.其他器材与材料若干 三、实验说明 计数器是数字电路系统中最重要的功能模块之一,设计时可以采用原理图或HDL语言完成。下载验证时的计数时钟可选连续或单脉冲,并用数码管显示计数值。 四、实验要求 1.设计一个带有计数允许输入端、复位输入端和进位输入端的十进制计数器。 2.编制仿真测试文件,并进行功能仿真。 3.下载并验证计数器功能。 4.为上述设计建立元件符号。 5.在上述基础上设计计数器。 五、实验结果

十进制计数器程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter10 is port(en,reset,clk:in std_logic; q:buffer std_logic_vector(3 downto 0); co:out std_logic); end counter10; architecture behav of counter10 is begin process(clk,en) begin if clk'event and clk='1' then if reset='1' then q<="0000"; elsif en='1' then if q<"1001" then q<=q+'1'; else q<="0000"; end if; end if; end if; end process;

EDA 实验2简单分频时序逻辑电路设计 实验报告

时序电路设计 实验目的: 1.掌握条件语句在简单时序模块设计中的使用。 2.学习在Verilog模块中应用计数器。 实验环境: Windows 7、MAX+PlusⅡ10等。 实验内容: 1.模为60的8421BCD码加法计数器的文本设计及仿真。 2.BCD码—七段数码管显示译码器的文本设计及仿真。 3.用For语句设计和仿真七人投票表决器。 4.1/20分频器的文本设计及仿真。 实验过程: 一、模为60的8421BCD码加法计数器的文本设计及仿真: (1)新建文本:选择菜单File下的New,出现如图5.1所示的对话框,在框中选中“Text Editor file”,按“OK”按钮,即选中了文本编辑方式。 图5.1 新建文本 (2)另存为V erilog编辑文件,命名为“count60.v”如图5.2所示。 (3)在编辑窗口中输入程序,如图5.3所示。

图5.2 另存为.V编辑文件图5.4 设置当前仿真的文本设计 图5.3 模为60的8421BCD码加法计数器的设计代码

(4)设置当前文本:在MAX+PLUS II中,在编译一个项目前,必须确定一个设计文件作为当前项目。按下列步骤确定项目名:在File菜单中选择Project 中的Name选项,将出现Project Name 对话框:在Files 框内,选择当前的设计文件。选择“OK”。如图5.4所示。 (5)打开编译器窗口:在MAX—plusⅡ菜单内选择Compiler 项,即出现如图5.5的编译器窗口。 图5.5 编译器窗口 选择Start即可开始编译,MAX+PLUS II编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。 (6)建立波形编辑文件:选择菜单File下的New选项,在出现的New对话框中选择“Waveform Editor File”,单击OK后将出现波形编辑器子窗口。 (7)仿真节点插入:选择菜单Node下的Enter Nodes from SNF选项,出现如图5.6所示的选择信号结点对话框。按右上侧的“List”按钮,在左边的列表框选择需要的信号结点,然后按中间的“=>”按钮,单击“OK”,选中的信号将出现在波形编辑器中。 图5.6 仿真节点插入

基于VHDL数控分频器设计

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (4) 四、功能 (5) 1、数控分频器 (5) 2、BCD译码器 (6) 3、扫描器 (11) 4、3-8译码器 (13) 5、7段数码管显示译码器 (16) 五、总体设计电路图 (19) 1总体(顶层)电路原理图 (19) 2仿真结果 (19) 3管脚分配图 (20) 4.硬件连接情况 (20) 六.心得体会 (20)

数控分频器设计 一、设计任务与要求 数控分频器的功能就是当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,以实现所需的输出频率。 基本功能: 1、实现8位分频器,依据输入的8位2进制数的不同,有不同的分频比。如输入10010000,即对输入的时钟信号进行144分频,如输入01001000,即对输入的时钟信号进行72 分频。 2、输出的波形应为占空比位50%的方波。 3、有显示功能,显示当前的分频比,即,输入的二进制数的大小。 总体框图 设计思路:数控分频器用计数值可并行预置的加法器设计完成,当在输入端给定不同输入数据时将对输入的时钟信号有不同的分频比。把输入端输入的八位二进

制数直接通过BCD译码器转换为十位BCD码表示的十进制数,通过扫描器对3个数码管进行选通扫描,最后7段数码管显示译码器对选中数码管的赋值进行译码,并驱动数码管显示该数据。 模块的功能: 1、数控分频器:实现8位分频器,依据输入的8位2进制数的不同,有不同的分频比。如输入10010000,即对输入的时钟信号进行144分频。 2、BCD译码器:把输入端的8位2进制数转换成10位BCD码表示的十进制数。 3、扫描器:when “000”=>daout<=dout(3 downto 0); when “001”=>daout<=dout(7 downto 4); when “010”=>daout<=dout(3 downto 2)<="00"; daout(1 downto 0)<=dout(9 downto 8); when others=>null; 4、3-8译码器:当sel=0时,q=11111110;选择个位数码管亮。 当sel=1时,q=11111101;选择十位数码管亮。 当sel=2时,q=11111011;选择百位数码管亮。 5、7段数码管显示译码器:把BCD码表示的十进制数转换成驱动数码管显示的段信号,使数码管显示数字。 三、选择器件 1、装有QuartusII软件的计算机一台。 2、芯片:使用altera公司生产的Cyclone系列芯片,如EP1C12Q240C8芯片 。 此次设计实验采用ALTERA公司的cyclone系列的FPGA芯片EP1C12,设计和仿真采用ALTERA公司的QUARTUS II软件,EP1C12各项参数参照上表。 Cyclone的性能特性 (1)、新的可编程体系结构,实现低成本设计。

工作报告之数控铣床实验报告

数控铣床实验报告 【篇一:数控铣床实验报告】 数控铣床实训报告 一、实训目的: 1、熟悉数控实训车间安全管理规定; 2、了解数控铣床的基本结构、工作原理及其工作方法,学会正确的操作铣床; 3、熟练掌握系统面板及操作界面的使用; 、 4、掌握数控机床编程方法。 二、实训设备与材料: 铣床:大连xd-40a 刀具:平底铣刀 测量工具:游标卡尺 刀具:平口虎钳 材料:石蜡、木板 绘图工具:autocad绘图软件 ~ 三、实训内容: 1、在实训老师的指导下,了解数控铣床的结构特点,铣床的工作原理及其工作方法。 2、学会编辑并运行程序,最后加工成品。

四、操作步骤: 1、用autocad绘图软件绘出工件模型,并标出各点坐标。 2、对刀,并设定工作坐标系。 3、编写程序,在程序编辑模式下输入程序 4、用计算机仿真,若仿真结果出现错误,则需要再次修改程序,直至结果正确。此时需重新启动数控面板,接着重复步骤2。若仿真结果与所期望的图形一致,则新启动数控面板,接着重复步骤2。 ) 5、切削加工。 6、工件完成后将x、y、z轴复位。接着关闭数控面板电源,再关闭铣床电源。 五、操作注意事项: 1、在对刀过程中xyz轴向一定要清楚,头晕或状态不好时不要去操作操作机床,以免发生意外。在对刀过程中手摇器倍率要调节好,靠近工件的时候一定要把倍率调小,这样可以保证安全和确保更高的对到精确度。 2、操作时要注意刀具有半径补偿,故设计零件时要注意临界值,并注意刀补的方向。 3、铣床操作过程中出现警报时,要及时查找出错原因,切忌不可重启机子解决此问题,否则将出现同样情况。 4、编辑完程序后需要在模拟后保证安全的情况下才能进行加工,在模拟完后要进行加工时务必要先清零,而且要保证回零完全。 六、附录 * 哑铃程序:

电子琴实验报告乐曲硬件演奏电路设计本科论文

武夷学院实验报告 课程名称:逻辑设计与FPGA 项目名称: 乐曲硬件演奏电路设计 ______________ 姓名: 专业:微电子学 班级:14微电子 学号:04实验日期 、 实验预习部分: 1. 实验目的: 学习利用数控分频器设计硬件乐曲演奏电路。 2. 实验原理: 综合利用数控分频器、LPM ROMPLL 等单元电路设计硬件乐曲演奏电路。系统框图如图 1 所示由三个模块组成,分别为 NOTETABSTONETABASPEAKERA NOTETAB 模块(把教材图9-4中的CNT138T 和MUSIC 模块合在一起即为此模块)类似于弹 琴人的手指;TONETAB 模块类似于琴键;SPEAKER 类似于琴弦或音调发生器。 音符的频率由SPEAKER 模块(与教材图9-4中的SPKEF 模块对应)获得,这是一个数控分 频器。由其CLK 端输入一具有较高频率(12MHZ 的信号,通过SPEAKER 分频后由SPKOU 输出。 SPEAKER 对CLK 输入信号的分频比由11位预置数TONE[10..0]决定。SPKOU 的输出频率将决定 每一音符的音调,这样,分频计数器的预置值 TONE[10..0]与SPKOU 的输出频率就有了对应关 系。例如在TONETAB 模块(与教材图9-4中的F_COD 模块对应)中若取 TONE[10..0] = 1036, 图1硬件乐曲演奏电路结构框图 i.;E-Z

将发出音符“ 3”音的信号频率。

实验预习成绩(百分制)____________________ 实验指导教师签字:_________________________

数控分频器实验报告

《数控分频实验》 姓名:谭国榕班级:12电子卓越班学号:201241301132 一、实验目的 1.熟练编程VHDL语言程序。 2.设计一个数控分频器。 二、实验原理 本次实验我是采用书上的5分频电路进行修改,通过观察其5分频的规律进而修改成任意奇数分频,再在任意奇数分频的基础上修改为任意偶数分频,本次实验我分为了三个部分,前两部分就是前面所说的任意奇数分频和任意偶数分频,在这个基础上,再用奇数输入的最低位为1,偶数最低位为0的原理实现合并。 三、实验步骤 1.任意奇数分频 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DIV1 IS PORT(CLK:IN STD_LOGIC; D:IN INTEGER RANGE 0 TO 255; K1,K2,K_OR:OUT STD_LOGIC ); END; ARCHITECTURE BHV OF DIV1 IS SIGNAL TEMP3,TEMP4:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL M1,M2:STD_LOGIC; --SIGNAL OUT1,OUT2,OUT3:STD_LOGIC; BEGIN PROCESS(CLK,TEMP3) BEGIN IF RISING_EDGE(CLK) THEN IF(TEMP3=D-1) THEN TEMP3<="00000000"; ELSE TEMP3<=TEMP3+1; END IF; IF(TEMP3=D-(D+3)/2) THEN M1<=NOT M1; ELSIF (TEMP3=D-2) THEN M1<=NOT M1; END IF; END IF; END PROCESS; PROCESS(CLK,TEMP4) BEGIN IF FALLING_EDGE(CLK) THEN IF(TEMP4=D-1) THEN TEMP4<="00000000"; ELSE TEMP4<=TEMP4+1; END IF; IF(TEMP4=D-(D+3)/2) THEN M2<=NOT M2; ELSIF (TEMP4=D-2) THEN M2<=NOT M2;

数控车床操作实验报告

目的 1、了解数控车床机械结构 2、了解数控车床的基本操作 3、掌握简单零件的数控加工 原理 数控车床是一种高度自动化的机床,在加工工艺与加工表面形成方法上与普通机床是基本相同的,最根本的不同在于实现自动化控制的原理与方法上。数控车床是用数字化的信息来实现自动化控制的,将与加工零件有关的信息——工件与刀具相对运动轨迹的尺寸参数(进给执行部件的进给尺寸),切削加工的工艺参数(主运动和进给运动的速度、切削深度等),以及各种辅助操作(主运动变速、刀具更换、冷却润滑液关停、工件夹紧松开等)等加工信息用规定的文字、数字、符号组成的代码按一定的格式编写成加工程序单,将加工程序通过控制介质输入到数控装置中,由数控装置经过分析处理后,发出各种与加工程序相对应的信号和指令控制机床进行自动加工 仪器设备 数控车床、塑料棒料 步骤 1、开机,打开机床照明 2、输入程序后并检查加工轨迹 3、装夹工件,检查刀具 4、试切法对刀并验刀 5、调出程序,自动加工 6、手动切断 7、打扫机床并关机 实验过程原始记录 1、上电循环系统启动(解锁状态)打开照明 2、装工件、刀具(45mm的零件需要80-100mm的伸长量)选择35°外圆车刀换刀(在MDI模式下点prog选择1号刀,并输入) 3、仿真(目的检查程序是否准确)CSTM/GR→圆形→操作→head(自动)→执行 4、对刀定参考点坐标右端面,外圆(0,0) MDI→prog→M03S500 插入 循环启动,在手摇模式下切断面(x100:表示一个脉冲走0.1mm)显示坐标:pos 拨扭向上是x方向,下是z方向,切的时候切到一点就好 切削加工过程时倍率的选择(x25)顺时针转动轮盘为退刀,逆为切削 offset→磨耗→清零→输入→形状(注意看清与选择刀具一致) 番号01 z0.0 测量顺时针摇出 Pos(调坐标) 切外圆(x25)注意摇出时x坐标不变 Reset 复位记录27.6mm 补正→形状→x→输入→测量→检测 5、编辑→prog→程序→自动倍率为0时是为了定位 →复位→自动→倍率打开,开始切削 6、合上门,待加工结束 7、关机 实验结果及分析 数控车床主要用于加工轴类、盘套类等回转体零件,能够通过程序控制自动完成内外圆柱面、锥面、圆弧、螺纹等工序的切削加工,并进行切槽、钻、扩、铰孔等工作,一次装夹中可以

EDA实验报告

EDA 实验报告 实验一:组合电路的设计 实验内容是对2选1多路选择器VHDL 设计,它的程序如下: ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d <= a AND (NOT S) ; e <= b AND s ; y <= d OR e ; END ARCHITECTURE one ; Mux21a 仿真波形图 以上便是2选1多路选择器的VHDL 完整描述,即可以看成一个元件mux21a 。mux21a 实体是描述对应的逻辑图或者器件图,图中a 和b 分别是两个数据输入端的端口名,s 为通道选择控制信号输入端的端口名,y 为输出端的端口名。Mux21a 结构体可以看成是元件的内部电路图。最后是对仿真得出的mux21a 仿真波形图。 Mux21a 实体 Mux21a 结构体

实验二:时序电路的设计 实验内容D 触发器的VHDL 语言描述,它的程序如下: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS (CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q <= D ; END IF; END PROCESS ; END bhv; D 触发器的仿真波形图 最简单并最具代表性的时序电路是D 触发器,它是现代可编程ASIC 设计中最基本的时序元件和底层元件。D 触发器的描述包含了VHDL 对时序电路的最基本和典型的表达方式,同时也包含了VHDL 中许多最具特色的语言现象。D 触发器元件如上图所示,其在max+plus2的仿真得出上面的波形 D 触发器

实验一 QUARTUS II入门和分频器设计

实验报告 课程名称EDA技术与VHDL设计 实验项目Quartus II入门 实验仪器计算机、Quartus II 系别信息与通信工程学院 专业电子信息工程 班级/学号电信1201 / 2012010970 学生姓名张宗男 实验日期 成绩 指导教师

实验一 QUARTUS II入门和分频器设计 一、实验目的 1.掌握QUARTUS II工具的基本使用方法; 2.掌握FPGA基本开发流程和DE2开发板的使用方法; 3.学习分频器设计方法。 二、实验内容 1.运用QUARTUS II 开发工具编写简单LED和数码管控制电路并下载到DE2 实验开发板。2.在QUARTUS II 软件中用VHDL语言实现十分频的元器件编译,并用电路进行验证,画出仿真波形。 三、实验环境 1.软件工具:QUARTUS II 软件;开发语言:VHDL; 2.硬件平台:DE2实验开发板。 四、实验过程 1.设计思路 (1)、 18个开关控制18个LED灯,通过低位四个开关的‘1’‘0’控制LED灯上7段灯的显示(2)、 实现10分频IF(count="1001") THEN count<="0000"; clk_temp<=NOT clk_temp; 达到9的时候,把“0000”给到cout,然后clk_temp 信号翻转,从而实现10分频。 2.VHDL源程序 (1)、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY e_zhangzongnan IS PORT(SW :IN STD_LOGIC_VECTOR(0 TO 17); HEX0 :OUT STD_LOGIC_VECTOR(0 TO 6);

实验五 数控分频器

实验五数控分频器 一、实验目的 1、学会数控分频器的设计、分析和测试方法; 2、根据仿真结果分析设计的优缺点。 二、实验原理 数控分频器的功能就是当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DIV IS PORT(CLK:IN STD_LOGIC; K_OR:OUT STD_LOGIC); END ENTITY DIV; ARCHITECTURE BHV OF DIV IS SIGNAL C1,C2:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M1,M2:STD_LOGIC; BEGIN PROCESS(CLK,C1) BEGIN IF RISING_EDGE(CLK) THEN IF (C1="100") THEN C1<="000";ELSE C1<=C1+1;END IF; IF (C1="001") THEN M1<=NOT M1;ELSIF C1="011" THEN M1<=NOT M1; END IF; END IF; END PROCESS ; PROCESS(CLK,C2) BEGIN IF FALLING_EDGE(CLK) THEN IF (C2="100") THEN C2<="000";ELSE C2<=C2+1;END IF; IF (C2="001") THEN M2<=NOT M2;ELSIF C2="011" THEN M2<=NOT M2;

数控技术实验报告(答案版)

数控技术实验报告 学院 班级 学号 姓名 成绩 井冈山大学机械系 2010年03月

注意事项 数控操作实验是数控技术课程的组成部分之一,对于培养学生理论联系实际和实际动手能力具有极其重要的作用。因此,要求每个学生做到: 一、每次实验前要认真预习,并在实验报告上填写好实验目的和所用 实验设备; 二、实验前,每人必须配合实验指导老师在实验室记录本上做好相关 记录; 三、实验中要遵守实验规则,爱护实验设备,仔细观察实验现象,认 真记录实验数据; 四、在实验结束离开实验室前,必须认真仔细清点整理实验仪器和实 验设备,经实验指导教师检查后后方可离开实验室; 五、实验结束后,要及时对实验数据进行整理、计算和分析,填写好 实验报告,并上交授课教师批阅。

实验一数控车床的认识 实验日期 2010 年 04 月 10 日 同组成员指导教师(签字) 一、实验目的 1.了解数控车削加工工件坐标的设定方法; 2.掌握数控车床操作面板上常用按键的功能; 3.掌握数控车床的基本操作方法。 二、实验设备(规格、型号) 1.CAK3675V数控车床; 2.CAK3275V数控车床; 3.Fanuc 0i-mate TC数控系统。 三、实验记录及数据处理 1. 熟悉Fanuc 0i前置刀架数控车床的操作面板,依次解释、、、、、 、、、、、、、、、、、、、、、、、、、、、、等的功能。 依次的功能为: 按键功能按键功能 显示坐标位置。显示程序屏幕。 显示偏置/设置屏幕。取消键,用于删除最 后一个进入输入缓 存区的字符或符号。

输入键,用于输入工件偏移 值、刀具补偿值(纯数值), 如。 显示用户宏程序/图 形轨迹显示 替换键。插入键,输入指令 字、程序段,如。删除键。复位键,用于使CNC 复位或取消报警等。自动运行远程执行 编辑手动 MDI手动脉冲 单节手动脉冲 单节忽略 主轴正转、停止、反 转控制按钮 选择性停止循环启动 机械锁定循环停止

分频器的设计

分频器的设计 一、课程设计目的 1.学会使用电路设计与仿真软件工具Hspice,熟练地用网表文件来描述模拟电路,并熟悉应用Hspice内部元件库。通过该实验,掌握Hspice的设计方法,加深对课程知识的感性认识,增强电路设计与综合分析能力。 2.分频器大多选用市售成品,但市场上出售的分频器良莠不齐,质量上乘者多在百元以上,非普通用户所能接受。价格在几十元以下的分频器质量难以保证,实际使用表现平庸。自制分频器可以较少的投入换取较大的收获。 二.内容 分频器-概述 分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器,即使在输入输出信号均为正弦波时也往往采用模数转换-数字分频-数模转换的方法来实现分频。正弦分频器除在输入信噪比低和频率极高的场合已很少使用。

分频器-作用 分频器是音箱中的“大脑”,对音质的好坏至关重要。功放输出的音乐讯号必须经过分频器中的各滤波元件处理,让各单元特定频率的讯号通过。要科学、合理、严谨地设计好音箱之分频器,才能有效地修饰喇叭单元的不同特性,优化组合,使得各单元扬长避短,淋漓尽致地发挥出各自应有的潜能,使各频段的频响变得平滑、声像相位准确,才能使高、中、低音播放出来的音乐层次分明、合拍,明朗、舒适、宽广、自然的音质效果。 在一个扬声器系统里,人们把箱体、分频电路、扬声器单元称为扬声器系统的三大件,而分频电路对扬声器系统能否高质量地还原电声信号起着极其重要的作用。尤其在中、高频部分,分频电路所起到的作用就更为明显。其作用如下: 合理地分割各单元的工作频段; 合理地进行各单元功率分配; 使各单元之间具有恰当的相位关系以减少各单元在工作中出现的声干涉失真; 利用分频电路的特性以弥补单元在某频段里的声缺陷; 将各频段圆滑平顺地对接起来。 分频器-分类 1)功率分频器:位于功率放大器之后,设置在音箱内,通过LC滤波网络,将功率放大器输出的功率音频信号分为低音,中音和高音,分别送至各自扬声器。连接简单,使用方便,但消耗功率,出现音频谷

vhdl实验报告--蜂鸣器

VHDL 实验报告 一、实验目的 1、掌握蜂鸣器的使用; 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。 音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1 低音2 中音2 高音2 低音3 中音3 高音3 低音4 中音4 高音4 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此, 要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。 本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器 输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为 523. 3Hz,它的分频系数应该为: 0.375MHZ 0.375 106 716 523.3 523.3

实验报告1 简单分频器

课程名称:FPGA指导老师:_竺老师_______成绩:__________________ 实验名称:简单分频器的设计实验类型:_______同组学生姓名:__俞杰草______ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一.实验目的 a)熟悉Xilinx ISE软件,学会设计,仿真,综合和下载。 b)熟悉实验板电路设定频率的方法。 二.实验内容 根据实验板上晶振的输入频率50MHz,如果直接用这么高的时钟频率来驱动LED的闪烁,人眼将无法分辨。因此本实验着重介绍如何通过分频计数器的方式将50MHz的输入频率降低为人眼可分辨的频率(10Hz以下),并在实验板的LED2~LED5上显示出来。 三.实验记录 【实验现象】 当将rst_n信号对应的开关拨下,led0熄灭,其他所有led亮。 当将rst_n信号对应的开关往上拨,有7盏led亮,1盏led灭,且灭的led从led0向led7,再跳回led0不断循环往复的移动。 【主要程序段分析】 reg[22:0]cnt; always@(posedge clk) if(rst_n)cnt<=23'd0; else cnt<=cnt+1'b1;//带复位键的位宽为24位的分频计数器,以降低闪烁频率reg[7:0]led; always@(posedge clk) if(rst_n) led<=8'b00000001;//按键复位 else if((cnt==23'h7fffff)&&(led==8'b10000000)) led<=8'b00000001;//循环一周后从D5开始下一周的循环 else if(cnt==23'h7fffff) led<=led<<1;//左移一位,右端补零 assign led_d2=~led[2]; assign led_d4=~led[4];

相关文档