毕业论文-基于EPM240的音乐播放器的设计.doc

上传人:韩长文 文档编号:3942990 上传时间:2019-10-10 格式:DOC 页数:35 大小:556.50KB
返回 下载 相关 举报
毕业论文-基于EPM240的音乐播放器的设计.doc_第1页
第1页 / 共35页
毕业论文-基于EPM240的音乐播放器的设计.doc_第2页
第2页 / 共35页
毕业论文-基于EPM240的音乐播放器的设计.doc_第3页
第3页 / 共35页
毕业论文-基于EPM240的音乐播放器的设计.doc_第4页
第4页 / 共35页
毕业论文-基于EPM240的音乐播放器的设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《毕业论文-基于EPM240的音乐播放器的设计.doc》由会员分享,可在线阅读,更多相关《毕业论文-基于EPM240的音乐播放器的设计.doc(35页珍藏版)》请在三一文库上搜索。

1、广东水利电力职业技术学院广东水利电力职业技术学院 毕业论文毕业论文 题题 目目: 基于 EPM240 的音乐播放器的设计 姓姓 名名: 陈飞龙 学学 号号: 100212102 专业班级专业班级: 10 电子信息工程 所在系别所在系别: 自动化工程系 指导教师指导教师: 龚兰芳老师 完成日期完成日期 二一三 年 二 月 十五 日 广东水利电力职业技术毕业论文摘要 2 基于基于 EPM240EPM240 的音乐播放器的设计的音乐播放器的设计 【摘要摘要】 这次的音乐播放器在 CPLD 内部设计出扬声器发生及分频模块、音符预置数模 块、音符储存模块三个模块,再配开关选择模块、彩灯闪烁控制模块等必要

2、的外围电路, 从而实现四首音乐选择播放,并配有随音乐节奏产生灯柱效果等功能的 MIDI 音乐播放器。 通过本次设计,可以实现出可编程逻辑器件 CPLD 在电子设计领域的应用。 【关键词关键词】 EPM240,CPLD,音乐播放器,VHDL 语言 毕业论文目 录 3 目目 录录 第 1 章 绪论1 1.1 选题的目的与任务1 1.1.1 选题的背景1 1.2 设计的基本内容1 1.2.1 CPLD 的设计.1 1.2.2 外围电路的设计.2 第 2 章 总体设计概述1 2.1 关于 CPLD1 2.2 设计思路.2 2.1.1 总体设计框图与设计思路2 2.2.2 CPLD 设计思路3 2.2.

3、3 外围电路设计思路.3 第 3 章 音乐播放器设计.4 3.1 工作原理.4 3.2 模块设计.4 3.2.1 音符预置数与发生及分频模块设计4 3.2.2 彩灯闪烁控制模块的设计.7 3.2.3 开关选择模块设计.7 3.2.4 音符储存模块设计.7 3.3 四首歌曲选择9 第 4 章 外围电路设计10 4.1 时钟电路.10 4.1.1 音乐节奏时钟10 4.2 音频功率放大电路11 4.3 音乐彩灯闪烁控制电路.11 第 5 章 系统调试.12 5.1 系统调试.12 5.1.1 音乐节奏时钟的调试12 毕业论文目 录 4 5.1.2 音频功率放大的调试12 结论.13 参考文献.14

4、 附录 A 总电路图.15 附录 B PCB 图16 附录 C VHDL 源代码.16 致谢.29 毕业论文 第 1 章 绪论 1 第第 1 章章 绪论绪论 1.1 选题的目的与任务选题的目的与任务 本毕业设计其目的和任务是,让学生掌握 EDA 的基本方法,熟悉一种 EDA 软件 (Quartus ),并能利用 EDA 软件设计实际工程项目,并在开发板上成功下载;使我们将 学到的理论知识应用于实践之中,更是培养学生动手能力和训练学生严格认真的科学 态度及工作作风,为即将踏入工作岗位打下坚实的基础; 通过本毕业设计应达到以下 几点: 1 培养我们的集体主义精神、严肃认真的工作态度;热爱劳动、团结

5、协作、爱护仪 器、遵守纪律的优良品德。 2 掌握 IC 设计的基本原理及方法,掌握硬件描述语言 VHDL 对数字系统的设计方 法和技巧。 3 掌握印制电路板的设计与制作的方法。 4 掌握电子线路的安装、焊接和调试的基本技能。 5. 培养我们分析、解决实际问题的能力和勇于创新的科学精神。 6. 培养我们分析寻找和排除电子电路中常见故障的能力. 7. 培养我们独立写出严谨的、有理论依据的、实事求是的、文理通顺的毕业论文的 能力。 1.1.1 选题的背景选题的背景 CPLD 都是可编程逻辑器件,是在 PAL、GAL 等逻辑器件的基础上发展起来的,与 分立元件相比,具有速度快、容量大、功耗小和可靠性高

6、等优点。由于集成度高、设 计方法先进、现场可编程,它可以替代几十甚至上百片通用 IC 芯片。这种芯片具有现 场可编程和方案容易改动的特点。所以 FPGA 和 CPLD 芯片收到世界范围内电子工程设 计人员的广泛关注和普遍欢迎,可以设计各种数字电路和数字系统。 1.2 设计的基本内容设计的基本内容 1.2.1 CPLD 的设计的设计 1在 CPLD 内部设计出扬声器发生及分频模块、音符预置数模块、音符储存模块 三个模块,再配开关选择模块、彩灯闪烁控制模块等必要的外围电路,从而实现四首 毕业论文 第 1 章 绪论 2 音乐选择播放,并配有随音乐节奏产生灯柱效果等功能的 MIDI 音乐播放器。 2.

7、 设计音乐播放器系统的外围硬件电路原理图。 3. 制作 PCB,并且软、硬件调试成功。 1.2.2 外围电路的设计外围电路的设计 这次设计中用到了 4HZ 的频率,如果直接用自带的 50MHZ 来分频的话会给芯片的 内部资源占用太多,而且不方便每次在程序中对时钟调试,所以我们在外部单独接入 一个时钟信号,提供给音乐时钟。从模电与数电课题中得知,采用 555 定时器构成多 谐振荡器来实现这块电路最合适又有零件,所以我们觉得用它来做时钟。 扬声器因为我们准备了 2 个从耳机与影响上拆下来的扬声器,到最后那个音质好 则选用哪个。 从各处质料中得知由于 CPLD 内部输出的信号比较弱,因此必须在扬声器

8、前借一 个音频功率放大电路才能实现我们的要求,而且在该电路接入滑动变阻器,这样可以 通过调节滑动变阻器,改变放大器的放大倍数,从而调试出放大出来音量。 毕业论文 第 2 章 总体设计概述 1 第第 2 章章 总体设计概述总体设计概述 2.1 关于关于 CPLD MAX II 器件系列是一种非易失性、即用性可编程逻辑系列,它采用了一种突破性 的新型 CPLD 架构。这种新型架构的成本是原先 MAX 器件的一半,功耗是其十分之一, 密度是其四倍,性能却是其两倍。这些超级性能是在提供了所有 MAX 系列 CPLD 先进 特性的架构的基础上,根据 Altera 专家们的意见而重新采用基于查找表的架构而

9、得到 的。这种基于查找表的架构在最小的 I/O 焊盘约束的空间内提供了最多的逻辑容量。 因此,MAX II CPLD 是所有 CPLD 系列产品中成本最低、功耗最小和密度最高的器件。 基于成本优化的 0.18 微米 6 层金属 Flash 工艺,MAX II 器件系列具有 CPLD 所有 的优点,例如非易失性、即用性、易用性和快速传输延时性。以满足通用性,低密度逻 辑应用为目标,MAX II 器件成为接口桥接、I/O 扩展、器件配置和上电顺序等应用最 理想的解决方案。除这些典型的 CPLD 应用之外,MAX II 器件还能满足大量从前在 FPGA、ASSP 和标准逻辑器件中实现的低密度可编程逻

10、辑需求。 MAX II 器件提供的密度范围从 240 到 2210 个逻辑单元(LE),最多达 272 个用户 I/O 管脚。 本次设计核心模块 CPLD 采用 ALTERA 公司 MAX II 系列的 EPM240T100C 芯片。该芯片 共有 100 个管脚,内部 240 个逻辑单元,如图 1 所示,为该芯片的封装图及管脚功能。 毕业论文 第 2 章 总体设计概述 2 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date:8-May-2009 Sheet of File:D:dianlutuMyDesign2.ddbDr

11、awn By: I/O 1 I/O 2 I/O 3 I/O 4 I/O 5 I/O 6 I/O 7 I/O 8 VCCIO 9 GNDIO 10 GNDINT 11 IOCLK 12 VCCINT 13 IOCLK 14 I/O 15 I/O 16 I/O 17 I/O 18 I/O 19 I/O 20 I/O 21 TMS 22 TDI 23 TCK 24 TDO 25 I/O 26 I/O 27 I/O 28 I/O 29 I/O 30 VCCIO 31 GNDIO 32 I/O 33 I/O 34 I/O 35 I/O 36 I/O 37 I/O 38 I/O 39 I/O 40 I/O

12、 41 I/O 42 DEV_OE 43 DEV_CLRn 44 VCCIO 45 GNDIO 46 I/O 47 I/O 48 I/O 49 I/O 50 I/O 51 I/O 52 I/O 53 I/O 54 I/O 55 I/O 56 I/O 57 I/O 58 VCCIO 59 GNDIO 60 I/O 61 IOCLK 62 VCCINT 63 IOCLK 64 GNDINT 65 I/O 66 I/O 67 I/O 68 I/O 69 I/O 70 I/O 71 I/O 72 I/O 73 I/O 74 I/O 75 I/O 76 I/O 77 I/O 78 GNDIO 79 VC

13、CIO 80 I/O 81 I/O 82 I/O 83 I/O 84 I/O 85 I/O 86 I/O 87 I/O 88 I/O 89 I/O 90 I/O 91 I/O 92 GNDIO 93 VCCIO 94 I/O 95 I/O 96 I/O 97 I/O 98 I/O 99 I/O 100 EPM240T100 MAX II 图 1 EPM240T100C 管脚封装图及管脚功能说明 2.2 设计思路设计思路 2.1.1 总体设计总体设计框图与设计思路框图与设计思路 如图 2 所示是这次音乐播放器的工作原理图。其中中心模块式 CPLD 芯片,内部由 音调发生器、音乐编码器和彩灯闪烁控

14、制器三个模块组成。我们通过开关来选择歌曲, 音乐编码器里已经存储了 4 首歌曲,我们通过选择不同的开关来播放不同的歌曲。音 乐编码器控制着音调发生器和彩灯闪烁控制器,每当音乐节奏时钟的脉冲到来是时, 音乐编码器就把当前要播放的音符的编码送给音调发生器和彩灯闪烁控制器。音调发 生器就会产生相应的音符频率给音频放大器,经过放大由扬声器放出,产生音乐。彩 灯闪烁控制器根据编码点亮相应的彩灯,实现灯柱效果。 核心部分 CPLD 我们利用 VHDL 语言来完成,其他部分通过外围电路实现。 毕业论文 第 2 章 总体设计概述 3 图 2 音乐播放器的工作原理图 2.2.2 CPLD 设计思路设计思路 在这

15、里我们用的是老师所提供的学习开发板,板中所用的就是 EPM240 中的 CPLD 芯片。老师所提供的 CPLD 型芯片,其内部逻辑单元数为 240 个,只要对程序进行一定 的优化处理,即可以满足所有的设计要求。 为了使整个设计尽量简洁,4 首歌曲均只有高潮部分,这样听起来容易辨认与熟 悉,同时也能节省芯片内部资源。 2.2.3 外围电路设计思路外围电路设计思路 这次设计中用到了 4HZ 的频率,如果直接用自带的 50MHZ 来分频的话会给芯片的 内部资源占用太多,而且在程序中对时钟调试不方便,所以我们在外部单独接入一个 时钟信号,提供给音乐时钟。从模电与数电课题中得知,采用 555 定时器构成

16、多谐振 荡器来实现这块电路最合适又有零件,所以我们觉得用它来做时钟。 扬声器因为我们准备了 2 个从耳机与影响上拆下来的扬声器,到最后那个音质好 则选用哪个。 从个处质料中得知由于 CPLD 内部输出的信号比较弱,因此必须在扬声器前借一 个音频功率放大电路才能实现我们的要求,而且在该电路接入滑动变阻器,这样可以 通过调节滑动变阻器,改变放大器的放大倍数,从而调试出放大出来音量。 毕业论文第 3 章 音乐播放器设计 4 第第 3 章章 音乐播放器设计音乐播放器设计 3.1 工作原理工作原理 MIDI 音乐的基本原理为:组成乐曲的每一个音符的频率值及其持续的时间是乐曲 能连续演奏的两个基本数据,因

17、此只要控制输出到扬声器的激励信号频率的高低和每 一个频率信号的持续时间,就可以使扬声器发生连续的乐曲。如图 3 所示,为 CPLD 内 部芯片设计原理图。 图 3 芯片原理 3.2 模块设计模块设计 3.2.1 音符预置数与发生及分频模块设计音符预置数与发生及分频模块设计 在设计中音符产生是通过音符预置数模块以查找表的形式把预先设定好的数置给 发生及分频模块的可变模值计数器实现分频,得到相应的频率后输出给音频放大器, 在通过扬声器发出。根据可变模值计数器的设计原理及音符的分频系数,可计算出乐 曲中各音符的预置数,如表 3.1 所示。而在音符的选择上,我们选择了最广泛应用的 16 个音。 开关选

18、择模块 发生及分频模块 音符储存模块 音符预置数模块 彩灯闪烁模块 扬声器 彩灯 50MHZ 基准时钟 4HZ 时钟 毕业论文第 3 章 音乐播放器设计 5 表 3.1 音符的分频数和预置数 音名分频系数初始值 低音 551023089 低音 645453646 低音 740504141 中音 138224369 中音 234054786 中音 330345157 中音 428635328 中音 525515640 中音 622735918 中音 720256166 高音 119116280 高音 217036488 高音 315176674 高音 414326759 高音 512756816

19、 休止符 008191 发生及分频模块由可变模值计数器实现。由于系统要求产生出的信号频率较高, 因此选用 4MHz 高频脉冲作为可变模值计数器的技计数脉冲。而为了减少输出的偶次谐 波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个 2 分频的分频器。所以,上图所给出的分频系数是用分频后的 2MHz 基础上计算得出的。 各音阶频率及相应的分频如表 3.2 所示。程序如: process(PreCLK, Tone)-置数分频 variable Count11: integer range 0 to 16#1FFF#; begin if PreCLKevent and PreC

20、LK=1 then if Count11=16#1FFF# then count11:=Tone; FullSpkSdigdigdigdigdigToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexCLK4HZ,dig=dig1,ToneIndex=ToneIn dex); u2: ToneTaba PORT MAP(Index=ToneIndex, Tone=

21、Tone); u3: Speakera PORT MAP(clk=CLK, Tone=Tone, SpkS=SPKOUT); u4: cd port map(Tone=ToneIndex, lights=lights); u5: kg port map(switch=switch,dig=dig1); END; -开关选择模块 library ieee; use ieee.std_logic_1164.all; entity kg is port (switch:in std_logic_vector(3 downto 0); dig:out integer range 0 to 4); en

22、d; architecture one of kg is begin process(switch) begin case switch is when “0001“=digdigdigdigdig lights lights lights lights lights lights lights lights lights lights lights lights lights lights lights lightsNULL; end case; end process; end; -扬声器发生及分频模块 library ieee; use ieee.std_logic_1164.all;

23、entity Speakera is PORT(clk: IN STD_LOGIC; Tone: IN INTEGER RANGE 0 TO 16#1FFF#; SpkS: OUT STD_LOGIC); END ; architecture one of Speakera is signal PreCLK:std_logic; signal FullSpkS:std_logic; begin process(clk) variable count4:integer range 0 to 11;-12 分频=4.16MHZ begin PreCLK Tone Tone Tone Tone To

24、ne Tone Tone Tone Tone Tone Tone Tone Tone Tone Tone ToneNULL; end case; end process; end; -音符储存模块 library ieee; use ieee.std_logic_1164.all; entity NoteTabs is PORT(clk: IN STD_LOGIC; 毕业论文附录 C VHDL 源代码 20 dig: in integer range 0 to 4; ToneIndex: OUT INTEGER RANGE 0 TO 15); END; architecture one of

25、NoteTabs is signal Counter :integer range 0 to 127; begin process(dig,clk) begin if (dig=1 or dig=2 or dig=3 or dig=4) then if Counter=128 then CounterToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneI

26、ndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneInde

27、xToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTo

28、neIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneI

29、ndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexNULL; end case; elsif dig=2 then-涛声依旧 case Counter is when 00=ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndex

30、ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTon

31、eIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIn

32、dexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndex

33、ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexNULL; end case; elsif dig=3 then-隐形的翅膀 case Counter is when 00=ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTon

34、eIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIn

35、dexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndex

36、ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTon

37、eIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexNULL; end case; elsif dig=4 then-我愿意 case Counter is when 00=ToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneInde

38、xToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexTo

39、neIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneI

40、ndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneInde

41、xToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexToneIndexNULL; end case; else ToneIndex=0; end if; end process; end; 毕业论文致谢 29 致谢致谢 通过本次毕业设计,加深了自己对可编程逻辑器件的认知,加强了我的自 信心。在此要感谢前人在此领域上的研究,为本次设计提供了许多思路及方法, 感谢龚兰芳老师对于本次

42、毕业设计给予的多方面指导。 A boxer that only has front legs refuses to let his disability hold him back as he charges across a beach with his four-legged pals.一条只有两条前肢的拳师犬不愿让残疾成为前进的障碍,他同其他四条 腿的伙伴们一同在海滩上尽情狂奔。In an adorable video showing his first trip to the beach, Duncan Lou Who can been seen excitedly galloping

43、 along the sand and paddling in the water.这段可爱的视频 展现了名叫 Duncan Lou Who 的狗第一次来到海边的场景,他兴奋地在沙滩上飞奔、或是趟水 嬉戏。His exciting day trip was filmed by Panda Paws Rescue, a Washington state-based charity that cares for Duncan and other dogs with special needs.这段视频由位于华盛顿州的慈善组织 Panda Paws Rescue 拍摄,该组织专门照料 Duncan

44、以及其他有特殊需求的狗。Despite only having front limbs, the boxer is able to not only balance, but also run really fast and play with the other dogs that joined him for the outing.虽然只有两条前肢,Duncan 不仅能让自己保持平衡,还能快速奔跑, 和其余同他一起远足的狗 狗玩耍。He was born with deformed back legs, which were later removed to make the dog mo

45、re comfortable. Duncan 出生时,它的后肢就是畸形的,此后为了让他 舒服些,只能进行截肢。His owners, who posted the video on YouTube, said he has a wheelchair but doesnt like to use it.主人们将视频传到了 YouTube 上,他们说有一把供 Duncan 使用的轮椅,但 是他并不爱用。We let him be free and just walk on his two legs. There is some slow motion in this video, but none

46、 of the video has been sped up, this gives you an idea of how fast Duncan really it, his owners said. “我们让他自由地用两条腿行走。视频中有些特意制作的慢镜头,但是没有任何一 处做过加速处理,你们可以通过视频感受到 Duncan 跑得有多快。 ”主人们说。The thrill of running through the surf was clear to see, as Duncan raced people and dogs across the sand, with his tail w

47、agging excitedly. Duncan 踏着浪花,在沙滩上同其他人及狗赛跑,还兴奋地摇着尾巴,他 的喜悦之情显而易见。Duncans owners have described him as a trooper, adding on charitys Facebook page: Hes happy, healthy and as far as he knows, normal too.主人们用“骑兵”一词来形容 Duncan,他们在组织的 Facebook 中写道:“他很快乐,也很健康;而且在他自己看来,他是条 正常的狗。 ”It would be the best if he h

48、ad four legs, of course, but his body wasnt built to have back legs and thats OK. He and we have just adapted. “他如果能有四条腿当然最好,但是他天生就失去 了后肢,这也没什么关系,无论是他还是我们都已经适应了这一点。 ” Im thankful to PSG for giving me the opportunity to continue but I feel now is the right time to finish my career, playing at the hig

49、hest level. If you had told me as a young boy I would have played for and won trophies with my boyhood club Manchester United, proudly captained and played for my country over one hundred times and lined up for some of the biggest clubs in the world, I would have told you it was a fantasy. Im fortunate to have realised those dreams.To this day, one of my proudest achievements is captaining my country. I knew every time I wore the Three Lions s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1