基于单片机的婴儿语音电子称.doc_第1页
基于单片机的婴儿语音电子称.doc_第2页
基于单片机的婴儿语音电子称.doc_第3页
基于单片机的婴儿语音电子称.doc_第4页
基于单片机的婴儿语音电子称.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要婴儿发育情况一直是父母关心的话题。父母一般通过测量婴儿体重来了解婴儿发育情况。普通的称在婴儿体检时操作不方便且测量误差很大。随着电子科技技术的飞速发展,智能电子称的出现为解决这个问题提供了帮助。本设计介绍了基于AT89S52单片机的数显婴儿体重测量仪的软硬件设计方法。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为最小系统、数据采集、人机交互界面和语音系统四大部分。最小系统部分主要包括AT89S52和下载串口;数据采集部分由压力传感器、信号的前级处理和A/D转换部分组成,包括运算放大器AD620和A/D转换器ADC0809;人机交互界面为键盘输入和点阵式液晶显示,主要使用44矩阵键盘和LCD1602显示器,可以方便的输入数据和直观的显示字符。语音系统以ISD1760为核心设计电路。软件部分应用单片机C语言进行编程,实现了该设计的全部控制功能。该婴儿体重测量仪可以实现基本的称重功能,并能进行语音播报体重,还可以把婴儿体重与标准体重进行比较,让父母了解婴儿的发育情况。整个系统结构简单,使用方便,功能齐全,具有一定的开发价值。关键词:电子称;单片机;语音系统;LCD显示; AbstractInfant development has been a topic of concern of the parents. The parents usually by measuring the baby weight to the understanding of infant development. Ordinary that is not convenient to operate in the infant medical examination and measurement error is large. With the rapid development of electronic technology, the emergence of intelligent electronic help to solve this problem.This design introduces the hardware and software design method based on AT89S52 Microcontroller significant number of babies weighing meter. In designing the system, the four parts in order to better use of the modular design method, the hardware portion of the step-by-step design of each unit function modules, the system can be divided into a minimum system, data acquisition, interactive interface and voice systems. The smallest parts of the system including the AT89S52 and download the serial port; the first-level processing of the data acquisition by the pressure sensor, signal and A / D conversion components, including the op amp AD620 and the A / D converter the ADC0809; interactive interface for keyboard input and the dot matrix LCD, the main use of the 44 matrix keyboard and LCD1602 monitor, you can easily input data and intuitive display character. Voice system to the ISD1760 as the core design of the circuit. The software part of the application microcontroller C programming language, all the control functions of the design. The electronic scales for basic weighing functions, and can voice broadcast weight, you can also put the baby weight and standard weight, so that parents understand the babys development.The entire system structure is simple, easy to use, fully functional, with a certain degree of development value.Key words: Electronics; microcontroller; voice system; LCD display目录引言11 设计要求及构思11.1 设计要求11.2 设计构思22 方案论证与比较22.1 控制器部分22.2 数据采集部分22.2.1 传感器22.2.2 放大电路选择32.3 显示电路52.4 系统框图53 系统主要芯片简介53.1 单片机芯片AT89S52介绍63.2 LCD工作原理介绍73.3 ADC0809工作原理介绍83.4 语音芯片ISD1760工作原理介绍94 硬件电路设计114.1 最小系统电路114.2 液晶显示电路124.3 按键接口电路124.4 语音系统电路134.5 数据采集电路144.5.1 前置放大电路144.5.2 ADC0809接口电路155 系统软件设计155.1 系统流程图155.2 ADC0809数据采集及数据处理程序设计165.3 键盘扫描程序设计175.4 LCD1602程序设计195.5 语音系统程序设计196 系统调试216.1 硬件制作和调试216.2 软件调试227 结论227.1 结果展示227.2 系统的功能特点227.4 心得体会23谢 辞24参考文献25附 录26附录1:原理图26附录2:单片机程序27 桂林电子科技大学毕业设计(论文)报告用纸 第 41 页 共 41 页引言称重技术自古以来就被人们所重视,作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。称重装置的应用已遍及到国民经济各领域,取得了显著的经济效益。因此,称重技术的研究和衡器工业的发展各国都非常重视。50年代中期电子技术的渗入推动了衡器制造业的发展。60年代初期出现机电结合式电子衡器以来,经过40多年的不断改进与完善,我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。现今电子衡器制造技术及应用得到了新发展。电子称重技术从静态称重向动态称重发展:计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重和动态称重的研究与应用。通过分析近年来电子衡器产品的发展情况及国内外市场的需求,电子衡器总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性。电子秤的工作原理。首先是通过压力传感器采集到被测物体的重量并将其转换成电压信号。输出电压信号通常很小,需要通过前端信号处理电路进行准确的线性放大。放大后的模拟电压信号经A/D转换电路转换成数字量被送入到主控电路的单片机中,再经过单片机控制译码显示器,从而显示出被测物体的重量。在实际应用中,为提高数据采集的精度并尽量减少外界电气干扰,还需要在传感器与A/D芯片之间加上信号调整电路。本文介绍数显婴儿体重测量仪,依据电子称的基本原理,以51单片机AT89S52为核心,包含了最小系统、数据采集、人机交互界面和语音系统四大部分。该体重测量仪可以实现基本的称重功能,并能进行语音播报体重,还可以把婴儿体重与标准体重进行比较,让父母了解婴儿的发育情况。该设计解决了婴儿体检时机械式的称重工具操作不方便、测量误差大等缺点。1 设计要求及构思下面介绍本次设计的要求,并对设计方案作一个初步的介绍。1.1 设计要求本课题要求设计和实现一个基于单片机的数显婴儿体重测量仪,该体重测量仪以单片机为核心,依据电子称的基本原理,能够显示婴儿体重,具有自动较零功能,具有语音报重功能。1.2 设计构思本设计构思是,以AT89S52单片机作处理器,利用压力传感器采集因压力变化产生的电压信号,经过前置放大电路放大,输入模数转换器ADC0809转换为数字信号,然后把数字信号送入单片机。单片机经过相应的处理后,得出当前所称物品的重量,最后通过语音系统报重和LCD显示出来。2 方案论证与比较本章将就各功能模块的方案选择进行对比分析论证,并确定系统使用的主要器件。2.1 控制器部分本系统基于51系列单片机来实现,因为系统需要大量的控制液晶显示和键盘。不宜采用大规模可编程逻辑器件:CPLD、FPGA来实现。(因为大规模课编程逻辑器件一般是使用状态机方法来实现,即所解决的问题都是规则的有限状态转换问题。)另外系统没有其他高标准的要求,最终确定选择了AT89S52 通用的比较普通单片机来 实现系统设计。AT89S52内部带有8KB的程序存储器,能够满足系统设计要求。2.2 数据采集部分数据采集部分由传感器、前置放大电路、AD模数转换组成。2.2.1 传感器传感器是测量部分重要的部件,目前常用的有电阻应变式压力传感器、电容式压力传感器,压电式压力传感器。对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠。方案一、采用电容式压力传感器电容式压力传感器是将被测压力的变化转换为电容量变化的一种压力传感器。电容式压力传感器具有结构简单、精度和灵敏度较高等特点。但电容式压力传感器稳定性较差,对环境要求苛刻,不易长距离传输。方案二、采用压电式压力传感器压电式压力传感器是将通过弹性膜、盒等,把压力收集、转换成力,再传递给压电元件,由压电效应转换成电量。压力传感器的核心是压电器件。压电式压力传感器具有稳定性好,精度和灵敏度高,寿命长等特点。但大量程的压电式压力传感器尚待进一步研究。方案三、采用电阻应变式压力传感器电阻应变式压力传感器主要由弹性体、电阻应变片和电缆等组成,内部 线路采用惠更斯电桥,当弹性体承受载荷产生变形时,电阻应变片(转换元件)受到拉伸或压缩产生变形后,它的阻值将发生变化(增大或减少),从而使电桥失去平衡,产生相应的差动信号,从而将压力转换成电量。其原理如图2.1所示:图2.1 电阻应变式压力传感器原理电阻应变式压力传感器具有稳定性较好,精度和灵敏度较高,寿命长对测量环境要求不太严格的特点。基于以上分析,最终决定选用电阻应变式压力传感器。2.2.2 放大电路选择经由传感器或敏感元件转换后输出的信号一般电平较低;经由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行A/D转换。为此,测量电路中常设有模拟放大环节。这一环节目前主要依靠由集成运算放大器的基本元件构成具有各种特性的放大器来完成。放大器的输入信号一般是由传感器输出的。传感器的输出信号不仅电平低,内阻高,还常伴有较高的共模电压。因此,一般对放大器有如下一些要求:1、输入阻抗应远大于信号源内阻。否则,放大器的负载效应会使所测电压造成偏差。2、抗共模电压干扰能力强。3、在预定的频带宽度内有稳定准确的增益、良好的线性,输入漂移和噪声应足够小以保证要求的信噪比。从而保证放大器输出性能稳定。4、能附加一些适应特定要求的电路。如放大器增益的外接电阻调整、方便准确的量程切换、极性自动变换等。我们考虑了以下几种方案:方案一 利用普通低温漂运算放大器构成多级放大器。普通低温漂运算放大器构成多级放大器会引入大量噪声。由于A/D转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此种方案不宜采用。方案二 由高精度低漂移运算放大器构成差动放大器。差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放大器,如图2.2所示:图2.2 差动放大器电阻R1、R2和电容C1、C2、C3、C4用于滤除前级的噪声,C1、C2为普通小电容,可以滤除高频干扰,C3、C4为大的电解电容,主要用于滤除低频噪声优点:输入级加入射随放大器,增大了输入阻抗,中间级为差动放大电路,滑动变阻器R5可以调节输出零点,最后一级可以用于微调放大倍数,使输出满足满量程要求。输出级为反向放大器,所以输出电阻不是很大,比较符合应用要求。缺点:此电路要求R3/R6、R4/R5相等,误差将会影响输出精度,难度较大。实际测量,每一级运放都会引入较大噪声,对精度影响较大。方案三 采用专用仪表放大器,如:AD620,INA126等。此类芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。以AD620为例,其接口图如图2.3所示:图2.3 AD620接口图在接口图2.3中,通过改变可变电阻R3的阻值大小来改变放大器的增益,放大器增益计算公式如下: G=49.4K/R3+1;AD620 具有体积小、功耗低、精度高、噪声低和输入偏置电流低的特点。其最大输入偏置电流为20nA,这一参数反映了它的高输入阻抗。AD620在外接电阻Rg时,可实现11000范围内的任意增益;工作电源范围为2.318V;最大电源电流为1.3mA;最大输入失调电压为125V;频带宽度为120kHz(在G=100时)。基于以上分析,我们决定采用制作方便而且精度很好的专用仪表放大器AD620。2.3 显示电路数据显示是电子秤的一项重要功能,是人机交换的主要组成部分,它可以将测量电路测得的数据经过微处理器处理后直观的显示出来。数据显示部分可以有以下两种方案可供选择:方案一、用 LED数码管显示,LED显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光,控制相应的二级管导通,就能显示出对应字符。它配置灵活,使用方便,价格低廉,但显示内容有限,一般用来显示阿拉伯数字。LED数码管显示功耗高,需要驱动电路。方案二、用LCD液晶显示. LCD液晶显示器是一种极低功耗显示器,使用寿命长。它既能显示阿拉伯数字,能够显示字符串,如“kg”,能够上人直观的明白数据结果 。基于以上分析,我们决定采用LCD液晶显示2.4 系统框图通过上述的方案分析和选择,各功能模块主要器件为:处理器:AT89S52单片机;模数转换:ADC0809;液晶屏:LCD1602;仪器放大器芯片;AD620;最终系统的系统框图如图2.4所示:图2.4 系统方框图3 系统主要芯片简介根据前面的方案论证确定的方案与选择的器件,本章将对各个模块的主要芯片的特性和工作原理做简要介绍3.1 单片机芯片AT89S52介绍 (1) AT89S52功能特性描述:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。(2) AT89S52引脚图:如图3.1所示:图3.1 AT89S52引脚图(3) AT89S52引脚功能: VCC : 电源 GND : 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用。RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2 LCD工作原理介绍LCD1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。(1) 管脚功能 1602采用标准的16脚接口: 第1脚:VSS为电源地 ; 第2脚:VDD接5V电源正极; 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对 比度比较高 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器; 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作; 第6脚:E(或EN)端为使能(enable)端; 第714脚:D0D7为8位双向数据端; 第1516脚:空脚或背灯电源;15脚背光正极,16脚背光负极。 (2) 显示原理:LCD1602显示屏幕由MN个显示单元组成,显示之前首先将液晶初始化,让其工作在特定的工作模式下,显示时只要给液晶写入相应的控制字控制每个单元的亮灭,通过显示单元呈现相应的字符或者数字。3.3 ADC0809工作原理介绍ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。(1)ADC0809引脚结构ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。引脚图如图3.2所示:图3.2 ADC0908引脚图ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(),VREF()为参考电压输入。ADC0809应用说明:ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连;初始化时,使ST和OE信号全为低电平;送要转换的哪一通道的地址到A,B,C端口上;在ST端给出一个至少有100ns宽的正脉冲信号;是否转换完毕,我们根据EOC信号来判断;当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。3.4 语音芯片ISD1760工作原理介绍ISD1760系列是ISD公司最新推出的单片高音质语音录放芯片,是ISD1700系列多段语音芯片中的一种,它的录音时间是60秒。(1)ISD1760主要特性l 可录、放音十万次,存储内容可以断电保留一百年。l 两种控制方式,两种录音输入方式,两种放音输出方式。l 可处理多达255 段以上信息。l 多种采样频率对应多种录放时间。l 音质好,电压范围宽,应用灵活,价廉物美。(2)ISD1760芯片主要管脚介绍ISD1760引脚图如图3.3所示:图3.3 ISD1760引脚图 VCCD:数字电路电源/LED:LED指示信号输出,在独立模式下,接在该管脚上的LED灯会根据当前的操作进行相应的亮灯指示,提示用户当前的操作。SPI模式下默认情况下没有亮灯提示,用户只能通过职位命令字的D4位来设置。 /REST: 芯片复位MISO、MOSI、SCLK、/SS: SPI接口。MOSI数据输入端口,MISO数据输出端口,SCLK时钟信号输入端,/SS芯片时能端,在SPI模式下,单片机通过这四个口来给ISD1730输送命令字和数据,几乎能完成对芯片的所有操作。Analn: 通过该口,可以利用音频输出信号线,将电脑上的音频信号录入到ISD1730语音芯片中,利用该端口可以录入音质较好的音频信号。SP+、SP-: 喇叭输出的两个接线端,驱动力一般,8欧0.5W的喇叭不需要音频放大电路也可以输出较高的音量。/VOL:音量控制端,当然通过程序也可以调节音量的大小。ROSC:震荡电阻ROSC用一个电阻连接到地,决定芯片的采样频率,震荡电阻大小与采样频率的关系如下表所示。/PLAY、/REC、/REASE、/FWD:独立模式下的播放、录音、擦除和快进控制端。(3)ISD1760芯片采样频率用户可以利用震荡电阻来自定义芯片的采样频率,从而决定芯片的录放时间和录放音质,震荡电阻与采样率的关系如下:表3.1 ISD1760采样频率录音时间40s60s75s90s125s震荡电阻60K80K100K120K160K采样频率12KHz8KHz6.4KHz5.3KHz4KHz(4)ISD1700系列芯片命令在SPI命令输入到ISD1700前,SPI端口的状态应该保持如下状态:/SS=HIGH,SCLK=HIGH,MOSI=LOW一个SPI命令总是由第一个命令字节开始。命令字节中的bit4位是有特殊用途的。这个bit4位可以控制LED的输出。如果使用者想开启这个操作LED的功能,那么所有的SPI命令字都要将这个bit4位置1。在SPI模式下,存储位置都可以通过行地址很容易地进行访问。主控单片机可以访问行地址,包括存储SE音效的行地址(0x000-0x00F)。像SET_PLAY,SET_ERASE这些命令需要一个精确的起始地址和结束地址。如果开始地址和结束地址相同,那么ISD1730将只在这一行进行操作。SET_PLAY操作从起始地址开始播放语音信息,在结束地址停止播放。4 硬件电路设计整个系统的硬件电路可分为:最小系统电路、液晶显示电路、按键电路、数据采集电路、。下面逐部分介绍各硬件电路的设计。4.1 最小系统电路最小系统电路由复位电路、时钟电路、电源电路、下载串口电路组成。如下图所示图4.1 最小系统电路电路工作原理:开关S17、电阻R1,R2、电容C3组成复位电路。根据应用要求,复位操作通常有两种基本形式:上电复位和开关复位。上电复位要求接通电源后,单片机自动复位。在单片机运行期间,用开关操作也能使单片机复位。由上图可知,接通电源后开始对电容C3充电,单片机自动复位。在程序运行期间也可以按下开关S17,使RST引脚保持二个机器周期以上时间的高电平,单片机复位。单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。如图4-1所示,电容C1、C2和晶振Y1组成时钟电路。C1和C2取值30pf,晶振为12M。4.2 液晶显示电路LCD1602设计电路图如下图所示图4.2 液晶显示电路电路工作原理:LCD1602的第7脚到第14脚为数据口,与单片机的P0口连接,接收单片机发来的数据和命令。控制口RS,E直接与单片机的P1.2和P1.3连接,当对LCD1602写命令时,给引脚RS低电平,当对LCD1602写数据时,给RS高电平。引脚R/W接地,让LCD1602一直处于读单片机数据的状态。R10电位器用来控制LCD1602的背光亮度,调节R10可以达到合适的亮度。R9为限流电阻,电源通过R9接到15脚。4.3 按键接口电路 按键输入是人机交互中最重要的组成部分,它是系统接受用户指令的直接途径。系统设有婴儿体重比较功能,当进行体重比较时需要输入婴儿的年龄和性别,年龄由09共10个数字组成。因此按键接口电路采用44矩阵键盘,还有6个按键可以用来做功能键。设计电路如下图:图4.3 按键接口电路键盘采用行列扫描方式来设计。行列扫描是指:把键盘按键排列成n行m列的nm行列点阵,使用软件方法对其行、列分别进行扫描,从而判断是否有键按下,并获得扫描码。当无键按下时,行线与列线断开,所有列线均为高电平。当有一个键按下时,则与此键对应的行线与列线接通。如此行线为低电平,则此列线也为低电平。为确定是否有键按下,CPU先通过并行输出口使所有的行线为低电平,然后通过并行输入口读入列信号,若为全“1”,则没有键按下,若有一个为“0”,则表示有一个键已按下。若有一个为“0”,则表示有一个键已按下。为消去按下时的抖动现象,程序延迟20ms后再判断具体是哪一个键按下先将第一行置为低电平,然后读入列信号,若有一个为“0”,则按下的键在此行;若为全“1”,则按下的键不在此行,再将下一行置为低电平,并测试列信号。如果在最后一行也为低电平时仍未找到按下的键,则认为刚才有键按下的情况为误动作。4.4 语音系统电路图4.4 语音系统电路系统中的语音模块主要功能是实现语音报体重和作一些提示,因此语音芯片采用SPI控制模式。SPI控制模式主要通过SCLK,MOSI,MISO,/SS四线SPI协议与单片机相连进行串行通信,四线可与单片机的P1口直接相连而不需要上拉电阻或者限流电阻,单片机所有的控制命令和地址均通过四线来完成。引脚Rosc经85K电阻接地,设置芯片采样频率为8KHZ左右,录放音时间为60秒。/LED经电阻和发光二极管接电源,录放音时用作指示。SP+和SP-接喇叭,用于放音。/RESET经按键接地,当按键按下时芯片复位。麦克风经低通滤波电路接MIC+和MIC-,录音时可以去除一部分杂音。Analn经电容接插针,录音时通过该口,可以利用音频输出信号线,将电脑上的音频信号录入到ISD1760语音芯片中。4.5 数据采集电路数据采集电路由前置放大电路和AD转换电路组成。前置放大电路对传感器采集的微弱信号进行放大,AD转换电路把模拟信号转成为数字信号,输入单片机进行处理。4.5.1 前置放大电路 图4.5 前置放大电路电路的工作原理:AD620的第1脚和第8脚接滑动变阻器,根据AD620的工作原理,可通过改变滑动变阻器的阻值改变电路的放大倍数。在系统中传感器输出的电压为0到10mv左右,输入A/D电压需0到5v,根据放大倍数的计算公式,R1取200欧。第2脚和第3脚为传感器信号输入端,为了减少射频对输入信号的干扰,外接低通滤波电路。4.5.2 ADC0809接口电路图4.6 ADC0809接口电路电路工作原理:ADC0809的工作电压以及参考电压分别为11,12脚都通+5V的电压;23,24,25脚是ADC0809的通道选择,三脚接地时表示选通IN0;D0D7为数据口,与单片机相连;CLK为时钟引脚,通过单片机产生时钟输入到该脚;EOC,OE为ADC0809的控制端。本设计采用延时的方法读取ADC0809的转换结果,所以EOC悬空,OE接单片机的IO口,用于控制转换结果的输出。5 系统软件设计本次系统程序设计采用C语言编程,编译环境为Keil uVision4。系统涉及到的模块比较多,进行软件设计时需逐个将各硬件模块调试实现相应功能,然后才能联合调试实现整体系统功能。本章主要介绍各个模块的程序设计以及整体系统程序的流程图。5.1 系统流程图系统的流程图如图5.1所示:本设计首先对各模块进行初始化,初始化完之后对盘体称重,进行自动校零。系统设置一个“开始”按键,该按键按下时系统开始工作进行称重,将婴儿体重通过LCD显示出来并语音播报。称重完之后可以与标准体重进行比较时,了解婴儿的发育情况,也可进行再次语音播报,进行体重比较时需要输入婴儿的性别和年龄。图5.1 系统流程图5.2 ADC0809数据采集及数据处理程序设计 单片机通过延时等待方式控制ADC0809的转换, ADC0809的CLK时钟信号直接由单片机的ALE引脚提供,控制端OE连接单片机P1.1口,其转换流程图如下:图5.2 ADC0809转换流程图相关代码如下:uchar AD() uchar result; st=0;/启动ADoe=0;st=1;st=0;delay(200);/等待AD转换 oe=1; result=P3; return result;数据接收回来还要将数据处理,转换成十进制并存入数组中,其相关程序如下:void display() uint i; result1=result1*2; xian0=result1/510+0x30; xian1=result1/51%10+0x30; xian2=.; xian3=result1%51*10/51+0x30; xian4=result1%51*10%51*10/51+0x30; write_code(0x80+0x08); for(i=0;i5;i+) write_data(xiani); delay(10); 5.3 键盘扫描程序设计键盘电路虽然简单,但键盘的稳定性、可靠性,应引起足够的重视。所以,当检测到有键按下或释放时,应通过软件延时20 ms左右,避开触点抖动的影响。去抖时间既不能太短也不能太长:如果时间太短,无法起到去抖作用;如果时间太长,超过了键按下的持续时间,则会判不到按键。流程图如下:图5.3 键盘扫描流程图其部分代码如下:uchar key() for(i=0;i4;i+) .while(temp!=0x0f)delay(30); /延时去抖temp=P2;temp=temp&0x0f;while(temp!=0x0f). while(temp!=0x0f) /等待按键释放 temp=P2;temp=temp&0x0f; num3=num1+num2; /存键值 return num3;5.4 LCD1602程序设计LCD1602的使用非常方便,主要给液晶写入相应的控制字进行控制,在显示函数中给相应的地址写入要显示的数或者字符,LCD1602初始化的相关程序代码如下:void write_code(uchar x) /LCD写指令函数 a=0; P0=x; delay(5); b=1; delay(5); b=0;void innit() b=0;write_code(0x38);/初始化点阵write_code(0x0c);/设置光标write_code(0x06);/指针加一write_code(0x80);/设置指针初始值write_code(0x01);/清屏在液晶特定位置上显示相应的数字或字符只要在显示地址上写入要数字或字符的十六进制代码即可,这里不做详细介绍。5.5 语音系统程序设计从ISD1730的SPI时序图可以知道ISD1730的SPI读写指令均要在/SS为低电平时才能执行,每一位数据的写入寄存器都是在SCLK的上升沿时移入MISO,在SCLK的下降沿时移出MISO;读寄存器时,在SCLK的上升沿时寄存器数据出MOSI,在SCLK的下降沿时数据移出MOSI;对寄存器的读写操作时同时进行的。在ISD1730芯片空闲是要保证/SS为高电平,SCLK为高电平,MOSI为低电平。unsigned char ISD1760_Spio(uchar dat) uchar i; uchar recevice; ISD1760_SCLK_L; /先将SCLK清0 for (i=0; i= 1; /要写入的数据左移一位 ISD1760_SCLK_H; /将要发送的数据位送到MOSI上后,置SCLK为1,上升沿时将当前MOSI上的数据传到ISD1730 recevice = 1; if (ISD1760_MISO = 1) /SPI 接口的串行输出。ISD1760 在SCLK 下降沿之前的半个周期将数据 /放置在MISO 端。数据在SCLK 的下降沿时移出 recevice |= 0x80; ISD1760_SCLK_L; return recevice;录音时采用直通的方式录入语音段,操作方式如下:当/REC为低电平时,通过Anlan引脚录入语音段。放音时首先查找每段语音的起始地址和截止地址,然后对每段语音编号,当语言报重时通过直接查找相应编号就可现实。相关码如下:void ISD1760_SetPlay(uchar n )/SPI初始条件ISD1760_SS_H;ISD1760_SCLK_H;ISD1760_MOSI_L;ISD1760_SS_L;SR0L = ISD1760_Spio(SET_PLAY); /发送命令字节SR0H = ISD1760_Spio(0x00); /发送数据字节1SR1 = ISD1760_Spio(caToneAdd1n); /发送数据字节2,放音起始地址低8SR2 = ISD1760_Spio(0x00); /发送数据字节3,放音起邕地址高3位SR0H = ISD1760_Spio(caToneAdd1n+1); /发送数据字节4,放音结束地址低8位SR0H = ISD1760_Spio(0x00); /发送数据字节5,放音结束地址低8位SR0H = ISD1760_Spio(0x00); /发送数据字节6ISD1760_SS_H;6 系统调试6.1 硬件制作和调试本次系统分模块布线制板,比较方便硬件调试。前期从原理图设计和绘制,到布局布线,都首先阅读相关文档,依照其上的要求,尽量减少修改的几率,焊接前仔细检查了是否有短路和断线,按电路图装配后排查是否有元件装错,以及是否有虚焊、脱焊、断路和焊接短路。控制器调试:单片机最小系统是整个设计系统的核心部分,首先必须保证单片机最小系统能正常工作。检查单片机能否正常工作最简单的办法,也是最常用的方法就是:编写一个单片机小程序然后生产.hex文件,再用下载器下载到单片机中。如果单片机能够下载程序,就说明单片机能够正常工作。如果程序下载不了,通常有以下几个原因:工作电压不足、晶振不起振、下载口电路错误,或者是单片机本身有问题。各个原因逐一排查,基本上都是可以解决问题的。程序下载没有问题以后,还要查看复位电路是否能正常工作。显示电路调试:正常情况下LCD1602液晶电路上电以后,液晶背光源会亮的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论