单片机原理课程设计公交车报站.docx

上传人:b****4 文档编号:11863371 上传时间:2023-04-06 格式:DOCX 页数:12 大小:803.84KB
下载 相关 举报
单片机原理课程设计公交车报站.docx_第1页
第1页 / 共12页
单片机原理课程设计公交车报站.docx_第2页
第2页 / 共12页
单片机原理课程设计公交车报站.docx_第3页
第3页 / 共12页
单片机原理课程设计公交车报站.docx_第4页
第4页 / 共12页
单片机原理课程设计公交车报站.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

单片机原理课程设计公交车报站.docx

《单片机原理课程设计公交车报站.docx》由会员分享,可在线阅读,更多相关《单片机原理课程设计公交车报站.docx(12页珍藏版)》请在冰豆网上搜索。

单片机原理课程设计公交车报站.docx

单片机原理课程设计公交车报站

单片机原理课程设计

 

公交车语音报站系统设计

 

班级:

_______

学号:

_______

姓名:

_______

同组:

_______

日期:

_______

 

一.工作原理

1.人类语音基本概念

语音即语言的声音,是语言符号系统的载体。

它由人的发音器官发出,负载着一定的语言意义。

语言依靠语音实现它的社会功能。

语言是音义结合的符号系统,语言的声音和语言的意义是紧密联系着的,因此,语言虽是一种声音,但又与一般的声音有着本质的区别.

语音是人类发音器官发出的具有区别意义功能的声音,不能把语音看成纯粹的自然物质;语音是最直接地记录思维活动的符号体系,是语言交际工具的声音形式。

语音的物理基础主要有音高、音强、音长、音色,这也是构成语音的四要素。

音高指声波频率,即每秒钟振动次数的多少;音强指声波振幅的大小;音长指声波振动持续时间的长短,也称为"时长";音色指声音的特色和本质,也称作"音质"。

人对声音的感觉有一定频率范围,大约每秒钟振动20次到20000次范围内,即频率范围是20Hz--20000Hz,如果物体振动频率低于20Hz或高于20000Hz人耳就听不到了,高于20000Hz的频率就叫做超声波,而低于20Hz的频率就叫做次声波。

所以说不是所有物体的振动所发出的声音我们都能听到的。

另外要能听到声音也必须有传播声音的介质。

2.录音、放音基本原理:

ISD1420语音芯片内部结构框图

前置放大器对通过麦克风送入的语音信号进行放大,并受自动增益电路AGC控制,保证输入信号大小变化时不失真。

前置放大器输出的信号可通过电容耦合送入信号放大器,也可通过电容耦合直接输入其他模拟信号,如录音机等的线路输出,输入信号典型值为50mv(峰值)。

信号放大器输出送入滤波器,在采样时钟和模拟收发器控制下进行比较采样,存入不易失真模拟存贮器单元。

(录音)

录入信号输出经滤波器,输出放大器送到扬声器引脚SP+、SP-,从而完成语音的重放。

(放音)

地址线经缓存器、译码器控制管理存储单元,控制逻辑控制芯片的录、放和触发控制以及输出指示等。

内部时钟及定时器、采样时钟为采样等提供时钟脉冲信号。

3.基本设计思想:

(1)手动控制方式,通过B1区按键REC录制四个站的站名,通过按键PLAY、

PLAYL放音

(2)MCU控制方式,通过G6区8个按键控制录放音:

1-4号键录制每个站站名各

5秒;然后通过5-8号键分别放出,放音内容分别对应1-4号键录制的四个站站名。

二.硬件电路设计

1.主要部件的选用及工作原理

ISD1420语音存储模块

IISD1420封装引脚步图

电源(VCCA,VCCD)芯片内部的模拟和数字电路使用不同的电源总线,并且分别引到外封装上,这样可使噪声最小。

模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应量靠近芯片。

地线(VSSA,VSSD)芯片内部的模拟和数字电路也使用不同的地线,这两个脚最好在引脚焊盘上相连。

录音(/REC)低电平有效。

只要/REC变低(不管芯片处在节电状态还是正在放音),芯片即开始录音。

录音期间,/REC必须保持为低。

/REC变高或内存录满后,录音周期结束,芯片自动写入一个信息结束标志(EOM),使以后的重放操作可发及时停止。

之后芯片自动进入节电状态。

注:

/REC的上升沿有50毫秒防颤,防止芯片自动进入节电状态。

边沿触发放音(/PLAYE)此端出现下降沿时,芯片开始放音。

放音持续到EOM标志或内存结束,之后芯片自动进入节电状态。

开始放音后,可以释放/PLAYE。

电平触发放音(/PLAYL)此端出现下降沿时,芯片开始放音。

放音持续至端回到高电平,遇到EOM标志,或内存结束。

放音结束后芯片自动进入节电状态。

注:

放音过程中当遇到EOM或内存结束时,如果/PLAYE或/PLAYL仍处在高电平,芯片虽然也进入节电状态(内部震荡器和时钟停止工作),但是由于芯片没有对/PLAYE和/PLAYL的上升沿进行消颤,随后在这两个引脚上出现的下隆沿(例如释放按键时的抖动)都会触发放音。

录音指示(/RECLED)处于录音状态时,此端为低,可驱动LED。

此外,放音遇到EOM标志时,此端输出低电平脉冲。

话筒输入(MIC)此端边至片内前置放大器。

片内自动增益控制电路(AGC)将前置增益控制在-15至24dB。

外接话筒应通过串联电容耦合到此端。

耦合电容值和此端的10KΩ输入阻抗决定了芯片频带的低频截止点。

话筒参考(MICREF)此端是前置放大器的反向输入。

当以差分形式连接话筒时,可减小噪声,提高共模抑制比。

自动增益控制(AGC)AGC动态调节器整前置境益以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量(从耳语到喧哗嚣声)时失真都能保持最小。

响应时间取决于此端的5KΩ输入阻抗和外接的对地电容(即线路图中的C6)的时间常数。

释放时间取决于此端外接的并联对地电容和电阻(即线路图中R5和C6)的时间常数。

470KΩ和4.7uF的标称值在绝对大多数场合下可获得满意的效果。

模拟输出(ANAOUT)前置放大器输出。

前置电压增益取决于AGC端的电平。

模拟输入(ANAIN)此端即芯片录音的输入信号。

对话筒输入来说,ANAOUT端应通过外接电容连至本端。

该电容和本端的3KΩ输入阻抗给出了芯片频带的附加低端截止频率。

其它音源可通过交流耦合直接连至本端。

喇叭输出(SP+、SP-)这对输出端能驱动16Ω以上的喇叭。

单端使用时必须在输出端和喇叭间接耦合电容,而双端输出既不用电容又能将功率提高4倍。

录音时,它们都呈高阻态;节电模式下,它们保持为低电平。

外部时钟(XCLK)此端内部有下拉元件,不用时应接地。

芯片内部的采样时钟在出厂前已调校,保证了标称的最小录音时间。

商业级芯片在整个温度各电压范围内,频率变化在+2.25%内,并保证最小录放时间,所以有些芯片的录放时间比标称的值稍大。

工业级芯片在整个温度和电压范围内,频率变化在+5%内,建议使用稳压电源。

若要求更高精度或系统同步,可从本端输入外部时钟,频率如表2-1“外部钟频”所示。

由于内部的防混淆及平滑滤波器已设定,帮上述持荐的时钟频率不应改变。

输入时钟的占空比无关紧要,因为内部首先进行了分频。

地址(A0~A7)地址端有两个作用,取决于最高(MSB)两位A7、A6的状态。

当A7或A6有一个为0时,所有输入均释放为地址位,作为当前录放操作的起始地址。

地址端只用输入,不输出操作过程的内部地址信息。

地址在/PLAYE、/PLAYL、或/REC的下降沿锁存。

2.电路图

三.汇编语言程序设计

1.程序流程图

2.汇编语言设计

NAMEISD1420;语音模块操作子程序

PUBLICISD_INIT,ISD_MODE,ISD_REC,ISD_PLAY,ISD_STOP

;ISD1420连接设置

RECBITP3.2;录音接口

PLAYEBITP3.3;电平触发放音接口

PLAYLBITP3.4;边沿触发放音接口

ISDCOMMXDATA0F000H;录放音地址/操作模式输入地址,0F000H是接到CS1上的地址

ISD1420_CODESEGMENTCODE

RSEGISD1420_CODE

;录音子程序

;A--存放操作方式设置值,R7--录几秒

ISD_INIT:

SETBREC;语音模块初始化,关闭录放音功能

SETBPLAYE

SETBPLAYL

MOVDPTR,#ISDCOMM

CLRA

MOVX@DPTR,A;允许手动录放音,当A6,A7为高时,无法手动放音

RET

;操作模式,A-操作模式设置值

ISD_MODE:

PUSHACC

LCALLISD_STOP;语音模块初始化,将REC,PLAYE,PLAYL置位,并设置操作模式

MOVDPTR,#ISDCOMM;设置操作模式:

分段录音

POPACC

MOVX@DPTR,A;设置操作模式命令在A中

CLRPLAYL;给一个上升沿,锁存命令

NOP

NOP

NOP

SETBPLAYL

RET

;录音

ISD_REC:

MOVDPTR,#ISDCOMM;设置录音起始地址

MOVX@DPTR,A

CLRREC;REC变低,即开始录音

RET

;放音子程序

;A--放哪段音

ISD_PLAY:

PUSHACC

CALLISD_STOP;暂停之前的录放音操作

POPACC

MOVDPTR,#ISDCOMM;设置放音起始地址

MOVX@DPTR,A

CLRPLAYE;开始放音,边沿放音模式

NOP

SETBPLAYE

RET

;停止录放音

ISD_STOP:

CLRPLAYL;一个负脉冲停止放音

NOP

SETBPLAYL

LCALLDelay50ms

SETBREC;关闭所有操作指令

SETBPLAYE

MOVDPTR,#ISDCOMM

CLRA

MOVX@DPTR,A;允许手动录放音,当A6,A7为高时,无法手动放音

RET

;延时

Delay50ms:

PUSH06H

PUSH07H

MOVR6,#100

Delay50ms_1:

MOVR7,#200

DJNZR7,$

DJNZR6,Delay50ms_1

POP07H

POP06H

RET

MAIN_CODESEGMENTCODE

STACKSEGMENTIDATA

;ISD1420

ISD1420_AD1EQU00H;1号键录放音起始地址,每次录音5s

ISD1420_AD2EQU10H;2号键录放音起始地址

ISD1420_AD3EQU20H;3号键录放音起始地址

ISD1420_AD4EQU25H;4号键录放音起始地址

RSEGSTACK

DS20H;32BytesStack

CSEGAT0000H;定位0

LJMPSTART

RSEGMAIN_CODE;开始程序段

START:

MOVSP,#STACK-1

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

LJMPKEY_REC

KEY4:

MOVA,#ISD1420_AD4

LJMPKEY_REC

KEY_REC:

MOVR7,#20;录音时间长度,5s

LCALLISD_REC;调用录音子程序

KEY_REC1:

LCALLDelay_025S;延时

JBF0,KEY_REC2;检测按键是否有键按下

DJNZR7,KEY_REC1;录音时间,根据R7的值决定

LCALLISD_STOP;停止录音

KEY_REC2:

RET

;放音子程序

KEY5:

MOVA,#ISD1420_AD1;放音首地址

LJMPKEY_PLAY

KEY6:

MOVA,#ISD1420_AD2

LJMPKEY_PLAY

KEY7:

MOVA,#ISD1420_AD3

LJMPKEY_PLAY

KEY8:

MOVA,#ISD1420_AD4

LJMPKEY_PLAY

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

RET

ScanKey1:

ACALLScanKey2

JNCScanKey4

ScanKey3:

MOVB,A

ACALLDelay20ms;消抖动

ACALLDelay20ms

ACALLScanKey2

JNCScanKey4

CJNEA,B,ScanKey3

ScanKey5:

MOVA,P1

CJNEA,#0FFH,ScanKey5

SETBC

RET

ScanKey2:

CLRA

JNBP1.0,ScanKey21

INCA

JNBP1.1,ScanKey21

INCA

JNBP1.2,ScanKey21

INCA

JNBP1.3,ScanKey21

INCA

JNBP1.4,ScanKey21

INCA

JNBP1.5,ScanKey21

INCA

JNBP1.6,ScanKey21

INCA

JNBP1.7,ScanKey21

CLRC

RET

ScanKey21:

SETBC

RET

Delay20ms:

MOVR6,#10

Delay1:

MOVR7,#100

DJNZR7,$

DJNZR6,Delay1

RET

;延时0.25s

Delay_025S:

PUSH05H

PUSH06H

PUSH07H

MOVR5,#6

DL1S_1:

MOVR6,#100

DL1S_2:

MOVR7,#200

DJNZR7,$

DJNZR6,DL1S_2

DJNZR5,DL1S_1

ACALLScanKey

JNCDL1S_3

SETBF0;F0有键按下标志,F0=1,有键按下

DL1S_3:

POP07H

POP06H

POP05H

RET

END

四.结束语

作为一名电气自动化专业的大二学生,我觉得做课程设计是十分有意义的,而且是十分必要的。

在已度过的大学时间里,我们大多数接触的是专业课。

我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?

如何把我们所学的专业基础课理论知识运用到实践中去呢?

我想这次的课程设计对我们就是一种很好的锻炼。

在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。

在设计中,由于语音存储模块的存储空间有限,使四个站录音放音时间很短和分配不均,我们通过修改录音放音的起始地址,解决了分配不均的问题,至于录放音的时间与ISD1420语音模块的存储空间有关,所以没有延长其时间。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:

Protel画图、模拟数字电路知识等。

虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

这次课程设计终于完成了,整个设计我基本上还满意,由于水平有限,难免有错误,还望老师批评指正。

希望答辩时,老师多提问些问题,由此我可以更好地了解到自己的不足,以便课后加以补偿,同时也对给过我帮助的所有同学和各位指导老师表示衷心的感谢!

五.参考文献

[1]李全利.单片机原理及应用技术[M].北京:

高等教育出版社,2009

[2]闫飞.用ISD1420P制作语音自动播放器[J].北京:

电子报,2002年4月21日第12版

[3]胡宴如,耿苏燕.模拟电子技术基础[M].北京:

高等教育出版社,2008

[4]陈洪财.单片机C语言和汇编语言实用开发技术[M].哈尔滨工业出版社,2008

[5]柳春锋.Protel99SE实用教程[M].北京:

高等教育出版社,2007

[6]杨志忠.数字电子技术[M].北京:

高等教育出版社,2008

[7]李学海.PIC单片机实用教程—提高篇[M].北京航空航海大学出版社,2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1