单片机实验报告:简易复读机的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验名称简易复读机的设计与实现
课程名称单片机原理机应用
院系部:电气与电子工程学院专业班级:电子0601学生姓名:赵峰学号:1061230128同组人:无实验台号:
指导教师:梁光胜成绩:
实验日期:2008 年 11月 18 日
华北电力大学
一、实验目的及要求
以凌阳单片机简易61板为主体,设计并制作一台简易复读机。
二、仪器用具
装有μ’nSP ™ IDE 仿真环境的PC 机一台、μ’nSP ™十六位单片机实验箱一个、示波器一台。
三、实验原理
四、实验方法与步骤:
结合“61板”的三个按键完成简易录音、停止和播放功能:
1、KEY1--录音
2、KEY2--停止
3、KEY3--播放
要求播放时能够循环播放。
五、实验结果与数据处理:
复读机结构:
2.程序流程图
2
六、讨论与结论
程序根据按键执行不同程序,当按下“录音”键,则先擦除flash中的内容,修改状态为“录音”,进行录音的初始化。
按下“停止”键,如果当前正在录音,停止录音,把编码队列中待写入的数据写入flash,如果当前正在播放,停止,修改状态为“停止”。
按下“播放”键,判断状态若正在录音,停止,写入数据,写入完成修改状态为“播放”,再进行播放初始化:选择播放地址,读出flash中的数据到译码队列。
以上只完成状态的修改过程,只是执行操作的初始化。真正执行时,判断状态进入不同的执行程序。若状态为“录音”,开始编码,并写入flash。
若为“停止”状态,不进行任何操作。
“播放“状态,若播放未停止,继续读数据填入译码队列;若播放已结束,停止。解码
器从队列取数据进行解码,通过中断服务程序送入DAC通道播放。
通过本实验,本人对复杂程序的理解有了进一步的提高,对单片机有了进一步的了解。对日后的学习,帮助挺大。
实验改进:循环播放
if(SACM_DVR_Status()&0x01) //是否正在播放第0位bit0=1,正在播放中
{
if(SACM_DVR_TestQueue() != Full) //队列不满,满了则入不了队列了
{
Ret=F_FlashRead(Addr); //读出flash中的数据
SACM_DVR_FillQueue(Ret); // 填队列,队列中数据等待播放
Addr += 1;
}
}
删除 else //播放结束
{
SACM_DVR_Stop();
Status = Stop;}