数字化语音存储与回放系统的设计
数字化语音存储与回放系统报告--设计报告
数字化语音存储与回放系统(题目)一、题目数字化语音存储与回放系统二、任务设计并制作一个数字化语音存储与回放系统三、要求1.基本要求(1)放大器1的增益为46dB,放大器2的增益为40dB,增益均可调;(2)带通滤波器:通带为300Hz~3.4kHz ;(3)ADC:采样频率f s=8kHz,字长=8位;(4)语音存储时间≥10秒;(5)DAC:变换频率f c=8kHz,字长=8位;(6)回放语音质量良好。
2.发挥部分在保证语音质量的前提下:(1)减少系统噪声电平,增加自动音量控制功能;(2)语音存储时间增加至20秒以上;(3)提高存储器的利用率(在原有存储容量不变的前提下,提高语音存储时间);(4)其它(例如:校正等)。
四、评分意见项目满分基本要求设计与总结报告:方案设计与论证,理论分析与计算,电路图,测试方法与数据,对测试结果的分析50 实际制作完成情况50发挥部完成第一项15 完成第二项 5 完成第三项15五、说明:不能使用单片语音专用芯片实现本系统。
数字化语音存储与回放系统(设计报告)摘要该系统主要由语音收集、增益放大、带通滤波、A\D、D\A转换,51单片机、外部RAM存储、功率放大、扬声器几大部分组成。
其中语音收集主要由驻极体话筒实现。
然后同过增益放大部分将几十毫安的信号放大至0~8A左右。
再利用带通滤波滤去带声外地噪音,并由A\D转换将声音信号转化为数字信号存储在单片机的外部存储器中,可存储时长为4秒左右。
再由D\A转换转变为模拟信号后通过带同滤波滤去噪声,功率放大部分放大功率后,最后由扬声器输出。
关键词外部RAM 功率放大带通滤波A\D、D\A转换51单片机AbstractThe system is mainly composed of a voice collection, gain amplification,band-pass filtering, A \ D, \ A D conversion, 51 microcontroller, external RAM storage, power amplifier, speakers of several major components. The voice collection consists of an electret microphone implementation. Then the gain of the amplifier portion will be tens of Ma amplification of the signal to a 0 ~ 8A. Reuse of band-pass filter to filter noise acoustic field, and by A \ D converts voice signal into a digital signal and stored in a memory external to the microcontroller, can be stored for a long time about 4 seconds. By D \ A conversion into an analog signal through with filter filter to noise, power amplifier part of the larger power, finally output by the speaker.Key wordExternal RAM amplifier band-pass filter A \ D, \ A conversion D 51 single chip microcomputer目录一、方案设计与论证1.1题目解析 (01)1.2方案讨论 (02)二、理论分析与计算2.1系统的整体设计………………………………………………………………2.2功能模块的设计………………………………………………………………三、硬件设计3.1系统的整体设计………………………………………………………………3.2功能模块的设计………………………………………………………………四、软件设计4.1系统的整体设计………………………………………………………………4.2功能模块设计…………………………………………………………………五、系统的组装与调试5.1整体结构布局与工艺图………………………………………………………5.2系统调试………………………………………………………………………5.3测试结果及分析………………………………………………………………附录一………………………………………………………………………………附录二………………………………………………………………………………一、方案论证1.1题目解析根据题目要求:该数字化语音存储与回放系统要做到如下要求:(1)放大器1的增益为46dB,放大器2的增益为40dB,增益均可调;(2)带通滤波器:通带为300Hz~3.4kHz ;(3)ADC:采样频率f s=8kHz,字长=8位;(4)语音存储时间≥10秒;(5)DAC:变换频率f c=8kHz,字长=8位;(6)回放语音质量良好。
基于FPGA的语音存储与回放系统设计
基于FPGA的语音存储与回放系统设计
1 设计要求
设计并制作一个数字化语音存储与回放系统,其示意图如图1 所示。
图1 数字化语音存储与回放系统示意图
(1)放大器1 的增益为46dB,放大器2 的增益为40dB,增益均可调;
(2)带通滤波器:通带为300Hz~3.4kHz;
(3)ADC:采样频率fs=8kHz,字长=8 位;
(4)语音存储时间≥10s;
(5)DAC:变换频率fc=8kHz,字长=8 位;
(6)回放语音质量良好。
不能使用单片语音专用芯片实现本系统。
2 数字化语音存储与回放系统硬件电路
2.1 放大器1 即音频信号放大电路
音频信号放大电路如图2 所示。
第一级放大(-4.7)倍。
IRD120 实现自动增益控制,当开关打到1 的位置是增益自动控制,当开关打到2 的位置是手动控制。
增益自动、手动控制是利用场效应管工作在可变电阻区,漏源电阻受栅源电压控制的特性。
第二级放大(+101)倍。
第三级放大倍数可调,最大(-20) 倍,保证ADC0809 满量程转换。
图2 音频信号放大电路
2.2 带通滤波器
带通滤波器如图3 所示。
实测带通300~3300Hz。
保证语音信号不失真地通过滤波器,滤除带外的低频信号和高次谐波。
图3 带通滤波器tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
基于51单片机的数字语音存储与回放系统设计
基于51单片机的数字语音存储与回放系统设计摘要该文采用AT89C51单片机和ISD2560语音芯片设计一款实时语音录放系统,能实现录音时间达60s、录放音受按键控制、可复位且音量可调等诸多功能。
整个系统共有三大模块:单片机控制模块、语音录放模块、功放模块。
控制模块核心是51单片机的口线功能,通过对按键的识别来控制语音录放模块的工作模式;语音录放模块能实现对声音的处理、存储以及复原的功能;功放模块能对复原好的音频信号加以放大,使声音更加清晰明亮。
整个设计围绕以下三方面进行研究:总体方案设计、硬件电路设计、软件设计。
关键词:AT89C51单片机,语音存储,语音回放DESIGN OF VOICE RECORDING AND PLAYBACKSYSTEM BASED ON AT89C51ABSTRACTThe propose of this paper is to design a real-time speech recording system with AT89C51 microcontroller and ISD2560 voice chip,it can realize the recording time of 60s, sound recording and playback controlled by button, can reset and voice can adjust.The system includes three modules:single chip microcomputer control module, voice recording module, power amplifier module. Core of control module is 51SCM mouth line function, through the identification of key to control the voice recording module work model;voice recording module can realize voice processing,storage and playback;power amplifier module for audio signal amplified, to make the sound more clear and bright.The whole design around the following three aspects: the overall design, hardware circuit design, and the design of software.Key Words:AT89C51,phonetic storage ,phonetic playback目录摘要 (I)ABSTRACT ................................................................................................................................................ I I 目录........................................................................................................................................................... I II 第1章绪论 (1)1.1 课题研究背景 (1)1.2 国外研究现状 (2)1.3 语音存储技术的发展前景 (2)1.4 设计任务与要求 (3)第2章总体方案设计 (4)2.1 总体方案论证 (4)2.2 器件选择 (5)2.2.1 单片机的选择 (5)2.2.2 语音芯片选择 (6)2.2.3 功放选择 (6)2.3 各芯片详细说明 (6)2.3.1 AT89C51芯片 (6)2.3.2 ISD2560语音芯片 (8)2.3.3 LM386集成功率放大器芯片 (12)第3章硬件电路设计 (15)3.1硬件电路总体设计 (15)3.2 AT89C51的外围电路设计 (15)3.2.1电源 (15)3.2.2晶振电路设计 (15)3.2.3 复位电路设计 (16)3.3 语音电路设计 (17)3.4 功放电路设计 (18)3.5 键盘输入电路和状态显示电路设计 (19)第4章软件设计 (20)4.1 主要变量说明 (20)4.2 主程序流程图 (21)4.3 子程序流程图及代码 (22)4.3.1 录音子程序 (22)4.3.2 放音子程序 (23)第5章系统调试与实验结果 (25)5.1系统调试 (25)5.2实验结果 (27)第6章总结 (28)参考文献 (29)附录 (30)致 (35)作品使用说明书 (36)第1章绪论1.1课题研究背景随着生活节奏的日益加快,城市智能化建设的不断发展,在智能仪器仪表和工业控制系统中增加语音录放功能成为了极为普遍的现象。
毕业设计175数字存储与语音回放系统
引言语言在人类发展史中起到了至关重要的作用,它的作用并不亚于直立行走和工具的使用,怎样能把人类的语言丝毫不差地记录下来也是人们一直思考的问题。
传统的磁带语音录放系统因其体积大、使用不便,在电子与信息处理的使用中受到许多限制。
本文提出的体积小巧,功耗低的数字化语音存储与回放系统将完全可以替代它。
数字化语音存储与回放系统的基本原理是对语音的录音与放音的数字控制。
使用单片机以及外部电路的配合完全可以达到语音存储与回放的目的。
本系统采用了美国ISD公司的专利产品ISD2590(录音90秒)语音芯片,此芯片具有音质自然、使用方便、单片存储、反复录放、低功耗、抗断电等特点。
该芯片采用模拟数据直接在半导体存储器中存储的技术,不需经过A/D或D/A转换。
因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。
片内信息可保存100年(无需后备电源),存储单元可反复录音十万次。
语音芯片的使用大大简化了本系统的设计过程。
该芯片的一大特点就是可分段录制声音并分段播放出来,通过89C51单片机对语音芯片进行控制完成录放。
随着科学技术的飞速发展,仅仅存储和回放语音是不够的。
语音技术正朝着语音合成和语音识别的方向发展。
智能翻译机、语音拨号、语音查询、语音自动定票系统、语音工业控制等等,可以想见,凡用计算机的地方都会有语音识别。
在计算机辅助教育方面,计算机就成为专业的家庭辅导教师;在幼儿进行启蒙教育的玩具中,语音识别也将倍受欢迎。
电脑语音合成技术即CTI(Computer Telephone Integration),是用计算机技术处理电话语音。
通常是建一个信息呼叫中心,用户打来电话时计算机会自动地一层层地转给相关部门,一直到为用户解决问题为止。
可想而知,随着语音合成技术研究的突破,其对计算机发展和社会生活的重要性日益凸现出来。
其应用和经济社会效益前景非常良好。
8.1数字化语音存储与回放系统设计
8.1数字化语音存储与回放系统设计8.1系统设计及需求分析8.1.1 语音存储回放系统的功能要求用FPGA 实现数字化语音的储存和回放功能。
基于开发板DE2下,用QuartusII 软件进行verilog 编程,要求如下:1.语音频率范围:人耳能够听到的声音频率范围为20Hz~20kHz ,而一般语音频率位于300Hz~3.4kHz 之间。
2.语音采样频率:根据奈奎斯特采样准则,采样频率必须大于模拟信号最高频率的两倍。
语音频率最高为3.4kHz ,因此语音采样频率可取8kHz 。
3.ADC 与DAC 位宽:均为8位。
ADC 的位宽决定了信号的采样精度,DAC 的位宽一般与ADC 的相同。
4.语音存储时间:不少于4s 。
语音存储时间的长短取决于存储器的容量,例如存储容量为32KB 的静态随机存储器(SRAM )可以存储4.096s (8kHz ⨯8位⨯4.096s=32KB )的语音数据。
5.能够回放存储的语音信号,且回放语音质量好8.1.2 设计分析我们采用模块化的设计思想,实现各个功能模块,然后汇总成我们的语音储存与回放系统。
顶层模块包括SRAM 的控制单元,其中包括SRAM 读取和SRAM 写入,音频控制器,对WM8731L 写入时钟,控制数据的传送时钟信号,PLL时钟分频,对输入的50MHz 的音频进行分频,得到18.4MHz 的音频芯片主频率。
其中数据通过顶层模块来实现和SRAM 、ADCDAT 、DACDAT 的对接传送,I2C 总线来控制音频芯片写入寄存器配置,设置音频设备的输出输入模式和数据的传送方式及数据的位数。
图8.1.1 模块划分结构图那么根据所分的几个模块,我们一个一个来实现,先实现SRAM的读写数据,再通过I2C总线对WM8731L音频芯片进行控制字的设置,最后完成对信号的AD/DA转换。
各个模块完成后,在通过一个总的模块例化各个模块里的module就能实现最后的功能。
完整版数字化语音存储与回放系统方案(附带程序)
本科生毕业论文(设计〉题目:数字化语音存储与回放系统的设计学生姓名: ________ 李进国学号:200611020180专业班级: ______ 电信06101班指导教师: __________ 彭光含完成时间:2018年5月10日目录摘要.......................................................................... (2)Abstract ................................................................2 引 (3)1系统的方案论证.......................................................................... (3)2系统硬件设计.............................................................................. . (4)2 . 1 拾音器.......................................................................... (5)2 . 2 放大器设计.......................................................................... (6)2. 3 可调稳压电源的设计.......................................................................... (8)2 . 4 AT89C51 介绍.......................................................................... (8)2 . 5 D / A A / D 转换器.................................................................................................................................................. 1 02.5.1D/A 转换器DAC0832 的介绍..........................................................................1 02.5.2 A / D 转换器D A 5 7 4 的介绍..........................................................................1 12 . 6 存储器的选择..........................................................................1 22. 7 键盘的设疋................................................................................................................................................... 1 3 3模块接□原理.................................................................................................................................................. 1 33 . 1 A T 8 9 C 5 1 和A D 5 74 的接口原理..........................................................................1 33 . 2 D A C 0 8 3 2 与单片机的接□原理..........................................................................1 53. 3 存储芯片与单片机的接□原理..............................................................................1 64系统接□总图..............................................................................1 6 3^5 系统的. 校正.............................................................................. .. (17)4软件设计.............................................................................. .. (19)5结论.............................................................................. ........................................................................... 1 9答谢.............................................................................. ............................................................................. 2 0 参考文献.............................................................................. ............................................................................. 2 0 附录:总程序...................................................................................................................................................... 2 1数字化语音存储与回放系统的设计专业:电子信息科学与技术姓名:李进国指导老师:彭光含摘要:本文介绍的数字化语音存储与回放系统将完全可以替代传统的磁带语音录放系统。
数字化语音存储与回放系统的设计
摘要传统的磁带语音录放系统因其体积大、使用不便,在电子与信息处理的使用中受到许多限制。
本文提出的体积小巧,功耗低的数字化语音存储与回放系统将完全可以替代它。
数字化语音存储与回放系统的基本原理是对语音的录音与放音的数字化控制。
其中,关键技术在于,为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放时再进行解压缩,同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量。
该系统对语音信号分别采用了数据采集直寸直取,欠抽样采样和自相似增量调制等三种方法,完成了对语音信号32.7s、65.5s、147.4s的存储与回放。
前直AGC将语音信号控制在A/D转换器可控制的范围之内以保证话音信号采样不失真。
带通滤波器合理的通带范围有效的滤除了带外噪声,减小了混叠失真。
π的校正,回放语通过后级补偿电路对输出的语音信号进行了()()s ff//πff/sin音清晰。
系统具有自动录音、手动录音、录放音时间显示以及掉电后保护语音信号等功能。
关键词:数字化存储,回放,数字滤波,采样,模/数转换,校正AbstractTraditional tape record system because of heavy using inconvenient volume their, receive a lot of restrictions in the use of the electron and information processing. The volume that this text puts forward is small and exquisite,the digitized pronunciation of the low power dissipation can substitute it with the playback system to store. Digitized pronunciation store systematic basic principle recording and to put sound in pronunciation digital control with playback. Among them, key technology lies in : For increase pronunciation store time , raise utilization ratio of memory , adopt non- distorted to compress algorithm go on after compressing storing to pronunciation signal, decompress in the playback ; Meanwhile, to input pronunciation signal carry on figure strain wave by suppressing noising and interfering, thus guaranteed the reliable quality of the playback of the pronunciation.Introducing the direct store & access of data collection,and AGC on acoustic signal respectively ,this system implements the storage an playback of acoustic signal which lasts for 32.7 seconds ,65.5sends or 147.4 seconds ; To insure theundistorted sampling of speech signal, the pre-AGC limits the speech signal within the range that can be processed by A/D converter; the reasonable handwidth of hang-pass filter removes the out-hand noise efficiently and decrease the overlapdistortion; With the ()()ssffff/sin//ππemendation by latter compensablecircuit ,the playback voice is very clear; Beside all above ,this system also realize the following funcitions: automatic recording manually recording manually recording ,record , record/play time display and the saving of speech signal when power-off .Keywords: Digital store,Playback Digital Filter,Sample,A/D Convert,Correct目录摘要 (I)Abstract (I)1 绪言............................................................. 11.1课题背景................................................... 11.2课题研究的目的和意义....................................... 11.3国内外概况................................................. 12方案比较与论证................................................... 22.1方案一..................................................... 22.1.1语音编码方案:........................................ 22.1.2 A/D、D/A及存储芯片的选择............................. 22.2方案二..................................................... 32.2.1控制方式.............................................. 32.2.2放大器及A/D、D/A芯片的选择........................... 32.3方案三..................................................... 43系统总体结构..................................................... 54 电路设计......................................................... 64.1拾音器..................................................... 64.2放大器的设计............................................... 64.3有源带通滤波器设计......................................... 84.4可调稳压电源的设计......................................... 94.5 MCS—51系列单片机....................................... 104.6 D/A、A/D转换器.......................................... 204.6.1 D/A转换器DAC0832的介绍............................ 204.6.2 A/D转换器AD574介绍................................ 214.6.3 单片机AT89C51和AD574 的接口原理................... 224.6.4 存储器的选取........................................ 245 软件设计....................................................... 266 总结与展望..................................................... 287 致谢.......................................................... 298 参考文献....................................................... 30附录............................................................. 321 绪言本文阐述了数字化语音存储与回放系统的研究背景、现状及发展方向,明确指出了传统的语音存储与回放系统的缺陷和面临的问题,以及数字化语音存储与回放系统的优点和发展前景。
毕业设计(论文)-数字化语音存储与回放系统设计[管理资料]
数字化语音存储与回放系统设计摘要本文介绍了一种以单片机为核心控制单元的数字化语音存储与回放系统的组成以及系统软硬件的设计。
该系统的基本原理是对语音信号的录制和回放的数字化控制。
该系统以AT89C52单片机为微处理器,实现对系统的控制以及数据的处理。
系统采用闪存28F512作为外部数据存储器来存放语音数据,以满足能够较长时间存储语音信息。
语音采集部分采用ADC0809进行模数转换,语音回放部分采用DAC0832实现数模转换,并通过键盘等接口电路实现人机交互,单片机工作在中断查询模式,能够快速响应按键要求,以控制信号的采集、存储和回放等。
同时,外围电路辅以带通滤波器和增益、功率放大等电路对信号进行滤波放大,以保证信息的高质量存储与回放。
关键词:数字化存储,回放,数字滤波,采样,模/数转换目录1绪论 (1) (1) (1) (1) (2) (3)2系统总体方案设计 (4)3硬件部分设计 (7) (7) (7) (7) (8) (9) (12) (12) (13) (14) (14) (15)D/A转换器DAC0832 (15)DAC0832内部结构及引脚 (16)DAC0832工作方式 (16)A/D转换电路设计 (18)A/ D转换的常用方法 (18)ADC0809的主要特性和结构 (18)ADC0809管脚功能及定义 (19)ADC0809工作方式 (20) (22) (23)4软件设计 (26)C51 (26)Protrus软件设计 (26) (27) (27) (28) (30)5结论 (32)6致谢 (33)参考文献 (34)附录 (36)外文资料 (41)外文翻译 (48)1绪论语音信号处理是信息科学的一个重要分支,伴随着大规模集成技术的高度发展以及计算机技术的飞速前进,推动了语音信号处理技术的快速发展。
数字化语音存储与回放系统,则是利用数字语音电路来实现语音信号的数据存储、还原等任务,它是以数字电路为基础,采用51系列单片机作为核心的语音处理系统[5]。
数字化语音存储与回放系统(设计)
Key WordsSinglechip processor system,A/D conversion,D/A transformation,In Application Programming,Differential Pulse Code Modulation.
1
目前,随着数字化信号处理技术的不断提高,单片机,数字信号处理器以及语音处理大规模集成电路的进步,语音合成,语音识别,语音存储和回放技术的应用越来越广泛,尽管现在各种语言合成芯片,语音处理应用电路有许多,但都需要增加硬件投资,在一些由单片机构成的测控系统中,由于单片机接口有限,还需要扩宽硬件接口线路,本文介绍的语音存储与回放系统中,没有使用专用的语音处理芯片,不需扩宽接口电路,只利用一般的单片机测控系统中都有的硬件电路(如A/D、 D/A、,存储器等)就能完成语音信号的数字化处理,即能完成语音的存储与回放,实现单片机测控系统的语音提示报警及语音提示操作。因此特别适用于单片机测控系统,为单片机测控系统的语音报警及语音提示操作在几乎不需增加硬件投资情况下的语音处理提供了一种思路。
1)采用专用滤波器芯片的低通滤波器电路
1Hz~10kHz,在阻带频率初可达-60dB的衰减,采用+5V电压供电。MAX7403的引脚端封装形式和应用电路如图2.7所示。通过改变连接到芯片的时钟频率,即可获得所要求技术指标的低通滤波器,滤波器时钟信号CLK可采用自建始终或者是通过外部输入时钟。若采用外部始终,则fc=fclk/100;若采用内部时钟发生器,则连接到引脚端CLK和GND之间的电容Cosc=K×10³/fosc。
数字化语音存储与回放系统设计
数字化语音存储与回放系统设计摘要:目前广为流行的语音存储手段为磁带记录,但数字化存储方式是未来发展的趋势。
作为高科技应用领域的热点,数字化语音处理技术从理论的研究到产品的开发已经取得了长足的进步。
它已直接与办公、金融、公安、商业、旅游等行业的语音咨询与管理,工业生产部门的语声控制,电话电信系统的自动拔号、辅助控制与查询,医疗卫生和福利事业的生活支援系统等紧密联系。
关键词:数字化语音;存储与回放;系统设计目前,广为流行的语音存储手段为磁带记录,然而传统的磁带语音录放系统因其体积大、使用不便,在电子与信息处理的使用中受到许多限制,因此数字化存储方式是未来发展的趋势。
作为高科技应用领域的热点,数字化语音处理技术从理论的研究到产品的开发已经取得了长足的进步。
它已直接与办公、金融、公安、商业、旅游等行业的语音咨询与管理。
工业生产部门的语声控制,电话电信系统的自动拨号、辅助控制与查询,医疗卫生和福利事业的生活支援系统等紧密联系。
并有可能成为下一代操作系统和应用程序的用户界面。
本文对数字化语音存储与回放系统进行了研究并给出了实现方案。
一、系统原理语音信号通过拾音器转换成了毫伏量级的电信号实测其范围约为20-25mV,此电信号太小不能够进行采样。
后级A/D转换输入信号的动态范围为0-5V,语音信号的范围与采样范围的比较得出放大器的放大倍数应为200倍左右。
此处将信号通过一增益为46dB的放大器,将其放大到伏特量级,输出级放大电路亦采用这种电路,两级放大电路都采用增益可调的典型电路。
后级电路不再详述。
考虑到语音信号固有特点,将低于300Hz和高于3,4kHz的分量滤掉后语音质量仍然良好,此处将其通过一增益为46dB的放大器,因此,将带通滤波器设计为典型的300Hz-3,4kHz,输出级带通滤波器亦为300Hz-3,4kHz,这样既可滤掉低频分量又可滤掉D/A转换带来的高频分量,很好地消除掉噪声。
据奈奎斯特抽样定理知欲使采样信号无失真,抽样频率最低为6,8kHz,考虑到留有一定的余地,这样就足够保证语音质量。
数字化语音存储与回放系统
摘要文章介绍了一种数字化语音存储与回放系统的设计方法,该系统以单片机89C52为中心,采用两片AT628128存储芯片(128KB)构成256KB的外部存储器来存放采集的语音数据,前端语音信号采集部分采用ADC0809实现模数转换,后端语育信号回放部分采用ADC9764实现数模转换,通过键盘等接口电路实现人机交互,单片机工作在中断查询模式,能够快速响应按键要求,以控制系统的语音信号采集开始、存储和回放等。
同时,外围电路辅以带通滤波器和放大器等电路对信号进行滤波放大,实现了语音信号的高保真度存储与回放。
关键词:单片机;语音存储;语音回放目录1前言 (4)2系统总体方案设计 (5)3语音信号的数字化3.1语音信号的前端处理 (7)3.2采样理论 (7)3.2.1采样 (7)3.2.2 量化 (8)3.2.3 编码 (8)3.3 A/D转换器的设计 (9)3.3.1常见A/D转换器种 (9)3.3.2系统设计对A/D转换器的要求 (10)3.3.3模数转换芯片ADC0809简介 (10)4语音信号的存储4.1存储方案的选择 (12)4.2 FIFO特点简介 (13)4.3 扩展SRAM 仿真FIFO (13)5语音信号的回放5.1数模转换器设计 (14)5. 1. 1 AD9764 .............................................................. 芯片简介145. 1. 2 ............................................................. AD9764芯片的工作原理15 6软件设计 (17)参考文献 (19)致谢 (20)第一章前言目前,许多应用系统中都需要语音存储和回放处理。
按照经典的信号与系统理论,语育信号为模拟信号; 而计算机系统建立在二进制基础上,使用的是数字信号。
那么,利用计算机处理语音信号就必须先将其数字化,并将其储存、实现回放。
数字化语音存储与回放系统本科设计说明
题目数字化语音存储与回放系统毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 ______________________________________ 及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:_________________ 日期: _________________________学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 ___________________________________ 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
语音存储与回放系统的设计与实现
目录摘要IABSTRACT I1 绪论11.1 课题的背景及意义11.2 国内外研究现状11.3 本文的主要内容及研究方法21.3.1 本文主要内容21.3.2 研究方法32 语音存储与回放系统总体设计32.1 设计要求32.2 实现方案的选择32.3 总体设计方案43 语音录放系统的硬件设计53.1 单片机控制电路设计53.1.1 AT89S52单片机简介53.1.2 晶振电路设计73.1.3 复位电路设计73.2 语音录入电路设计83.2.1 MIC简介83.2.2 语音录入电路设计93.3 语音处理电路设计93.3.1 ISD4004简介103.3.2 语音处理电路设计133.4 功放电路设计143.4.1 LM386简介143.4.2 功放电路设计153.5 按键控制电路设计163.6 状态显示电路设计163.6.1 LCD1602简介163.6.2 状态显示电路设计183.7 电源电路设计183.7.1 AMS1117简介183.7.2 电源电路设计194 语音录放系统的软件设计194.1 主程序设计194.2 按键处理子程序设计204.2.1 主要变量说明204.2.2 按键处理子程序设计214.3 语音处理子程序设计214.3.1 录音子程序设计214.3.2 放音子程序设计214.3.3 暂停子程序设计234.3.4 停止子程序设计245 电路仿真255.1 系统工作状态显示模块仿真25 5.2 系统输出放大模块仿真266 系统的制作与调试27 6.1 系统的制作276.1.1 电路板布线276.1.2 电路焊接286.2 系统调试286.2.1 硬件调试286.3.2 软件调试296.3.3 调试结果29结束语29致谢30参考文献31(附录)32附录1 原理图32附录2 PCB图33附录3 工作图33附录4 源程序33语音存储与回放系统的设计与实现摘要随着当今社会电子技术更新的日益加快,单片机控制系统的应用在日常生活中已变得越来越广泛,特别是在语音录放等领域。
单片机控制的数字化语音存储与回放系统设计
单片机控制的数字化语音存储与回放系统设计[摘要]本系统以8031单片机为核心器件,由四片62256组成RAM阵列,并采用分页存储模式,将外部数据存储空间扩大至128kbyte。
利用△M方法对数据进行压缩以加长存储时间。
前向通道中的自动音量控制器可有效地提高系统性能。
另外,系统有自检和工作模式设定等功能,使其具有实用性。
[关键词]单片机分页存储数据压缩一、系统原理整个系统由前向通道、主机和后向通道三个子系统构成,如图1所示。
(一)前向通道子系统该子系统由话筒,话筒放大电路,自动增益控制级,滤波器,A/D转换器组成。
声电转换通过驻极体话筒实现,它具有灵敏度高、噪声小、价格低等诸多优点。
转换后的电信号经低噪声宽频带的运放NE5532放大,该电路采用一级反向放大接一级隔离缓冲,使电路结构大大简化,并减少了系统噪声。
放大增益由两个50kΩ精密电位器调节,可方便地满足系统的要求。
放大后的信号进入自动音量控制器。
放大电路输出的音频交流电压经二极管2AP9和RC电路构成的包络检波器检波后,输出一个随音频平均电压变化的电压,用此电压控制工作于可变电阻区的场效应管的栅极,改变场效应管的导通电阻,使放大倍数受音频信号大小控制。
当音频信号强时自动减小放大倍数,信号弱时自动增大放大倍数,从而实现音量自动调节。
A/D转换部分采用常用的A/D转换器0809,0809的最大允许采样率为11kHz。
由于其典型时钟为64kHz,所以一般应用电路都把803l的地址锁存信号经二分频后输入0809的时钟端,这种接法限制了0809的采样速率。
0809的最大时钟可达1.28MHz,可以从8031的ALE端直接引入1MHz的时钟,这样完全可以使0809的采样率达到8kHz。
(二)主机子系统数字存储的关键技术在于数据的编码压缩和物理存储空间的扩展,这是主机子系统所要解决的问题。
以8位采样精度、8kHz采样速率计,每秒钟的语音信息经PCM编码后的数据量为8kbyte,以8031的最大寻址能力(64kbyte)存储数据,也只能存储8sPCM语音,况且单片机的外设如键盘、显示以及A/D、D/A转换器都要占用寻址空间。
电子竞赛-数字化语音存储与回放系统
压缩与扩张:实现非均匀量化的方法之一 特点: 对输入模拟信号进行压缩处理后再 均匀量化 。
方案4 基于FPGA控制的数字化语 音存储与回放系统
1、数字化语音存储与回放系统硬件电路
放大器1即音频信号放大电路 音频信号放大电路如图2所示。第一
级放大(-4.7)倍。IRD120实现自动增 益控制,当开关打到1的位置是增益自 动控制,当开关打到2的位置是手动控 制。增益自动、手动控制是利用场效 应管工作在可变电阻区,漏源电阻受 栅源电压控制的特性。第二级放大 (+101)倍。第三级放大倍数可调,最大 (-20)倍,保证ADC0809满量程转换。
通过麦克风接收模拟信号,通过ADC0809转换为数字信号,存储在内存单 元中,再通过开关选通存储通道,把数据存到存储器中去。 (2)放音子程序 读取存储文件上的相应数据,通过DAC0832转换,再用扬声器进行输出。 (3)文件的存放和读取 完成将数据存储和取出的操作。
图6 8253定时/计数器电路
数模转换(DAC)电路 DAC如图6所示。题目要
求变换频率fc=8kHz,字长 =8位,可选择转换时间不 超过125μs的8位D/A转换 芯片,DAC0800的转换时 间为100ns,可选用 DAC0800。存储芯片输出 的数字量经可编程器件图9 送给DAC0800 DAC电路, 将数字量转换为模拟量。
回放时,由程序控制从文件中提取出数字语音数据, 然后送入DAC0832转换成模拟信号,最后送入扬声 器回放出来。其中ADC0809以及DAC0832的采样频 率由8253定时/计数器产生,由程序控制其运行。
方案* 硬件设计
系统的组成大致有以下几部分:模拟信号放大电 路,电平提升电路,A/D转换电路,D/A转换电 路以及8253定时/计数电路。系统硬件电路框图 如图1所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字化语音存储与回放系统的设计班级:电信1202 姓名:吴建亮学号:201203090224 一、设计题目设计一个数字语音存储与回放系统,其系统框图如图图1.1所示。
设计要求如下:语音录放时间≧60s;语音输出功率≧0.5W,回放语音质量良好;设置“录音”、“放音”键,能显示录放时间;采用语音压缩算法,在不增加存储器容量的基础上增加录放时间。
麦克风语音输入通道ADC喇叭语音输出通道DAC微控置器存储器图1.1 数字化语音存储与回放系统框图二、方案设计数字化语音存储与回放系统的基本原理:语音的存储与回放系统将语音信号转化为电信号,经放大、滤波处理后通过A/D转换器转化为数字信号,然后将数字化的语音信号存放在大容量的存储器中;回放时,从存储器中取出数字化的语音信号,经D/A转化器转化为模拟信号,经滤波放大后驱动扬声器发出声音。
如图2.1所示为以C8051F360为核心的语音存储与回放系统原理框图。
麦克风前置放大器带通滤波器C8051F360ADC0 IDA0带通滤波器功率放大器喇叭键盘和显示外部存储器图2.1 语音存储回放系统原理框图三、模拟子系统设计1.语音输入通道电路的设计在语音存储与回放系统中,通过麦克风将声音信号转化为电信号。
麦克风内部含有一个电容元件和场效应管构成的内部前置放大器。
电容随机械振动发生变化,从而产生与声波成比例的变化电压。
麦克风在使用时需要通过一个电阻R1连接到电源对其进行偏置。
R1的阻值决定了麦克风的输出电阻和增益,通常在1~10kΩ之间。
麦克风输出的电信号比较微弱,信号增值在1~20mV之间。
前置放大器就是对麦克风输出的语音信号进行放大一边对其进一步处理。
前置放大电路有两种设计方案。
一种方案是针对双麦克风设计的前置放大器,由一级差分放大器和一级增益可调反向放大器组成的设计方案。
本次系统设计中,为了是器材简单,使用了后一种。
语音存储与回放系统中,模拟量输入通道和输出通道均需要带通滤波器。
带通滤波器的通带范围为300Hz~3。
4kHz,主要实现的功能如下:(1)保证300Hz~3。
4kHz的语音信号不失真的通过滤波器。
(2)滤除带通外的低频信号,减少工频等分量的干扰,减小噪声影响。
(3)滤除带通外的告辞谐波信号,减少因8kHz采样率引起的混叠失真,根据实际情况,该上限频率在2.7kHz左右。
根据上述条件设计的语音输入通道如图3.1所示。
图3.1语音输入通道2.语音输出通道设计当语音回放是,语音信号从C8051F360单片机的IDA0输出。
IDA0输出的语音心哈既包含了直流分量,也包含了由于最小分辨电压产生的高频噪声。
因此在语言输出通道应设置带通滤波电路。
为了能提供0.5W的功率输出,语音信号还要经过功放电路进行功率放大。
为了简化电路设计,语音输出通道选用了滤波和功放二合一的设计方案,其原理图如图3.2所示。
图3.2 语音输出通道电路原理图四、大容量存储接口设计M25P16与C8051F360单片机的接口如图4.1所示。
通过交叉开关将4线制SPI总线配置到P3.1、P3.2、P3.3、P3.4引脚上,分别与M25P16的时钟输入端C、数据输出端Q、数据输入端D和片选信号S相连。
图4.1中的W为写保护引脚,用于防止芯片内某些区域的数据被擦除或修改,当W接高电平时,写保护功能无效。
M25P16的HOLD引脚为保持信号,低电平时用于暂停芯片的串行通信。
SCK(P3.1) MISO(P3.2) MOSI(P3.3) NSS(P3.4)CQDVCC SHOLDVSSWC8051F360M25P16+5V 图4.1 C8051单片机和M25P16的接口五、系统软件设计语音存储回放系统软件的基本功能是通过按键控制系统实现录音和放音。
录音时,采集语音信号并将采集的数据存入M25P16中,放音时,从M25P16中读取数据送入DAC,系统分为以下几个框架:(1)人机接口的功能设计;(2)键盘处理程序设计;(3)M25P16的读写方案设计;(4)A/D和D/A转换器的控制;(5)擦除、录音和放音及时;(6)C8051F360单片机内部资源的使用;在语音存储与回放系统中,需要使用C8051F360单片机的ADC0、IDA0、SP10、定时器T0、定时器T1、定时器T2等资源,因此,在主程序的初始化程序中,需要对这些内部资源初始化。
根据上述分析。
语音存储回放系统的软件由主程序、键盘中断服务程序、ADC0中断服务程序、定时器T1中断服务程序、定时器T2中断服务程序组成。
主程序流程图5.1所示。
在主程序中完成初始化然后循环检测有无按键输入,并根据键值做相应的处理。
中断程序如图5.2、图5.3和图5.4所示。
详细的程序请见附件。
C8051F360和M25P16初始化开始禁止ADC0,禁止T1、T2中断显示初始界面键有效标志=1?清键有效标志显示“正在录音”允许ADC0,禁止T1中断M25P16地址初始化秒寄存器清零允许定时器T2中断显示“正在擦除”秒寄存器清零允许定时器T2中断调用M25P16擦除子程序禁止ADC0,禁止中T1、T2断显示初始界面显示“正在放音”禁止ADC0,允许T1中断M25P16地址初始化秒寄存器清零允许定时器T2中断根据键值散转“擦除”键?”放音“键?“录音”键?NY图5.1主程序流程图清T2中断标志软件计数器加11s时间到?Y软件计数器清零N 秒寄存器加1显示时间中断返回图5.2 T2中断服务程序中断返回清中断标志将A/D 转换值写入M25P16M25P16地址加1显示”录音结束“地址=200000H ?NY禁止ADC0,禁止T2中断图5.3 ADC0中断服务程序从M26P16读1字节数据到IDA0HM25P16地址加1地址=200000H?YN显示”放音结束“禁止T1、T2中断中断返回图5.4 T1中断服务程序四、系统调试1.单片机部分的调试单片机部分的调试主要是对系统部分进行调试,将EC5仿真器将单片机最小系统与PC机相连,采用C8051F单片机的集成开发环境Keil C51进行调试,主要步骤如下:(1)调试键盘显示程序;(2)测试单片机对M25P16读写是否正常;(3)测试C8051F360单片机的A/D和D/A转换器;2.模拟部分的调试(1)麦克风和前置放大器的调试;(2)带通滤波器的调试;(3)音频功放电路的调试;3.联机调试将语音输入通道的输出与单片机P2.0相连,单片机IDA0的输出与语言输出通道相连,将音频功放电路与0.5W,8Ω喇叭相连。
五、实验总结本次实验较为系统的设计和调试了基于80C51F360的数字语音存储回放系统,了解和掌握了外部RAM和单片机的SPI通信方法,更深一步了解了定时器和ADC0中断。
通过整个系统的设计,发现,容易出错的地方往往不是程序代码语法或者输入错误,而是系统逻辑问题,因此在以后的系统设计中,要重视逻辑的建立,在做系统之前,首先要画出没有挑剔的程序流程图,因为这是系统的思想路径,只有有了明确正确的路径,才能踏踏实实的编写程序,同时也会发现,以前恐惧的几百行代码已经变得多么易于理解了。
附件:/**************************************************************************************************/#include <C8051F360.H>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longtypedef union ADDRESS{ulong addrlong;uchar addrbyte[4];}ADDRESS;#define CS1 0x4000 //外部扩展片选地址1#define CS2 0x8000 //外部扩展片选地址2#define LEDENCS 0xC004 //LCD模块背光控制片选信号#define WCOMADDR 0xC008 //写命令寄存器的地址#define WDATADDR 0xC009 //写数据寄存器的地址#define RCOMADDR 0xC00A //读命令寄存器的地址#define RDATADDR 0xC00B //读数据寄存器的地址#define KEYCS 0xC00C //读键盘的地址uint count; //软件计数器uint temp;uchar bbb; //存放键值uchar keycode; //LCD模块背光控制字,最低位为0时关LED背光,最低位为1时开启LED背光,uchar LEDCON=0x00;bit keysign=0;ulong addr=0x00;void OscInit(void); //振荡器初始化void PortIoInit(void); //端口初始化void XramInit(void); //void SmbInit(void); //I2C总线初始化void UartInit(void); //异步串口通信接口初始化void DacInit(void); //D/A转化器初始化void AdcInit(void); //A/D初始化void Int0Init(void); //外部中断初始化void TimerInit(void); //定时器初始化void PcaInit(void); //PCA初始化void InterruptsInit(void);// 中断系统初始化void InitDevice(void);void SPIInit(void); //spi初始化void LEDEN(); //开背光void CheckLcd(); //检查LCD是否空闲子程序void WriteCom(uchar n); //Lcd写指令子程序void WriteData(uchar m);//Lcd写数据子程序void InsitiLcd(); //Lcdvoid DispHan( uchar *a,uchar m,uchar k); //Lcd初始化子程序void Flash_Init(); //存储器初始化void Erase_All(); //存储器擦输void WR_flash(ulong addr,uchar data_byte); //写一字节uchar Read_flash(ulong addr); //读一字节/*********************************************主函数/**********************************************/void main(){InitDevice();Flash_Init();InsitiLcd();LEDEN();DispHan("擦去",0x80,0x04);DispHan("K1",0X90,0X02);DispHan("录音",0x83,0x04);DispHan("K2",0X93,0X02);DispHan("放音",0x86,0x04);DispHan("K3",0X96,0X02);while (1){if (keysign == 1){keysign = 0;switch(keycode){case 0x01:{count=0;temp=0;InsitiLcd();LEDEN();DispHan("擦写中",0x92,0x06); TR2=1;Erase_All();TR2=0;InsitiLcd();LEDEN();DispHan("擦除",0x80,0x04);DispHan("K1",0X90,0X02);DispHan("录音",0x83,0x04);DispHan("K2",0X93,0X02);DispHan("放音",0x86,0x04);DispHan("K3",0X96,0X02);break;}case 0x02:{count=0;temp=0;addr=0x000000;TR0=1;TR2=1;InsitiLcd();LEDEN();DispHan("录音中",0x92,0x06);break;}case 0x03:{count=0;temp=0;addr=0x000000;TR2=1;TR1=1;IDA0CN=0xf2;InsitiLcd();LEDEN();DispHan("放音中",0x92,0x06);break;}}}}}/*********************************************键盘中断读取程序**********************************************/ void ReadKey() interrupt 0{uchar xdata *addr;addr=KEYCS;keycode=*addr;keycode &= 0x0F;keysign =1;}/********************************************* 定时器1中断函数**********************************************/ void Timer1() interrupt 3{uchar a;if(addr<0x0fffff){a=Read_flash(addr);IDA0L=0x00;IDA0H=a;addr++;}else{TR1=0;TR2=0;IDA0CN=0x72;InsitiLcd();LEDEN();DispHan("擦除",0x80,0x04);DispHan("K1",0X90,0X02);DispHan("录音",0x83,0x04);DispHan("K2",0X93,0X02);DispHan("放音",0x86,0x04);DispHan("K3",0X96,0X02);}return;}/***********************定时器2中断函数**************************/void Timer2() interrupt 5//{TF2H=0;temp++;if(temp==100){uchar b[]="000s";int a;temp=0;count++;a=count;b[2]=a%10+'0';a=a/10;b[1]=a%10+'0';a=a/10;b[0]=a%10+'0';DispHan(b,0x98,0x04);}return;}void ADC() interrupt 10//ADC0中断函数{uchar a;if(addr<0x0fffff){AD0INT=0;a=ADC0H;WR_flash(addr,a);addr++;}else{TR0=0;TR2=0;AD0INT=0;InsitiLcd();LEDEN();DispHan("擦除",0x80,0x04);DispHan("K1",0X90,0X02);DispHan("录音",0x83,0x04);DispHan("K2",0X93,0X02);DispHan("放音",0x86,0x04);DispHan("K3",0X98,0X02);}return;}void OscInit(void) //内部振荡器初始化{SFRPAGE=0x0f; //选择特殊功能寄存器页地址OSCICL=OSCICL+4;OSCICN=0xc2; //允许内部振荡器,频率除2作为SYSCLK=12MHzCLKSEL=0x00; //选择内部振荡器SFRPAGE=0x00;}void PortIoInit(void) //I/O初始化{SFRPAGE=0x0f;P0MDIN=0xe7; //P0.3、P0.4模拟量输入P0MDOUT=0x83; //P0.0、P0.1、P0.7推拉式输出P0SKIP=0xf9; //P0.1、P0.2不被交叉开关跳过P1MDIN=0xff; //P1设置为数字量输入P1MDOUT=0xff; //P1设置为推拉式输出P1SKIP=0xff; //P1被交叉开关跳过P2MDIN=0xfe; //P2.0模拟P2MDOUT=0xff; //P2P2SKIP=0xff;P3MDIN=0xff; //P3设置为数字量输入P3MDOUT=0xff; //P3设置为推拉式输出P3SKIP=0x00;P4MDOUT=0xff; //P4设为推拉式输出XBR0=0x03; //SPI接到端口XBR1=0xC0; //禁止弱上拉,交叉开关允许SFRPAGE=0x00;return;}void SPIInit(void){SPI0CFG=0x40;SPI0CN=0x09;SPI0CKR=0x00;}void XramInit(void) //外部数据储存器初始化{SFRPAGE=0x0f;EMI0CF=0x07; //引脚复用方式SFRPAGE=0x00;return;}void SmbInit(void) //I2C总线初始化{SMB0CF=0xc1; //定时器T1溢出作为时钟return;}void UartInit(void) //异步串口通信接口初始化{SCON0=0x00; //10位UARTreturn;}void DacInit(void) //D/A转化器初始化{IDA0CN=0xf2; //IDA0使能,写IDA0H触发DAC输出更新,2mA满度输出return;}void AdcInit(void) //A/D初始化{REF0CN=0x08; //选择VDD作为电压基准AMX0P=0x08; //正端接P0AMX0N=0x1f; //负端接地ADC0CF=0x2c; //左对齐,转换时钟2MHzADC0CN=0x81;return;}void Int0Init(void) //外部中断初始化{IT01CF=0x05; //选择P0.5为INT0IT0=1; //INT0下降沿触发return;}void TimerInit(void) //定时器初始化{TMOD=0x22; //T0T1方式2 8位自动重装CKCON=0x00; //系统时钟12分频TL0=0x83; //0.125msTH0=0x83;TL1=0x83; //0.125msTH1=0x83;TMR2CN=0x00; //16位自动重装,系统时钟12分频TMR2RLL=0xf0; //10msTMR2RLH=0xd8;TR0=0; //定时器0,1,2禁止TR1=0;TR2=0;return;}void PcaInit(void) //PCA初始化{PCA0CN=0x40; //允许PCA计数器/定时器PCA0MD=0x00; //禁止看门狗定时器return;}void InterruptsInit(void) //中断系统初始化{IE0=0; //清INT0中断标志EX0=1;PX0=0;ET0=0;ET1=1;ET2=1;EIE1=0x08;//允许ADC中断//ES0=1;EA=1;return;}void InitDevice(void){OscInit();PortIoInit();XramInit();//SmbInit();//UartInit();DacInit();Int0Init();TimerInit();PcaInit();SPIInit();AdcInit();//Flash_Init();InterruptsInit();return;}/************************************************* Function: 检查LCD是否空闲子程序*************************************************/ void CheckLcd(){uchar temp = 0x00;uchar xdata *addr;while (1){addr=RCOMADDR;temp=*addr;temp &= 0x80;if(temp == 0x00)break;}}/************************************************* Function: Lcd写指令子程序*************************************************/ void WriteCom(uchar n){uchar xdata *addr;CheckLcd();addr=WCOMADDR;*addr=n;}/************************************************* Function: Lcd写数据子程序*************************************************/ void WriteData(uchar m){uchar xdata *addr;CheckLcd();addr=WDATADDR;*addr = m;}/*************************************************Function: Lcd初始化子程序*************************************************/void InsitiLcd(){WriteCom(0x30); //设为基本指令集WriteCom(0x01); //清屏WriteCom(0x0c); //开整体显示}/*********************汉字显示子程序*******************函数功能:在指定位置显示指定长度的字符串入口参数:*a是字符串 m表示显示的起始地址,k表示字符串长度******************************************************/ void DispHan( uchar *a,uchar m,uchar k){uchar dat, i, j, length;length = k/2;WriteCom(m);for (i=0;i < length;i++){j = 2*i;dat = a[j]; //?????????WriteData(dat);dat = a[j+1]; //?????????WriteData(dat);}}/*********************************************LCD背光使能/**********************************************/void LEDEN(){uchar xdata *addr;addr=LEDENCS;*addr=0x01;return;}/********************************************* M25P16初始化/**********************************************/ void Flash_Init(){uchar men_status=0x01;NSSMD0=0;SPI0DAT=0x06;while(SPIF!=1);SPIF=0;NSSMD0=1;NSSMD0=0;SPI0DAT=0x01;while(SPIF!=1);SPIF=0;SPI0DAT=0x00;while(SPIF!=1);SPIF=0;NSSMD0=1;NSSMD0=0;SPI0DAT=0x05;while(SPIF!=1);SPIF=0;while(men_status==0x01){SPI0DAT=0xFF;while(SPIF!=1);SPIF=0;men_status=SPI0DAT&0x01;}NSSMD0=1;}/********************************************* M25P16整片擦除/**********************************************/ void Erase_All(){uchar men_status=0x01;NSSMD0=0;SPI0DAT=0x06;while(SPIF!=1);SPIF=0;NSSMD0=1;NSSMD0=0;SPI0DAT=0xC7;while(SPIF!=1);SPIF=0;NSSMD0=1;NSSMD0=0;SPI0DAT=0x05;while(SPIF!=1);SPIF=0;while(men_status==0x01){SPI0DAT=0xFF;while(SPIF!=1);SPIF=0;men_status=SPI0DAT&0x01;}NSSMD0=1;}/********************************************* M25P16写一字节/**********************************************/ void WR_flash(ulong addr,uchar data_byte){ADDRESS temp_addr;temp_addr.addrlong=addr;NSSMD0=0;SPI0DAT=0x06;while(SPIF!=1);SPIF=0;NSSMD0=1;NSSMD0=0;SPI0DAT=0x02;while(SPIF!=1);SPIF=0;SPI0DAT=temp_addr.addrbyte[1];while(SPIF!=1);SPIF=0;SPI0DAT=temp_addr.addrbyte[2];while(SPIF!=1);SPIF=0;SPI0DAT=temp_addr.addrbyte[3];while(SPIF!=1);SPIF=0;SPI0DAT=data_byte;while(SPIF!=1);SPIF=0;NSSMD0=1;}/********************************************* M25P16读一字节/**********************************************/ uchar Read_flash(ulong addr){ADDRESS temp_addr;temp_addr.addrlong=addr;NSSMD0=0;SPI0DAT=0x06;while(SPIF!=1);SPIF=0;NSSMD0=1;NSSMD0=0;SPI0DAT=0x03;while(SPIF!=1);SPIF=0;SPI0DAT=temp_addr.addrbyte[1];while(SPIF!=1);SPIF=0;SPI0DAT=temp_addr.addrbyte[2];while(SPIF!=1);SPIF=0;SPI0DAT=temp_addr.addrbyte[3];while(SPIF!=1);SPIF=0;SPI0DAT=0xFF;while(SPIF!=1);SPIF=0;NSSMD0=1;return SPI0DAT;}。