单片机原理及应用报告Word格式文档下载.docx
《单片机原理及应用报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用报告Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
放音子程序:
延时250毫秒子程序:
四、实验步骤及现象
1、主线连线说明
STARES598PCI
B1区:
REC
——
A3区:
P3.2(INT0)录音控制
PLAYE
P3.3(INT1)电平放音控制
PLAYL
P3.4(T0)触发放音控制,下降沿触发
CP
A3区:
CS1
G6区:
JP74
JP51(P1)
2、将JP13,JP14,JP15跳向“MANUAL”,即手动录、放音。
三个控制按键(在B1区左边)REC(录音)、PLAYE(电平放音)和PLAYL(边沿放音)控制录音和放音。
3、将JP13,JP14,JP15跳向“MCU”,单片机控制,运行演示程序,1—4号键录音,5—8号键放音。
4、演示程序
ISD1420语音模块实验说明:
实验目的:
1.掌握录音,放音的基本控制
2.掌握分段录音,放音控制
实验内容:
由MCU控制,通过G6区8个按键控制录、放音,
每个按键控制录放音各5秒
录音按键:
G6区1,2,3,4号键分别可录音5秒;
录音时,
B1区DS6发光管亮
放音按键:
G6区5,6,7,8号键分别可放音5秒,与放音
内容与1,2,3,4号键相对应
接线说明:
按键:
G6区,8个按键,顺序连接到P1口,例如P1.0
对应1号键
ISD1420:
B1区-->
A3区
REC--->
P3.2(INT0)
PLAYE->
P3.3(INT1)
PLAYL->
P3.4(T0)
CP---->
CS1(0F000H)片选地址
*******************************************************
ISD1420_AD1EQU00H;
1号键录放音起始地址,每次录音5s
ISD1420_AD2EQU28H;
2号键录放音起始地址
ISD1420_AD3EQU50H;
3号键录放音起始地址
ISD1420_AD4EQU78H;
4号键录放音起始地址
RECBITP3.2;
录音接口
PLAYEBITP3.3;
电平触发放音接口
PLAYLBITP3.4;
边沿触发放音接口
ISDCOMMXDATA0F000H;
录放音地址/操作模式输入地址,0F000H是接到CS1上的地址
ORG0
LJMPSTART
ORG100H
START:
LCALLMainInit;
主程序初始化
Main:
LCALLScanKey;
扫描按键
JNCMain
Main1:
LCALLKeyRun;
按键处理
JNBF0,Main;
是否有新的键按下
CLRF0;
清按键标志
SJMPMain1
JMPMAIN;
循环进行实验内容介绍与ISD1420功能测试
MainInit:
CLRF0;
有键按下标志位,清0-无键按下
MOVP1,#0FFH
LCALLISD_INIT;
ISD1420初始化
RET
********************************
录放音子程序
KEY1:
MOVA,#ISD1420_AD1;
录音首地址
LJMPKEY_REC
KEY2:
MOVA,#ISD1420_AD2
LJMPKEY_REC
KEY3:
MOVA,#ISD1420_AD3
KEY4:
MOVA,#ISD1420_AD4
KEY_REC:
MOVR7,#20;
录音时间长度,5s
LCALLISD_REC;
调用录音子程序
KEY_REC1:
LCALLDelay_025S;
延时
JBF0,KEY_REC2;
检测按键是否有键按下
DJNZR7,KEY_REC1;
录音时间,根据R7的值决定
LCALLISD_STOP;
停止录音
KEY_REC2:
RET
放音子程序
KEY5:
放音首地址
LJMPKEY_PLAY
KEY6:
KEY7:
KEY8:
KEY_PLAY:
MOVR7,#20
LCALLISD_PLAY;
调用录用子程序
KEY_PLAY1:
LCALLDelay_025S;
用于进度显示的时间参照
JBF0,KEY_PLAY2;
DJNZR7,KEY_PLAY1
KEY_PLAY2:
RET
KeyRun:
MOVDPTR,#KeyTab;
有键按下,跳到相应处理程序
MOVA,B
RLA
JMP@A+DPTR
KeyTab:
SJMPKEY1;
1--4号键,分别各录音5秒,ISD1420可录音20秒
SJMPKEY2
SJMPKEY3
SJMPKEY4
SJMPKEY5;
5--8号键,对应分别放音各5秒
SJMPKEY6
SJMPKEY7
SJMPKEY8
按键扫描
ScanKey:
MOVA,P1;
键扫描
CJNEA,#0FFH,ScanKey1
ScanKey4:
CLRC
ScanKey1:
ACALLScanKey2
JNCScanKey4
ScanKey3:
MOVB,A
ACALLDelay20ms;
消抖动
ACALLDelay20ms
ACALLScanKey2
CJNEA,B,ScanKey3
ScanKey5:
MOVA,P1
CJNEA,#0FFH,ScanKey5
SETBC
ScanKey2:
CLRA
JNBP1.0,ScanKey21
INCA
JNBP1.1,ScanKey21
JNBP1.2,ScanKey21
JNBP1.3,ScanKey21
JNBP1.4,ScanKey21
JNBP1.5,ScanKey21
JNBP1.6,ScanKey21
JNBP1.7,ScanKey21
CLRC
ScanKey21:
SETBC
Delay20ms:
MOVR6,#10
Delay1:
MOVR7,#100
DJNZR7,$
DJNZR6,Delay1
;
延时0.25s
Delay_025S:
PUSH05H
PUSH06H
PUSH07H
MOVR5,#6
DL1S_1:
MOVR6,#100
DL1S_2:
MOVR7,#200
DJNZR6,DL1S_2
DJNZR5,DL1S_1
ACALLScanKey
JNCDL1S_3
SETBF0;
F0有键按下标志,F0=1,有键按下
DL1S_3:
POP07H
POP06H
POP05H
录音子程序
A--存放操作方式设置值,R7--录几秒
ISD_INIT:
SETBREC;
语音模块初始化,关闭录放音功能
SETBPLAYE
SETBPLAYL
MOVDPTR,#ISDCOMM
CLRA
MOVX@DPTR,A;
允许手动录放音,当A6,A7为高时,无法手动放音
操作模式,A-操作模式设置值
ISD_MODE:
PUSHACC
LCALLISD_STOP;
语音模块初始化,将REC,PLAYE,PLAYL置位,并设置操作模式
MOVDPTR,#ISDCOMM;
设置操作模式:
分段录音
POPACC
设置操作模式命令在A中
CLRPLAYL;
给一个上升沿,锁存命令
NOP
录音
ISD_REC:
MOVDPTR,#ISDCOMM;
设置录音起始地址
MOVX@DPTR,A
CLRREC;
REC变低,即开始录音
A--放哪段音
ISD_PLAY:
暂停之前的录放音操作
设置放音起始地址
MOVX@DPTR,A
CLRPLAYE;
开始放音,边沿放音模式
停止录放音
ISD_STOP:
CLRPLAYL;
一个负脉冲停止放音
LCALLDelay50ms
SETBREC;
关闭所有操作指令
Delay50ms:
PUSH06H
Delay50ms_1:
MOVR7,#200
DJNZR6,Delay50ms_1
END
五、结论及心得
1、结论
JP13、JP14、JP15:
设置操作模式,MCU:
CPU控制方式;
MANUAL:
手动(REC、PLAYL、PLAYE)控制方式。
REC:
录音按键,低电平有效;
PLAYE:
电平放音按键,低电平有效,直到放音内容结束停止放音;
PLAYL:
边沿放音按键,下降沿有效,并在下一个上升沿停止放音。
MCU控制方式,通过G6区8个按键控制录、放音:
2、心得体会
首先,通过这次课程设计,我觉得做课程设计是十分有意义的,而且是十分有必要的。
我们在课堂上学的仅仅学的是纯理论的知识,如何去锻炼我们的实践能力和动手能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的平台。
其次,通过这次课程设计,使我对所学的单片原理与应用这本书有了更加系统的认知,充分的将理论知识与实际运用结合在了一起。
比如说实验中的运用的基本传送指令、赋值指令、空操作指令、堆栈指令等,这些知识的运用了使我对这些有了更加深入的了解,为我以后从事设计工作打下了坚实的基础。
这次课程设计的顺利的完成了,在课程设计中遇到了一些问题,最后在老师的辛勤指导下,终于游刃有解。
同时,我在老师身上学到了许多以前没有学到的很多使用的知识,在此我表示感谢!
同时,对给与我帮助的所有同学以及指导老师再次表示忠心的感谢!
六、参考文献
李全利单片机原理及接口技术.北京:
高等教育出版社,2009.