收藏 分销(赏)

公交车报站.docx

上传人:可**** 文档编号:949593 上传时间:2024-04-08 格式:DOCX 页数:77 大小:627.36KB
下载 相关 举报
公交车报站.docx_第1页
第1页 / 共77页
公交车报站.docx_第2页
第2页 / 共77页
公交车报站.docx_第3页
第3页 / 共77页
公交车报站.docx_第4页
第4页 / 共77页
公交车报站.docx_第5页
第5页 / 共77页
点击查看更多>>
资源描述

1、目录1 系统总体方案31.1 公交车报站器可选方案31.2 设计方案的可行性分析和选择51.3 公交车报站器的硬件框图52 系统硬件设计62.1 SPCE061A简介62.2 系统电源设计102.3 语音存储电路设计102.4 音频输出电路设计122.5 显示电路设计132.6 键盘电路设计143 系统软件设计153.1 语音处理153.2 主函数流程图173.3 初始化函数243.4 语音播放的实现293.5 更新时间323.6 设置时间33参考文献46谢辞47附录一 公交车报站器电路图49附录二 公交车报站器程序50在当今社会,即使在私家车越来越多的今天,公交车仍然是人们出行的首选,因为公

2、交车具有方便、快捷、车票便宜等优点。传统的公交车报站主要由售票员报站,但是有些售票员有着浓重的地方口音,给外地人乘坐公交车造成了困难,另外,随着无人售票车逐渐增多,公交车报站器就越显得重要了。 目前我国公交车辆己从原有的人工语音报站发展到现在的自动语音报站。就报站语音而论,绝大多数报站装置都采用IsD系列的语音芯片,部分报站产品也有采用最新的数字语音处理合成技术,两者各有优缺点。前者成本低,但音质较差,且更改报站信息不灵活,当公交车辆临时改道时必须重新对语音芯片编程;后者受信息容量、语音音质的限制,且更换信息仍需专业设备。因此设计一款能够方便地更换报站信息、播放高音质语音信息的公交车报站器愈显

3、重要。本方案利用单片机的语音处理功能,以及其强大的处理能力,完成语音的合成技术,再配合存储器 ,扩大存储容量,很容就可以实现公交车报站器,从而为市民提供了更加人性化的服务。这些优点使得本方案成为制作公交报站器一种最经济实用的选择。1 系统总体方案公交报站系统的设计要求报站系统可以完整地播放一条公交线路的站名。可以在显示屏上显示当前的时间,具有时间日期的设置功能,还可以播放音乐或广告。经过查阅资料,可选方案有基于MP3/U盘的公交车报站设计,基于GPS的公交车报站器系统设计和基于SPCE061A的公交车报站系统设计等.1.1 公交车报站器可选方案1.1.1 基于MP3/U盘的公交车报站设计方案采

4、用AT89C51SND1C单片机(内部集成MP3解码器)作为主控CPU及解码MP3数据,实现对报站信息播放、点阵字符显示、文件存储以及用作优盘功能时USB与PC机联机的控制。利用FAT16在K9F1208上实现文件系统,形成一个Windows可识别访问的64MB寻址区域。结合USB控制器,系统可作为优盘在Windows下使用,从而实现在Windows下对文件的管理以及数据存储功能。这样通过程序的设定,公交车可通过键盘实现MP3格式声音信号的报站以及各种信息的广播。列表文件在系统对闪存初始化时生成,系统在对闪存进行格式化的同时生成该名为SCHED-ULE.LST的列表文件。该列表文件可在Wind

5、ows下利用记事本打开,编辑所需播放的MP3名称。播放报站信息的同时通过16个1616的LED点阵显示相应的播放内容。系统框图如图1.1所示。图1.1 方案一系统框图1.1.2 基于GPS的公交车自动报站系统设计方案 GPS的公交车自动报站系统利用GPS,通过GPS接收单元接收卫星发送的信号确认车辆的动态位置(经度、纬度)、时间、状态等信息,与公交线路信息库中存储的车站的位置进行比较,根据预先设定的距离和规则向乘客通报车站和线路的语音信息;并且能把车辆运行的详细情况记录下来,对公共汽车的运营状况进行全程监控并记录。系统的组成见图1.2。 天线 图1.2 方案二系统框图1.1.3 基于SPCE0

6、61A的公交车报站系统设计方案系统以 SPCE061A 为核心,可以划分为键盘输入、数码管显示、SPR4096资源存储与语音播放等部分,如图1.3所示。SPCE061A作为整个系统的核心控制,并且负责语音的输出。SPR4096 作为语音资源的存储介质。LED键盘显示模组作为时间显示与用户输出设备.使用SPCE061A可以非常方便灵活的实现语音的录放。两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。图 1.3 方案三系统框图 1.2 设计方案的可行性分析和选择这三种方案各有各的优势。基于MP3/U盘的公交报站系统能够作为U盘与电脑连接,可自行下载报站器的播放内容,也

7、可方便地更改播放内容,播放高品质的音乐,无报站播放时可作为MP3播放器,提高公交车服务质量。但是MP3操作页面对于司机来说太小,分散过多的注意力,实用性不够。基于GPS的公交报站系统用先进的卫星定位,进站、出站自动播报站名及服务用语,准确、及时、完全不需要人工介入,实现了公交车报站器的完全智能化。国内GPS语音自动报站系统处于试验阶段,可行性太小。基于SPCE061A公交报站系统,SPCE061A芯片有语音处理能力使得系统设计简化,外围电路较少;另外具有一套指令系统和集成开发环境易学易用效率较高。SPR4096能够存储大量语音数据,符合任务书所给要求。1.3 公交车报站器的硬件框图 查阅各种相

8、关资料,设计出公交报站系统。系统电路原理图见附录一。2 系统硬件设计2.1 SPCE061A简介 SPCE061A型单片机是凌阳科技公司推出的一款16位微处理器,具有体积小、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点,内嵌32K字闪存FLASH,处理速度高,能够很方便的完成普通单片机的功能,尤其适应于数字语音播报和识别等应用领域,是数字语音识别与语音信号处理的理想产品,得到广泛的应用。 SPCE061A单片机的主要性能有:l 16位 unSP 微处理器 l 工作电压(CPU)VDD 为 3.03.6V,(I/O)VDDH为 3.05.5V l CPU时钟:0.3249.

9、152MHz l 内置 2K字 SRAM l 内置 32K字FLASH l 可编程音频处理 l 晶体振荡器 l 系统处于备用状态下(时钟处于停止状态),耗电仅为 2uA/3.6V l 2 个16 位可编程定时器/计数器(可自动预置初始计数值) l 2 个10位 DAC(数/模转换)输出通道 l 32 位通用可编程输入/输出通道 l 14 个中断源可来自定时器 A/B、时基、2 个外部时钟源输入和键唤醒 l 具备触键唤醒的功能 l 使用凌阳音频编码 SACM_S480 可以播放压缩的语音资源 l 锁相环 PLL 振荡器提供系统时钟信号 l 32768Hz 实时时钟 l 7 通道10 位电压模/数

10、转换器(ADC)和单通道声音模/数转换器 l 声音模/数转换器输入通道内置麦克风放大器,并具有自动增益控制(AGC)功能 l 具备串行设备接口 l 具备低电压复位功能和低电压检测功能 l 内置在线仿真电路接口 l 具有 WatchDog 功能 图2.1为 SPCE061A单片机的内部结构框图: 图 2.1 SPCE061A 内部结构图 SPCE061A引脚排列如图2.2所示,引脚功能如表2.1所示图2.2 SPCE061A引脚图表 2.1 SPCE061A引脚功能表引脚名称类型引脚功能IOA15:8输入输出OA15:8:双向 IO 端口IOA7:0 输入输出IOA7:0:通过编程,可设置成唤醒

11、管脚 IOA6:0:与 ADC Line_In 输入共用 IOB15:11 IOB10 IOB9 IOB8 IOB7 IOB6 IOB5 IOB4 IOB3 IOB2 IOB1 IOB0输入输出 输入输出 输入输出 输入输出 输入输出 输入输出 输入输出 输入输出 输入输出 输入输出输入输出输出 IOB15:11:双向 IO 端口。IOB10-0 除用作普通的 IO端口,还可作为如下功能: IOB10:通用异步串行数据发送管脚 Tx IOB9:TimerB 脉宽调制输出管脚 BPWMO IOB8:TimerA 脉宽调制输出管脚 APWMO IOB7:通用异步串行数据接收管脚 Rx IOB6:双

12、向 IO 端口 IOB5:外部中断源 EXT2 的反馈管脚 IOB4:外部中断源 EXT1 的反馈管脚 IOB3:外部中断源 EXT2 IOB2:外部中断源 EXT1 IOB1:串行接口的数据传送管脚IOB0:串行接口的时钟信号 DAC1输出DAC1 数据输出管脚 DAC2输出DAC2 数据输出管脚OSCI输入32768Hz晶振输入管脚 OSCO输出32768Hz晶振输出管脚 VCP输入PLL的 RC 滤波器连接管脚 AGC输入AGC 的控制管脚MICN输入麦克风负向输入管脚MICP输入麦克风正向输入管脚 VREF2输出电压源 2.0V产生5mA 的驱动电流,可用作外部 ADC Line_In

13、 通道的最高参考输入电压,不可作为电压源使用 MICOUT输出麦克风 1 阶放大器输出管脚,管脚外接电阻决定AGC增益倍数 OPI输入麦克风 2 阶放大器输入管脚 VRTPAD输入ADC Line_In 通道的最高参考输入电压管脚VMIC输出麦克风电源VCM输出AD 参考电压(由内部 ADC 产生)VDD输入逻辑电源的正向电压VSS输入逻辑电源和 IO 口的参考地VDDIO输入IO 端口的正向电压管脚VSSIO输入IO 端口的参考地AVDD输入模拟电路(A/D、D/A 和 2V 稳压源)正向电压 AVSS输入模拟电路(A/D、D/A 和 2V 稳压源)参考地RSETB输入低电平有效的复位管脚S

14、LEEP输出睡眠模式(高电平激活)ICE输入激活 ICE(高电平激活ICECLK输入ICE 串行接口时钟管脚ICESDA输入输出ICE 串行接口数据管脚TEST输入测试模式时接高电平,正常模式时接地 GND 或悬浮ROMT输入测试闪烁存储器,正常模式时悬浮 NC输入正常使用时接地2.2 系统电源设计 图2.3是电源部分的电路,61单片机的内核工作电压是3.3V,而IO口电压可以是3.3V也可以是5V。公交蓄电池12V直流电压经过7805产生5V电压,再经过SPY0029后产生3.3V电压分别给系统供电。是常用的三端正电源稳压电路,使用的是TO-220封装,能提供直流电源5V的输出电压,内含短路

15、和热过载保护电路,应用范围非常广泛。带散热片时能持续提供1A的电流,如果使用外围器件,它还能提供不同的电压和电流。它有三个引脚,引脚1为输入电压,引脚2为+5V输出电压,引脚3接地。SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺,具有静态电流低,驱动能力强,线性调整出色等特点。它有三个引脚,引脚1接地,引脚2为输入电压,引脚3为输出电压。图2.3 2.3 语音存储电路设计 2.3.1 SPR4096芯片简介 3.3.2 语音存储电路 图2.4 SPR4096电路图2.4 音频输出电路设计 SPCE061A内置2路10位精度的 DAC,芯片输出的音频信号功率较小,在报站时要求比较大

16、的声音,就要对芯片输出的声音信号进行功率放大,因此电路选用了SPY0030音频功率放大电路。图2.5为音频输出电路。SPCE061A的音频输出采用双通道数模转换DAC方式,即数字信号通过10位DAC转换成3mA驱动的电流模拟信号输出。语音提示输出直接采用DAC通道,经信号放大后,由SPEAKER(扬声器)输出。图2.5 音频输出电路 SPY0030芯片是一个音频驱动,其增益可以通过外部电阻(最长增益调整为20)。它的输出功率约700mW,电压可调范围很广(2.4V-6.8V),具有双端输出模式,低失真,低待机电流等特点。简单易用,仅需2.4V(两颗电池)即可工作。图2.6为SPY0030芯片的

17、引脚图。表2.2为引脚功能表。图 2.6 SPY0030芯片引脚图表2.2 SPY0030芯片引脚功能表引脚名称引脚号类型引脚功能VDD8输入电源的正向电压VSS3输入电源地SPP2输出音频输出正极SPN1输出音频输出负极ACIN5输入信号输入正极INN4输入信号输入负极CE7输入芯片使能VREF6输出参考电压2.5 显示电路设计 2.6 键盘电路设计键盘输入电路如图2.8所示。各按键功能不同,根据各按键功能列出表2.3.图 2.8 键盘输入电路 表2.3 键盘各按键功能表按键公交车报站状态时间设置状态S0逐次播放上行各站提示语,每按一次按顺序播放一个无效S1逐次播放下行各站提示语,每按一次按

18、顺序播放一个 无效S2播放警告用语“车辆拐弯,请注意安全”无效S3播放提示语“车上有老弱病残孕乘客,请让座”无效S4播放娱乐音乐或广告无效S5进入设置时间状态设置切换S6显示在时间/日期/年之间切换增加S7打开或关闭数码管减小3 系统软件设计 3.1 语音处理语音处理是建立在语言学和数字信号处理基础之上的综合学科。语音处理大致可以分为 A/D 采样输入、编码处理、存储、解码处理以及 D/A 等。SPCE061A 是16位单片机,有2个16位定时/计数器;CPU 时钟最高达49MHz ,16 位乘法器和内积运算,有能力执行复杂压缩算法,有完善的语音处理函数库支持等。这些都无疑为语音的播放、录放、

19、合成及识别提供了条件。3.1.1 压缩存储采样输入是指音频采样和量化,将模拟的(连续的)声音波形数字化(离散化);语音信号的时域分析,直接利用语音信号的时域波形进行分析;语音信号的频域分析,对语音信号的频谱、功率谱等进行分析;语音信号的线性预测分析,把语音信号用一个模型来表示,利用模型的参数来描述语音信号的波形和频谱特性。编码处理采用压缩编码,它具有高效存储和高速传输等特点。压缩编码可分为三类:1. 波形编码:sub-band即SACM_A2000。特点:高质量、高码率,适于高保真语音音乐。 2. 参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码。如:SACM_S240。

20、特点:压缩比大,计算量大,音质不高,廉价! 3. 混合编码:CELP即SACM_S480。特点:综合参数和波形编码之优点。 本次系统设计方案采用混合编码方式。压缩分无损压缩和有损压缩。无损压缩一般指:磁盘文件,压缩比低:2:14:1。而有损压缩则是指:音视频文件,压缩比可高达 100:1。 凌阳音频压缩算法根据不同的压缩比分为以下几种: SACM_A2000:压缩比为8:,8:1.25,8:1.5 SACM_S480: 压缩比为80:3,80:4.5 SACM_S240: 压缩比为80:1.5 按音质排序:A2000S480S240 压缩算法中SACM_A2000、 SACM_S480、 SA

21、CM_S240 主要是用来放音,可用于语音提示,而DVR则用来录放音。3.1.2 语音识别 语音的识别可分为下列几个部分:预处理,语音信号数字化;特征提取,抽取反应语音本质的特征参数,形成特征矢量序列;语音模型库,从一个或多个讲话者多次重复讲话中提取的语音参数模板;模式匹配,把输入语音的特征参数与语音模型库进行比较分析,得到识别结果。识别的过程可用图3.1表示。图3.1 语音的识别3.1.3 语音合成语音合成是将以其他方式表示或存储的信息转换成语音。最常见的语音合成技术是将文本转换为语音(TTS)。文本转换成语音如图3.2所示。图3.2 文本转换成语音图3.2 主函数流程图在主函数中完成SPR

22、4096 的初始化、键盘、显示的初始化,并且进行显示时间与播报公交车报站的站点,然后进入循环根据键盘的值执行相关的操作。主函数流程图如图3.3所示。 图3.3 主函数流程图 主函数程序:int main(void)unsigned int uiKey;/键盘值unsigned int uiOn_Off;/数码管显示或不显示标志unsigned int uiKey1_Count;/key1按下次数unsigned int uiKey2_Count;/key2按下次数unsigned int uiflag;/按键key1、key2的奇偶标志unsigned int uiTemp;/临时变量uiOn

23、_Off = 0;/局部变量初始化uiKey1_Count = 0;/uiKey2_Count = 16;/uiflag = 0;SP_SIOInitial();/初始化SPR模组,SPR4096DIG_Init();/初始化数码管Key_Init();/初始化键盘Time_Init();/初始化显示时间DIG_Set(1,0);DIG_Set(2,0);DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);Broadcast(52);/播放站点wh

24、ile(1)if(uiDisp = 0)/显示时间DIG_Set(1,0);DIG_Set(2,0);DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);if(uiDisp = 1)/显示月日DIG_Set(1,DatauiMonth_H);DIG_Set(2,DatauiMonth_L);DIG_Set(3,0x0077);DIG_Set(4,DatauiDay_H);DIG_Set(5,DatauiDay_L);DIG_Set(6,0x007f

25、);if(uiDisp = 2)/显示年DIG_Set(1,0x0040);DIG_Set(2,DatauiYear_H);DIG_Set(3,DatauiYear_MH);DIG_Set(4,DatauiYear_ML);DIG_Set(5,DatauiYear_L);DIG_Set(6,0x0040);uiKey = Key_Get();/得到键值,扫建程序在128Hz中断中调用switch(uiKey)case KEY1:uiA2000_S480 = 0;/选择S480放音,在中断FIQuiKey = 0;if(uiflag 1) uiKey1_Count+;NextStation(ui

26、Key1_Count);/播放提示下一站*uiflag = 1;elseuiflag = 0;ComingStation(uiKey1_Count);/*站到了*if(uiKey1_Count = 16)uiKey1_Count = 0;/如果是终点站,重新初始化break;case KEY2:uiA2000_S480 = 0;if(uiflag = 0)uiKey2_Count-;NextStation(uiKey2_Count);uiflag = 1;elseuiflag = 0;ComingStation(uiKey2_Count);if(uiKey2_Count = 0)uiKey2_

27、Count = 16;break;case KEY3:uiA2000_S480 = 0;PlaySnd_S480(65,3);/播放提示语,车在运行中,请做好扶稳break;case KEY4:uiA2000_S480 = 0;PlaySnd_S480(67,3);/请让座break;case KEY5:/广告或娱乐uiA2000_S480 = 1;PlaySnd_A2000(70,3);break;case KEY6:g_4Hz_On = 1;/进入4Hz中断代码,实现闪烁效果uiSetflag+;Set_Time();/设置时间break;case KEY7:uiKey = 0;uiDis

28、p+;/切换显示时间/月日/年if(uiDisp = 3)uiDisp = 0;if(uiDisp = 0)uiTemp = *P_INT_Ctrl_New;/打开2Hz中断,显示秒针uiTemp |= C_IRQ5_2Hz;*P_INT_Ctrl_New = uiTemp;elseuiTemp = *P_INT_Ctrl_New;/关闭2Hz中断,不显示秒针uiTemp &= 0xfffb;*P_INT_Ctrl_New = uiTemp;uiTemp = *P_IOB_Buffer;uiTemp &= 0xfffb;*P_IOB_Data = uiTemp;break;case KEY8:

29、if(uiOn_Off = 0)DIG_Off();/关闭数码管uiOn_Off = 1;elseDIG_On();/打开数码管uiOn_Off = 0;break;default:break;*P_Watchdog_Clear = 0x0001;/清看门狗3.3 初始化函数 系统要对 SPR4096、键盘、显示、时间初始化。SPR4096初始化流程图如图3.4所示。图3.4 spr4096 初始化 SPR4096初始化程序如下:.PUBLIC_SP_SIOInitial_SP_SIOInitial:.PROC /系统时钟设定 r1 = 0x0098; /Fosc=49mHz P_System

30、Clock = r1;r1 = P_IOB_Dir;r1 |= 1;/set bit0 output for sckP_IOB_Dir = r1;r1 = P_IOB_Attrib;r1 |= 1;/buffer outputP_IOB_Attrib = r1;r1 = P_IOB_Buffer;r1 |= 1;/output highP_IOB_Data = r1; retf.ENDP 键盘初始化流程图如图3.5所示,图3.5 键盘初始化 键盘初始化程序如下: F_Key_Init:_Key_Init:push r1 to spINT Offr1 = P_Key_Dir/ 初始化IO为下拉输

31、入r1 &= Key_ALLP_Key_Dir = r1r1 = P_Key_Attribr1 &= Key_ALLP_Key_Attrib = r1r1 = 0ScanCnt = r1/ 初始化变量KeyCode = r1KeyUp = r1r1 = C_TMB2_128Hz/ 开启IRQ6_TMB2(128Hz)中断P_TimeBase_Setup = r1r1 = P_INT_Maskr1 |= C_IRQ6_TMB2P_INT_Mask = r1INT FIQ,IRQpop r1 from sp Retf.ENDP 数码管初始化流程图如图3.6所示,图3.6 数码管初始化 数码管初始化

32、程序如下:_DIG_Init:F_DIG_Init:push r1,bp to spINT Offr1 = DIG_Countr2 = 0x0000bp = R_DIG_Buf?DIG_InitBuf:/Clear Display Bufferbp+ = r2r1 -= 1jnz ?DIG_InitBufR_CurDIG = r2/Reset Dig Pointerr1 = P_SEG_Attrib/Initial IO Ports for Segr1 |= PIN_SEG_ALLP_SEG_Attrib = r1r1 = P_SEG_Bufr1 &= PIN_SEG_ALLP_SEG_Dat

33、a = r1r1 = P_SEG_Dirr1 |= PIN_SEG_ALLP_SEG_Dir = r1r1 = P_DIG_Attrib/Initial IO Ports for Digr1 |= PIN_DIG_ALLP_DIG_Attrib = r1r1 = P_DIG_Bufr1 &= PIN_DIG_ALLP_DIG_Buf = r1r1 = P_DIG_Dirr1 |= PIN_DIG_ALLP_DIG_Dir = r1r1 = P_INT_Mask/Enable IRQ4_4KHz Intr1 |= C_IRQ4_4KHzP_INT_Mask = r1INT FIQ,IRQpop

34、r1,bp from sp retf.ENDP时间初始化流程图如图3.7所示。图3.7 时间初始化时间初始化程序:void Time_Init(void)unsigned int uiTemp;uiTemp = *P_IOB_Dir;/设置IOB2为高电平输出uiTemp |= 0x0004;*P_IOB_Dir = uiTemp;uiTemp = *P_IOB_Attrib;uiTemp |= 0x0004;*P_IOB_Attrib = uiTemp;uiTemp = *P_IOB_Data;uiTemp |= 0x0004;*P_IOB_Data = uiTemp;uiTemp = *P

35、_INT_Ctrl_New;/开2Hz、4Hz中断uiTemp |= C_IRQ5_2Hz;uiTemp |= C_IRQ5_4Hz;*P_INT_Ctrl_New = uiTemp; 3.4 语音播放的实现 由于语音资源存储在外廓的存储器 SPR4096 上面,要实现语音播放必须采用手动方式。需要获得语音资源,关键解决语音资源的起始地址,然后通过读取函数获得语音资源。函数流程图如图3.8所示。 图3.8 手动方式播放流程图 手动方式播放程序:void PlaySnd_A2000(unsigned int SndIndex,unsigned int DAC_Channal)unsigned i

36、nt uiStatus;/ 语音播放状态unsigned int uiRet;/ 存储语音资源unsigned long ulCon_AddrHighest;/ 语音资源的最高字节地址unsigned long ulCon_AddrHigh;/ 语音资源的高字节地址unsigned long ulCon_AddrLow;/ 语音资源的低字节地址unsigned long ulCon_AddrLowest;/ 语音资源的最低字节地址unsigned long ulCon_EndAddr;/ 语音资源的末地址unsigned long ulCon_StartAddr;unsigned int ui

37、Key;ulCon_AddrHighest = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12);/ 第一个播放文件地址ulCon_AddrHighest = ulCon_AddrHighest 24;ulCon_AddrHigh = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12+1);ulCon_AddrHigh = ulCon_AddrHigh 16;ulCon_AddrLow = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12+2);ul

38、Con_AddrLow = ulCon_AddrLow 8;ulCon_AddrLowest = SP_SIOReadAByte(BASE_START_ADDRESS + SndIndex*12+3);ulCon_StartAddr = ulCon_AddrHighest | ulCon_AddrHigh/ 开始地址| ulCon_AddrLow | ulCon_AddrLowest;ulCon_AddrHighest = SP_SIOReadAByte(BASE_END_ADDRESS + SndIndex*12);ulCon_AddrHighest = ulCon_AddrHighest 24;ulCon_AddrHigh = SP_SIOReadAByte(BASE_END_ADDRESS + SndIndex*12+1);ulCon_AddrHigh = ulCon_AddrHigh 16;ulCon_AddrLow = SP_SIOReadAByte(BASE_END_ADDRESS + SndIndex*12+2);ulCon_AddrLow = ulCon_AddrLow = ulCon_EndAddr)/文件结束?uiStatus = 0;/如果文件结束,结束放音break;uiRet = SP_SIORea

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服