录音笔的设计与制作
- 格式:doc
- 大小:99.50 KB
- 文档页数:23
声音采集课程设计一、课程目标知识目标:1. 让学生理解声音的基本概念,掌握声音的传播原理;2. 让学生掌握声音采集设备的使用方法和技巧;3. 让学生了解声音采集在生活、科技及媒体领域的应用。
技能目标:1. 培养学生独立操作声音采集设备的能力;2. 培养学生运用所学知识对声音质量进行初步分析和判断的能力;3. 培养学生运用声音采集技术进行创新实践的能力。
情感态度价值观目标:1. 激发学生对声音采集的兴趣,培养他们积极探索、自主学习的精神;2. 培养学生关注生活中的声音现象,提高他们对声音环境的敏感度;3. 引导学生认识到声音采集在传播信息、促进交流等方面的重要性,增强他们的社会责任感。
课程性质:本课程属于实践性较强的学科,结合理论知识与实际操作,注重培养学生的动手能力和创新能力。
学生特点:六年级学生具有较强的求知欲和好奇心,具备一定的理论基础,但实践经验相对不足。
教学要求:结合学生特点,采用讲授、示范、实践相结合的教学方法,注重激发学生的兴趣,提高他们的实践能力。
通过本课程的学习,使学生能够达到课程目标,为后续相关课程的学习打下坚实基础。
二、教学内容1. 声音基本概念:声音的定义、特性(如频率、振幅、波长)、声音的分类(如乐音、噪音)。
教材章节:第一章“声音的基本概念”2. 声音传播原理:声波传播、反射、折射、吸收、共鸣等现象。
教材章节:第二章“声音的传播”3. 声音采集设备:麦克风、录音笔、声卡等设备的工作原理、类型及使用方法。
教材章节:第三章“声音采集设备”4. 声音采集技巧:声音信号的增益、降噪、立体声录制等技巧。
教材章节:第四章“声音采集技巧”5. 声音采集应用:生活、科技、媒体等领域中的应用案例分析。
教材章节:第五章“声音采集的应用”教学安排与进度:第一课时:声音基本概念及声音传播原理第二课时:声音采集设备的学习与实践第三课时:声音采集技巧的学习与实践第四课时:声音采集应用案例分析及创新实践教学内容注重科学性和系统性,结合教材章节进行有序安排。
多功能录音笔的制作方法多功能录音笔是一种非常实用的电子产品,可以帮助人们实现音频录制、音频播放、数据存储等多种功能。
现在市面上的多功能录音笔种类繁多,价格也从几十元到上千元不等。
但其本质上都是通过集成电路来实现各种功能。
接下来我们就来了解一下多功能录音笔的制作方法。
一、原材料准备制作多功能录音笔,首先需要准备所需的原材料和工具。
下面是一些必要的材料:1. 集成电路:录音芯片、存储芯片、控制芯片。
2. 多功能操作按键:录音、暂停、停止、播放、音量控制等。
3. 电池:一至两个7号电池或者一个充电电池。
4. 电子元器件:电阻、电容、晶振、二极管等。
5. 麦克风:有线麦克风或插口式麦克风。
6. 插座和接口:耳机插座、USB接口、TF卡插槽等。
7. 电路板、电线、制作工具等。
二、电路设计进行电路设计需要具备一定的电路原理和电子元器件基础。
根据所需功能和复杂程度,可以选择不同的控制芯片来完成电路设计。
典型的多功能录音笔电路组成主要分为四个部分:录音、播放、数据存储、充电等。
其基本的连接方式是:1.麦克风通过P1口连接到录音芯片的MIC+和MIC-引脚。
2. 通过集成电路缓存录音数据,以防止丢失。
3. 通过录音芯片选择音频采样率和数据压缩格式。
4. 录音数据通过USB或者TF卡存储到存储芯片中。
5. 播放音频数据应该通过DAC(数字信号转模拟信号)芯片和功放芯片。
6. 充电电路通过USB接口连接充电器充电电池。
三、电路制作电路制作需要具备一定的电子元器件知识和焊接技巧。
常见制作步骤如下:1. 根据电路图选择相应元件,将电路板按照电路图进行铺线,确定元件安装位置,注意相互之间的间距。
2. 用钳子或剪刀对元器件进行正确的割线和弯曲处理,尽量使元器件与电路板紧密结合,粘贴两个板块板子3. 用铅锡焊接器将元件焊接到电路板上。
注意焊接的时间和温度,如果过面熔点过高会导致电路板损坏,过低则会导致焊接失效。
4. 经过初步测试和调试后,将电路板与电池、麦克风、按键、接口等元件进行连接,并将电路板安装在外壳中。
录音笔毕业设计录音笔毕业设计一、引言在现代社会中,录音笔作为一种小巧便携的音频记录设备,被广泛应用于各行各业。
无论是学生、记者、商务人士还是音乐爱好者,都可以通过录音笔方便地记录重要信息或创作灵感。
本文将探讨录音笔的设计与应用,以及如何进行一款出色的录音笔毕业设计。
二、录音笔的设计要素1. 外观设计录音笔的外观设计应该注重简洁、轻巧的特点,便于携带和操作。
同时,考虑到用户的个人喜好,可以提供多种颜色和材质选择,以满足不同用户的需求。
2. 功能设计录音笔的功能设计是其核心竞争力之一。
除了基本的录音功能外,可以考虑增加如噪音消除、语音识别、文件管理等功能,以提升用户体验。
此外,还可以加入一些创新的功能,如录音转文字、实时翻译等,进一步满足用户的需求。
3. 用户界面设计用户界面设计应该简单直观,方便用户操作。
可以采用触摸屏、物理按键或者组合方式,以适应不同用户的操作习惯。
同时,还可以提供个性化的设置选项,让用户根据自己的需求进行自定义。
三、录音笔的应用场景1. 学习助手录音笔可以帮助学生在课堂上记录老师的讲解内容,方便后续复习。
此外,还可以用于学习讨论、小组会议等场景,记录重要讨论和决策。
2. 记者采访记者在采访现场使用录音笔可以准确记录受访者的回答,避免遗漏重要信息。
同时,录音笔的便携性也使得记者可以随时随地进行采访,不受时间和地点的限制。
3. 商务会议在商务会议中,录音笔可以用来记录会议内容、决策和行动计划,方便参会人员回顾和跟进。
同时,还可以通过录音笔的文件管理功能整理和分享会议资料,提高工作效率。
4. 音乐创作对于音乐爱好者和创作人员来说,录音笔是一个重要的创作工具。
可以用来记录灵感、演奏和创作过程,方便后续编辑和制作。
一些高端录音笔还提供了高质量的音频录制功能,满足专业音乐制作的需求。
四、录音笔毕业设计的思路1. 需求分析在进行录音笔毕业设计之前,需要对目标用户的需求进行深入分析。
可以通过问卷调查、访谈等方式收集用户的意见和建议,了解他们对录音笔的期望和需求。
搜狗新品:便携式智能录音笔C1体验基于人们工作学习对于录音笔的需求,搜狗公司于2019年3月推出了一款全新的AI硬件产品:搜狗智能录音笔C1。
这款智能录音笔具有“高清录音、录音转文字、同声传译”等功能,可以说是专为采访、会议、培训等用户设计。
那么,这款智能录音笔到底有什么过人之处呢?今天就带大家来深度了解下搜狗智能录音笔C1这款产品吧。
先来看看外观设计,搜狗智能录音笔C1整体比较小巧,采用了人体工程学的设计,针对不同手型的握感进行了握持优化,而且正面采用了铝合金材质,以及阳极氧化喷砂工艺,手感方面表现不错。
如果不仔细看的话,第一眼看上去我还以为是一个MP3播放器。
另外,这款录音笔在外观设计上,还获得了2018年的IF设计大奖,用一句话来形容C1外观的话就是:小巧精致,品质感不低。
搜狗智能录音笔C1的正面上、下位置分别设有“全数字高灵敏麦克风”,同时通过深度定制的双麦克风阵列拾音算法,使C1可以实现360°的全方位高清准确拾音。
搜狗智能录音笔C1正面还设有一个指示灯,不同运行状态下颜色不同,例如:待机就是蓝灯长亮;充电,则是红灯长亮等。
搜狗智能录音笔C1的顶部为电源键,开机后同时也是录音键。
搜狗智能录音笔C1的底部为Type-C充电接口。
对于这个充电接口设计我要打个好评,现在我用的手机全是Tpye-C接口,这样就可以跟我的手机共用一根数据线,很是方便。
另外,C1的电池容量为300mAh,官方称待机时间可长达20天,持续普通降噪模式录音可以达960分钟,也就是16个小时,并且还支持边录音边充电,这个续航时间足够日常一天使用了。
搜狗智能录音笔C1还在机身背面设计了一个“背夹”,在进行采访或者录音时,你可以夹在衣领、衣袋、书本或者背包上使用,很是方便。
对于搜狗智能录音笔C1的外观设计,我们就欣赏到这里,下面来看看这款录音笔的实际体验如何。
搜狗智能录音笔C1内置了16GB的闪存与100小时云端的存储服务,当你连接上手机以后,录音笔就会自动同步录音数据到APP端,同时还会自动同步到云端,不用担心录音数据丢失。
电子工业版(安徽)信息技术五年级下册第5课《制作铃声先录音》教学设计一. 教材分析本课是信息技术五年级下册第5课《制作铃声先录音》,主要内容是让学生掌握用电子设备录制声音并将其应用于手机铃声的制作。
教材以实践操作为主线,引导学生掌握录音的基本操作,并通过实际操作体验铃声的制作过程。
二. 学情分析五年级的学生已经具备一定的信息技术基础,对电子设备有较高的兴趣。
但在录音和铃声制作方面,大部分学生可能还没有尝试过。
因此,在教学过程中,需要关注学生的个体差异,引导他们逐步掌握录音和铃声制作的技术。
三. 教学目标1.知识与技能:了解录音的基本操作,学会使用电子设备进行录音,并将其应用于手机铃声的制作。
2.过程与方法:通过实践操作,培养学生的动手能力,提高他们在信息技术领域的创新能力。
3.情感态度与价值观:培养学生对信息技术的学习兴趣,增强他们运用信息技术解决实际问题的意识。
四. 教学重难点1.重点:掌握录音的基本操作,学会制作手机铃声。
2.难点:如何调整音量、音效,使制作的铃声更具个性。
五. 教学方法1.任务驱动法:通过设置具体的任务,引导学生动手实践,逐步掌握录音和铃声制作技术。
2.示范教学法:教师演示录音和铃声制作的过程,学生跟随操作,加深对知识的理解。
3.小组合作法:学生分组进行实践,相互学习,共同完成任务。
六. 教学准备1.准备录音设备,如手机、录音笔等。
2.准备一个可以编辑铃声的软件,如Audacity。
3.准备一些关于铃声的素材,如音乐、音效等。
七. 教学过程1.导入(5分钟)教师通过提问方式引导学生思考:你们知道手机铃声是怎么来的吗?有没有想过自己动手制作一个独一无二的铃声呢?从而激发学生的兴趣。
2.呈现(10分钟)教师展示用Audacity软件制作铃声的过程,让学生初步了解录音和铃声制作的基本步骤。
3.操练(15分钟)学生分组进行实践,教师巡回指导。
首先,让学生用手机或录音笔录制一段声音;然后,引导学生将录制的声音导入Audacity软件进行编辑;最后,让学生尝试制作一个简单的铃声。
技术与设计的关系一、教材内容分析1.教材的地位和作用本节内容将技术的性质与技术设计联系起来,是由技术向设计过渡的小节。
这节内容对本册教科书涉及的设计进行了界定,有选择性地对技术与设计的关系、技术与设计的重要知识进行介绍。
它是本册教材学习的基础,也是培养兴趣的关键内容。
本节内容是让学生“理解技术与设计的关系,能分析设计在技术发明和革新中的作用”的同时,感受设计的重要性,对设计过程产生兴趣和学习的欲望。
2.教材重点:理解技术与设计的辩证关系二、教学对象分析学生在生活中已产生了一些设计的观念,但对技术与设计的关系并不了解。
而高一年级的学生较初中时期观察能力和思维能力等都有了很大的提高,同时学生的辨证思维也在发展起来,为学生对技术与设计的辩证关系的理解打下了基础。
学生在生活中虽然接触到一些设计方面的知识,有了一些有关的生活经验,但难以领会设计的丰富内涵。
因此,形成了教学中的一个难点。
三、教学目标知识与技能:1.理解技术与设计的关系,学会分析设计在技术发明和革新中的作用。
2.了解技术发展对设计产生的重要影响。
3.理解设计的丰富内涵。
过程与方法:学会多角度地思考问题,发展辨证思维能力。
情感态度与价值观:培养对技术的兴趣和想象力,提高审美情趣。
四、教学策略1. 采用“奥苏伯尔的有意义学习理论”,让学生将技术与设计的辨证关系内化到自己的认知结构中。
2.通过案例分析,组织讨论,理解设计在技术发明和革新中的作用以及技术发展对设计产生的重要影响,感受设计的重要性,领会技术与设计的辨证关系。
3.通过举例、图片和实物展示,领会设计的丰富内涵。
4.教学时间:1课时。
五、教学资源准备1. 收集手机和自行车演变的图片以及艺术设计和技术设计的图片。
2. 准备一些实物如:手机、电熨斗和电吹风等。
六、教学程序设计:七、教学反思在处理教材时,对内容我作了一些调整。
我认为,如果原原本本按照教材提供的案例进行教学,学生肯定提不起兴趣,这在上第一章第一节内容内容“技术的价值”第一节课时已有过教训。
小学信息技术教学设计制作铃声先录音在小学信息技术教学中,铃声是学生们日常生活中不可或缺的一部分。
为了提供一个有趣且引人入胜的学习环境,我们可以引导学生利用信息技术制作自己喜欢的铃声。
本文将介绍一个小学信息技术教学的设计方案,其中重点是先进行录音。
为了完成这个任务,我们需要以下准备:1. 录音设备:选择一个合适的录音设备,可以是智能手机、录音笔或者电脑内置的麦克风。
2. 录音软件:根据学校和学生的需求,选择一个适合录音的软件。
在电脑上可以使用Audacity或Adobe Audition,而在智能手机上可以使用Voice Recorder或Easy Voice Recorder。
接下来,我们将详细说明设计方案的步骤:1. 引导学生了解不同的铃声类型:在开始录音之前,让学生了解不同类型的铃声,例如音乐、自然声音、人声等。
可以引导学生对不同类型的铃声进行分类,并鼓励他们分享自己喜欢的铃声。
2. 提供录音技巧指导:在学生开始录音之前,先进行一些基本的录音技巧指导。
例如,要保持恰当的距离和角度,避免噪音干扰,以及如何调整音量和音调等。
还可以讨论一些常见的录音问题,如噪音、回音等,并提供解决方案。
3. 选择录音主题:帮助学生选择一个录音主题。
可以将主题与学生们正在学习的课程内容相关联,例如动植物、自然风景或历史事件等。
通过与课程内容结合,可以促进学生的学习兴趣和动力。
4. 进行录音:给学生足够的时间和机会在合适的环境中进行录音。
可以安排一段时间,使学生可以在学校或家庭中寻找合适的录音场地。
为了确保录音质量,可以提前规划好录音时间,确保没有干扰或噪音干扰。
5. 回放和评估录音:一旦学生完成录音,可以与他们一起回放录音,并进行评估。
可以让学生相互分享自己的录音,让其他同学给予反馈和建议。
这有助于学生发现自己的改进空间,并激发他们的创造力。
6. 铃声编辑和制作:一旦学生满意自己的录音,可以开始进行铃声的编辑和制作。
TXGC001.出租车计价器设计TXGC002.实用信号源的设计TXGC003.IDS系统的设计实现TXGC004.智能小区安全防范系统TXGC005.无线网络优化研究TXGC006.数字频率计的设计TXGC007.录音笔的设计与实现TXGC008.IIR数字滤波器的设计TXGC009.PPPoE协议研究实现TXGC010.公交车报站器的设计TXGC011.校网络视频会议系统TXGC012.移动IP切换技术研究TXGC013.正交频分复用技术研究TXGC014.智能小区网络通信系统设计TXGC015.数字通信数据纠检错研究TXGC016.汽车无线安全防撞预警系统TXGC017.色散管理光孤子传输技术研究TXGC018.交通图像边缘检测程序设计TXGC019.家用电器自动化开关设计TXGC020.AVR单片机串行通信接口研究TXGC021.WCDMA网络的规划及优化TXGC022.TD-SCDMA天馈系统研究TXGC023.单边带调制解调新方法研究TXGC024.单片机读写U盘的实现TXGC025.电话机来电显示器的设计TXGC026.电机的无线遥控系统设计TXGC027.电力载波通信电路TXGC028.铒镱共掺双包层光纤激光器TXGC029.非均匀采样技术研究TXGC030.高精度电子称的设计实现TXGC031.红外通信原理研究与实现TXGC032.红外线遥控小车的设计TXGC033.基于DSP的数字音频信号处理TXGC034.基于IDE接口的电子硬盘设计TXGC035.基于MATLAB的码元同步仿真TXGC036.基于单片机的电子锁的设计TXGC037.小灵通基站的开关电源设计TXGC038.基于MT8880的在线计费系统TXGC039.无线市话网络的组建与优化TXGC040.微型计算机系统—存储器设计TXGC041.网络协议分析软件的设计实现TXGC042.虚拟存储示波器硬件设计TXGC043.移动网位置管理研究与仿真TXGC044.应用LabVIEW进行人体脉搏分析TXGC045.单相交直交逆变电源的设计TXGC046.GSM扩容工程网络规划设计TXGC047.Internet上语音通信的研究实现TXGC048.Matlab在滤波器设计中的应用TXGC049.MP3播放器访问IDE硬盘的设计实现TXGC050.PC与数控机床通信网卡的设计TXGC051.SD卡的访问及FAT文件系统的实现B接口及应用系统的设计与实现TXGC053.VPN技术及其在企业中的应用TXGC054.WAP数据业务网的规划设计TXGC055.VC++环境下调用MATLAB的方法研究TXGC056.爱立信GSM核心网设计—MSC部分TXGC057.城域传输网组网技术的分析与研究TXGC058.电视竞赛评分系统—打分模块TXGC059.基于ARQ的数字通信系统纠检错方法TXGC060.机车数据无线传输系统的设计实现TXGC061.基于AVR单片机的网络接口控制器TXGC062.基于DSP技术实现的2ASK调制解调TXGC063.基于USB接口的控制系统设计TXGC064.基于STBC的空时编码方法的研究TXGC065.基于P2P的文件传输和下载系统TXGC066.基于单片机的电源遥控系统设计TXGC067.基于单片机的电能计量系统设计TXGC068.基于电力载波的家用电器控制系统TXGC069.开关电源应用—POS机的电源设计TXGC070.检错纠错编码技术的研究与实现TXGC071.图像通信中的二次B样条曲面编码TXGC072.移动基站监控系统的设计实现TXGC073.Web信息质量检测系统GUI设计实现TXGC074.第三代移动通信网络建设技术探讨TXGC075.非接触式射频IC卡接口的设计实现TXGC076.非均匀采样信号迭代重建方法研究TXGC077.基于DSP技术实现的2PSK调制解调TXGC078.基于AVR单片机的MP3播放器的设计实现TXGC079.基于GIS的公交线路查询软件设计TXGC080.基于部分检测法的人脸识别研究TXGC081.小灵通实时计费系统的研究设计TXGC082.基于Matlab的OFDM系统仿真TXGC083.基于TCPIP网络的多媒体通信研究TXGC084.基于Web的机车故障诊断系统设计TXGC085.静止图像压缩技术JPEG的分析与应用TXGC086.基于单片机的交通灯控制系统设计TXGC087.语音信号的预测编码技术研究与实现TXGC088.基于单片机的球类比赛工作器设计TXGC089.基于VC的网络多点通信的设计与实现TXGC090.基于校园网络的VOIP软件的设计实现TXGC091.无线传感器网络LEACH协议仿真研究TXGC092.现代数字信号处理中的无损系统分析TXGC093.基于用户验证的MPLS VPN在服务提供商TXGC094.Mifare读卡器的设计与实现-上位机编程TXGC095.基于IP网的多媒体会议系统的设计实现TXGC096.多媒体会议系统中多点通信模型的研究TXGC097.第三代移动通信技术发展探讨及平滑过渡TXGC098.WCDMA移动通信中功率控制的研究与仿真TXGC099.CDMA通信系统中的多用户检测技术研究TXGC100.数字图书馆网络存储系统-磁盘阵列设计实现TXGC101.移动GSM核心网话务分析及网络优化TXGC102.应用DSP实现2FSK调制解调的系统设计TXGC103.小波变换及其在信号和图象处理中的应用研究TXGC104.熄弧受电弓头随动性检测数据的事后分析TXGC105.微型计算机系统—总线与输入输出接口设计TXGC106.开关电源的应用—液晶显示器电源的设计TXGC107.监控系统—语音提示报警部分的设计与实现TXGC108.博弈论在无线通信网络接纳控制中的应用TXGC109.MPEG-2传输流分析与视音频同步问题的研究TXGC110.DSP集成开发环境CCS与MATLAB的接口研究TXGC111.基于LabWindowsCVI的虚拟示波器软件设计TXGC112.通信系统中数字混沌的软件无线电研究TXGC113.微电脑型恒温电热毯控制器的硬件设计TXGC114.移动通信中的切换技术的分析研究及探讨TXGC115.智能物理实验仪与PC通信接口的软硬件设计TXGC116.基于DICOM3.0标准的眼底图像格式及传输TXGC117.数字图书馆网络存储系统-数据容灾的研究设计TXGC118.基于单片机的数字式多路温度采集系统设计TXGC119.智能家居中家用电器无线控制系统的设计实现TXGC120.基于MATLAB的NHZ跳频系统多址干扰性能分析TXGC121.数字通信系统数据帧同步设计及可靠性研究TXGC122.利用SAW方法对WEB资源质量排序及其敏感性分析TXGC123.可接收数字广播节目的GSM移动终端的硬件设计TXGC124.表面稳定型铁电液晶器件响应特性的理论研究TXGC125.道路交通信号控制机无电缆协调控制的实现TXGC126.数字图书馆网络存储系统-通信协议的研究实现TXGC127.基于MATLAB的CDMA2000前向信道仿真TXGC128.可接收数字广播节目的CDMA移动终端的软件设计TXGC129.智能家居中基于电话网的控制与报警接口的设计实现TXGC130.数字图书馆网络存储系统—总体架构的研究设计TXGC131.基于约束子码算法的Turbo码码字重量谱计算机搜索算法研究TXGC132.IS-95移动通信系统研究与反向传输电路的仿真TXGC133.CATV可寻址控制系统管理系统软件设计TXGC134.900MHZ移动通信基站覆盖分析软件研究TXGC135.CWDM系统中的解复用器的设计分析。
录音笔的设计与制作摘要:该实验设计基于AVRmega16开发板平台,介绍和分析了市场上流行的录音笔的基本原理,并做出了较为简单的录音笔模型展示其原理!主要功能有录音,存储,删除,放音等!关键字:单片机录音笔录音与放音我们的课程设计是基于该系列的单片机,在硬件滤波的基础上,实现录音笔的各项功能!所作的录音笔具有可移植性强,功能简单,可以简单继续添加更多相关功能的模型!对市场上流行已久的录音笔,我们有着学习相关知识以及制作的兴趣,又加上单片机课程给我们提供了相关的实验器材,所以说我们的目的最主要是学习,当然也有好奇的心理在里面。
我们制作的录音笔能够进行简单语音信号的采集,存储与播放。
对于应用于实际生活中的各种语音信号的处理,还有很大差距,这有待于系统设计的进一步完善和改进,功能的进一步扩充。
硬件部分:电路图如下:硬件设计思想:用麦克风采集音频信号,经过一次功放,然后用电容进行一次滤波,电容的大小采用2.2nf,滤波后进行AD转换,转换后的信号存在AT45DB081B中,然后用单片机调出信号,经过一次放大,将信号传到扬声器播放。
电路图上,mag16以上的电路图就是用来采集信号的,放大信号用的是LM324集成功放芯片。
Mag16一下的电路图用来放音,也是经过一次信号放大,再放大的同时尽心信号过滤,分别用了2.2nf和22nf的电容接地来实现!软件部分:软件设计思想:首先是设备初始化,但是我在初始化程序中ADC.定时器等并没有进行初始化,只是告诉芯片PA0应该设置为输入,不上拉使能(为AD转换的输入通道设置),用于SPI的输出端口哪些应该为输入,哪些该为输出,如此等简单的引脚初始化。
初始化完成之后,就进入主程序中进行键盘扫描,速度极其的快,无键盘按下时甚至只用不到1微秒的时间。
一旦检测到哪个键按下就进入相应的程序中去。
录音程序的设计思想:检测到录音键按下后进入,然后ADC初始化同时开始一次AD转换,延时等待一小会,AD转换结束了。
接着SPI、定时器初始化,从此就靠定时器来主导整个录音程序的运行了。
定时器有中断,其中有要求TCNT0设置这个基本的操做,还有一个就是ADSC置位要求进行下一次转换。
至于AD转化的值则在AD中断中往一个已经建好循环队列中写。
定时器定时80微秒,一次AD 转换是在定是一开始就进行,需要时间52微秒,也就是说定时器溢出时AD中断一定结束了,下一次中断之前数据一定已经进入了队列中,如此循环。
而在这两个终端中间有大量的时间给我利用循环队列的特点向Dataflash中写数据。
Dataflash有2048页,每一页有264字节,在每一页写满之前,程序不会再检测按键,一直到一页写满了,才检测按键,如果仍旧是按下则继续录音,否则退出。
退出后如果存储空间未满则存储位置的参数会保留,下次录音可以接下去。
如果满了,则录音工作指示灯永远都不会亮了,除非重启。
但是在退出录音程序时,ADC、SPI、定时器会全部关闭,再进入程序时再初始化开启。
放音程序的设计思想:与录音程序相同,进入程序之后才开启所需要的功能。
不同的是先开录音工作指示灯,SPI,然后向Dataflash要一次数据,再开TIMER2的快速PWM功能。
一次PWM时间是16微秒,每五次更新一次,通过调节占空比来实现DA转换的功能。
同样的每五次中断期间都有足够的时间给程序向Dataflash要数据。
放音程序最大的特点是那些控制参数虽然是全局变量,但是它们在进入程序的第一时间就被初始化了,在就要退出程序的最后时刻再次被初始化。
这样就使得整个程序可以进行循环放音,但是每次都是从头开始,放开按键时停止,再按下时从头开始。
以此结束时会因为人很不可能恰好在退出程序时放开按键,所以放音键按下的状态会在下一个按键检测循环中被检测到,并进入方音程序。
软件实现具体流程:录音程序放音程序开始端口初始化按键检测返回相关软件程序模块源代码以及相关功能://ICC-AVR application builder : 2007-6-22 17:58:09 // Target : M16// Crystal: 16.000Mhz#include <iom16v.h>#include <macros.h>#define BUFFER1_READ 0x54#define BUFFER2_READ 0x56#define MAIN_TO_BUFFER1 0x53#define MAIN_TO_BUFFER2 0x55#define BUFFER1_WRITE 0x84#define BUFFER2_WRITE 0x87#define BUFFER1_TO_MAIN_WITH 0x83#define BUFFER2_TO_MAIN_WITH 0x86#define BUFFER1_TO_MAIN_WITHOUT 0x88#define BUFFER2_TO_MAIN_WITHOUT 0x89#define MAIN_PROGRAM_BUFFER1 0x82#define MAIN_PROGRAM_BUFFER2 0x85//给SPI定义的PORTB的引脚#define DF_CS 3#define DDR_MOSI 5#define DDR_MISO 6#define DDR_SCK 7//给工作状态指示灯LED的引脚定义//PA7?0B01111111#define RECORD_LED 0x7F#define PLAY_LED 0xBF#define ERASE_LED 0xDF#define unit8 unsigned char#define unit16 unsigned intvolatile unit8over_times=0,play_buffer_number=1,updata_OCR=0;volatile unsigned char NEW_OCR=0;volatile unit16 play_buffer_counter=0,play_page_counter=0;volatile unsigned char record_buffer[264]={0};volatile unit8 new_turn=0,record_buffer_number=1;volatile unit16record_page_counter=0,record_buffer_counter=0,data_position=0, send_position=0;void port_init(void){PORTA = 0xE0;DDRA= 0xE0;PORTB = 0x00;DDRB= 0xB8;PORTC = 0x43; //m103 output onlyDDRC= 0x00;PORTD = 0x00;DDRD= 0x80;}void timer0_init(void){TCCR0 = 0x00; //stopTCNT0 = 0x60; //set countTCCR0 = 0x02; //start timer8分频TIMSK|=0x01; //timer0 interrupt sources 溢出中断SEI();}void timer2_init(void){TCCR2 = 0x00; //stopASSR= 0x00; //set async modeTCNT2 = 0x01; //setupOCR2= 0xFF;TCCR2 = 0x69; //startTIMSK|=0x40;//timer2 interrupt sources}//call this routine to initialize all peripheralsvoid init_devices(void){//stop errant interrupts until set upCLI(); //disable all interruptsport_init();MCUCR = 0x00;GICR= 0x00;TIMSK = 0x00; //timer interrupt sourcesSEI(); //re-enable interrupts//all peripherals are now initialized}void adc_init(void){ADCSRA = 0x00; //disable adcADMUX = 0x60; //select adc input 0 and AVCC 左对齐ACSR= 0x80;ADCSRA = 0xC6; //刚进入就进行一次A/D转换while(!(ADCSRA&0x40));//等待转换结束}void timer0_stop(void){TCCR0=0x00;//stopTIMSK&=~0x01; //stop timer0 overflow interrupt}void delay_ms(unsigned int n){unsigned int i;for(;n!=0;n--)for(i=2665;i!=0;i--)}void send_SPI(unsigned char data){SPDR=data;while(!(SPSR&0x80));}void record(void){//PORTA&=RECORD_LED;?//不应该从这儿开始开灯,开录音指示灯adc_init();//调用timer0_init();//调用SPCR=0x5c;//enable SPISPSR=0x00;PORTB|=(1<<DF_CS);//拉高一下,以免开始时因特殊原因DF_CS是低,保证安全while(!(PINC&0x01) && record_page_counter<2048){PORTA&=RECORD_LED;//开录音指示灯record_buffer_counter=0;while(record_buffer_counter<264)if(new_turn==0 && send_position<data_position){PORTB&=~(1<<DF_CS);if(record_buffer_number==1)//8 bits opcodesend_SPI(BUFFER1_WRITE);elsesend_SPI(BUFFER2_WRITE);send_SPI(0x00);//8 bits don't caresend_SPI((unit8)(record_buffer_counter>>8));//7 bits don't care+ 1 bit addresssend_SPI((unit8)record_buffer_counter);//8 bits address send_SPI(record_buffer[send_position]);PORTB|=(1<<DF_CS);send_position++;record_buffer_counter++;}if(new_turn==1){if(send_position==264){send_position=0;new_turn=0;}PORTB&=~(1<<DF_CS);if(record_buffer_number==1)//8 bits opcodesend_SPI(BUFFER1_WRITE);elsesend_SPI(BUFFER2_WRITE);send_SPI(0x00);//8 bits don't caresend_SPI((unit8)(record_buffer_counter>>8));//7 bits don't care+ 1 bit addresssend_SPI((unit8)record_buffer_counter);//8 bits address send_SPI(record_buffer[send_position]);PORTB|=(1<<DF_CS);send_position++;record_buffer_counter++;}}PORTB&=~(1<<DF_CS);if(record_buffer_number==1)//8 bits opcodesend_SPI(BUFFER1_TO_MAIN_WITHOUT);//整个flash已经被擦除过了elsesend_SPI(BUFFER2_TO_MAIN_WITHOUT);send_SPI((unit8)(record_page_counter>>7));//4 bits reserved and 4 bits addresssend_SPI((unit8)(record_page_counter<<1));//7 bits address and 1 don't caresend_SPI(0x00);//8 don't carePORTB|=(1<<DF_CS);if(record_buffer_number==1)record_buffer_number++;elserecord_buffer_number--;record_page_counter++;}timer0_stop();ADCSRA = 0x00; //disable adcPORTA|=~RECORD_LED;//关录音指示灯}#pragma interrupt_handler timer2_ovf_isr:iv_TIMER2_OVF void timer2_ovf_isr(void){TCNT2 = 0x01; //reload counter valueif(over_times==0){OCR2=NEW_OCR;updata_OCR=1;}if(over_times==4)over_times=0;elseover_times++;}#pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF void timer0_ovf_isr(void){TCNT0 = 0x60; //reload counter valueif(data_position<264){record_buffer[data_position]=ADCH;data_position++;}else{data_position=0;record_buffer[data_position]=ADCH;data_position++;new_turn=1;}ADCSRA|=(1<<ADSC);//开始下一次A/D转换}//ADC initialize// Conversion time: 52uSvoid playback(void){PORTA&=PLAY_LED;SPCR=0x5c;//enable SPISPSR=0x00;PORTB|=(1<<DF_CS);//拉高一下,以免开始时因特殊原因DF_CS是低,保证安全PORTB&=~(1<<DF_CS);send_SPI(MAIN_TO_BUFFER1);//8 opcodesend_SPI(0x00);//4 bits reserved and 4 bits addresssend_SPI(0x00);//7 bits address and 1 don't caresend_SPI(0x00);//8 don't carePORTB|=(1<<DF_CS);delay_ms(1);timer2_init();while(!(PINC&0x02) && play_page_counter<2048){//next_page_to_idle_bufferPORTB&=~(1<<DF_CS);if(play_buffer_number==1)//8 bits opcodesend_SPI(MAIN_TO_BUFFER2);elsesend_SPI(MAIN_TO_BUFFER1);send_SPI((unit8)((play_page_counter+1)>>7));//4 bits reserved and 4 bits addressssend_SPI((unit8)((play_page_counter+1)<<1));//7 bits address send_SPI(0x00);//8 bits don't carePORTB|=(1<<DF_CS);play_buffer_counter=0;PORTB&=~(1<<DF_CS);if(play_buffer_number==1)send_SPI(BUFFER1_READ);elsesend_SPI(BUFFER2_READ);send_SPI(0x00);send_SPI(0x00);send_SPI(0x00);send_SPI(0x00);while(play_buffer_counter<264){if(updata_OCR)//要求更新NEW_OCR {int i;send_SPI(0xFF);for(i=80;i>0;i--)NOP();NEW_OCR=SPDR;updata_OCR=0;play_buffer_counter++;}}PORTB|=(1<<DF_CS);if(play_buffer_number==1)play_buffer_number++;elseplay_buffer_number--;play_page_counter++;}SPCR=0x00;//disable SPITCCR2=0x00;OCR2=0xFF;//disable timer2over_times=0;play_buffer_number=1;updata_OCR=0;play_buffer_counter=0;play_page_counter=0;//参数初始化PORTA|=~PLAY_LED;}void main(void){init_devices();while(1){if(!(PINC&0x01))//PC0接录音键{record();}if(!(PINC&0x02))//PC2接放音键{playback();}}}项目测试结果以及相关分析第一次项目测试:语音信号能够写入,也能读出,蜂鸣器只发出嘀嘀的声音,分析:信号的读出与读出没有问题,问题可能出现在两个地方,第一,语音信号是否正确写出了,是不是没有时间写入完整的数据,第二,读出的信号是不是写入的那部分期望的信号,还是随机信号,毕竟没有电平高低的明显变化。