嵌入式系统课程设计报告材料
嵌入式系统设计课设报告材料

实用标准文档福州大学《嵌入式系统设计课设》报告书题目:基于28027的虚拟系统姓名:学号:学院:电气工程与自动化学院专业:电气工程与自动化年级:起讫日期:指导教师:目录1、课程设计目的 (1)2、课程设计题目和实现目标 (1)3、设计方案 (1)4、程序流程图 (1)5、程序代码 (1)6、调试总结 (1)7、设计心得体会 (1)8、参考文献 (1)1、课程设计目的《嵌入式系统设计课设》是与《嵌入式系统设计》课程相配套的实践教学环节。
《嵌入式系统设计》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。
培养大胆发明创造的设计理念,为今后就业打下良好的基础。
通过课程设计,掌握以下知识和技能:1.嵌入式应用系统的总体方案的设计;2.嵌入式应用系统的硬件设计;3.嵌入式应用系统的软件程序设计;4.嵌入式开发系统的应用和调试能力2、课程设计题目和实现目标课程设计题目:基于28027的虚拟系统任务要求:A、利用28027的片上温度传感器,检测当前温度;B、通过PWM过零中断作为温度检测A/D的触发,在PWM中断时完成温度采样和下一周期PWM占空比的修正;PWM频率为1K;C、利用按键作为温度给定;温度给定变化从10度到40度。
D、当检测温度超过给定时,PWM占空比增减小(减小幅度自己设定);当检测温度小于给定时,PWM占空比增大(增大幅度自己设定);E、把PWM输出接到捕获口,利用捕获口测量当前PWM的占空比;F、把E测量的PWM占空比通过串口通信发送给上位机;3、设计方案-----介绍系统实现方案和系统原理图①系统实现方案:任务A:利用ADC模块通道A5获取当前环境温度。
任务B:PWM过零触发ADC模块,在PWM中断服务函数中,将当前环境温度和按键设定温度进行比较,并按照任务D的要求修订PWM占空比。
嵌入式课程设计报告

调试工具
使用GDB等调试工具进行程序调试, 可实现断点设置、变量查看、堆栈跟
踪等功能。
版本控制工具
使用Git等版本控制工具进行代码管理 ,实现多人协作开发、版本回溯等功 能。
性能分析工具
使用Valgrind等性能分析工具进行程 序性能分析,可实现内存泄漏检测、 函数调用关系分析等功能。
课程设计总结与展望
总结本次课程设计的经验教训和收 获,展望嵌入式系统未来的发展趋 势和应用前景。
02
硬件平台选择与搭建
常见嵌入式硬件平台比较
ARM平台
高性能、低功耗,广泛应用于智能手机、 平板电脑等移动设备。
PowerPC平台
高性能、高可靠性,适用于工业控制、航 空航天等高端应用设备、 数字电视等领域。
07
总结与展望
本次课程设计收获总结
理论与实践结合
通过本次课程设计,深入理解了 嵌入式系统的基本原理,同时将 理论知识应用于实际项目中,实 现了理论与实践的有机结合。
技能提升
在课程设计过程中,掌握了嵌入 式系统开发的基本技能,包括硬 件设计、软件编程和调试技术等 。
团队合作
与团队成员紧密合作,共同完成 了课程设计的任务,提高了团队 协作和沟通能力。
05
系统实现过程与代码展示
关键模块代码实现技巧分享
模块化设计
将系统划分为多个独立的功能模块,每个模块具有明 确的接口和功能,便于代码的管理和复用。
高效算法选择
针对系统需求,选择合适的算法和数据结构,以提高 代码执行效率。
代码优化
通过减少冗余代码、提高代码可读性和可维护性,降 低系统资源消耗。
系统集成测试方法论述
嵌入式课程设计报告
嵌入式系统课程设计报告

嵌入式系统课程设计报告一、教学目标本课程的教学目标是使学生掌握嵌入式系统的基本概念、原理和设计方法,能够运用嵌入式系统进行实际项目的开发和实现。
具体来说,知识目标包括了解嵌入式系统的定义、特点、分类和应用领域;掌握嵌入式系统的硬件和软件组成及工作原理;熟悉嵌入式操作系统的基本概念和常用操作系统。
技能目标包括能够使用嵌入式系统开发工具和平台进行程序设计和调试;具备嵌入式系统硬件电路的设计和调试能力;能够运用嵌入式系统进行实际项目的开发和实现。
情感态度价值观目标包括培养学生的创新意识和团队合作精神,提高学生解决实际问题的能力和责任感。
二、教学内容根据课程目标,本课程的教学内容主要包括嵌入式系统的基本概念、原理和设计方法。
具体包括以下几个方面:1. 嵌入式系统的定义、特点、分类和应用领域;2. 嵌入式系统的硬件组成,如处理器、存储器、输入输出接口等;3. 嵌入式系统的软件组成,如固件、操作系统、应用程序等;4. 嵌入式操作系统的基本概念和常用操作系统;5. 嵌入式系统的设计方法和开发流程;6. 嵌入式系统硬件电路的设计和调试方法;7. 嵌入式系统在实际项目中的应用和案例分析。
三、教学方法为了实现课程目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
通过多样化的教学方法,激发学生的学习兴趣和主动性。
具体教学方法如下:1. 讲授法:通过讲解嵌入式系统的基本概念、原理和设计方法,使学生掌握相关知识;2. 讨论法:通过分组讨论和课堂讨论,培养学生的思考能力和团队合作精神;3. 案例分析法:通过分析实际项目案例,使学生了解嵌入式系统在实际中的应用和设计方法;4. 实验法:通过实验操作和调试,锻炼学生的动手能力和实际问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将选择和准备以下教学资源:1.教材:选用权威、实用的嵌入式系统教材,为学生提供系统的学习资料;2. 参考书:推荐学生阅读相关参考书籍,丰富学生的知识体系;3. 多媒体资料:制作课件、教案等多媒体教学资料,提高课堂教学效果;4. 实验设备:准备嵌入式系统开发板、仿真器等实验设备,为学生提供实践操作的机会。
嵌入式课程设计实训报告

一、实训目的通过本次嵌入式课程设计实训,使学生掌握嵌入式系统设计的基本原理和方法,提高学生的实际操作能力和创新意识,培养学生的团队协作精神。
同时,通过实训,使学生熟悉嵌入式系统的硬件平台、软件开发环境,掌握嵌入式编程语言,了解嵌入式系统的调试和测试方法。
二、实训内容本次实训以设计一个简单的温室环境监测系统为例,主要包括以下几个方面:1. 系统需求分析温室环境监测系统主要实现对温室内部光照、温度、湿度的实时监测,并根据监测结果自动调节环境参数,确保温室内的作物生长环境稳定。
系统需具备以下功能:(1)实时监测光照、温度、湿度等环境参数;(2)根据预设阈值,自动调节环境参数;(3)通过LCD显示屏实时显示监测数据;(4)通过串口通信将数据传输至上位机;(5)具有按键控制功能,如开关报警、手动调节等。
2. 硬件平台设计本次实训采用STM32系列微控制器作为核心控制单元,结合DS18B20数字温度传感器、DHT11数字湿温度传感器、光敏电阻、LCD显示屏、蜂鸣器、按键等外围设备,构建温室环境监测系统硬件平台。
3. 软件设计(1)系统初始化:初始化微控制器,配置相关外设参数,设置中断优先级等。
(2)数据采集:通过ADC读取光敏电阻的模拟值,计算光照强度;通过DS18B20和DHT11传感器读取温度和湿度数据。
(3)数据处理:对采集到的数据进行处理,如温度、湿度阈值判断,光照强度阈值判断等。
(4)环境参数调节:根据预设阈值,自动调节加热装置、风扇等设备,以实现环境参数的自动调节。
(5)数据显示:通过LCD显示屏实时显示光照、温度、湿度等数据。
(6)串口通信:通过串口将数据传输至上位机。
(7)按键控制:实现报警功能、手动调节等功能。
4. 系统调试与测试在系统开发过程中,对硬件平台和软件进行调试和测试,确保系统稳定运行。
主要测试内容包括:(1)硬件测试:检查各外设是否正常工作,如传感器、显示屏、按键等。
(2)软件测试:测试系统功能是否满足需求,如数据采集、处理、显示、通信等。
嵌入式系统设计课设报告范本

嵌入式系统设计课设报告福州大学《嵌入式系统设计课设》报告书题目:基于28027的虚拟系统姓名:学号:学院:电气工程与自动化学院专业:电气工程与自动化年级:起讫日期:指导教师:目录1、课程设计目的 (1)2、课程设计题目和实现目标 (1)3、设计方案 (1)4、程序流程图 (1)5、程序代码 (1)6、调试总结 (1)7、设计心得体会 (1)8、参考文献 (1)1、课程设计目的《嵌入式系统设计课设》是与《嵌入式系统设计》课程相配套的实践教学环节。
《嵌入式系统设计》是一门实践性很强的专业基础课,经过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。
培养大胆创造创造的设计理念,为今后就业打下良好的基础。
经过课程设计,掌握以下知识和技能:1.嵌入式应用系统的总体方案的设计;2.嵌入式应用系统的硬件设计;3.嵌入式应用系统的软件程序设计;4.嵌入式开发系统的应用和调试能力2、课程设计题目和实现目标课程设计题目:基于28027的虚拟系统任务要求:A、利用28027的片上温度传感器,检测当前温度;B、经过PWM过零中断作为温度检测A/D的触发,在PWM中断时完成温度采样和下一周期PWM占空比的修正;PWM频率为1K;C、利用按键作为温度给定;温度给定变化从10度到40度。
D、当检测温度超过给定时,PWM占空比增减小(减小幅度自己设定);当检测温度小于给定时,PWM占空比增大(增大幅度自己设定);E、把PWM输出接到捕获口,利用捕获口测量当前PWM的占空比;F、把E测量的PWM占空比经过串口通信发送给上位机;3、设计方案-----介绍系统实现方案和系统原理图①系统实现方案:任务A:利用ADC模块通道A5获取当前环境温度。
任务B:PWM过零触发ADC模块,在PWM中断服务函数中,将当前环境温度和按键设定温度进行比较,并按照任务D的要求修订PWM占空比。
嵌入式系统课程设计报告材料

民族学院信息工程学院课程设计报告书题目: 基于A RM的数字式万年历课程:嵌入式系统课程设计专业:电子信息科学与技术班级:03114411学号:031441119学生:田紫龙指导教师:易金桥2017年6 月20 日信息工程学院课程设计任务书2017年6月20日摘要本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。
本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。
系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。
温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602液晶显示模块,可以在LCD1602上同时显示年、月、日、周日、时、分、秒,还具有时间校准整点灯光提醒等功能。
此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键词:单片机,时钟芯片, 温度传感器, 1602液晶显示器目录1 任务提出与方案论证 (2)1.1单片机芯片设计与论证 (2)方案1:采用51系列单片机作为系统控制器 (2)方案2:采用fpga单片机作为系统的控制器 (2)1.2按键控制模块设计与论证 (2)1.3时钟模块设计与论证 (2)方案二:采用DS1302为计时时钟芯片 (3)方案三:采用DS12C887为计时时钟芯片 (3)1.4温度采集模块设计与论证 (3)1.5显示模块模块设计与论证 (3)2 总体设计 (3)3.1 STC89C52单片机 (3)3.1.1 最小系统设计 (5)3.1.2 时钟电路 (5)3.1.3 复位电路 (6)3.2时钟芯片DS1302接口设计与性能分析 (6)3.2.1 DS1302性能简介 (6)3.2.2 DS1302接口电路设计 (7)3.3温度芯片DS18B20接口设计与性能分析 (8)3.3.1 DS18B20性能简介 (8)1.DS18B20的主要特性 (8)3.3.2 DS18B20接口电路设计 (9)3.4 LCD显示模块 (10)3.4.1 LCD1602的特性及使用说明 (10)3.4.2 LCD1602与MCU的接口电路 (11)3.5按键模块设计 (11)3 详细设计及仿真 (12)3.1 proteus仿真 (12)3.2主程序流程图的设计 (13)4 总结 (15)参考文献 (16)1 任务提出与方案论证单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。
嵌入式系统课程设计报告

嵌入式系统课程设计报告设计任务一 十字路口交通灯控制一、设计目的:1.了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O 控制寄存器的设置方法;2.掌握ARM7应用系统编程开发方法,能用C 语言编写应用程序;3.熟练掌握ADS1.2软件的使用以及PROTEUS 仿真调试的方法;二、具体任务:1.采用PROTEUS 完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;2.用ADS1.2编写C 语言应用程序,完成十字路口交通灯控制;3.采用PROTEUS 将应用程序装载在LPC2106中,进行仿真验证。
要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。
三、硬件电路设计。
(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS 电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)自己设计的PROTEUS电路图附图(用屏幕抓图的方式粘贴):硬件电路说明:1.设置所有I/O口为第一功能,将硬件电路图按上图所示连接。
2.东西南北四个方向分别装有红、黄、绿三灯,通过放置标号的方式连接到LPC2106。
3.数码管为交通灯一位十进制双位数字倒计时显示,两个数码管显示同样的数字。
4.管教控制为P0.0——P0.6用来控制倒计时的个位;P0.8——P0.14用来控制倒计时的十位;P0.16——P0.21用来控制交通灯的显示,即发光二极管的显示。
四、源程序。
(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)源程序:#include"config.h"#include"LPC2106.h"uint32table1[]={0x21066d,0x210666,0x21064f,0x21065b,0x210606,0x21063f,0x213f6f,0x213f7f,0x213f07,0x213f7d,0x223f6d,0x203f66,0x223f4f,0x203f5b,0x223f06,0x203f3f,0x0c066d,0x0c0666,0x0c064f,0x0c065b,0x0c0606,0x0c063f,0x0c3f6f,0x0c3f7f,0x0c3f07,0x0c3f 7d,0x143f6d,0x043f66, 0x143f4f,0x043f5b,0x143f06,0x043f3f};//显示初始化void delay(uint32 j){uint32 m,n;for(m=110;m>0;m--)for(n=j;n>0;n--);}int main(){uint32 i=0;PINSEL0=0x00000000; //寄存器初始化,选择其I/0口功能PINSEL1=0x00000000; //同上IODIR=0x00003fffff; //方向寄存器设置,设置为输出IOCLR=0x00003fffff; //清0寄存器设置while(1){for(i=0;i<32;i++){IOSET=table1[i];//数码管和交通灯的显示delay(10000);IOCLR=0x00003fffff;//消影}}}五、仿真效果。
嵌入式系统课程设计报告

嵌入式系统课程设计报告一:实验名称:基于NIOSII的嵌入式系统设计二:实验目的:1.学习如何创建SOPC Builder模块并完成Quartus设置;2.创建NIOS IDE开发环境并在SOPC Builder上建立NIOSII CPU软核;3.学习LCD1602的工作原理和编程实现硬件上的显示控制。
三:实验内容:为了熟悉SOPC的基本开发流程和SOPC Builder模块的建立,本实验要完成的任务就是设计一个最简单的系统(主芯片为Cyclone II系列的EP2C35F672C8),系统中包括Nios II CPU、作为标准输入/输出的JTAG UART以及存储执行代码SRAM。
通过SOPC Builder对系统进行编译,然后通过Quartus II对系统进行二次编译,并把产生的FPGA配置文件通过USB 下载电缆下载到实验箱上,这时便完成了本实验中的硬件开发。
接下来的工作是软件协同开发——在Nios II IDE中编写一个最简单的C代码,对其编译后,通过USB下载电缆下载到FPGA中执行,执行的结果就是在试验箱上的LCD1602上显示信息工程专业简介——“”。
本实验是根据《嵌入式系统设计》实验六来设计的LCD1602程序:#include<reg51.h>sbit RS=P2^0; //端口根据CPU上的端口可进行变换;sbit EN=P2^1;sbit W1=P2^2;sbit W2=P2^3;sbit CS=P3^2;unsigned char code table1[]={" xingxigongcheng"};unsigned char code table2[]={" jianjie"};void delay(int z) //延时程序//{for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(unsigned char com) //将指令写入1602// {RS=0;P0=com;delay(4); //检查1602是否忙;延时带听忙信号//W1=1;EN=1;delay(4); //检查1602是否忙;延时带听忙信号// EN=0;}void write_dat(unsigned char dat){RS=1;P0=dat;delay(5); //检查1602是否忙;延时带听忙信号// W1=1;EN=1;delay(5); //检查1602是否忙;延时带听忙信号// EN=0;}void LCD_CSH(){unsigned char t;EN=0;write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);write_com(0x80);for(t=0;t<16;t++){write_dat(table1[t]);delay(50);}write_com(0x80+0x40);for(t=0;t<16;t++){write_dat(table2[t]);delay(50);}}void main(){W1=0;W2=0;LCD_CSH();while(1);}四、实验总结:通过实验已经对SOPC Builder模块的创建,在NIOS IDE开发环境下编译程序并在SOPC Builder上建立NIOSII CPU软核的操作有了基本掌握;并且大概了解了LCD1602的工作原理和显示控制,能够通过编程实现LCD1602的基本显示功能;同时了熟悉SOPC 的基本开发流程,还需不断的通过开发来慢慢熟悉和掌握的OPC开发。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统课程设计报告课程名称:嵌入式系统课程设计项目名称:基于ARM实现MP3音乐盒专业:电子科学与技术一、设计容基本功能:预存四首歌曲,实现循环播放;每个按键对应一首歌曲。
拓展功能:通过按键简单演奏音乐,类似钢琴;实现两个模式的切换,切歌模式和音量加减模式。
二、设计思路基础功能:将音频数据存储在SD卡中,使用FATFS文件系统进行数据的读写,通过SPI2总线将数据传到核。
核再将数据通过SPI1总线传送到音频解码模块VS1053,输入的数据(即比特流数据)被解码后送到DAC发出声音。
将音乐存储在SD卡,通过文件的地址来判别将要播放哪一首音乐,通过地址的递增和循环来实现音乐的自动循环播放。
按键对曲目的控制,可通过键盘扫描函数,判断哪一个键被按下,使键盘扫描函数返回不同的返回值,实现对文件地址的控制。
将此返回值设置为全局变量,可实现在音乐播放中曲目的切换。
另外,我们还利用解码模块实现对音量的控制,使用按键控制音量的提高或降低。
使用SPI1总线将TFT显示屏连接到核,显示按键功能、当前曲目、当前模式等信息。
由于开发板只有5个按键,按键数量有限,需要对按键实现曲目切换和音量功能的复用。
我们小组设置了两种模式,切歌模式和音量模式,并定义左键为模式切换键,实现不同模式的选择和按键的复用。
拓展功能:基本思路是通过定时器中断来产生一定频率的50%空占比的脉宽调制波,用此脉宽调制波激励扬声器,从而使扬声器发出一定频率的声音。
所以只要将不同按键的中断子程序设置为对定时器进行不同数据的配置,即可实现不同按键与不同扬声器发生频率的对应。
然后使一个按键的按下与松开均进入中断,且分别实现开启(扬声器发声)与关闭(扬声器不发声)定时器的功能,从而使课题的附加功能表现地更自然。
三、硬件配置基础功能:(1)SD卡:存储音频数据配置方法:根据开发板原理图,配置方法如下图所示(2)VS1053解码芯片:将输入的比特流解码后送入DAC配置方法:音频解码模块与开发板接线方式://5V---5V//GND--GND//XRST--PG8//MISO--PA6//MOSI--PA7//SCLK--PA5//DREQ--PG7//XCS--PE6//XDCS--PG6(3)TFT显示屏(4)外放音响拓展功能:PC机一台;P4 2.06CPU/40GHD/512M RAM以上配置,STM32F103 开发板一套;外接扬声器一个四、设计步骤或流程图基础功能:1.初始化包括单片机本身的初始化和VS1053的初始化(1)初始化STM32 的IO 口和SPI;(2)VS1053 进行存储器测试;(3)初始化设置音频输出,设置音频输入要设置成VS1053;(4)VS1053 进行正弦波测试;(5)VS1053 进行一些基本设置,包括音效模式等。
2.输入音频文件数据(1)通过 FATFS 打开音频文件;(2)VS1053 进行软件复位;(3)使用 FATFS 读取音频文件数据;(4)发送文件件,每次发送 32 个字节,直到音频文件发送完成。
3.对TFT显示屏进行基础设置拓展功能:1.按键初始配置:对所用到的按键进行相应的IO口配置,且完成按键中断的中断通道配置。
2.中断通道的中断子程序:由于会不只一个键配置在同一个中断通道中,所以中断通道的中断子程序首先进行对按下按键的识别。
然后读取与按键相对应的IO口电平,若为低电平(=下降沿=按下键),则对定时器进行数据配置,并打开定时器;若为高电平(=上升沿=松开键),则关闭定时器。
3.定时器的中断子程序:定时器产生中断时,定时器继续工作,且翻转与扬声器相连的IO口的输出电平。
五、采用的技术、技巧、功能模块介绍基础功能:(1)技术和技巧音乐播放模块的过程中,我们分为两个功能,其中有切歌功能,即四个按键对应于四首歌,另外一个就是可以实现模式切换的功能,该功能包括两种模式,即切歌模式和音量加减模式,其中有一个按键来实现两个功能之间的切换,在切歌模式中,另外的三个按键对应三首歌曲,音量加减模式中,两个键分别对应于音量加和音量减。
播放歌曲的主要步骤为,首先对模块进行一系列的初始化,并在显示屏上显示每个按键对应的歌曲或音量加减的功能,设置初始音量为230,然后对SD 卡进行读取数据的操作,并找到对应的存放歌曲的文件夹MUSIC,对文件中MP3文件名称读取并存储,同时记录文件的地址,然后跳转到音乐播放的函数,该函数中对按键进行扫描并跳转到所按下按键对应的功能,从而实现音乐的播放和音量的加减。
在切歌功能中,我们通过对所扫描的歌曲文件进行排序,并将四个按键对应到所排的序号中,所以当我们扫描到哪个按键按下的时候,就在其后面赋予一个返回值,返回该按键对应音乐的序号,通过返回值我们可以在主函数中得到该序号所对应歌曲的地址,通过该地址我们可以实现对音乐文件名称的读取,以及音乐数据的解码,从而实现在LCD显示屏上显示音乐的名称和播放音乐这些功能。
(2)功能模块1)解码模块本次实验音乐的播放主要是通过读取SD卡的中的mp3文件,再将其输送至VS1053解码器中进行解码,从而实现音乐的播放。
其中VS1053通过串行数据接口SDI和串行控制接口SCI进行通信。
VS1053引脚分配图 VS1053封装图VS1053中重要的几个引脚如下:1)VS_MISO:SPI 输入线2) VS_MOSI:SPI 输出线3) VS_SCK:SPI 时钟线4) VS_XCS:器件片选5) VS_XDCS:数据片选和字节同步6) VS_DREQ:数据请求,输入总线。
7) VS_RST:复位端实验中VS1053主要实现播放一个完整的音乐文件和取消播放这两个功能(一)播放一个完整文件1、发送音频文件到VS1053;2、读取附加参数endFillByte的值;3、发送endFillByte[7:0]中的值最少2052个字节;4、设置SCI_MODE的SM_CANCEL位;5、发送endFillByte[7:0]中的值最少32个字节;6、读取SCI_MODE,如果SM_CANCEL位依然是设置的,则跳到步骤5;如果SM_CANCEL始终没有被清除,在发送2048个字节之后,执行软件复位;7、这首歌曲现在已经成功被发送了。
HDAT0和HDAT1都应该包含0来表明现在已经没有正在解码的格式了。
现在返回步骤1。
(二)取消播放在播放音乐时,当用户想跳到下一首,可通过取消当前的歌曲播放来实现,它用下列步骤来实现:1、发送一个音频文件的部分到VS1053;2、设置SCI_MODE的SM_CANCEL位;3、继续发送音频文件,但要在发送32字节的数据之后检查SM_CANCEL,如果它还是被设置,则重新进行步骤3。
如果SM_CANCEL始终没有被除,在发送2048个字节之后,执行软件复位;4、当SM_CANCEL被清除,读取附加的参数值endFillByte;5、发送 endFillByte[7:0]中的值,共计2052个字节;6、HDATO和HDAT1都应该包含0来表明现在已经没有正在解码的格式了,你现在可以开始发送下一个音频文件了。
2)SD卡SD卡中用于存放我们需要播放的mp3文件,音乐文件放在一个叫MUSIC 的文件夹,在播放时通过对SD卡中的文件夹进行扫描匹配,来得到播放音乐的正确路径。
本次实验SD卡的操作模式为SD卡模式,即通过SDIO进行通信,允许4线的高速数据传输。
SD卡的引脚排序如下:SD卡模块引脚图以下为SD卡在正常工作时的三个过程,包括初始化和读写数据。
(一)SD卡初始化过程:1、初始化与SD卡连接的硬件条件(MCU的SPI配置,I0口配置);2、上电延时(大于74个CLK);3、复位卡(CMD0),进入IDLE状态;4、发送CMD8,检查是否支持2.0协议;5、根据不同协议检查SD卡(命令包括:CMD55、CMD41、CMD58和CMD1等);6、取消片选,发送8个CLK,结束初始化在完成了初始化之后,就可以开始读写数据了(二)从SD卡中读取数据SD卡读取数据,这里通过CMD17来实现,具体过程如下:1、发送CMD17;2、接收卡响应R1;3、接收数据起始令牌0XFE;4、接收数据;5、接收2个字节的CRC,如果不使用CRC,这两个字节在读取后可以丢掉;6、禁止片选之后,发多8个CLK;(三)向SD卡中写数据1、发送CMD24;2、接收卡响应R1;3、发送写数据起始令牌OXFE;4、发送数据;5、发送2字节的伪CRC;6、禁止片选之后,发多8个CLK3)LCD显示屏本次实验中我们用的是TFTLCD显示屏,该模块主要用来显示当前播放的歌曲,切歌时每个按键对应的歌曲,以及音量增减时加减音量所对应的按键。
LCD模块原理图实验中对TFTLCD模块的使用主要有以下几个过程(一)设置STM32F103与TFTLCD模块相连接的I0口要让TFTLCD模块显示,首先得初始化TFTLCD模块与STM32F103相连的I0以便控制TFTLCD,这里我们用使用的是STM32F103的FSMC(二)初始化 TFTLCD模块初始化I0口,接着就是对 TFTLCD进行配置,首先就是要对LCD复位,由于模块的复位引脚是接在SI32F103复位上的,所以直接按下开发板复位键即可,然后就是初始化序列,即向LCD控制器写入一系列的设置值,初始化完成之后,LCD即可正常使用。
(三)将要显示的容写到TFTLCD模块这一步需要对照:设置坐标→写GRAM指令→写GRA来实现,但是这个步骤,只是一个点的处理,如果我们想要显示字符或数字,就必须要多次使用这个步骤,从而达到显示字符或数字的目的,因此我们设计一个函数来封装这些过程(实现字符或数字的显示),之后只调用该函数,就可以实现字符或数字的显示。
4)按键模块本次实验通过按键来实现切歌和音量的加减拓展功能:(1)技术和技巧通过读取与按键相对应的IO口电平,来判别按键是按下还是松开。
(2)功能模块1.按键初始配置:第一部分,对IOC8口(8号按键)初始化;第二部分,将中断分配在8号中断通道,且是下降沿与上升沿均触发中断;第三部分,将5至9号中断通道优先级均设为0。
类似的还有IOC9口,IOC10口,IOC11口,10至15号中断通道。
2.中断通道的中断子程序:if(EXTI_GetITStatus(EXTI_Line8)==1),判别是否是8号键触发中断。
if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8)==0),判别8号键是否是按下触发中断。
TIM_TimeBaseStructure.TIM_Period=1915;TIM_TimeBaseStructure.TIM_Pre scaler=71;,对定时器进行数据配置,数字根据所需扬声器发声频率来定。