基于stm32音乐mp3闹钟的设计与实现毕业论文(编辑修改稿)内容摘要:
d Crystal Display 翻译为液晶显示器 ,它一种是采用了液晶控制透光度技术来实现色彩的显示器,俩片玻璃中有许多的细小的电线,有的垂直有的水平,透过通电来控制水晶分子,从而达到改变分子方向 的目的,并将光线折射出来产生画面。 在众多 LCD 类型当中, STN、 TFT 最为常见。 STN 的英文为 Super Twisted Nematic,是我们在平常生活中接触最多的 LCD 了,还记得以前的老式手机吗。 它 6 的屏幕就是 STN 的。 相比于 TFT, STN属于被动矩阵式 LCD 器件,它的优点是功耗小,因此特别省电。 STN 有传统单色和彩色,彩色是在单色的基础上加了一彩色滤光片,同时把单色显示矩阵中每一个像素分成三个子像素,通过彩色滤光片显示出三原色红绿蓝,因此显示出彩色画面。 STN 最多能显示出 65536 中色彩,也因此亮度不 高,色泽也不是特别好,因此在强光下,图像看起来有点吃力。 TFT : Thin Film Transistor 薄膜晶体管。 也称为主动矩阵,因其背部设置特殊光管,能够“主动”对各个独立像素进行控制,故得到此名。 一般 TFT的反应时间比较快,约为 80ms,而 STN为 200ms,STN 若要提高就会有闪烁现象发生。 TFT则改善了 STN 闪烁现象,并且提高了播放播放动态画面的能力。 两者相比, TFT具有更好的还原能力、更高的对比度,以及更好的色彩饱和度,它的色彩更加的细腻,层次感也更强,色彩也更加的逼真。 TFTLCD 与 无源 TNLCD、 STNLCD 的简单矩阵不同,它在液晶显示屏的每一个像素上都有设置一个薄膜晶体管 TFT,可以有效的克服非选通时的串扰,使显示液晶屏的静态属性与扫描线数无关,大大提高了图像质量。 TFTLCD 即薄膜晶体管液晶显示器。 电路原理图如下: 图 26 LCD电路原理图 7 Codec 音频模块 Codec 是指在数字通信中具有编码、译码功能的编译码器。 支持视频和音频压缩( CO)与解压缩的编解码器或软件。 Codec 技术能有效减少数字存储占用的空间,在计算机系统中,使用硬件完成 CODEC 可以节省 CPU 资源,提高系统的运行效率。 在声卡上往往可以找到一颗或者 2 颗甚至 3颗 4面有引脚的正方形芯片,面积一般为。 这就是 CODEC。 CODEC 就是多媒体数字信号编解码器,主要负责数字 模拟信号转换( DAC)和模拟 数字信号的转换( ADC)。 不管是音频加速器好,还是 I/O 控制器好,他们输入输出的都是纯数字信号,我们要使用声卡上的 Line Out 插孔输出信号的话,信号就必须经过声卡上的 CODEC的转换处理。 可以说,声卡模拟输入输出的品质和 CODEC 的转换品质有着重大的关系,音频 加速器或 I/O 控制器决定了声卡内部数字信号的质量,而 CODEC 则决定了模拟输入输出的好坏。 STM32F103VET 微控制器内置 2 个标准的 I2S(ICtoICsound)接口 (与 SPI2和 SPI3复用 ),可以工作于主或从模式 ,这 2个接口可以配置为 16位或 32位传输 ,亦可配置为输入或输出支持音频采样频率从 8kHz 到 48kHz。 当任一个或两个 I2S接口配置为主模式 ,它的主时钟可以以 256倍采样频率输出给外部的 DAC(解码器 )或 CODEC(编解码器 )。 I2S 是一种数字音频设备之间的音频数据传输总线标准 ,STM32 芯片提供 I2S这样的接口 ,我们可以利用这个接口直接去接数模转换的 DAC 芯片 ,这样可以将数字音频转换成模拟音频 ,最终将美丽的音乐传入我们的耳朵。 I2S 有多种数据模式,右对齐音频数据格式输入( I2S Data Format) ,左对齐音频数据格式输入( leftjustfied Data Format) ,I2S 音频数据格式输入( I2S Data Format) ,还有就是标准数据格式输入( Standard Data Format)。 下面是I2S Data Format 的接口时序图: 8 图 27 I2S 模式下 PCM1770数字音频接口时序 USART 串口模块 串口最基本的就是波特率的设置。 在调用前要进行相应的设置 : 第一步 :打开串口时钟; 第二步 :设置相应的 IO 口模式; 第三步 :配置波特率、数据位长度、就校验位 每个串口都有一个自己独立的波特率寄存器 USART_BRR。 Tx/Rx 波特率 =fPCLKx/(16*USARTDIV) 在这里需要注意的是: USART、 GPIO 是两个不同的模块, USART 是临时“借用”了 GPIO 设备作为自己的输出通道,因此在进行 配置时, USART 时钟, GPIO 的时钟都要打开,还要将对应 GPIO 引脚设置为第二功能模式。 在嵌入式中串口一般都是用于调试,因为其传送数据相对来说很慢,也不能进行大量数据传输。 一般用 DMA。 图 28 串口调试电路图 9 第三章 系统软件设计 本设计所用软件为 Keil uVsion4, Source , 串口调试助手。 Keil uVsion4 是美国 Keil Software 公司推出的兼容 C语言软件开发系统,对比于传统的汇编, C 语言在结构上,可维护性上,结构和功能上都具有明显的优势。 Keil 主要包含实时操作系统的核心(这也是嵌入式开发工程师选择此软件的重要原因)、 C编译器、库管理器、宏汇编程序、连接器和调试器、固件。 Keil uVsion4 相对于前面几个版 本,提供一个高效,整洁的环境来开发应用程序。 同时能够支持更多的 ARM 芯片。 Source 实质上是一个支持多种开发语言( java,c,c++等等)的编辑器。 具有强大的查找、定位、彩色显示等功能。 是一个面向项目的源码查看器,和编辑器。 它能动态的分析你的代码并自动维护它的符号信息数据库,然后把有用的上下文相关的信息提示给你。 串口调试助手是串口调试的相关工具,支持几种常用波特率,如 4800, 9600,19200 等,能设置数据位和停止位,校验,还能自动识别串口,能以十六进制或ASCII 发送或 接收任何数据或字符,发送的文件大小不限制,发送周期也可以自己设置。 文件系统 FAT 所谓文件系统就是负责管理和存储文件信息的软件机构称为文件管理系统。 FAT文件系统(文件配置表 File Allocation Table)是由微软开发的。 目前有三种文件系统: FAT12 FAT1 FAT32。 在实际磁盘上 FAT 结构每一表项的大小,也就是所占的位数。 FAT 文件分配表每一项为 12 位, FAT16 为 16位, FAT32 为32位。 FatFs 介绍 : 当今社会大点信息量越来越大,文件系统成为今后单片机的一个方 展方向。 由于微软 Windows 的广泛应用, FAT 文件系统最为常用。 FatFs 是小型嵌入式系统中,实现 FAT 文件系统的一个通用的文件系统模块。 且完全独立与 I/O 层。 FatFs 为单片机的使用而设计,具有很好的层次结果。 10 从上到下依次为应用层,我们不需要了解其协议和内部结构,调用基本点接口函数就行,非常简单。 中间层 FatFs,实现 FAT 文件读写协议,一般不用修改,包含头文件就行。 需要编写移植代码的是 FatFs 提供的底层接口。 图 31 FATFS文件系统图 SPI 驱动 时钟信号的相位和极性 SPI_CR 寄存器的时钟极性( CPOL)和时钟相位( CPHA),可以组合成四种可能的时序关系。 CPOL 位对主模式和从模式下的设备都有用,没有数据传输时时钟的空闲状态电平由 CPOL 位控制。 当 CPOL 位置一, SCK 引脚保持高电平在空闲状态下,当 CPOL 位清零,则 SCK引脚则保持低电平。 数据在第一个时钟边沿被锁存。 若 CPHA 位为零, SCK时钟的第一边沿( CPOL位为一就是上升沿,为零时就是下降沿)进行数据位采样。 若 CPHA 位为一, SCK时钟的第二边沿( CPOL 位为一就是上升沿,为零时就是下降沿)。 CPOL 和 CPHA 的组合选择数据捕捉的时钟边沿。 注意: 主模式和从模式必须配置成相同的时序模式。 在必须将 SPI 禁止,必须清除 SPE 位,在改变 CPOL/CPHA 位之前。 11 数据帧格式决定发送或接受的数据长度,由 SPI_CR1 寄存器的 DFF 位选择。 SCK的空闲状态必须和 SPI_CR1 寄存器指定的极性一致( CPOL 为零时,空闲时应下拉 SCK为低电平,为一时, SCK 为高电平)。 SD 卡的软件设计 SD 卡的寄存器,主要用于存储 SD卡自身的一些信息。 向 SD 卡发送相应的命令就可以读取 SD卡的寄存器。 SD 卡指令,具有一定的格式在其发送的时候。 有 6字节组成。 驱动设计 : 因为此设计中采用的是 SD 卡的 SPI 总线,所以 SD 卡的驱动是基于 SPI 的驱动是基础上 的。 SPI 最重要的函数 : 写函数 void Spi_Write(uint8 chr) 和读函数 char Spi_Read()。 下面是 SD卡驱动最重要的几个函数的实现: : 功能描述:复位 SD卡,用到 SD 卡,用到 CMD0,使用 SD 卡切到 SPI模式。 成功则返回 0x00,失败则返回 INIT_CMD0_ERROR uint8 SD_Reset(),此函数是 SD 卡最开始调用的函数,通过发送 CMD0 将 SD 卡转到正确的工作模式下。 : 功能描述:初始化 SD 卡,使用 CMD1,成功则返回 0x00,失 败则返回 0x01 Char SD_Init(),。基于stm32音乐mp3闹钟的设计与实现毕业论文(编辑修改稿)
相关推荐
好的进行数据库的设计。 为我们后面的数据库的详细设计提供了极大的帮助和指导。 合肥学院计算机科学与技术系毕业论文 6 第三章 系统的详细设计 数据库的逻辑设计 我们首先要进行数据库的逻辑设计,分析实体结构的联系情况。 实体间的关系可以分为下面三个情况: 实体间的关系可以为一比一的情况; 实体间的关系可以为一比 n的情况; 实体间的关系可以为 n比 m的情况; 下面将实体所具有的属性一一罗列出来:
t != null) ()。 //关闭连接 } } catch (IOException e) { // TODO Autogenerated catch block ()。 } } 网络协议编程课程设计 第 14 页 共 31 页 } 运行程序 运行程序,要结合 服务器端程序 ,运行服务器端程序,结果如图 12。 图 12 服务器程序运行结果 运行客户端程序,得出客户端如图 13。 图 13
即设定打铃系统只在早上 8 点至下午 17 点的时间段内在规定的时间内响铃。 其他时间自动打铃系统处于休眠状态。 ( 3) 增加一个自动校时模块,可以进行校时,还可以使打铃模 块尽快到铃声响起的前一分钟。 ( 4) 显示模块是让时钟信号在实验箱上的八个数码管上显示,将打铃响起的时间显示在数码管上,调分时对应的 LED1 指示灯亮,按 K2 键可以在数码管上看到分在增加。 同样调时时对应的
包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。 系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该任务仅给一个整型变量做累加运算;另一个是统计任务,它的优先级为次低,该任务负责统计当前 CPU的利用率。 181。 C/OSII 任务间通信方式 ( 1) 信号量 信号量由两部 分组成:一部分是 16位的无符号整型信号量的计数值
于设定你显示区域的大小,我们整个屏的大小为 240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果用先 写坐标,后写数据 这样的方式来实现,则速度大打折扣。 此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据 R3 的设置自动增加 /减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。 3 系统软件设计 LED 驱动 //初始化 PA8 和
del Evaluation”菜单项后,打开“ ”文件,在弹出的“ Forecast”对话框中,将“ Results in ”改为“ A_Fur”,其他操作步骤同前,即可完成未来年出行吸引量的预测。 预测报告如下: 19 CONSTANT People_Base GDP_Base Execution Time was 00:00: Starting Procedure Linear Model