基于语音提示的四则运算器的设计.docx
- 文档编号:11089632
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:55
- 大小:354.24KB
基于语音提示的四则运算器的设计.docx
《基于语音提示的四则运算器的设计.docx》由会员分享,可在线阅读,更多相关《基于语音提示的四则运算器的设计.docx(55页珍藏版)》请在冰点文库上搜索。
基于语音提示的四则运算器的设计
摘要
计算器是人们日常生活中必不可少的电子产品,使我们从繁琐的计算中解放出来。
而语音提示计算器,不仅有此功能,更大大的节省了我们计算的过程,并且还能给一些特殊人群所使用。
再则研究基于单片机的语音计算器,对于人机交换的智能系统开发具有重要价值。
本文描述了一种运用AT89S52单片机来设计的四位数四则运算器,采用C语言进行程序编写实现计算器功能。
外接4*4的键盘,通过键盘扫描来完成输入数的控制,单片机直接并行输出温度,等待键入数值,当输入第一个数值,直接通过LCD1602显示出来,在输入+、-、*、/运算符之后,清除第一个数值显示并内部存贮数值,同时等待输入第二个数值,并液晶显示出来。
系统设有清零键可随时完成计算与显示的清零。
计算器将完成的0至9999整数的一次加/减/乘/除运算,并有相应的数值的语言提示。
执行过程如下:
开机显示实时温度后,等待输入数值,当在键入数值后将显示键入的数值,计算器在内部执行数值转换和存储,按等号就会在LCD1602液晶上显示运算结果,最多显示99999999的整数,并有相应的数值的语言提示。
关键词:
语音提示;计算器;单片机;C语言
ABSTRACT
Asanabsolutelyindispensableelectronicproductsinthedailylife,thecalculator,notonlysetpeoplefreefromtroublesomecalculating.Voicepromptscalculator,butalsodecreasetheprocessofcalculating,itcanbeusedbyspecificpopulation.Researchingofvoicepromptscalculatorbasedonsinglechipmicorocomputerissignificanttohuman-computerexchangeintelligentsystem.
ThepapergivesadescriptionofthefourfundamentaloperationsofarithmeticcalculatorwhichdesignedwithAT89S52,itmeetstherequirmentsbywriteprogramswithclanguage.Enteringdataby4*4keyboard'sscanning,Single—chipMCUexporttheparalleldatadirectly,whenthefirstdataisimported,itcanbedisplayedbyLCD1602.Afterimport+、-、*、/andclearthediaplayofthefirstdata,itwillsavethedata,waitforimporttheseconddataanddisplayitthesametime.thedesignhastheclearbutton,itcouldclearthedatathatcalculatedanddiaplayed.Thecalculatorwillmakecalculationslikeaddition,subtraction,multiplication,divisionfrom0to9999andplaythecorrespondingvoicepromptions.
ExecuteProcesscanbelistasfollows:
firstturnthepoweron,thereal-timetemperaturecanbedisplayed,whenasignalimportedanddisplayed,thecalculatorwilltransformandsavethedata,iftheequalnumberbuttonwerepressedtheresultswilldiaplayedthroughLCD,displaytheintegerto99999999atthemost,also,therehavecorrespondingvoicepromptionsofthedata.
KeyWords:
voiceprompt;calculator;MCU;Clanguage
1引言
计算器在人们的日常生活中是比较常见的电子产品之一。
可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是以AT89S52单片机来设计的计算器。
利用此设计熟悉AT89S52单片机和C语言编程,对其资源及各个I/O端口的功能及基本用途了解。
掌握KeilC51应用程序开发环境和Apr9600语音芯片,常用的液晶显示器和4*4键盘的使用方法。
1.1课题背景
随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。
电子产品的更新速度快就不足为奇了。
近年来,单片机以其体积小、价格低、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。
在设计主体的表面上配设有电源接通、全清除健、数字健、小数点健、四则运算健、等号健与下载线共同形成双电源方式用语音提示的计算器,其中,在计算器主体的表面上还配设有显示从数字键、小数点健输入的数值的主显示器、按加法存储器(转换健)时将显示在主显示器中的数值进行转换后显示该数值的存储显示器、将主显示器和存储显示器的两个画面并列地配设并做成T通过从各种转换健输入来同时或者交替地显示两个画面显示的结构的二选行显示器、按下时将显示在主显示器中的数值转换至存储显示器的加法存储(转换键)、按下时将显示在主显示器中的数值从正向负或从负向正进行变更的减法存储(转换健)、按下两次时将显示在存储显示器中的数值清除的存储(清除健)、按下时将显示在存储显示器中的数值转换至主显示器而按两次时则再次显示出在进行转换之前显示在主显示器中的数值的转换键。
这就是语音计算的一般工作流程。
1.2设计指标
本设计是基于AT89S52单片机的语音提示的四则运算器,去除两画面变更显示。
该设计总共有6个模块:
电源模块、AT89S52最小系统模块、1602液晶显示模块、4*4键盘模块、语音提示模块和实时温度检测模块。
系统的功能、设计要求如下:
(1)实时显示输入/输出数据。
(2)数据需要有相关的语音提示。
(3)实时显示所测温度功能。
(4)液晶显示输入/输出数据,实测温度。
设计原则如下:
(1)在满足功能、性能和使用的前提下,尽量降低系统的成本和体积。
(2)充分利用当今的最新技术和研究成果,以确保系统先进性和实用性。
(3)设计时充分考虑系统的可靠性、可使用性、可维护性和可扩展性,为设备的方便使用、维护、延寿和功能扩展奠定基础。
主要技术指标如下:
输入数据范围:
9999
输出数据范围:
99999999
语音提示:
0123456789+-*/=.
温度范围:
00℃-99℃
2系统方案
2.1方案论证
2.1.1单片机的选择
方案一:
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
方案二:
ATmega16是一个16K字节的系统内可编程Flash,512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
经研究和实际分析,方案一具有更优良的特性和更简单的电路构成,以及降低了系统成本。
方案二具有IO资源丰富,功能齐全,但其成本高,且在数据采集过程中不需要太多的资源,造成资源浪费。
所以使用方案一作为本次设计的方案。
2.1.2语音芯片的选择
方案一:
ISD2500语音录放芯片,具有抗断电、音质好,使用方便等优点。
它的最大特点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;有10个地址输入端,寻址能力可达1024位;最多能分600段;设有OVF(溢出)端,便于多个器件级联。
方案二:
APR9600语音录放芯片,是继美国ISD公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可录放32-60秒,串行控制时可分256段以上,并行控制时最大可分8段。
与ISD同类芯片相比它具有:
价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点,同时保留了ISD2500芯片的一些特点,都是DIP28双列直插塑料封装,在管脚排列上也基本相同。
经研究和实际分析,方案一的成本比较高,且现已停产。
方案二在ISD2500的基础上开发出来的,保留里原有的芯片功能,具有更优良的特性和更简单的电路构成,以及降低了系统成本。
所以使用方案二作为本次设计的方案。
2.1.3方案落实
根据系统的功能、设计要求和性能指标,详细介绍系统的总体构成框图及各部分硬件电路的设计方案,并对主要芯片原理与应用加以研究。
控制核心芯片选用AT89S52单片机;测温电路选用了美国DALLAS公司生产的单线总线数字式温度传感器DS18B20;显示电路采用YJD1602A液晶实现;语音采用APR9600芯片;电源电路采用220V/50HZ的交流电压经12V变压器输入到电桥中再通过LM2576稳压器提供电压为+5V的直流电压。
2.2系统总体设计
系统以AT89S52单片机为核心,基于4*4键盘为外部输入数据,通过单片机运算后将结果送至LCD显示输出,DS18B20对温度进行测试,包括对温度的测量、数据的处理;将测量结果送LCD显示输出。
实时温度由单线总线数字温度传感器DS18B20获取,经单片机处理后,将温度通过LCD显示出来,电源部分采用220V交流电经变压、滤波、稳压后得到5V电压供系统使用。
单片机由外接11.0592MHz标准晶振提供时钟电路。
总体框图见图2-1所示。
图2-1系统总体框图
3系统的硬件设计
系统由硬件和软件两部分组成,在本次设计中硬件主要有供电电路,AT89S52最小系统,4*4键盘输入,语音电路设计,1602液晶模块,温度DS18B20报警电路等。
3.1供电电路
电源是应用系统的重要组成部分,与单片机电路相连,电源设计的不可靠将影响到整个系统的稳定。
由于本实验单片机所需供电电源为5伏直流稳压电源,而供电电源为220V的交流电,因此,本次设计中选用LM2576稳压器。
其工作原理:
220V/50HZ的交流电压经变压器变压为12V的交流电输入到电桥中,其波形为50HZ的交流信号,周期为20ms,交流信号经桥路进行整流后转化为直流电压,得到单向全波脉动波形,再经过电解电容的滤波得到波动不太大的信号,经过一个无极性电容滤掉外部带来的高频干扰进入LM2576芯片,在LM2576的输出端输出一个平稳的+5V直流电平。
下图3-1为5V稳压电路。
3.1.1LM2576概述
LM2576系列的稳压器是单片集成电路,能提供降压开关稳压器(buck)的各种功能,能驱动3A的负载,有优异的线性和负载调整能力。
此器件的固定输出电压有3.3V,5V,12V,15V,还有可调整输出的型号。
这些稳压器内部含有频率补偿器和一个固定频率振荡器,将外部元件的数目减到最少,使用简便。
LM2576的效率比流行的三段线性稳压器要高的多,是理想的替代。
一般情况下不需要或只要很小尺寸的外加散热片,此特征大大简化了开关电源的设计。
其它特征包括:
在指定输入电压和输出负载条件下保证输出电压的
4%误差,以及振荡器频率的
10%误差。
还包括外部的关断电路,特征有50uA(典型值)待机电流。
输出开关包括逐周限流,以及在故障状态下提供完全保护的热关断功能。
3.1.2特点
(1)3.3V,5V,12V,15V和可调节输出电压型号;
(2)可调节输出型号输出电压范围在线性和负载条件下1.23~37V,最大
4%;
(3)保证3.0A输出电流;
(4)输入电压范围广,40V至HV型号的60V;
(5)只需4个外部器件支持;
(6)52kHz固定频率内部振荡器;
(7)TTL关断能力,低功耗待机模式;
(8)高效率;
(9)使用现成可用的标准电感;
(10)热关断及电流限制保护。
3.1.3应用
(1)简单高效的降压(Buck)稳压器;
(2)线性稳压器的高效预稳压器;
(3)卡上开关稳压器;
(4)正到负的变换器(Buck-Boost);
(5)负升压变换器;
(6)为电压充电器做电源;
(7)与NationalSemi、OnSemi的LM2576完全互换。
3.2AT89S52最小系统
系统选用ATMEL公司的AT89系列单片机AT89S52,AT89S52单片机是一种新型的低功耗、高性能且内含8K字节闪电存储器(FlashMemory)的8位CMOS微控制器,与工业标准MCS-51指令系列和引脚完全兼容。
有超强的加密功能,其片内闪电存储器的编程与擦除完全用电实现,数据不易挥发,编程/擦除速度快,全4K字节编程只需要3ms,擦除时间约用l0ms。
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对AT89S52系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路、按键输入、显示输出等。
3.2.1复位电路
复位是单片机的硬件初始化操作。
经复位操作后,单片机系统才能开始正常工作。
AT89S52有复位信号引脚RES,用从外界引入复位信号。
复位操作比较简单,只有两种复位方式,即加电复位和手动复位。
(1)加电复位是指通过专用的复位电路产生复位信号。
它是系统的原始复位方式,发生在开机加电时,是系统自动完成的。
加电复位是基本的、任何单片机都具有的功能。
(2)手动复位也应通过专用的复位电路实现。
在单片机系统中,手动复位是必须具有的功能。
在调试或运行程序时,若遇到死机、死循环或程序“跑飞”等情况,手动复位是摆脱这种尴尬局面的最常用的方法。
这时,手动复位所完成的是一次重新启动操作。
在实际系统中,总是把加电复位电路和手动复位结合在一起,形成一个既能加电复位,又能手动复位的公用复位电路。
复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位操作。
复位电路的好坏直接影响单片机系统工作的可靠性,因此,要重视复位电路的设计。
图3-2为电路复位。
3.2.2时钟电路
单片机的本身是一个复杂的同步时序系统,为保证同步工作方式的实现,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。
而所谓时序,则是指指令执行过程中各信号之间的相互时间关系。
单片机的时钟电路由振荡电路和分频电路组成。
其中振荡电路由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲。
而分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。
AT89S52芯片中的高增益反相放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2。
通过这两个引脚在芯片外接石英晶体振荡器和两只电容器(电容C1和C2一般取20pF)。
石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器,如图3-3所示。
3.2.3芯片引脚介绍
P0.0---P0.7八位双向口线,P1.0---P1.7八位双向口线。
P2.0---P2.7八位双向口线,P3.0---P3.7八位双向口线。
ALE:
地址锁存控制信号,在系统扩展时,用于控制把P0口输出的低八位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。
PSEN:
外部程序存储器读选通信号,在读ROM时PSEN低电平有效。
以实现外部ROM单元的读操作。
EA:
访问程序存储器控制信号,当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当EA信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
RESET:
复位信号,当输入的复位信号延续两个机器周期以上高电平时即为有效,用以完成单片机的复位操作。
XTAL1、XTAL2:
外接晶体引线端,当使用芯片内部时钟时,此二引线端,用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
Vss:
地线,Vcc:
+5V电源。
其相应的引脚图如3-4所示。
3.34*4键盘输入
键盘是单片机系统中必不可少的输入单元,在语音提示四则运算中采用4*4行式键盘作为数据输入,如图3-5所示。
键盘的接口,P30~P33为行,P34~P37列,用户可通过单片机I/O口对键盘进行行列式扫描。
设计采用循环扫描算法实现键盘驱动,实时响应按键,并将扫描结果通过键盘解析表转换为对应数值根据按键情况把扫描所得数值存入相应数组作为运算数。
按键同时把扫描所得数值发往LCD显示,并实时调用语音指令,当按下等号键时将把计算结果发往LCD显示,扬声器报出得数。
同时清除相应数组等待下次扫描。
每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:
确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
3.4语音电路设计
语音模块采用的是APR9600语音芯片,接下我们就对四则运算中的语音提示模块进行分析加以研究,其电路图3-6所示。
3.4.1APR9600概述
APR9600语音录放芯片,是继美国ISD公司以后采用模拟技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可放32~60秒,串行控制时可分256段以上,并行控制时最大可分8段。
与ISD同类芯片相比它具有:
价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点,同时保留了ISD2500芯片的一些特点,都是DIP28双列直插塑料封装,在管脚排列上也基本相同。
如图3-6所示。
在APR9600芯片的内部,录音时外部音频信号可以通过话筒输入和线路输入方式进入,话筒可采用普通的驻极体话筒,在芯片内话筒放大器(Pre-Amp)中自带自动增益调节(AGC),可由外接组容件设定响应速度和增益范围。
如果信号幅度在100mV左右即可直接进入线路输入端,音频信号由内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器FLASHRAM中。
由于FLASHRAM是非易失器件,断电等因素不会使存储的语音丢失。
放音时芯片内读逻辑电路从FLASHRAM中取出信号,经过一个低通滤波器送到功率放大器中,然后直接推动外部的喇叭放音。
实际要求外接喇叭为16欧姆,实际试验用8~16欧姆均可,输出功率约12.2mW。
APR9600有多种控制模式,总的来说分为串行控制和并行控制两种,由芯片MSEL1(24脚)、MSEL2(25脚)、/M8(9脚)的设置来实现,模块上有一个4位的跳线开关,它是用来设置各种工作模式的,戴上跳线帽后为“0”,不戴跳线帽为“1”。
第“1”位是RE录放选择端,进行录音时戴上跳线帽,放音时不戴跳线帽。
第“2”位是M8工作模式选择端,戴上跳线帽为“0”,不戴跳线帽为“1”。
第“3”位是MSEL2工作模式选择端,戴上跳线帽为“0”,不戴跳线帽为“1”。
第“4”位是MSEL1工作模式选择端,戴上跳线帽为“0”,不戴跳线帽为“1”。
表3-1APR9600的管脚功能
管脚
功能
管脚
功能
1、/M1
第一段控制或连续录放控制
(低电平有效)
15、SP-
外接喇叭负端
2、/M2
第二段控制或快进选段控制
(低电平有效)
16、VCCA
模拟电路正电源
3、/M3
第三段控制(低电平有效)
17、MICIN
话筒输入端
4、/M4
第四段控制(低电平有效)
18、MICREF
话筒输入基准端
5、/M5
第五段控制(低电平有效)
19、AGC
自动增益控制端
6、/M6
第六段控制(低电平有效)
20、ANA-IN
线路输入端
7、OSCR
振荡电阻
21、ANA-OUT
线路输出端(话筒放大器输出端)
8、/M7
第七段控制及溢出指示
(低电平有效)
22、STROBE
工作期间闪烁
指示等输出
(低电平有效)
9、/M8
第八段控制(低电平有效)及
操作模式选项
23、CE
复位/停止键或
启动/停止键
(高电平有效)
10、/BUSY
忙信号输出
(工作时出0,平时为1)
24、MSEL1
模式设置端
11、BE
键声选择
(接1为有键声,0则无)
25、MSEL2
模式设置端
12、VSSD
数字电路电源地
26、EXTCLK
外接振荡频率端(用内部时钟时接地)
13、VSSA
模拟电路电源地
27、/RE
录放选择端(0为录音、1为放音)
14、SP+
外接喇叭正端
28、VCCD
数字电路正电源
APR9600的每种操作模式都有对应的有效键,而且同一个键在不同操作模式下可能有不同的功能。
因此在芯片设计、使用前用户应详尽了解芯片的各种操作模式,选择最合适自己的方式设计,电路也会变得非常简单。
表3-2工作模式设置功能
ARP9600操作模式表
MSEL1
(24脚)
MSEL2
(25脚)
/M8
(9脚)
有效键/M1~8为段控制键
/CE键为停止、复位键
功能(以60s计)
0
1
0/1
/M1、/M2、CE
并行控制,分二段,每段MAX30s
1
0
0/1
/M1、/M2、/M3、/M4、CE
并行控制,分四段,每段MAX15s
1
1
1
/M1~/M8、CE
并行控制,分八段,每段MAX7.5s
1
1
0
CE
单键控制,单段7.5s循环。
CE为启动/停止键
0
0
1
/M1、CE
串行顺序控制,可分一至任意多段
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语音 提示 四则 运算器 设计