嵌入式课设音乐相册说明书_第1页
嵌入式课设音乐相册说明书_第2页
嵌入式课设音乐相册说明书_第3页
嵌入式课设音乐相册说明书_第4页
嵌入式课设音乐相册说明书_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、课程设计目的和需求1.1课程设计目的嵌入式系统是在传统单片机等技术的基础上发展起来的一项结合硬件和软件应用广泛功能强 大的系统。嵌入式系统通过在软件平台编译控制程序并在硬件上运行,嵌入式软件的开发已经在工 业各个方面都有很多应用,学习好嵌入式系统开发已成为现在从事计算机工作人员必不可少的技 能。本次课程设计是基于嵌入式硬件平台TQ2440开发板,完成了有操作系统的嵌入式系统软件设 计,通过编译下载能够在开发板上显示相应内容,从而达到课程设计要求。本次课程设计是进行有操作系统的嵌入式系统软件开发,这其中就涉及到平时所学的嵌入式 系统开发相关知识,包括系统的安装、相关软件的使用、程序的编译调试

2、、相关端口的配置、程序 的烧写、相关硬件的配置以及通过PC机和软件结合硬件进行程序的调试和运行。这是完成一个基 于操作系统的嵌入式软件开发所必须要经历的步骤,在这个设计中通过发现问题、解决问题和总结 经验可以学到很多在实际嵌入式软件开发中有用的知识。这是此次课程设计的主旨和精髓,通过本 次课程设计可以达到一些课程设计目的。1.2课程设计需求2、软件设计方案2.1系统分析和设计此次课设是在原始数据TQ2440_Test.mcp基础上做出相应修改,以此达到课设要求。主要运用 C语言编写,修改Main.c、TQ_LOGO.c及LCD_TFT.h等文件,在天嵌2440开发板中实现六张图片 的轮换并且有

3、背景音乐,图片随着音乐的节奏而变化。我们的主题是生日快乐,背景音乐是生日快 乐歌,图片是六张生日蛋糕的图片。2.2系统实施使用软件ADS1.2、TQBoardDNW和位图转换软件bmp2h.exe在win7上进行试验,通过改变脉冲 列的周期可以调频,改变脉冲的宽度或占空比可以调压。主要实验步骤:(1)用 ADS1.2 打开 TQ2440_Test.mcp(2)新建工程:File-New(ARM Executable Image)给工程命名为HMusicPhoto并选择工程位 置(3)将TQ2440_Test.mcp原始数据拷贝过来,新建inc和src两个文件夹,把需要用的程序 分别考过来,回到

4、TQ2440_Test.mcp在空白处右击添加文件将2440init.s、2440slib.s、nand.c、2440lib.c、Main.c、mmu.c、LCD_TFT.c、TQ_LOGO.c 添加到工程中且顺序不可改变准备:6张图片的二进制文件:下载六张生日蛋糕的图片,保存为.jpg”形式用画图软件打开,重新调整大小并取消纵横比,设置大小为480*272单位为像素,修 改后另存为24位位图形式,6张图片都是如此,下面不特殊说明适用于所有图片用bmp2h.exe将6张位图文件转换为相应的二进制文件相关文件这略打开TQ_LOGO.c替换其中的数组对工程进行配置,具体参照学习课件“第四讲制作简易

5、电子相册”Main.c 和 LCD_TFT.h 中加入相应的外部声明,例如 extern unsigned char picx; (x 取 1-6),注意在 Main.c 中要多加 extern void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp);,除此之外还要注释掉Main.c中的结构体打开TQ_LOGO.c替换当中的二进制文件准备生日快乐歌的二进制文件,根据乐谱和相关知识得出结果如下unsigned char SONG =/生日快乐0 x40,0 x20,0 x40,0 x20,0 x39,0 x40,0 x40,0 x4

6、0,0 x30,0 x40,0 x33,0 x80,0 x40,0 x20,0 x40,0 x20,0 x39,0 x40,0 x40,0 x40,0 x2b,0 x40,0 x30,0 x80,0 x40,0 x20,0 x40,0 x20,0 x20,0 x40,0 x26,0 x40,0 x30,0 x40,0 x33,0 x40,0 x39,0 x40,0 x24,0 x20,0 x24,0 x10,0 x26,0 x40,0 x30,0 x40,0 x2b,0 x40,0 x30,0 x80,将得到的数组内容加以整合就得到所用的数组修改 Main.c:在while (1) 的前面添加

7、以下初始化的程序段char *mode;unsigned char Temp1,Temp2;unsigned int Addr=0;U8 key;U32 mpll_val = 0 ;U16 freq;/ lci 1000/U32 divn_upll = 0 ;#if ADS10/ _rt_lib_init(); /for ADS 1.0#endifPort_Init();Isr_Init();key = 14;mpll_val = (9212)|(112)&0 xff, (mpll_val4)&0 x3f, mpll_val&3);ChangeClockDivider(key, 12);cal

8、_cpu_bus_clk();consoleNum = 0; / Uart 1 select for debug.Uart_Init( 0,115200 );rMISCCR=rMISCCR&(13); / USBD is selected instead of USBH1 rMISCCR=rMISCCR&(113); / USB port 1 is enabled.rDSC0 = 0 x2aa;rDSC1 = 0 x2aaaaaaa;rCLKCON = 0 xfffff0;MMU_Init(); /pISR_SWI=(_ISR_STARTADDRESS+0 xf0); /for pSOSLed

9、_Display(0 x66);mode=DMA;Clk0_Disable();Clk1_Disable();mpll_val = rMPLLCON;Lcd_TFT_Init() ; / LCD initialdownload_run=1; /The default menu is the Download & Run mode写Buzzer_Freq_Set0函数用来设置PWM的频率,这个函数是参照2440lib.c中的 Buzzer_Freq_Set函数修改的,一些常用的寄存器设置没有不同,Buzzer_Freq_Set0函数只是 将 Buzzer_Freq_Set 函数 rTCMPB0

10、= rTCNTB01; / 50%改为 rTCMPB0 = rTCNTB0*0.03;以此 来调整占空比,而rTCNTB0 = (PCLK7)/freq;调整PWMV的频率根据我们在网上查到的资料将闹钟和图片播放结合起来得到使得图片根据背景音乐的 节奏来显示,其主要代码是在while(1)的主体中,其主要代码为:Temp1=SONGAddr+;Temp2=SONGAddr+;freq=30000/Temp1;Buzzer_Freq_Set0( freq );Delay(12*Temp2);Uart_Printf(freq=%d,”,freq);if(Addr215)Addr=0;Paint_B

11、mp(0,0,480,272,picx); (x 为 1-6)Make编译,形成.bin文件连接好数据线和转串口线并用TQBoardDNW将.bin文件烧写到开发板中结果展示:6张生日蛋糕图片轮换且背景音乐为生日快乐歌图1图3图5图63硬件设计方案3.1系统硬件的构成与原理本次设计的简易音乐相册系统主要使用到的硬件有蜂鸣器、LCD液晶显示屏、电源等。由原理 图可知,通过对TOUT0/GPB0进行编程可控制蜂鸣器。蜂鸣器是通过GPB0端口使用PWM信号驱动工作的,而GPB0 口是一个复用的IO 口,要使用它得先把他设置成TOUT0 PWM输出模式,开启蜂鸣 器播放音乐。3.2蜂鸣器蜂鸣器的原理电

12、路图如图1所示,控制蜂鸣器的端口为PB1引脚,当PB1引脚输入低电平时, 蜂鸣器会鸣叫。由于蜂鸣器的工作电流一般比较大,以致于MCU的I/O 口是无法直接驱动的,所以 要利用放大电路来驱动,如图1所示,其中的三极管Q1(8050)就是用来放大电流以驱动蜂鸣器 的。-5V-_ 17INR LBUZZER.2.phoR27q_K |2.2KJ-.8050R2810K图1蜂鸣器电路图在嵌入式应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警, 比如按键按下、开始工作、工作结束或是故障等等。一般驱动蜂鸣器的方式有两种:一种是PWM输 出口直接驱动,另一种是利用I/O定时翻转电平产

13、生驱动波形对蜂鸣器进行驱动。PWM输出口直 接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。只要打开PWM输出,PWM输 出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。PWM(脉冲宽度调制)简单的讲是一种变频技术,靠改变脉冲宽度来控制输出电压,通过改变周 期来控制其输出频率。如果还不是很清楚,好吧,来看看我们实际生活中的例子,我们的电风扇为 什么扭一下按扭,风扇的转速就会发生变化;调一下收音机的声音按钮,声音的大小就会发生变化; 还有待会儿我们要讲的蜂鸣器也会根据不同的输入值而发出不同频率的叫声等,这些都是PWM的应 用,都是通过PWM输出的频率信号进行控制

14、的。4.课程设计总结在课设中我们遇到很多难以解决的问题,有的是上课期间就遗留的问题有的是新遇到的问题, 比如说刚开始准备的时候我们在安装软件上就遇到了很多困难,一是在安装ADS1.2时license.dat 文件没导对使得软件安了很多遍都没有安装好,二是转串口驱动一直安装不好,后来查资料问同学 解决7.inf的软件安装又从网上下载驱动才得以解决。再有就是程序上的问题有时明明是按照老 师给的课件中提到的过程做但却依然有问题,后来知道是ADS1.2安装目录出了问题,不能安装在 ProgramFiles(x86)文件夹下,要不会出现找不到文件的问题。这么多的问题要一个接一个的解 决,都在考验着我们的耐心。一开始我们没有头绪如果坚持下去就一定会有所收获。这次课设我们体会到了嵌入式开发的乐趣,在这个过程中我们不仅学到了课本的知识更多的是 我们学到了课本以外的知识,中途我们遇到很多问题,经过一番努力最终把问题都解决了,得到最 后的结果,最重要的是我们再一次合作完成了课程设计,更懂得合作、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论