基于 STC89C52 单片机的语音控制小车设计与实现

关键词:STC89C52单片机,语音识别,全桥驱动,小车通过设计一个用单片机控制的语音小车来熟悉模块化编程方法,掌握C语言汇编语言的程序设计和调试方法,并理解单片机的原理、结构、指令;运行模式及应用方法。

随着电子行业的发展,具有语音控制功能的汽车越来越受欢迎,在人们的日常消费生活中扮演着重要的角色。目前,语音控制技术已应用于许多领域。

本文介绍了语音控制小车的概况。在硬件设计方面,本文以凌阳公司的STC89C52单片机为控制核心,以语音小车控制电路板为辅助,设计了小车的动作,完成了电源电路、复位电路、键盘电路、音频输入电路、音频输出电路、无线控制电路等硬件功能模块的设计。在软件方面,采用C语言进行编程,进行语音的“训练”和“识别”,设计了一款具有以下功能的语音控制小车:可根据录制的语音指令控制小车的前进、后退、左转、右转等功能。试验表明,在环境背景噪音不太大、控制者发音清晰的前提下,语音控制小车的语音识别系统可以对特定的语音指令做出智能响应,做出预期的有限动作。

论文首先论证了系统方案,然后阐述了各个单元的软硬件工作原理,介绍了系统的主要组成部分。

关键词:STC89C52单片机,语音识别,全桥驱动器,汽车

1.1.1 选题

通过设计单片机控制的语音控制小车,使学生熟悉模块化编程方法,掌握C语言、汇编语言的编程和调试方法,了解单片机的原理、结构、指令、工作方式和使用方法。

1.1.2. 选题意义

语音识别系统的实用化研究是语音识别研究的一个主要方向。以玩具市场为例,具有高科技含量的电子玩具、智能玩具发展迅速,电子互动、智能玩具已成为玩具行业的主流。我国是玩具生产大国和出口大国,但在高科技玩具的发展上与国外相比还存在较大的差距。因此,及时投入精力,广泛开展这方面的研究,无论对技术创新与应用,还是对社会经济发展都有着十分重要的现实意义。人们长期以来都梦想着通过语音与机器进行交流,让机器听懂你说的话。语音识别技术是使机器通过识别、理解的过程,将语音信号转换成相应的文字或命令的一项高新技术。近二十年来,语音识别技术取得了长足的进步,并开始从实验室走向市场。语音识别功能大大增加了使用玩具的乐趣,使玩具体现出一定的智能,因此已成为大多数电子玩具、智能玩具设计中采用的关键技术。本文采用凌阳单片机设计了一款具有语音识别功能的智能遥控车。 本设计将遥控车由传统的手动遥控器改为语音识别遥控器,融入了先进的语音识别技术。在车的可操控性上,操控者可以用语音来控制车实现预设的动作,从而解放操控者的双手。另外,车与操控者之间还具有一定的交互功能。因此,本研究具有很强的实用性和发展前景。

1.2 语音汽车发展及现状

随着微电子技术、计算机技术、传感器技术的飞速发展,语音控制技术已经应用到社会的各个角落,为人们提供了各种便利。

1、声控玩具车:进一步提高系统的噪声过滤性能和识别精度,利用现有的软件开发独特的语音芯片,集成到遥控器中,制成声控玩具车。

2、可识别主人的看门狗:在此系统基础上扩展说话人识别功能,将软件硬件化并集成在芯片上,将芯片放置于防盗门上,当主人呼叫时,即可开门。

3、实车语音控制系统:在驾驶过程中,其他不方便手动完成的操作,都可以用语音控制系统来实现,这个跟我们的系统很像,但是实车中可能会有很多噪音,所以噪音过滤就成为了最关键的技术。

虽然语音控制技术是一项比较先进的技术,但是语音控制技术在无线传输过程中的质量并不是很好,并且由于无线环境中的背景噪音太大,需要进一步改进。当然,还有其他因素也会影响语音控制功能的表现,具体表现在以下几个方面:

1、时效性强型。从发出指令到执行有一定的延迟,虽然已经尽量减小到最小,但还是很明显。可行的方法是采用高效率的DSP芯片,但从经费和时间上来说,是不允许的。

2. 环境适应性。如果环境嘈杂或者偶尔出现高噪音,可能会出现误识别。这个问题目前还没有有效的解决办法。

3、多人识别。由于每个人的发音都不一样,所以系统仅限于单人识别。如果进行多人识别,识别的时效性会降低,也就是会有较大的延迟。另外对于多人识别目前还没有比较有效、成熟的算法可以参考。

1.硬件解决方案

硬件组成:本系统采用51单片机最小系统电路(复位电路+晶振时钟电路+单片机电源电路)+L298N电机驱动模块+语音识别模块+按钮+5V降压模块。

2. 设计功能

1、单片机型号:STC89C52/51、AT89C52/51、AT89S52/51均可适用。

2、人们可以通过语音识别模块来让小车左转、右转、前进、后退、停止。比如,在语音识别模块正常初始化后,我们说:“前进”;那么小车通过语音识别模块听到判断后就会前进。

3.实物图片

MCU模块设计

单片机是随着微型计算机的发展而产生和发展的。自1975年美国德州仪器公司推出第一台单片机(单片机)TMS-1000以来,单片机技术已成为计算机技术的一个独特分支,其应用领域也越来越广泛,特别是在工业控制中,经常遇到某些物理量的定时采样和控制问题。它在仪器仪表的智能化中也起着极其重要的作用。

如果以8位微控制器的推出为起点,微控制器的发展历史大致可以分为以下几个阶段:

第一阶段(1976-1978年):单片机的探索阶段。Intel公司的MCS-48就是一个代表。MCS-48的推出是工业控制领域的一次探索,其他参与这次探索的公司还有Motorola、Zilog等,都取得了令人满意的成果。这是单片机的诞生时代,“单片机”一词由此而来。

第二阶段(1978-1982年):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善而典型的MCS-51系列单片机。它在以下几个方面为典型的通用总线单片机体系结构奠定了基础。

(1)齐全的外部总线。MCS-51具有经典的8位单片机总线结构,包括8位数据总线、16位地址总线、控制总线以及具有多机通信功能的串行通信接口。

(2)CPU外围功能单元集中管理模式。

(3)体现工业控制特点的地址空间和位操作方式。

(4)命令系统更加丰富完善,增加了许多突出控制功能的命令。

第三阶段(1982—1990年):8位单片机的巩固发展和16位单片机的推出,这也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机把测量、控制系统中使用的一些模数转换器、程序运行监视器、脉宽调制器等集成到芯片内,体现了单片机的微控制器特性。

第四阶段(1990-):单片机全面发展阶段。随着单片机在各个领域的全面深入发展应用,出现了速度高、寻址范围大、运算能力强的8位/16位/32位通用单片机和体积小、价格低廉的专用单片机。

单片机是一种在一块集成电路芯片上集成了各种元器件的微型计算机,包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟元件集成以及I/O接口电路等。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,在现代电子技术和工业领域中得到广泛的应用。在智能仪器中,单片机是应用最广泛、最活跃的领域之一。在控制领域,现在人们更加注重计算机的低成本、体积小、工作可靠性、控制灵活性等。在各类仪器仪表中引入单片机,使仪器仪表实现了智能化,提高了测试的自动化和准确性,提高了计算机的运算速度,简化了仪器仪表的硬件结构,提高了其性能价格比。

MCU 引脚介绍

单片机主要特点:

(1)优异的性价比。

(2)集成度高、体积小、可靠性高。单片机将各种功能部件集成在一块芯片上,内部采用总线结构,减少了芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。

(3)控制功能强。为适应工业控制的要求,一般单片机的指令系统具有极其丰富的传送指令、I/O端口逻辑运算和位处理功能。单片机的逻辑控制功能和运行速度均高于同级别的微机。

(4)低功耗、低电压,容易制作便携式产品。

(5)外部总线增加了I2C(集成电路间)、SPI(串行外设接口)等串行总线方式,进一步缩小了尺寸,简化了结构。

(6)单片机的系统扩展和系统配置比较典型、标准化,容易形成各种规模的应用系统。

性价比极佳。

1)集成度高、体积小、可靠性高。

单片机将各种功能部件集成在一块芯片上,内部采用总线结构,减少了芯片间的连线,大大提高了单片机的可靠性和抗干扰能力。而且体积小,对于强磁场环境容易采取屏蔽措施,适合在恶劣环境下工作。

另外,可以通过使程序更加固化来提高可靠性。

2)控制功能强。

为了满足工业控制的要求,一般单片机的指令系统具有极其丰富的传送指令、I/O端口逻辑运算和位处理功能,单片机的逻辑控制功能和运行速度均高于同级别的微型计算机。

单片机的系统扩展和系统配置比较典型、标准化,容易形成各种规模的应用系统。

VCC:STC89C52电源正输入,接+5V。

GND:电源地。

XTAL1:单片机系统时钟反相放大器输入端。

XTAL2:系统时钟的反相放大器输出。一般设计时,只要在XTAL1和XTAL2上接一个石英振荡器晶体,系统就可以工作。另外,可以在两个引脚与地之间加一个20PF的小电容,使系统更加稳定,避免因噪声干扰而导致死机。

RESET:STC89C52的复位引脚,高电平动作。当芯片需要复位时,只要将该引脚电平拉高至高电平并维持两个机器周期以上,AT89S51就能完成各种系统复位动作,使内部特殊功能寄存器的内容被设置为已知状态,并从地址0000H处读入程序代码,执行程序。

EA/Vpp:“EA”是“External Access”的缩写,意思是访问外部的程序代码。它是低电平动作,也就是当此引脚接低电平时,系统会使用外部的程序代码(存储在外部的EPROM中)来执行程序。所以在8031、8032中,EA引脚必须接低电平,因为内部没有程序存储空间。如果使用8751的内部程序空间,则此引脚必须接高电平。另外,在将程序代码烧录到8751内部的EPROM时,可利用此引脚输入21V的烧录高电压(Vpp)。

ALE/PROG:ALE是“Address Latch Enable”的缩写,意为地址锁存使能信号。STC89C52可以利用此引脚触发外部8位锁存器(如74LS373),将0号口的地址总线(A0~A7)锁入锁存器中,因为STC89C52是以复用方式向外发送地址和数据的。通常情况下,程序执行过程中ALE引脚的输出频率约为系统工作频率的1/6,因此可以用来驱动其他外围芯片的时基输入。另外,在烧录8751程序代码时,此引脚将作为程序规划的特殊功能使用。

PSEN:这是“Program Store Enable”的缩写,即程序存储使能。当8051设置为读取外部程序代码工作模式(EA=0)时,会发出此信号,从而获取程序代码。通常此引脚接EPROM的OE引脚。STC89C52可以用PSEN和RD引脚分别使能外部RAM和EPROM,这样就可以将数据存储器和程序存储器合二为一,共享64K的地址范围。

PORT0(P0.0~P0.7):P0口为8位宽开漏双向输入输出口,共8位,P0.0代表位0,P0.1代表位1,以此类推。其他三个I/O口(P1、P2、P3)没有这种电路结构,但内部有升压电路。作为I/O使用时,P0可驱动8个LS TTL负载。

PORT2(P2.0~P2.7):端口2为双向I/O口,内部带有升压电路,每个引脚可驱动4个LS TTL负载。若将端口2的输出置高电平,则此端口可作为输入口使用。除作为通用I/O口使用外,如果STC89C52外扩程序存储器或数据存储器,P2还提供地址总线的高字节A8~A15。此时P2不能作为I/O口使用。

PORT1(P1.0~P1.7):端口1也是一个双向I/O端口,内部带有升压电路,其输出缓冲器可以驱动4个LS TTL负载。同样,如果将端口1的输出设置为高电平,则数据从此端口输入。如果使用8052或8032,P1.0作为定时器2的外部脉冲输入引脚,P1.1可以具有T2EX功能,可以作为外部中断输入的触发引脚。

PORT3(P3.0~P3.7):PORT3为双向I/O口,内部带有升压电路,其输出缓冲器可驱动4个TTL负载,还具有其他附加特殊功能,包括串行通信、外部中断控制、定时计数控制、外部数据存储器内容的读写控制等。

其引脚分配如下:

P3.0:RXD,串行通讯输入。

P3.1:TXD,串行通讯输出。

P3.2:INT0,外部中断0输入。

P3.3:INT1,外部中断1输入。

P3.4:T0,定时器计数器0输入。

P3.5:T1,定时器计数器1输入。

P3.6:WR:外部数据存储器的写信号。

P3.7:RD,外部数据存储器读信号。

RST:复位输入。当振荡器复位器件时,RST 引脚必须保持高电平两个机器周期。

ALE/PROG:在访问外部存储器时,地址锁存使能端的输出电平,用于锁存该地址的状态字节。在FLASH编程时,此引脚用于输入编程脉冲。正常情况下ALE端输出一个频率周期恒定的正脉冲信号,该频率周期为振荡器频率的1/6。因此,可作为外部输出的脉冲,或用于定时目的。但要注意的是:每当用作外部数据存储器时,ALE脉冲将被跳过。如果要禁止ALE的输出,可在SFR8EH地址处将其设置为0。此时,ALE仅在执行MOVX、MOVC指令时才起作用。另外,该引脚略微拉高。如果微处理器处于外部执行状态,ALE被禁止,则该设置无效。

PSEN:外部程序存储器的选择信号。在从外部程序存储器取指令时,/PSEN在每个机器周期内有效两次。但在访问外部数据存储器时,这两次有效的/PSEN信号不会出现。

EA/VPP:当/EA保持低电平时,此期间使用外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意,当使用加密模式1时,/EA会将内部程序存储器锁定为RESET;当/EA保持高电平时,此期间使用内部程序存储器。

4. 示意图

在设计过程中,硬件和软件都遇到了很多问题,但相对于软件来说,硬件相对容易解决,因为硬件更容易检查错误,而软件则比较晦涩难懂,还是有一定的难度。

硬件调试方面,在元器件实物板焊接好之后,用万用表测量一下工控板的电源,电源是重中之重,一定要检查,防止电源正负极短路、接错。然后仔细检查电路连接有没有问题,有没有虚焊、没焊好的地方,再就是元器件安装有没有问题,安装是否符合规定。由于大学四年做过大量的实训,对这些还是很得心应手的,但是上机调试之后还是发现了很多问题。

5. PCB 图

在设计过程中,硬件和软件都遇到了很多问题,但相对于软件来说,硬件相对容易解决,因为硬件更容易检查错误,而软件则比较晦涩难懂,还是有一定的难度。

硬件调试方面,在元器件实物板焊接好之后,用万用表测量一下工控板的电源,电源是重中之重,一定要检查,防止电源正负极短路、接错。然后仔细检查电路连接有没有问题,有没有虚焊、没焊好的地方,再就是元器件安装有没有问题,安装是否符合规定。由于大学四年做过大量的实训,对这些还是很得心应手的,但是上机调试之后还是发现了很多问题。

6.程序源代码

Keil C51是美国Keil Software公司出品的一套51系列兼容单片机C语言软件开发系统。与汇编语言相比,C语言在功能、结构、可读性和可维护性等方面具有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编器、连接器、库管理和功能强大的仿真调试器在内的完整的开发解决方案,并通过集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎是你唯一的选择。即使你不使用C语言而只使用汇编语言编程,其方便易用的集成环境和功能强大的软件仿真调试工具也会使你事半功倍。

这些信息包括:

如果需要完整资料请点击下方名片添加我,向我索取资源压缩包的百度网盘下载地址和提取码。

单片机

数字电路课程设计之交通灯控制器实验报告

2024-6-9 15:12:56

单片机

单片机初学者必知:晶振如同心脏,搞懂它 51 单片机问题迎刃而解

2024-6-9 16:07:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索