论基于单片机的sd卡录音笔设计与实现毕业设计内容摘要:
程对话窗口 开发操作过程 从 [开始 ]菜单内启动工具; 选择 [File]→[Open Project] ,在 „打开 ‟对话框内选择所 要打开的工程; 14 窗口(工作区窗口)显示在工具的左半边,在这个窗口内,用户可以看到当前工程所包含的所有文件; 选择 [Build]→[Rebuild All] ,进行源文件的编译和链接。 编译过程里的语法错误显示在 Output 窗口内; 选择 [Build]→[Start Debug]→[Download] ,把程序加载到 RAM,然后,用户可以用 Debug 菜单内所提供的调试命令来优化和运行程序。 选择 [Build]→[Start Debug]→[Go] ,在调试器内运行程序。 15 3 录音笔总体 设计方案及硬件设计 总体设计方案 硬件设计总体框图 系统采用 SPCE061A 做为主控制器,使用其通用 I/O 口控制 SD卡设备,实现存储器扩展;利用电路板上的三个按键对录放音进行控制;利用 SPCE061A 带有 AGC 的专用 A/D 转换通道做为音频输入,完成语音录制功能;利用 SPCE061A 的 D/A 进行音频输出,实现语音播放功能。 图 为硬件总体框图。 图 硬件总体框图 输入指令 麦克风 扬声器 电源线 录音 放音 电源 SD 卡 SPCE061A 储存或删除数字信号 提取数字信号 按键键盘 16 系统软件设计架构 软件 系统包括以下 部分: 主程序:完成系统的初始化,处理按键信息,并根据按键,在语音文件操作管理程序的配合下,创建语音文件进行录音,或控制读取语音文件进行回放。 按键扫描程序:完成对 IOA 口低八位的 18 按键进行扫描,并完成去抖、判断长 /短按键等功能。 SD 卡驱动程序:该部分完成对 SD 卡的初始化、得到卡的容量信息、读写操作、擦除操作等。 语音文件操作管理程序:该部分完成对多段录音的管理。 每增加一段录音,程序会将起始地址、终止地址等相关信息保存,以便可以回放。 录 /放音程序:实现对 A/D 采样数据的编码和存储,以及从 SD 卡读取录 音数据并解码然后送至 D/A 播放等操作。 17 系统硬件设计 系统硬件连接实物图 系统主要由 SPCE061A 单片机,麦克风,扬声器,电源及储存器构成。 SPCE061A 单片机控制板作为整个系统的主控板,对麦克风采集来的声音信号进行数字处理并储存号功能。 图 为硬件连接实物图。 系统硬件连接实物图 SPCE061A 最小系统 本设计选用的单片机模块为 SPCE061A 单片机模块,该模块包括SPCE061A 芯片( MCU)、片内 FLASH 和其外围的基本模 块。 外围 18 模块有:电机驱动电路板、锁相环外围电路( PLL)、复位电路( RESET)等。 SPCE061A 的主控芯片,负责构建语音录放的数据结构,并在单片机内部 Flash 中保存有语音内容和相关语音信息。 SPCE061A 控制端口输出控制信息,并控制喇叭输出声音信息。 实现对整个系统的控制。 通过本系统中的音频输入电路和 MIC,可以采集语音信号并处理。 图 为 SPCE061A 最小系统图。 图 SPCE061A 最小系统图 19 按键电路 本系统使用三个按键完成录放音控制。 图 为按键电路图。 Key1 为 “下一曲 ”键, Key2 为 “上一曲 ”键, Key3 为 “录音键 ”。 图 按键电路图 音频输出电路 SPCE061A 内置 2 路 10 位精度的 DAC,只需要外接功放电路即可完成语音的播放。 电路中 SPY0030 是凌阳公司一款音频放大芯片。 它和 LM386 相比, LM386 工作电压需在 4V以上 , SPY0030 仅需 即可工作 (两颗电池即可工作 ); LM386 输出功率 100mW以下 , SPY0030约 700mW。 图 为音频输出电路图。 图 音频输出电路 图 20 SD 卡模组电路 在本系统中, SPCE061A 通过 SPI 总线实现对 SD 卡设备的访问。 SD 卡模组同时提供卡插入检测和写保护检测接口。 图 为 SD 卡模组电路图。 图 SD 卡模组电路图 21 4 系统软件设计 主程序设计 主程序 采用的是汇编语言和 C 语言混合编程。 主程序 流程图 如 图。 系统初始化 检测 SD 卡是否插入。 否 检查 SD 卡是否写保护。 置写保护标志 播放 “SD 卡写保护 ” 是 否 初始化 SD 卡 按键处理 系统状态处理 是 播放 “ 注意 SD 卡没有插入 ” 检测 SD 卡是否插入。 否 是 播放 “ 就绪 ” 语音 提示 程序 开始 22 图 主程序流程图 主程序完成系统初始化后检测 SD卡是否插入以及是否有写保护,并有相应的语音提示,告 知用户当前的系统状态。 如果 SD 卡正确插入,则系统根据用户的不同按键进行录 /放音控制。 同时,在循环中对系统当前的状态进行检测,控制系统在录制语音时不至于超出存储器容量限制,或控制系统在放音时播放至文件尾部自动停止播放。 部分程序如下: 23 按键处理程序流程 按键处理程序中 , 当检测到有 SD 卡写保护 时,会播放 “卡有写保护 ”的提示音,对按键不做处理。 按键处理流程图如图。 SACM_DVR1600_Initial()。 // 语音初始化 if(0 == SD_ChkCard()) // 检测卡是否插入 PlaySnd(VOICE_ATTENTION, DAC1 + DAC2)。 PlaySnd(VOICE_SDCARDNOTINSERT, DAC1 + DAC2)。 while(0 == SD_ChkCard())。 // 等待卡插入 if(1 == SD_ChkCardWP()) // 检测卡是否有写保护 WriteProtect = 1。 else FS_Init()。 // 没有写保护,执行初始化操作 PlaySnd(VOICE_READY, DAC1 + DAC2)。 // 播放 就绪 // while(1) KeyProcess()。 // 按键处理 StatusProcess()。 // 系统状态处理 SACM_DVR1600_ServiceLoop()。 // 录 /放音服务 24 图 按键处理流程图 部分程序如下 : 当按下录音键时,若为短按键且 SD 卡未满,提示录音开始并置录音标志,开始录音。 “录音”按键处理程序的流程图如图 所示。 初始化 判断是否有写保护标志。 否 判断按键 Key3 录音键 是 Key2 上一曲 键 Key1 下一曲 键 返回 开始 Key = KeyScan_GetKey(amp。 KeyType)。 if(1 == WriteProtect) // 卡有写保护,拒绝按键操作 if((C_SReleaseKeyState == KeyType) || (C_LReleaseKeyState == KeyType)) return。 switch(Key) 25 图 录音键流程图 部分程序如下 : 正在播放。 短按键。 是 是 停止播放,关闭读取 SD 卡 系统状态置空闲 SD 卡已 满。 否 是 否 系统空闲。 否 启动写入 SD 卡,开始录音 系统状态置录音 否 是 正在录音。 结束录音,录音收尾 是 否 开始 返回 case C_Record: // Record if(C_SReleaseKeyState == KeyType) // 短按键,录 /放音控制 if(PLAY == Status) 26 SACM_DVR1600_Stop()。 // 如果正在放音,则先停止播放 FS_CloseOpenFile()。 Status = IDLE。 if(IDLE == Status) if((g_FileNum = FS_MAX_FILENUM) || (FS_GetUnusedSecNum() = 0)) // 文件已满,退出 PlaySnd(VOICE_DANG, DAC1 + DAC2)。 Status = RECORD。 else if(RECORD == Status) SACM_DVR1600_Stop()。 while(RECORD == Status) // 等待完成录音收尾工作 SACM_DVR1600_ServiceLoop()。 PlaySnd(VOICE_OVER, DAC1 + DAC2)。 27 当按下上一曲键,短按键(小于一秒)播放上一曲,长按键清 除SD 卡上所有录音。 “上一曲 ”按键处理程序的流程图 如 图。 图 上一曲键流程图 部分程序如下 : 正在录音。 正在播放。 是 判断是否有文件 ? 结束放音 是 否 短按键。 否 否 是 长按键。 是 清除 SD 卡内所有文件 系统状态置空闲 读取语音段,启动声音播放上一曲 系统状态置播放 否 是 否 开始 返回 if(PLAY == Status) // 如果正在放音,则先停止播放 28 当按下下一曲键,短按键(小于一秒)播放下一曲,长按键停止放音。 “下一曲 ”按键处理程序的流程图如图。 图 下一曲键流程图 正在录音。 当前有录音片段。 是 是 停止播放 正在播放。 否 否 短按键。 否 长按键。 否 系统状态置空闲 是 启动声音播放下一曲 系统状态置播放 否 是 是 开始 返回 SACM_DVR1600_Stop()。 FS_CloseOpenFile()。 else if(RECORD == Status) // 如果正在录音则不处理 if(C_LReleaseKeyState == KeyType)//长按键,擦除所有语音段 FS_Init()。 Status = IDLE。 else if(C_SReleaseKeyState == KeyType)// 短按键播放上一曲 29 部分程序如下 : 系统状态处理程序主要完成在录音时判断是否超出 SD 卡容量限制,或者在放音时当前语音是否播放完毕。 系统状态流程图如图。 图 系统状态处理流程图 检查 SD 卡是否已满。 是否正在录音。 播放是否结束。 停止录音 系统状态置空闲 是否正在播放。 停止读 取 系统状态置空闲 是 否 否 否 是 是 是 否 返回 开始 case C_Next: // Play Next if((C_SReleaseKeyState != KeyType) amp。 amp。 (C_LReleaseKeyState != KeyType)) if(g_FileNum 0) if(PLAY == Status) //如果正在放音,则先停止播放 SACM_DVR1600_Stop()。 FS_CloseOpenFile()。 else if(RECORD == Status) // 如果正在录音则不处理 if(C_LReleaseKeyState == KeyType)// 长按键,停止当前播放 Status = IDLE。 else if(C_SReleaseKeyState == KeyType)// 短按键,播放下一曲 30 部分程序如下: 按键扫描程序 系统使用 1024Hz 时基中断对 IOA 口低八位进行扫描,并进行去抖、长短按键判断等工作。论基于单片机的sd卡录音笔设计与实现毕业设计
相关推荐
析制度 4煤矿地质及储量管理工作制度 7水文地质工作制度 8井田内及周边袒悬疟墙溅贵初扬特家援姜懂娟允耙闻拣犁描骚宠跺核日庶愚舱浙哑秧眶便粹驱利丛玉仓杖吁读韦嫂界糟鸳枕什烫仍臆碘依未拿纹镊圣储玻撅炽饱 二、配备专门的能满足煤矿测量工作的测绘仪器,主要包括全站仪、经纬仪、水平仪、钢尺、皮尺、塔尺、罗盘及绘图工具。 科兴煤炭公司防治水机构及制度汇编 (最新
结合的《万有能力网》。 2020 年由 100 位实战派专家、课件开发团队共同努力,以岗位能力素质提升为导向,精心研制 2200 个网络培训课程成功上线,受到广大企业和用户欢迎。 2020 年又成功开发《 2020 年上海世博会志愿者培训管理平台》,并系统开发 8 套志愿者公共事业网络培训课程及配套教材,为志愿者培训构建一套标准的整体解决方案得到了上海世博会组委的采纳,成为 2020
44U3STC89C52Y1VCC123GND4USB123456789RS112345678P412345678P312345678P612345678P51234567P7 22pFC922pFC8GND VCCGND10KR2 C1+1VDD2C13C2+4C25VEE6T2OUT7R2IN8R2OUT9T2IN10T1IN11R1OUT12R1IN13T1OUT14GND15VCC16U8
理员密码页面 图书管理页面 用户管理页面 信息管理页面 图书分类管理页面 登陆错误页面信息 编辑图书信息页面 图书订单查询信息页面 退出管理员页面 管理员登陆页面 图书主类管理信息页面 图书次类管理信息页面 会员查找删除信息页面 新闻编辑管理信息页面 公告反馈编辑信息页面 管理员 15 第 4 章过程论述 标识需要的数据; ; ; ; ; ; 数据库表的设计 数据库详细设计 列名 类型 主码
Br = AgBr↓ 淡黄色 ——照相术 Ag+ + I = AgI↓ 黄色 ——人工降雨 第 7 页共 14 页 (CO H2O) △( OH) ② 苯、 CCl4等 有机溶剂、氯水 溴、碘的提取 :(请参照课本) 钠的性质 物理性质 :银白色固体、有金属光泽、密度比煤油大比水小、质软、熔点低、能导电导热。 保存于煤油中 化学性质 与 O Cl S 等非金属的反应 4Na + O2 ===
5 就是齿 1) 下面是定 子和 转子的展开图: 图 21 定 子和 转子的展开图 2 步进电动机的介绍 7 步进电机的旋转 如 A 相通电, B, C 相不通电时,由于磁场作用,齿 1 与 A 对齐,(转子不受任何力以下均同)。 如 B 相通电, A, C 相不通电时,齿 2 应与 B 对齐,此时转子向右移过 1/3て ,此时齿 3 与 C 偏移为 1/3 て ,齿 4 与 A 偏移 (て