ImageVerifierCode 换一换
格式:DOC , 页数:17 ,大小:719KB ,
资源ID:130800      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-130800.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM9的电子琴程序设计.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于ARM9的电子琴程序设计.doc

1、 华南师范大学增城学院 课 程 论 文 题目: 基于 ARM9 的电子琴 设计 课 程 名 称 嵌入式系统原理与应用技术 考 查 学 期 2013-2014 学年 第 2 学期 考 查 方 式 课程论文 姓 名 学 号 专 业 成 绩 指 导 教 师 基于 ARM9 的电子琴 设计 2 目录 . 错误 !未定义书签。 一、设计目的和要求 . 3 1.1 程序设计目的 . 3 1.2 程序设计要求 . 3 二、硬件总体设计 . 3 2.1 S3C2440A 芯片 . 3 2.2 蜂鸣器设计 . 4 三、软件总体设计 . 5 3.1 软件流程图 . 5 3.2 程序设计 . 6 四、实验调试 .

2、14 五、心得与体会 . 15 六、参考文献 . 16 基于 ARM9 的电子琴 设计 3 一、设计 目的和 要求 1.1 程序 设计目的 大作业是嵌入式系统基础课程教学的一个实践环节,是对学生进行全面的系统的训练。进行大作业可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深入学习的热情,也能考查学生对此门课程掌握的程度。 1.2 程序 设计要求 对微控制器 S3C2440 进行 裸机程序开发, 利用 实验箱上的蜂鸣器和软件 上的设计 ,设计出来一个简易 的电子琴 , 在电子琴上具备简单的音符播放,分别按键盘上的 1到 8键,依次

3、播放音乐上的不同音节。所设计的电子琴上还有音乐播放的功能。 二、 硬件 总体设计 2.1 S3C2440A 芯片 S3C2440A是由三星公司生产的一种性价比很高的 CPU芯片 ,由于该芯片价格低、功耗低和体积小等显著的特点 ,主要用于手持设备和一般类型应用的设备。 S3C2440A是 Samsung公司设计的一款高性价比 16/32位 ARM9系列微处理器,内含一个由 ARM 公司设计的 16/32 位 ARM920T RISC 处理器核,采用五级流水线和哈佛体系结构,工作频率最高可达 533MHz;同时还具备体积小、成本低、功耗低、资源众多等诸多特点。内部集成的常用资源主要有:外部存储控制

4、器( SDRAM控制和片选逻辑); LCD 控制器(最大支持 4K 色 STN 和 256K 色 TFT 屏),提供1 通道 LCD 专用 DMA; 4 通道 DMA 并有外部请求引脚; 3 通道 UART(IrDA1.0, 64基于 ARM9 的电子琴 设计 4 字节 TxFIFO 和 64 字节 RxFIFO); 2 通道 SPI; 1 通道 IIC-BUS 接口(支持多主机);1通道 IIS-BUS 音频编码解码器接口 ; AC 97 解码器接口;兼容 SD 卡接口协议1.0 版和 MMC 卡 2.11 版; 2 端口 USB 主机和 1 端口 USB 设备; 4 通道 PWM 定时器和

5、 1 通道内部定时器,看门狗定时器; 8 通道 10 比特 ADC 和触摸屏接口;具有日历功能的 RTC;相机接口(最大支持 4096*4096 像素); 130 个通用 I/O 口和24 通道外部中断源等资源。这些资源大大的方便了应用系统的开发,同时节约开发成本,缩短开发周期,提高了系统的性价比。 图 2.1 s3c22440 芯片管脚图 2.2 蜂鸣器 设计 在程序设计方面我们用到 2440 BEEP 蜂鸣器 ,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 PWM 输出口直接驱

6、动是利用 PWM 输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置 中有几个系统寄存器是用来设置 PWM 口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开 PWM 输出, PWM 输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。比如频率为 2000Hz 的蜂鸣器的驱动,可以知道周期为500 s,这样只需要把 PWM 的周期设置为 500 s,占空比电平设置为 250 s,基于 ARM9 的电子琴 设计 5 就能产生一个频率为 2000Hz 的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。 图 2.

7、2 蜂鸣器原理图 三、软件总体设计 3.1 软件流程图 在软件设计方面,我们是具体流程图是这样的。首先我们要启动我们的实验箱,然后在进行串口的初始化,在串口方面,我们选择了“串口 1”,然后我们把程序加载到我们的实验箱上。 然后,我们需要在电脑键盘来进行键盘数据的输入。当我们按到“ 1”的时候,实验箱 的蜂鸣器就会发出“ do”音,当我按到“ 2”的时候,就会发出“ re”音,如此类推。当我们按到“ w”键的时候,蜂鸣器就会播放我们设计好的歌曲欢乐颂。软件设计流程图如下: 基于 ARM9 的电子琴 设计 6 图 3.1 软件设计流程图 3.2 程序设计 #include “2440addr.h

8、“ #include “2440lib.h“ #include “def.h“ void Buzzer_Freq_Set( U32 freq ); void Buzzer_Stop( void ); void BUZZER_PWM_Test( void ); void delay(int times); 基于 ARM9 的电子琴 设计 7 void xmain(void) ChangeClockDivider(3,1); ChangeMPllValue(127,2,1); /405MHZ Rtc_Init(); /实时时钟初始化 Uart_Init(0, 115200); Uart_Selec

9、t(0); BUZZER_PWM_Test(); while(1); void BUZZER_PWM_Test( void ) U16 freq ; while( 1 ) U8 key = Uart_Getch(); 基于 ARM9 的电子琴 设计 8 if( key = 1 ) freq = 2000; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); if( key = 2 ) freq= 2200; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); if(

10、key = 3 ) freq = 2400; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); 基于 ARM9 的电子琴 设计 9 if( key = 4 ) freq = 2600; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); if( key = 5 ) freq = 2800; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); if( key = 6 ) freq = 3100; Buzz

11、er_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); 基于 ARM9 的电子琴 设计 10 if( key = 7 ) freq = 3300; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); if( key = 8 ) freq = 3500; Buzzer_Freq_Set( freq ) ; delay(10000000); Buzzer_Stop(); if( key = w ) Buzzer_Freq_Set( 2400) ;delay(30000000); Buzzer_Freq_Set( 2400) ;delay(30000000); Buzzer_Freq_Set( 2600) ;delay(30000000); Buzzer_Freq_Set( 2800) ;delay(50000000); Buzzer_Freq_Set( 2800) ;delay(30000000);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。