dsp实验三1.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
dsp实验三1

DSP实验报告 实验题目:实验三 GPIO应用之蜂鸣器 学院名称 :机电工程学院 专业班级 :13级电本一班 学生姓名 :张文斌 学 号 :2013041551 前言: 数字信号处理器DSP (Digital Signal Processor) 是基于超大规模集成技术和计算机技术、适用于高速数字信号处理的单片计算机,现已经广泛应用于科研、军事以及消费类电子产品中。 实验目的: 通过实验学习使用 5416DSP 的扩展I/O 端口接收外围设备信息的方法,了解键盘的使用原理并控制蜂鸣器发音,通过键盘一 一对应输出。 发音 Do Re Mi Fa So La Si Ti 键盘控制 1 2 3 4 5 6 7 8 实验原理: 蜂鸣器简介 1.1蜂鸣器的工作原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它, DSP-IO 引脚输出的电流较小, DSP 输出的 TTL 电平基本上驱动不了蜂鸣器, 因此需要增加一个电流放大的电路。实验板通过一个三极管 Q1 来放大驱动蜂鸣器。 1.2蜂鸣器的分类 蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加 上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源蜂 鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声 音。 对于有源和无源的驱动方式,略有不同,我们先讲解一下有源蜂鸣器的驱动方法。有源蜂 鸣器因为内含有信号源,因此只要加上额定的工作电压就可以发出固定频率的声音。 对于无源的蜂鸣器,驱动其发出声音就较为复杂,因为它本身不带信号源,因此,只是通 上电源,是不能发出声音的,必须要不断的重复“通电-断电”,才能使其发出声音,我们可 以通过编写程序,控制 GPIO7 口不断的置为高电平—低电平—高电平…,这样蜂鸣器就可以 不断的通、断电,从而发出声音。而通电、断电的时间不同,相当于振荡周期的不同,因此又 可以得到不同频率的声音。 1.3蜂鸣器电路 图1.1 2蜂鸣器的应用: 2.1蜂鸣器是接在多缓冲串行口McBSP0 的DX0端。DX0工作在通用I/O的输出状态。 2.2蜂鸣器控制相关寄存器: 映射到I/O空间的0x8000地址,所以在定义寄存器的访问方式为: ioport unsigned char port8000; port8000=0; port8000=0x80; port8000=8; 2.3McBSP0子块地址寄存器SPSA0 其映射到数据存储器空间0x38地址,其功能是CPU 访问McBSP 中不能直接访问的寄存器时装载这些寄存器的子块地址, 定义访问方式为:#define SPSA0 *(unsigned int *)0x38。 2.4McBSP0子块地址寄存器SPSD0 其映射到数据存储器空间0x39地址, 其功能是传送CPU 访问McBSP 中不能直接访问的寄存器时装载这些寄存器的子块地址, 定义访问方式为:#define SPSD0 *(unsigned int *)0x39。 2.5引脚控制寄存器PCR。CPU不能直接访问的该寄存器,必须通过子块数据寄存器SPSD来访问PCR,其子地址为0x0e。其定义为: SPSD0=uWork1; SPSA0=0x0e; // set McBSP0's PCR uWork1=SPSD0; uWork1|=0x2020; // set XIOEN=1, Enable IO,DX for output 2.6串行口控制寄存器SPCR2。CPU不能直接访问的该寄存器,必须通过子块数据寄存器SPSD来访问SPCR2,其子地址为0x1。其定义为: SPSA0=1; // set McBSP0's SPCR2 uWork1=SPSD0; uWork1&=0xfffe; // set XRST=0 3.音频发声实现: 由于蜂鸣器接到DX0端,通过使用SDP定时器定时,使BDX0以一定音频频率输出信号,就可以形成音频发生器。 3.1 发`声控制。将定时器定时时间定为输出信号的半周期,并设置定时器为定时中断方式,在定时器中断函数中队BDX0端进行取反操作,就可以在BDX0端产生一定频率的信号,如图 图2.1 3.2按一定节奏变化的音频信号的控制。如果要产生有节奏的音乐:产生的音频信号一定节奏变化,如图 图2.2 3.3音乐参数由不断变化的音频参数和音乐常数组组成,可用二维数组music【freq , length】来表示

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档