《嵌入式课设音乐相册说明书.docx》由会员分享,可在线阅读,更多相关《嵌入式课设音乐相册说明书.docx(8页珍藏版)》请在三一文库上搜索。
1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。信息与电气工程学院嵌入式课程设计说明书(/年第一 学期 )课程名称 :嵌入式课程设计题目 :音乐相册专业班级 :计算机 1202学生姓名 :何珊 刘立双 仲栋平学号 :指导教师 :王彬丽设计周数 :1.5周设计成绩 :01月 13日1、 课程设计目的嵌入式系统是在传统单片机等技术的基础上发展起来的一项结合硬件和软件应用广泛功能强大的系统。嵌入式系统经过在软件平台编译控制程序并在硬件上运行,嵌入式软件的开发已经在工业各个方面都资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。有很多应用 , 学习好嵌入式系统开发已成为现在从
2、事计算机工作人员必不可少的技能。本次课程设计是基于嵌入式硬件平台TQ2440开发板 ,完成了有操作系统的嵌入式系统软件设计,经过编译下载能够在开发板上显示相应内容 , 从而达到课程设计要求。本次课程设计是进行有操作系统的嵌入式系统软件开发, 这其中就涉及到平时所学的嵌入式系统开发相关知识, 包括系统的安装、相关软件的使用、 程序的编译调试、相关端口的配置、程序的烧写、相关硬件的配置以及经过 PC机和软件结合硬件进行程序的调试和运行。这是完成一个基于操作系统的嵌入式软件开发所必须要经历的步骤,在这个设计中经过发现问题、解决问题和总结经验能够学到很多在实际嵌入式软件开发中有用的知识。这是此次课程设
3、计的主旨和精髓, 经过本次课程设计能够达到一些课程设计目的。2、 课程软硬件设计2.1 系统分析和设计此次课设是在原始数据 TQ2440_Test.mcp 基础上做出相应修改 , 以此达到课设要求。主要运用 C 语言编写 , 修改 Main.c 、 TQ_LOGO.c 及LCD_TFT.h等文件 , 在天嵌 2440 开发板中实现六张图片的轮换而且有背景音乐 ,图片随着音乐的节奏而变化。我们的主题是生日快乐,背景音乐是生日快乐歌,图片是六张生日蛋糕的图片。2.2 系统实施使用软件 ADS1.2、TQBoardDNW和位图转换软件bmp2h.exe 在 win7上进行试验 ,经过改变脉冲列的周期
4、能够调频,改变脉冲的宽度或占资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。空比能够调压。主要实验步骤 :( 1)用 ADS1.2 打开 TQ2440_Test.mcp( 2)新建工程 : File-New(ARM Executable Image)给工程命名为HMusicPhoto 并选择工程位置( 3)将 TQ2440_Test.mcp 原始数据拷贝过来,新建 inc 和 src 两个文件夹 ,把需要用的程序分别考过来,回到 TQ2440_Test.mcp 在空白处右击添加文件将2440init.s、 2440slib.s、 nand.c 、 2440lib.c、Main.c
5、 、 mmu.c、 LCD_TFT.c 、 TQ_LOGO.c添加到工程中且顺序不可改变( 4)准备 : 6张图片的二进制文件:下载六张生日蛋糕的图片,保存为” .jpg ”形式用画图软件打开,重新调整大小并取消纵横比,设置大小为 480*272 单位为像素 , 修改后另存为 24 位位图形式 , 6 张图片都是如此 , 下面不特殊说明适用于所有图片用 bmp2h.exe 将 6 张位图文件转换为相应的二进制文件相关文件这略打开 TQ_LOGO.c替换其中的数组( 5)对工程进行配置,具体参照学习课件”第四讲制作简易电子相册”( 6) Main.c和LCD_TFT.h中加入相应的外部声明,例如
6、externunsigned char picx;( x取1-6) ,注意在Main.c中要多加extern资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp);,除此之外还要注释掉Main.c 中的结构体( 7)打开 TQ_LOGO.c替换当中的二进制文件( 8)准备生日快乐歌的二进制文件,根据乐谱和相关知识得出结果如下unsigned char SONG =/生日快乐0x40,0x20,0x40,0x20,0x39,0x40,0x40,0x40,0x30,0x40
7、,0x33,0x80,0x40,0x20,0x40,0x20,0x39,0x40,0x40,0x40,0x2b,0x40,0x30,0x80,0x40,0x20,0x40,0x20,0x20,0x40,0x26,0x40,0x30,0x40,0x33,0x40,0x39,0x40,0x24,0x20,0x24,0x10,0x26,0x40,0x30,0x40,0x2b,0x40,0x30,0x80, 将得到的数组内容加以整合就得到所用的数组( 9)修改 Main.c:在 while( 1) 的前面添加以下初始化的程序段 char *mode;unsigned char Temp1,Temp2;
8、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)&0xff, (mpll_val4)&0x3f,mpll_val&3);ChangeClockDivider(key, 12);cal_cpu_bus_clk();conso
9、leNum = 0; / Uart 1 select for debug.Uart_Init( 0,115200 );rMISCCR=rMISCCR&(13); / USBD is selected instead of USBH1rMISCCR=rMISCCR&(113); / USB port 1 is enabled.rDSC0 = 0x2aa;rDSC1 = 0x2aaaaaaa;rCLKCON = 0xfffff0;资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。MMU_Init(); /pISR_SWI=(_ISR_STARTADDRESS+0xf0); /for p
10、SOSLed_Display(0x66);mode=DMA;Clk0_Disable();Clk1_Disable();mpll_val = rMPLLCON;Lcd_TFT_Init() ; / LCD initialdownload_run=1; /The default menu is the Download & Runmode写 Buzzer_Freq_Set0函数用来设置PWM的频率 ,这个函数是参照 2440lib.c中的 Buzzer_Freq_Set函数修改的 ,一些常见的寄 存 器 设 置 没 有 不 同 , Buzzer_Freq_Set0函 数 只 是 将Buzzer_Freq_Set 函数 rTCMPB0 = rTCNTB01; /50% 改 为rTCMPB0 = rTCNTB0*0.03; 以 此 来 调 整 占 空 比 ,而 rTCNTB0 =(PCLK7)/freq; 调整 PWMV的频率根据我们在网上查到的资料将闹钟和图片播放结合起来得到 使 得 图 片 根 据 背 景 音 乐 的 节 奏 来 显 示 ,其 主 要 代 码 是 在while(1)的主体中 ,其主要代码为 :Temp1=SONGAddr+;Temp2=SONGAddr+;freq=30000/Temp1;