072212207 马天琴 基于51单片机的数字频率计的研究.docx
《072212207 马天琴 基于51单片机的数字频率计的研究.docx》由会员分享,可在线阅读,更多相关《072212207 马天琴 基于51单片机的数字频率计的研究.docx(28页珍藏版)》请在冰点文库上搜索。
![072212207 马天琴 基于51单片机的数字频率计的研究.docx](https://file1.bingdoc.com/fileroot1/2023-5/24/6ac05a8a-f986-458e-9cf2-0123fcf178db/6ac05a8a-f986-458e-9cf2-0123fcf178db1.gif)
072212207马天琴基于51单片机的数字频率计的研究
基于单片机的语音识别系统设计
毕业论文
系部:
电子工程系
学生姓名:
嵇得志
专业班级:
电信08C2
学号:
082221242
指导教师:
王栋
2010年3月10日
声明
本人所呈交的,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。
除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
【摘要】
系统采用凌阳SPCE061A单片机作为语音识别系统的主控芯片。
通过硬件电路设计和软件代码部分成功的设计并实现了一种具有语音识别功能、语音提示(语音合成)及语音回放(语音编码记录)功能的嵌入式语音识别系统。
语音识别模型采用(DHMM)离散隐马尔可夫模型,利用Baum-welth重估算法、前向后向算法、viterbi算法来完成语音模板的训练和语音识别的任务。
【关键词】:
SPCE061A单片机;语音识别系统;语音识别模型
【Abstract】
ThesystemselectsSPCE061AasMCUofspeechrecognitionsystem.Throughthehardwarecircuitdesignandthesoftwarecode,designandrealizetheembeddedspeechrecognitionsystemwhichcontainsfunctionsofspeechrecognition,voiceprompt(speechsynthesis)andaudioplayback(speechcodingrecord).Thediscretehiddenmarkovmodel(DHMM)isadopted,Baum-Welthreestimationalgorithm,forward-backwardprocedureandviterbialgorithmisutilizedtotrainandrecognizethespeechsignal.
【KEYWORD】:
SPCE061AMCU;SpeechRecognitionSystem;SpeechRecognitionModel
目录
一、引言1页
(一)选题依据1页
(二)单片机简述1页
(三)语音识别系统概述2页
(四)基本设计原理2页
二、硬件系统设计3页
(一)系统硬件的构成3页
(二)原理图设计3页
(三)AT89C51单片机及其引脚说明3页
(四)信号调理及放大整形模块5页
(五)时基信号产生电路6页
(六)显示模块7页
三、软件设计10页
(一)程序流程图10页
(二)汇编语言源程序11页
四、总结20页
五、参考文献20页
六、致谢20页
一、引言
(一)选题依据:
近30年以来,单片机迅速发展,速度之快令人惊讶,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。
在智能仪器仪表上的应用,单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大;用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在;现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等;单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
通过这个毕业设计的训练,可以使我更好的掌握单片机,领会它的魔力,既学会了动手操作技能,又增加了自己对未来的信心。
(二)单片机简述
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
单片机应用系统可以分为:
(1)最小应用系统是指能维持单片机运行的最简单配置的系统。
这种系统成本低廉,结构简单,常构成一些简单的控制系统。
片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.
(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小.(3)典型应用系统是指单片机要完成工业测控功能所必须的硬件结构系统。
虽然目前单片机的品种很多,但其中最具代表性的当属Intel公司的MCS-51单片机系列。
MCS-51系列的典型芯片是80C51。
为此,众多的厂商都介入了以80C51为代表的8位单片机的发展,如Philips、Siemens(Infineon)、Dallas、ATMEL等公司,我们把这些公司生产的与80C51兼容的单片机统称为80C5l系列。
特别是在近年来,80C51系列又有了许多发展,推出厂一些新产品,主要是改善单片机的控制功能,如内部集成了高速I/O口、ADC、PWM、WDT等,以及低电压、微功耗、电磁兼容、串行扩展总线、控制网络总线性能等。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机,如手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
(三)语音识别技术概述
语音识别技术就是让机器通过识别和理解把语音信号转变为相应的文本或命令的技术。
语音识别是一门交叉学科,正逐步成为信息技术中人机接口的关键技术,语音识别技术与语音合成技术的结合,使人们能够甩掉键盘,通过语音命令进行操作。
近年来语音学研究的深入和数字信号处理软硬件技术的发展,语音技术的应用己经逐步具备走出实验室,服务于社会的能力。
尤其在中小字表孤立词语音识别技术已基本成熟,逐渐开始应用于家电产品、智能玩具等对识别率要求不是极其严格的领域。
语音识别技术将人工智能赋予计算机,使它能够听懂人类语言,并迅速把起声音变成文字,真正实现人际交流。
语音产品发展到今天,衡量标准日趋一致:
连续语音还是非连续语音连续音才自然,输入速度也比较快;是特定语音还是非特定语音特定语音往往要长时间训练,也无法在公共场合使用,非特定语音技术不管男女老幼的声音都可以识别,即便是有轻微的口音也无妨;词条量的大小虽然日常生活中常用的词汇最多不超过一两万个,但每个专业的术语不少于几万条。
(四)基本设计原理
基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。
它以测量周期的方法对正弦波、方波、三角波的频率进行自动的测量。
所谓“频率”,就是周期性信号在单位时间(1s)内变化的次数。
若在一定时间间隔T内测得这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。
其中脉冲形成电路的作用是将被测信号变成脉冲信号,其重复频率等于被测频率fx。
时间基准信号发生器提供标准的时间脉冲信号,若其周期为1s,则门控电路的输出信号持续时间亦准确地等于1s。
闸门电路由标准秒信号进行控制,当秒信号来到时,闸门开通,被测脉冲信号通过闸门送到计数译码显示电路。
秒信号结束时闸门关闭,计数器停止计数。
由于计数器计得的脉冲数N是在1秒时间内的累计数,所以被测频率fx=NHz。
二、硬件系统设计
(一)系统硬件的构成
本频率计的数据采集系统主要元器件是单片机AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。
可分为以下几个模块:
放大整形模块、秒脉冲产生模块、换档模拟转换模块、单片机系统、LCD显示模块。
各模块关系图如图
(二)原理图设计
该系统工作的总原理图如图2-2所示
图2-2数字频率计系统工作原理图
(三)AT89C51单片机及其引脚说明
本系统采用凌阳SPCE061A作为主控芯片,并根据功能需求设计嵌入式语音识别系统的硬件。
由于这是一款包含DSP功能并集成了户A/D,D/A等一系列功能的语音处理专用SOC,模块电路、外扩存储FLASH、LED显示电路、通信模块、功放和喇叭输出模块等。
录入的语音信号首先经过预处理,包括语音信号的采样、反混叠滤波、语音增强,目的是为了补偿语音谱的固有衰落,消除口唇辐射的影响,其中最重要的步骤是端点检测。
接下来是特征提取,用以从语音信号波形中提取一组或几组能够描述语音信号特征的参数。
参数的选择直接关系着语音识别系统识别率的高低。
特征提取之后的数据一般分为两个步骤,第一步是系统“学习”或“训练”阶段,这一阶段的任务是构建参考模式库,词表中每个词对应一个参考模式,它由这个词重复发音多遍,再经特征提取和某种训练中得到。
第二是“识别”或“测试”阶段,按照一定的准则求取待测语音特征参数和语音信息与模式库中相应模板之间的失真测度,最匹配的就是识别结果。
(四)信号调理及放大整形模块放大整形系统包括衰减器、跟随器、放大器、施密特触发器。
它将正弦输入信号Vx整形成同频率方波Vo,幅值过大的被测信号经过分压器分压送入后级放大器,以避免波形失真。
由运算放大器构成的射级跟随器起阻抗变换作用,使输入阻抗提高。
同相输入的运算放大器的放大倍数为(R1+R2)/R1,改变R1的大小可以改变放大倍数。
系统的整形电路由施密特触发器组成,整形后的方波送到闸门以便计数。
由于输入的信号幅度是不确定、可能很大也有可能很小,这样对于输入信号的测量就不方便了,过大可能会把器件烧毁,过小可能器件检测不到,所以在设计中采用了这个信号调理电路对输入的波形进行阻抗变换、放大限幅和整形,信号调理部分电路具体实现电路原理图和参数如下图2-3所示:
图2-3信号频率计的放大整形电路
(五)时基信号产生电路:
1.CD4013---双上升沿D触发器
引脚及功能见如下图2-4、图2-5:
CD4013由两个相同的、相互独立的数据型触发器构成。
每个触发器有独立的数据置位复位时钟输入和Q及Q非输出。
此器件可用作移位寄存器,且通过将Q非输出连接到数据输入,可用作计数器和触发器。
在时钟上升沿触发时,加在D输入端的逻辑电平传送到Q输出端。
置位和复位或复位线上的高电平完成。
图2-5CD4013芯片引脚用功能图
图2-4CD4013芯片
2.CD4060---14位二进制串行计数器
引脚及功能见如图2-6所示:
CD4060由一震荡器和14极二进制串行计数器位组成,震荡器的结构可以是RC或晶振电路。
CR为高电平时,计数器清零且振荡器使用无效,所有的计数器位均为主从触发器CP1非(和CP0)的下降沿计数器以二进制进行计数,在时钟脉冲线上使用施密特触发器对时钟上升和下降时间无限制。
图2-6CD4060芯片引脚用功能图
3.时基信号的产生原理
本电路采用32768HZ晶体震荡器,利用CD4060芯片经过14级分频得到2HZ的信号(32768/214),在经过CD4013双D触发器经过二分频得到0.5HZ的方波,即输出秒脉冲信号使单片机进行计数。
图2-7秒脉冲产生电路
(六)1602液晶LCD显示模块
液晶屏现实模块与数码管相比,它显得更为专业、漂亮。
液晶显示屏以其微功耗、体积小、显示内容丰富、超薄轻巧、使用方便等诸多优点,在仪器仪表、电子设备、家用电器等低功耗应用系统中得到越来越广泛的应用,使这些电子设备的人机界面变得越来越直观形象,目前已广泛应用于电子表、计算器、IC卡电话机、液晶电视机、便携式计算机、掌上型电子玩具、复印机、传真机等许多方面。
本例使用带背光的液晶模块TC1602EL,TC1602EL采用标准的16脚接口,其引脚功能如下:
第1脚:
VSS为电源地,接GND。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个1K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低点平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7-14脚:
D0-D7为8位双向数据线。
1602液晶模块内带标准字库,内部的字符发生存储器(CGROM)已经存储了192个
5×7点阵字符,32个5×10点阵字符。
另外还有字符生成RAM(CGROM)512字节,供用户自定义字符。
如下图2-8所示:
图2-8CGROM和CGRAM中字符代码与字符图形对应关系
这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母A的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母A。
1602液晶模块内部的控制器共有11条控制指令,如图2-9所示:
图2-91602液晶模块内部的控制器共有11条控制指令
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)。
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL:
高电平时为8位总线,低电平时为4位总线)。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-10是1602的内部显示地址。
图2-101602的内部显示地址
VDD上升到4.5V后等待>15
电源开
↓
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
000011××××
↓
↓等待>4.1ms
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
000011××××
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
000011××××
↓等待>100us
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
000011NF××
↓检查忙标志或延时40us
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
00000010××
↓检查忙标志或延时40us
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
0000000001
↓检查忙标志或延时40us
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
00000001I/DS
↓检查忙标志或延时1.64
初始化结束
↓检查忙标志或延时40
图2-11八位接口初始化流程图
三、软件设计
(一)程序流程图
图3-1数字频率计程序流程图
(二)汇编语言源程序
RSBITP2.0;P2.0脚接RS端
RWBITP2.1;P2.1脚接R_W端
EBITP2.2;P2.2脚接E端
ORG0000H
LJMPMAIN
ORG002BH
LJMPIT1
MAIN:
MOVP0,#01H;清除屏幕
ACALLENABLE
MOVP0,#01H;清除屏幕
ACALLENABLE
MOVP0,#01H;清除屏幕
ACALLENABLE
MOVP0,#38H;8位点阵方式
ACALLENABLE
MOVP0,#0cH;开显示
ACALLENABLE
MOVP0,#06H;移动光标
ACALLENABLE
MOVP0,#80H;显示位置
ACALLENABLE
MOVP0,#80h;第一行的位置
CALLENABLE
MOVDPTR,#DATE
CALLWRITE3
MOVP0,#0C0H;第二行的位置
CALLENABLE
MOVSP,#7FH
CLRCY
MOVR6,#00
MOVR2#00
MOVR3,#00
MOVTMOD,#15H
MOVTL0,#00H
MOVTH0,#00H
MOVTHI,#high(65536-50000)
MOVTL1,#low(65536-50000)
CHAL:
SETBTR1
SETBTR0
MOV27h,#00H
CLRC
MOVC,P1.6
MOV27H.0,C
CLRC
MOVC,P1.7
MOV27H.1,C
MOVA,27H
ANLA,#03H
MOV17H,A
CHA:
JBCTF1,JINWEI;溢出进位
JMPCHA
JINWEI:
CLRTR1
MOVTH1,#high(65536-50000)
MOVTL1,#low(65536-50000)
SETBTR1
INCR3
MOVA,R3
CJNEA,#20,CHA
CLRTR0
CLRTR1
MOVR3,#00
MOVR2,TH0
MOVR6,TL0
LCALLZHUAN
LCALLWRITE
MOVTL0,#00H
MOVTH0,#00H
JIPCHAL
ZHUAN:
MOVA,R2
CLRC
MOV20H,#00H
MOV21H,#00H
MOV22H,#00H
MOV24H,#00H
MOV25H,#00H
MOVR3,#10H
NEXT:
RLCA
MOVR2,A
MOVA,20H
ADDCA,20H
DAA
MOV20H,A
MOVA,21H
ADDCA,21H
DAA
MOV21H,A
MOVA,22H
ADDCA,22H
DAA
MOV22H,A
MOVA,R2
DJNZR3,NEXT
MOVA,R6
CLRC
MOVR3,#08H
NEXT1:
RLCA
MOVR6,A
MOVA,24H
ADDCA,24H
DAA
MOV24H,A
MOVA,25H
ADDCA,25H
DAA
MOV25H,A
MOVA,R6
DJNZR3,NEXT1
CLRC
MOVA,24H
ADDCA,20H
DAA
MOV20H,A
MOVA,25H
ADDCA,21H
DAA
MOV21H,A
MOVA,22H
ADDCA,#00H
DAA
MOV22H,A
MOVA,22H
ANLA,#0FH
MOV31H,A
MOVA,22H
MOVA,#0F0H
SWAPA
MOV30H,A
MOVA,21H
ANLA,#0F0H
SWAPA
MOV32H,A
MOVA,21H
ANLA,#0FH
MOV33H,A
MOVA,20H
ANLA,#0F0H
SWAPA
MOV34H,A
MOVA,20H
ANLA,#0FH
MOV35H,A
RET
;**************
;LCD显示
;**************
ENABLE:
CLRRS
CLRRW
CLRE
ACALLDELAY
SETBE
RET
WRITE:
MOV10H,#00H;写数据
MOV11H,#00H
MOV12H,#00H
MOV13H,#