1、9第9章 SPCE061A实用技术 第9章 SPCE061A实用技术 9.1 应用领域应用领域 9.2 应用举例应用举例思考题思考题 9第9章 SPCE061A实用技术 9.1 应应 用用 领领 域域 9.1.1 数字信号处理数字信号处理1.数字滤波器数字滤波器(Digital Filter)数字滤波器是一种计算处理或算法,它将输入的数字信号或序列中的干扰滤掉变换为标准数字序列输出。数字滤波器已被广泛地应用于数字语音、数字图像处理以及模式识别和频谱分析等领域。9第9章 SPCE061A实用技术 数字信号处理器DSP(Digital Signal Processor)是通过一系列数字来表示信号及
2、其信息,并借助数字计算方法,变换和处理这些信号的。在DSP系统中,要求必须快速地完成数值的乘法运算并将乘积累加于寄存器,因而要求处理器具有较高的处理速度,以完成“乘和累加”MAC(Multiply&Accumulate)运算,nSPTM的指令系统中专门设计了“累计运算”指令,使得数字信号处理变得非常方便。显然,nSP的硬件结构与其指令系统非常适用于DSP方面的开发与应用。9第9章 SPCE061A实用技术 2.数字信号的压缩编码与解码数字信号的压缩编码与解码通常用于存储语音、图像等多媒体信息的数字信息量非常大,无论存储还是传输都很不方便,为了节省存储空间、提高传输效率,我们可以采用某种算法进行
3、压缩编码与解码(篇幅所限,不再赘述,请参阅数字通信原理)。9第9章 SPCE061A实用技术 3.数字语音信号处理数字语音信号处理数字语音信号处理是建立在DSP硬件基础上的,通常DSP按运算的复杂程度分为定点运算和浮点运算两类。定点DSP采用整数运算,适用于容量大、简单、低功耗的应用场合。浮点DSP采用实数运算,适宜于高性能、较复杂的应用场合。nSP可用于定点DSP运算且其成本较低,在语音处理方面具有独到之处。9第9章 SPCE061A实用技术 9.1.2 9.1.2 便携式终端便携式终端 随着无线电通信及微电子技术的迅速发展,便携式终端越来越朝着实用化、个性化、时尚化的方向发展,笔记本电脑、
4、电子词典、个人数字助理PDA(Personal Digital Assistant)等都是这种时尚潮流产物。若以nSP家族产品为CPU,添加必要的外围电路,配合相应的外设可方便地设计出实用性强、可靠性高的各类PDA产品。图9.1是基于nSP系列单片机的PDA硬件框图,是PDA的一个基本设计方案。针对不同的要求可对其外围电路作适当删减、修改,设计出具有不同功能和不同品位的PDA 产品。9第9章 SPCE061A实用技术 液晶显示器SIM卡接口模块SPCE061A存储模块功能键输入通信模块I/O接口触摸屏输入音频输出MIC图9.1 基于nSP系列单片机的PDA 硬件框图 9第9章 SPCE061A
5、实用技术 便携式终端的基本功能如下:内置微型实时操作系统RTOS(Real-Time Operating System)。语音识别输入或触摸屏输入。无线移动式语音通信。无线寻呼机、对讲机。双机或多机通信。下载升级软件。移动定位导航及位置信息服务。家电遥控器。个人资料数据库(名片册、医疗档案及家庭理财等)。电子词典、计算器、游戏机、学习机、万年历等。9第9章 SPCE061A实用技术 9.1.3 嵌入式系统嵌入式系统嵌入式计算机系统ECS(Embedded Computer System,简称嵌入式系统)是指专门用于某一应用系统或设备并隐藏于其中起控制作用的计算机系统。与通用计算机系统相比,嵌入
6、式系统有以下特征:专用性、可封装性、独立性、实时性及可靠性。所谓独立性,指ECS自成一个子系统,与目标系统的其它子系统保持相对独立。不同的应用领域对ECS的要求不同。(1)小型应用系统:一般不需大量的数据处理,要求ECS具有较强的实时控制功能、体积小、功耗低等。如智能化仪表、设备的自动控制、家用电器、遥控器等。通常选用8位机(如凌阳公司的SPL 系列微处理器等)即可满足要求。9第9章 SPCE061A实用技术 (2)简单的工业控制系统:要求有相当强的实时数据处理能力和控制能力。如步进电机控制、数据采集、智能检测系统、汽车控制系统等。一般选用8位或16位单片机即可满足要求,可选用具有定点DSP运
7、算功能的nSP系列16位微处理器实现(如凌阳公司的SPCE系列微处理器等)。(3)工业控制系统:由于现场情况复杂、环境恶劣,通常采用分布式多机系统,采用模块化结构,在某些模块配置智能I/O处理机对现场信息进行实时测量和控制。因此,要求ECS不仅具有较强的数据处理能力,而且必须具有可靠性高、抗干扰能力强的硬件环境。如航空航天系统、机器人系统、生产线控制等。可根据需要选用若干个8位机、16位机甚至32位机组合成分布式多机系统。9第9章 SPCE061A实用技术 9.1.4 凌阳单片机应用凌阳单片机应用nSP的特点决定其能很好地胜任从简单到复杂的嵌入系统,在如下一些领域得到了广泛的应用:(1)工业控
8、制。工业控制包括工厂生产线控制、锅炉控制、电力系统自动化、智能仪器仪表、机器人控制等。(2)汽车控制系统。汽车控制系统包括防撞系统、减震系统、静噪系统、燃油喷射系统、通信与音响、智能驾驶系统等。9第9章 SPCE061A实用技术(3)消费娱乐。消费娱乐包括数字机顶盒、游戏机、智能玩具、语音复读机、电子词典、家用电器控制系统等。(4)通信领域。通信领域包括数字留言机、数字语音信箱、三遥系统、数字信号传输系统等。(5)军事领域。军事领域包括雷达与声纳信号处理、导航系统、保密通信、全球定位系统等。9第9章 SPCE061A实用技术 9.2 应应 用用 举举 例例 9.2.1 作息时间控制作息时间控制
9、 1.原理原理 在此设计了一个具有语音报时功能的作息时间控制钟。假设某学校的作息时间如下:08:0008:50 第一节课08:5009:00 休息09:0009:50 第二节课09:5010:10 课间操、休息10:1011:00 第三节课11:0011:10 休息11:1012:00 第四节课 12:0014:00 午间休息14:0014:50 第五节课14:5015:00 休息15:0015:50 第六节课15:5016:00 播放音乐16:0016:50 第七节课16:5018:00 体育活动 9第9章 SPCE061A实用技术 2.硬件电路硬件电路硬件电路由CPU、键盘、声音输出模块、
10、显示模块和电源组成。SPCE061A单片机的系统硬件框图如图9.2所示。SPCE061ALCD显示器按键输入电源功放图9.2 系统硬件框图 9第9章 SPCE061A实用技术 系统扩展了三个按键用于报时及校正时间。SPCE061A的DAC为电流型输出,经负载电阻R1、三极管V1,放大驱动扬声器SPEAKER放音。SPEAKER可选用4 或8 扬声器,根据具体需要播报相应的语音信息。IOA15接一个LED,显示作息时间到等信息,SPCE061A的工作电压为3.3 V,可通过两种方法获得,如图9.3所示。这两种方法如下:9第9章 SPCE061A实用技术 SPCE061AOSCOOSCIXTEST
11、VDDXICEXICECLKXICESDAVSSPVINDAC1DAC2VREF2VSSAGCOPIMICOUTMICNPFUSENCNCNC121314151617181920212223242526272829303132RESBIOB0IOB6IOB7NCNCVSSVCPVDDIOB1IOB2IOB3IOB4NCNCNCIOB5IOB8IOB9IOB10VDDH111098765432184838281807978777675NCNCNCNCPVPPIOB11IOB12IOB13IOB14IOB15SLEEPVSSXROMTIOA15IOA14IOA13IOA12IOA11IOA10IO
12、A9747372717069686766656463626160595857565554NCMICPVCMVRTVDDVMICVSSNCNCIOA0IOA1IOA2IOA3IOA4IOA5IOA6IOA7VSSVSSVDDHVDDHIOA8333435363738394041424344454647484950515253104104VDD4.7k104IOB11IOB12IOB13IOB14IOB15SLEEPIOA15IOA14IOA13IOA12IOA11IOA10IOA91 kTime1N4001*6UpDownVDD100 F16VSPK1 kC22104R113 kVDDVDDVD
13、DICE_ENICE_SCKICE _SDAVSS12345PROBE32 768 Hz20 pF20 pFVD10VD11VDD5 VINOUTGNDLM7833104470 FVDD470 F1049 VVD21VD249013V1插座VD12VD1VD6图9.3 硬件连接图 9第9章 SPCE061A实用技术(1)通过两个二极管连续降压使5 V的电压降至3.6 V接近3.3 V供芯片使用,此法比较简单,但电压值不是很精确。(2)通过LM7833稳压块获得准确的3.3 V电压。9第9章 SPCE061A实用技术 3.程序说明程序说明整个程序分为主程序、键盘扫描子程序、万年历计算子程序、校时
14、子程序、语音播报子程序等几部分。1)主程序程序按照模块化设计,所有功能都可通过调用子程序完成,主程序较简单,流程如图9.4所示。SPCE061A具有低功耗睡眠模式,在睡眠模式下功耗很小,对于用电池供电的系统非常有利,睡眠模式可以通过按键中断唤醒。9第9章 SPCE061A实用技术 图9.4 主程序流程图初始化键扫描有按键处理调整万年历NY进入睡眠2 Hz中断唤醒按键唤醒9第9章 SPCE061A实用技术 2)键盘扫描程序由于机械触点有弹性,在按下或弹起按键时会出现抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图9.5所示。为了保证按键识别的准确性,必须消除抖动。消抖处理有硬件和软件两种方
15、法:硬件消抖是利用加去抖动电路滤波避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件方法,利用主程序循环扫描,主程序每循环一次扫描按键一次,当连续N次扫描到的键值相同时,则说明是某键按下。9第9章 SPCE061A实用技术 前沿抖动稳定状态后沿抖动键按下图9.5 键按下的过程 9第9章 SPCE061A实用技术 3)万年历计算子程序利用2 Hz中断做时钟源进行计时,每两次中断秒计数器加1并进行年历计算,年历范围从2019年到3099年。在进行年历计算时有平闰年计算问题,闰年的条件是能被400整除或者能被4整除但不能被100 整除。万年历调整子程序流程图如图9.6所示。9第9章
16、 SPCE061A实用技术 是 2 Hz 中断吗?半秒计数器 1半秒计数2?半秒计数器清0秒计数器1秒60?秒计数器清0分计数器1分60?分计数器清 0时计数器请0根据年份查出每月天数时计数器 1时24?日计数器1日数本月天数?日计数器1月计数器1月13?月计数器1年计数器1年3099?年计数器2001NYNYNYNYNYNYNYYN返回图9.6 万年历计算子程序 9第9章 SPCE061A实用技术 4)校时子程序系统扩展了三个按键:TIME、UP和DOWN键,常组合起来使用。TIME键用于报时,由于时间包括年月日时分,按一次TIME键报年月日,再按一次报时分,一直按住TIME键3 s则进入校
17、时状态,语音播报当前是XXXX年,按UP键年份增加,按DOWN键减少,再按TIME键来切换月日时分,调整完分后,按TIME键确认,语音报出年月日时分。校时程序的流程如图9.7所示(时间减少的流程与增加的相似,在此不再赘述)。在校正时间的状态下,连续2分钟没有键按下则自动退出。9第9章 SPCE061A实用技术 年1年3099?年2001月1月12?月1NYYN日1日31?日1YN时1时23?时0YN分1分59?分0YN返回当前状态播报校时状态图9.7 校时子程序 9第9章 SPCE061A实用技术 5)语音播报子程序 报时用SACM-A2000播放。9第9章 SPCE061A实用技术 4.功能
18、扩展功能扩展增加一个调频接收模块接受某电台的整点报时信号,利用凌阳SPCE061A单片机语音识别功能实现自动校时功能。9第9章 SPCE061A实用技术 9.2.2 温度计设计温度计设计 1.测温原理测温原理采用热敏电阻作为温度传感器。热敏电阻是一种新型半导体感温元件,具有灵敏度高、体积小、寿命长、价格低等优点。热敏电阻分为正温度系数和负温度系数两种类型。负温度系数热敏电阻是当温度升高时电阻值减小,当温度降低时电阻值增大,其阻值温度特性曲线如图9.8所示。(热敏电阻的阻值温度特性曲线是一条指数曲线,非线性较大,实际应用中要进行线性化处理比较复杂,一般只使用线性度较好的一段,如图9.8所示的AB
19、段。)通过测量热敏电阻的阻值就可以计算出其对应的温度值。9第9章 SPCE061A实用技术 电阻RO有效范围ABT0温度T图9.8 温度特性曲线 9第9章 SPCE061A实用技术 2.硬件电路硬件电路用热敏电阻测温的硬件电路如图9.9所示。将热敏电阻RT与固定电阻R串联接3.3 V电源,当温度改变时,RT阻值改变,其两端的电压也随之改变,通过测量两端的电压求得温度值:T=T0-KUT其中,T为被测温度;T0为与热敏电阻特性有关的温度参数;K为与热敏电阻特性有关的系数;UT为热敏电阻两端的电压。9第9章 SPCE061A实用技术 固定电阻R阻值的选取:MFD-502-34型热敏电阻线性化较好的
20、一段是-2080,为了在最高温度和最低温度时使被测信号基本接近满量程值,采取线性区域内中间某一点温度的阻值作为固定电阻的值,它们分压后AD的输入电压是AD输入电压范围的一半,在25时热敏电阻的阻值为5 k,所以选取固定电阻R的值为5 k。在-20时热敏电阻的阻值为37.399 k,两端电压URT=2.9 V,接近A/D输入电压的上限3.3 V;在80时热敏电阻的阻值为0.796 k,两端电压URT=0.45 V,接近A/D输入电压的下限0 V。9第9章 SPCE061A实用技术 按照图9.9硬件图,T0=76,K=0.1022,根据以上公式和参数,测出热敏电阻两端的电压就可以求出被测温度。9第
21、9章 SPCE061A实用技术 SPCE061AOSCOOSCIXTESTVDDXICEXICECLKXICESDAVSSPVINDAC1DAC2VREF2VSSAGCOPIMICOUTMICNPFUSENCNCNC121314151617181920212223242526272829303132RESBIOB0IOB6IOB7NCNCVSSVCPVDDIOB1IOB2IOB3IOB4NCNCNCIOB5IOB8IOB9IOB10VDDH111098765432184838281807978777675NCNCNCNCPVPPIOB11IOB12IOB13IOB14IOB15SLEEPVSS
22、XROMTIOA15IOA14IOA13IOA12IOA11IOA10IOA9747372717069686766656463626160595857565554NCMICPVCMVRTVDDVMICVSSNCNCIOA0IOA1IOA2IOA3IOA4IOA5IOA6IOA7VSSVSSVDDHVDDHIOA8333435363738394041424344454647484950515253104104VDD4.7 k104IOB11IOB12IOB13IOB14IOB15SLEEPIOA15IOA14IOA13IOA12IOA11IOA10IOA9100 F16 VSPK1 kC2210
23、4R113 kVDDVDDVDDICE_ENICE_SCKIC_SDAVSS12345PROBE32 768 Hz20 pF20 pFVD10VD11VDD5VINOUTGNDLM7833104470 FVDD470 F1049 VVD21VD24VSS5 kKeyVDDRT热敏电阻9013图9.9 硬件连接图 9第9章 SPCE061A实用技术 3.温度计算温度计算系统扩展了一个按键接于IOA15,当按键按下时,进行A/D 转换初始化并进行4 次A/D转换,SPCE061A的A/D转换结果在高10位,每次将其移入低10位再计算4次平均值作为A/D有效结果返回。为了提高准确度,变量TempAD
24、和Temper都采用浮点数,计算完成后用语音将温度值播报。由于在放音时播放函数会改变一些参数,为了稳定起见,在每次A/D转换前都做一次初始化。由于每个热敏电阻的特性不一致,与热敏电阻串联的电阻R不准确等原因,因此每台温度计在整个测量范围内应至少找5点进行校正,并适当地修改参数,以达到最佳状态。9第9章 SPCE061A实用技术 A/D转换程序如下:.PUBLIC _ReadAD_ReadAD:.procr2=4;/共进行4次转换R3=0;TestLoop:R1=P_ADC_MUX_Data/进行一次A/D转换R1=0 x8000;TempConverLoop:TEST R1,P_ADC_MUX
25、_CtrlJZ TempConverLoop/转换完成否R1=P_ADC_MUX_Data/取A/D转换值R1=R1 LSR 4/A/D值移到低10 位 9第9章 SPCE061A实用技术 R1=R1 LSR 2R3+=R1/4次A/D值累加r2-=1JNZ TestLoopR3=R3 LSR 2/结果除以4,求4次A/D 值的平均值R1=R3/A/D返回值在R1中RETF.ENDP 9第9章 SPCE061A实用技术 温度计算及语音播报部分程序:if(Key=0 x8000)InitAD();TempAD=ReadAD();/进行一次A/D转换Temper=76-0.1022*TempAD;
26、/温度计算if(Temper80)Temper=0XFFFF;/温度超出范围PlayVoice(Temper);/播报语音 9第9章 SPCE061A实用技术 9.2.3 红外遥控器红外遥控器1.工作原理工作原理1)遥控指令编码遥控器发送的功能指令码一般采用多位二进制串行码。下面以29T6B-X型彩色电视接收机的红外遥控器为例说明其原理。一帧数据结构为:同步脉冲、系统码、命令码、命令反码和结束位。同步脉冲作为一帧命令的起始位起到帧同步作用,系统码用于区别不同类别的电器,命令码用于完成命令功能。29T6B-X型彩色电视的系统码为0 x08,命令码如表9.1所示。命令反码是将命令码按位取反,每次发
27、送都是先发送脉宽为4510 s、周期为24510 s的同步脉冲,然后连续发送两次系统码,接着发送命令码及命令反码,最后发送结束位,波形如图9.10所示。9第9章 SPCE061A实用技术 表表9.1 遥控器命令码表遥控器命令码表 遥控功能 资料码 遥控功能 资料码 遥控功能 资料码 1 00 0 09 VOL+13 2 01-/-/-0A MUTE 14 3 02 POWER OB SLEEP 15 4 03 SYSTEM OC DISPLAY 16 5 04 AV 0F SMPX 17 6 05 CH-10 MENU 1C 7 06 CH+11 SCAN 1E 8 07 VOL-12 VOL
28、 M 2A 9 08-9第9章 SPCE061A实用技术 45104510同步脉冲系统码8 bit8 bit系统码8 bit命令码8 bit命令反码结束位图9.10 遥控指令编码图 9第9章 SPCE061A实用技术 2)数据的脉冲编码红外通信数据采用脉冲编码,即将每位数据信号用一个脉冲来表示。本例程序的红外编码采用频率调制(FSK)方式,以脉宽561 s为周期,4561 s代表1,2561 s代表0。载波频率为38 kHz,占空比为1/3,如图9.11所示。这样做有两点好处:第一减少了有效发射时间,降低了平均功耗,对于采用干电池供电的发射器十分重要;第二提高了抗干扰能力。9第9章 SPCE0
29、61A实用技术 图9.11 信号0和1的脉冲561 s561 s31 信号脉冲561 s 561 s0 信号脉冲9第9章 SPCE061A实用技术 2.硬件电路硬件电路系统由键盘电路、红外发射电路和CPU组成。利用SPCE061A 的IOA口扩展了48键盘矩阵,发射电路中三极管V1选用9013,对信号放大,R4为270 电阻,R5为10 电阻,C5为22 F,VD1为红外发射管,电路如图9.12所示。各个按键功能如表9.2所示。9第9章 SPCE061A实用技术 SPCE061AOSCOOSCIXTESTVDDXICEXICECLKXICESDAVSSPVINDAC1DAC2VREF2VSSA
30、GCOPIMICOUTMICNPFUSENCNCNC121314151617181920212223242526272829303132RESBIOB0IOB6IOB7NCNCVSSVCPVDDIOB1IOB2IOB3IOB4NCNCNCIOB5IOB8IOB9IOB10VDDH111098765432184838281807978777675NCNCNCNCPVPPIOB11IOB12IOB13IOB14IOB15SLEEPVSSXROMTIOA15IOA14IOA13IOA12IOA11IOA10IOA9747372717069686766656463626160595857565554N
31、CMICPVCMVRTVDDVMICVSSNCNCIOA0IOA1IOA2IOA3IOA4IOA5IOA6IOA7VSSVSSVDDHVDDHIOA8333435363738394041424344454647484950515253104104VDD4.7 k104IOB11IOB12IOB13IOB14IOB15SLEEPIOA15IOA14IOA13IOA12IOA11IOA10IOA9100 F16 VVDDVDDICE_ENICE_SCKICE_SDAVSS12345PROBE32 768 Hz20 pF20 pFR4270 R510 红 外 发 射 管VD1C522 FVDDS13
32、S14S15S16S9S10S11S12S20S24S5S6S7S8S1S2S3S4S18S22S17S19S23S21S25S29S26S30S27S31S28S32VDD3 VV19013VSS图9.12 硬件连接图 9第9章 SPCE061A实用技术 表表9.2 按键功能表按键功能表 按 键 遥控功能 按 键 遥控功能 按 键 遥控功能 S1 MUTE S10 5 S18 0 S2 AV S11 6 S19 SMPX S3 SLEEP S12 VOL M S20 DISPLAY S4 POWER S13 7 S21 CH+S5 1 S14 8 S22 MENU S6 2 S15 9 S2
33、3 CH-S7 3 S16 SYSTEM S24 VOL-S8 SCAN S17-/-/-S25 VOL+S9 4 9第9章 SPCE061A实用技术 3.程序设计程序设计SPCE061A 的IOA0IOA7设置为在输入时具有按键唤醒功能。本例程序中将其设置为带下拉电阻的输入端口,IOA8IOA11设置为带数据缓存器的输出端口,键盘扫描程序比较简单,此处不作详细介绍。串行码的发送利用了SPCE061A的TimerA 和TimerB 两个定时器,IOB8 编程为第二功能时,由定时器TimerA 控制输出占空比可调的脉宽调制信号APWMO,产生38 kHz载波信号。将APWMO信号频率设置为38
34、kHz,串行码为1时,打开APWMO输出;为0时,关闭APWMO输出,输出低电平。用TimerB控制脉冲宽度,发射流程如图9.13(a)所示,同步脉冲、0信号和1信号的发射流程如图9.13(b)所示。9第9章 SPCE061A实用技术 取发射数据高电平时间到?打开38 kHz载波N关闭38 kHz载波Y低电平时间到?N发射结束位Y(b)发射初始化发射同步脉冲发射系统码发射命令码及反码发射结束位(a)图9.13 程序流程图 9第9章 SPCE061A实用技术 9.2.4 学习机学习机 1.原理原理1)录音SPCE061A的A/D 转换器有8个通道,其中1个通道是MIC-IN 输入,专门用于对语音
35、信号进行采样。语音信号经Mic 转换成电信号,经隔直电容输入至SPCE061A内部前置放大器。SPCE061A内部具有自动增益控制电路(AGC),能随时跟踪前置放大器输出的音频信号电平。当输入信号增大时,AGC电路自动减小放大器的增益;当输入信号减小时,AGC电路自动增大放大器的增益,以便使输入A/D 的信号保持在最佳电平。9第9章 SPCE061A实用技术 A/D 转换器对输入的音频信号进行采样,根据抽样定理我们选用抽样频率为8 kHz,并按照凌阳音频编码格式进行编码,每秒将占用16 Kb的存储器空间。为了增加存储时间,系统扩展了一块容量为1 Mb的SRAM存储器HM628128A用来存储语
36、音数据。9第9章 SPCE061A实用技术 2)放音将HM628128A中存储的语音数据顺序取出解码后以8 kHz的速率进行D/A 转换输出,经电容滤波后恢复原始语音信号驱动扬声器发音。9第9章 SPCE061A实用技术 2.硬件电路硬件电路HM628128A与SPCE061A的连接电路如图9.14所示,由SPCE061A的I/O口完成地址线、数据线和控制线扩展功能。系统扩展了三个按键REC、PLAY和STOP。REC用于录音,PLAY用于放音,STOP 用于停止录音或放音。9第9章 SPCE061A实用技术 SPCE061AOSCOOSCIXTESTVDDXICEXICECLKXICESDA
37、VSSPVINDAC1DAC2VREF2VSSAGCOPIMICOUTMICNPFUSENCNCNC121314151617181920212223242526272829303132RESBIOB0IOB6IOB7NCNCVSSVCPVDDIOB1IOB2IOB3IOB4NCNCNCIOB5IOB8IOB9IOB10VDDH111098765432184838281807978777675NCNCNCNCPVPPIOB11IOB12IOB13IOB14IOB15SLEEPVSSXROMTIOA15IOA14IOA13IOA12IOA11IOA10IOA97473727170696867666
38、56463626160595857565554NCMICPVCMVRTVDDVMICVSSNCNCIOA0IOA1IOA2IOA3IOA4IOA5IOA6IOA7VSSVSSVDDHVDDHIOA8333435363738394041424344454647484950515253104104VDD4.7 kIOB11IOB12IOB13IOB14IOB15SLEEPIOA15IOA14IOA13IOA12IOA11IOA10IOA9100 F16 VVDDVDDICE_ENICE_SCKICE_SDAVSS12345PROBE32 768 Hz20 pF20 pFIOB0IOB1IOB2IO
39、B3IOB4IOB5IOB6IOB7IOB8IOB9IOB10104VSSVSSP3023 k104IOB0IOB1IOB2IOB3IOB4IOB5IOB6IOB7IOB8IOB9IOB10IOB11IOB12IOB13IOB14IOB15IOA7628128AIOA8IOA9IOA10IOA11IOA12IOA13IOA14IOA15IOA4IOA5IOA6VDDVDDHVSSIOA0IOA1IOA2IOA3IOA4IOA5IOA6IOA7IOA8MICOUTOPI10 F1 kSPK1 kC22104R113 kVDD90131 kOPIMICOUTMIC3 k3 kMICNMICN1 k
40、MICN220 FVD11VD10VDDVDD15 VIOA0RecordVDDIOA1StopIOA2PlayVCPDAC1104图9.14 硬件电路图 9第9章 SPCE061A实用技术 3.软件编程软件编程录放音的编码/解码是靠调用库函数完成的,我们只要完成数据的存入和读出即可。程序主要是完成HM628128A的读写,对语音采样数据的编码处理是通过调用库函数完成的,写读程序都包括初始化和写读两部分,写入、读出程序较简单,只要按照HM628128A的写读时序即可。下面介绍初始化和写入时的参数传递过程,读出时参照写入部分。9第9章 SPCE061A实用技术 PUBLIC _SP_InitWr
41、iteSRAM/写入初始化.PUBLIC F_SP_InitWriteSRAM_SP_InitWriteSRAM:.procF_SP_InitWriteSRAM:PUSH r1 TO sp;R1=0 xFFF0;P_IOA_Dir=R1;/IOA15A4为输出P_IOA_Attrib=R1;/IOA3A0为输入P_IOA_Data=R1;R1=0 xFFFFH;P_IOB_Dir=R1;/IOB15B0为输出P_IOB_Attrib=R1;P_IOB_Data=R1;POP r1 FROM sp;RETF.ENDP 9第9章 SPCE061A实用技术 初始化包括地址线、数据线和控制线的设置。I
42、OB15IOB0、IOA7 接地址线,设置为输出;IOA15IOA8接数据线,写入时设置为输出;IOA6IOA4 接选通信号,设置为输出。输入子程序:.PUBLIC _SP_WriteSRAM _SP_WriteSRAM:.PROCPUSH bp TO sp;bp=sp+1;r1=bp+3;/地址低位9第9章 SPCE061A实用技术 r2=bp+4;/地址高位 JZ Write_Low_Addr;/判高位是否为0R2=0 x0080H;Write_Low_Addr:HighAddr=R2;R2=bp+5;/要输入的数据CALL F_SP_WriteSRAM/输入子程序POP bp FROM
43、sp RETF.ENDP 9第9章 SPCE061A实用技术 由于HM628128A有17根地址线,在主程序中记录地址的变量设置为长整型数据32位,在调用写入子程序时先将高16位压入堆栈再压入低16位,所以在写入子程序中取两次地址高低,并判断高位是否为0。不为0则将A16 置1,表明读/写的是高64 KB RAM。读者只要对上面电路程序稍加改动,就可以实现语音复读机、跟读机和留言机等功能。9第9章 SPCE061A实用技术 9.2.5 多功能信号发生器多功能信号发生器1.原理原理三角波的上升沿和下降沿都是由N个DAC 输出的小阶梯构成的,由于阶梯很小,从宏观上看它可以近似成三角波波形。如图9.
44、15所示阶梯式的波形,阶梯之间的时间间隔t1、t2由定时器TimerA提供,通过改变t1、t2来改变三角波上升和下降时间T1、T2,从而改变三角波的频率。9第9章 SPCE061A实用技术 Ut2t1T1T2Ot图9.15 三角波原理图 9第9章 SPCE061A实用技术 正弦波利用SPCE061A 的开发环境范围内提供的数学运算函数库math.lib,利用库中的sinf(float)函数,当x花02变化时就产生一个完整的正弦波。以时间间隔t 求的波形对应值32 736sinf(x)(注:32 736为SPCE061A的D/A输出最大值0 xFFC0的一半)经SPCE061A 的D/A 转换,
45、在管脚DAC1、DAC2 输出并经电容滤波后就可以得到需要的正弦波。通过改变时间间隔t可以改变正弦波的频率,正弦信号包括正负两个半周波形,如图9.16所示。由于SPCE061A无法输出负电平,要通过改变参考电平来获得负半周信号,所以将正弦信号电平正向偏移1.65 V。9第9章 SPCE061A实用技术 3.3 V1.65 V0 V0tU图9.16 正弦波 9第9章 SPCE061A实用技术 方波形成原理如图9.17所示,在t1期间DAC输出电压的峰值为3.3 V,t2期间DAC输出0 V电压,通过改变t1、t2的值来改变方波的频率占空比和频率。9第9章 SPCE061A实用技术 t1t2tU图
46、9.17 方波 9第9章 SPCE061A实用技术 2.硬件电路硬件电路SPCE061A内部具有D/A转换模块,所以其外围电路很简单,只要在DAC的输出端接一个运算放大器或负载电阻,将DAC输出的电流信号转换为电压信号即可,用按键方式选择输出波形,具体电路如图9.18所示。按TRI键输出三角波,按SIN键输出正弦波,按SQU 键输出方波。9第9章 SPCE061A实用技术 SPCE061AOSCOOSCIXTESTVDDXICEXICECLKXICESDAVSSPVINDAC1DAC2VREF2VSSAGCOPIMICOUTMICNPFUSENCNCNC12131415161718192021
47、2223242526272829303132RESBIOB0IOB6IOB7NCNCVSSVCPVDDIOB1IOB2IOB3IOB4NCNCNCIOB5IOB8IOB9IOB10VDDH111098765432184838281807978777675NCNCNCNCPVPPIOB11IOB12IOB13IOB14IOB15SLEEPVSSXROMTIOA15IOA14IOA13IOA12IOA11IOA10IOA9747372717069686766656463626160595857565554NCMICPVCMVRTVDDVMICVSSNCNCIOA0IOA1IOA2IOA3IOA4I
48、OA5IOA6IOA7VSSVSSVDDHVDDHIOA8333435363738394041424344454647484950515253104104VDD4.7 kIOB11IOB12IOB13IOB14IOB15SLEEPIOA15IOA14IOA13IOA12IOA11IOA10IOA9100 FSPK1 kC22104R113 kVDDVDDVDDICE_ENICE_SCKICE_ SDAVSS12345PROBE32 768 Hz20 pF20 pFVD10VD11VDD5 VINOUTGNDLM7833104470 FVDD470 F1049 VVD21VD24VSSSETDO
49、WNUPSQUSINTRI104插座9013VDD图9.18 硬件连接图 9第9章 SPCE061A实用技术 输出三角波时,UP用于增加上升时间t1或下降时间t2,DOWN键用于减少t1或t2,SET用于选择上升或下降。输出方波时,UP用于增加高电平时间t1或低电平时间t2,DOWN键用于减少t1或t2,SET用于选择高电平或低电平。输出正弦波时,UP用于提高正弦波的频率,DOWN 键用于降低正弦波的频率。在输出正弦波时,请接入滤波电容C1,输出三角波和方波时不用C1。9第9章 SPCE061A实用技术 3.程序说明程序说明1)三角波SPCE061A具有双通道10位电流输出型的D/A(AUD1
50、、AUD2),每通道电流输出为3 mA,在输出端接电阻R(R值取600),则可将输出的电流转换为电压信号。9第9章 SPCE061A实用技术 三角波的上升和下降都由100个小阶梯组成,主程序判断是上升还是下降。如果是上升,则将TimerA 的定时值改为t1;如果是下降,则将TimerA的定时值改为t2,即三角波上升时间为100t1,下降时间为100t2,定时器TimerA的时钟源采用12.288 MHz。定时器初值计算:t1 初值:M1=65 535-(12 288T_High)/1000 t2 初值:M2=65 535-(12 288T_Low)/1000 由中断服务程序完成DAC数据输出。