1、摘要随着计算机系统的广泛应用以及网络的飞速发展,各种控制设备间的通信功能日趋成熟,单片机通信在工业控制、数据采集以及仪器仪表自动化等许多领域都起着十分重要的作用。本次课程设计是基于凌阳16位单片机SPCE061A 的4X4键盘语音播放设计,当按不同键值会自动播放不同的语音,并且在第一个数码管上显示键值。在硬件设计中,主要包括SPCE061A核心及周边电路、系统电源电路、音频电路、UART通讯电路、44键盘和6位8段数码管电路等;在软件设计中,系统使用C语言进行编写,主要包括主程序、键盘扫描程序、中断程序、LED驱动程序、自检程序等。关键字:16位单片机SPCE061A,4X4键盘,6位8段数码
2、管电路,音频电路目录1 绪论11.1 课题背景11.2 设计目的11.3 设计内容12 总体方案设计32.1 总体需求分析32.1.1 实验原理32.1.2 硬件选择42.2 系统组成结构及原理42.2.1 系统组成结构42.2.2 SPCE061A单片机52.2.3 系统电源电路72.2.4 音频电路82.2.5 44键盘和6位8段数码管92.2.6 UART通讯电路93 系统硬件设计113.1 4X4键盘扫描原理图113.2 SPCE061A获取44键盘键值原理113.3 硬件连接124 系统软件设计134.1 集成开发环境IDE概述134.2程序主流程图144.3 实验箱自检准备144.
3、3.1 自检步骤144.3.2 实验步骤165 调试结果与分析175.1 调试结果175.2 实验结果分析186 总结报告19致谢20参考文献21附录221 绪论1.1 课题背景用单片机驱动LED数码管有很多方法,按显示方式可分静态显示和动态(扫描)显示;按译码方式可分硬件译码和软件译码。静态显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。利用凌阳单片机SPCE061A可以方便的实现键盘控制的语音自动播放功能。1.2 设计目的在单片机的产品设计中,人机界面是非常重要的部分,而且随着系统的日益复杂,以及人们对产品的人机交互能
4、力的要求不断提升,常握单片机系统中的人机界面基础设计能力成为了学习单片机的基础课程,而4X4键盘的操作和LED数码管的动态显示是人机界面设计的基础内容,以及掌握语音播放过程和方法,加深对人机界面的认识,同时提高人机界面系统设计的能力。1.3 设计内容给 44 键盘的每个键定义一个功能,按不同的键时会听到实验箱播放不同的语音,并能看到数码管显示键值。具体的键和语音的对应关系如表1。表1 键和语音的对应关系按键 语音资源语音资源内容 数码管显示内容S1(数字键“7”) S7.48k 凌阳科技走入您的生活 7S2(数字键“8”) S8.48k 凌阳科技为专业集成电路设计公司 8S3(数字键“9”)S
5、9.48k 凌阳将带您走入科技殿堂 9S5(数字键“4”)S4.48k 凌阳以创新、专业保持产品的领导地位 4S6(数字键“5”) S5.48k 凌阳以完整产品线满足客户需求 5S7(数字键“6”) S6.48k 凌阳科技以人为本,诚信第一 6S9(数字键“1”) S1.48k 凌阳专业于研发制造以及较高速与高速加价型集成电路产品1S10(数字键“2”) S2.48k 凌阳用全客户委托设计模式,提供客户满意的产品与服务2S11(数字键“3”) S3.48k 凌阳专向于多媒体语音信号处理核心技术,迎接多媒体时代的来临 3S13(删除键“DEL”) 无无无显示其他键S0.48k 凌阳科技企业宗旨为
6、科技落实生活 02 总体方案设计2.1 总体需求分析随着计算机技术的广泛应用以及网络的飞速发展,出现各种各样的智能仪器,其应用已涉及各行各业,这些智能仪器大多数都是基于嵌入式单片机技术。凌阳十六位单片机(SPCE061A)实验箱是集单片机应用技术、在线调试、在线仿真等功能于一体的强大开发系统,SPCE061A 及其系列产品将带领MCU 的应用迈入片上系统(SOC)时代,使在体验凌阳音频的欢快愉悦中轻松步入单片机及其嵌入式系统的流行领域。因此,本次课程设计利用其提供的各子电路模块和驱动程序,可以方便地实现目前较为流行的键盘语音自动播放功能。2.1.1 实验原理如图2.1,注意把IOA8IOA15
7、连接44键盘的C4L1,切不可接反了。按键以后,SPCE061A单片机进行行扫描,确定哪个键按下;确定之后,利用一种算法计算键值,比如当S5按下时,在IOA口高八位得到的值应该为01001000B,这时候利用一种算法可以让键值为“4”;或者直接当这里的行扫描值为0100、读到列码1000时,让返回的键值为“4”。SPCE061A单片机取得键值后,利用自动播放的方式播放相应索引号的语音资源。图2.1系统连接框图2.1.2 硬件选择本次课程设计主要以带有nSP IDE仿真环境的PC机和凌阳单片机SPCE061A试验箱基础,实验箱硬件模块包括:SPCE061A核心及周边电路模块(包含32个I/O口)
8、、半导体数码管、44键盘、电源电路等。2.2 系统组成结构及原理2.2.1 系统组成结构1)实验箱功能区域划分图图2.2 实验箱功能区域划分图2)硬件配置以下是为凌阳科技大学计划实验箱的主要硬件配置:(1)主控芯片SPCE061A,凌阳16位单片机,详细请参见第三章。(2)44矩阵键盘和6位8段数码管,采用动态扫描方式驱动44矩阵键盘。(3)18高低电平发生按键和8个发光二极管。(4)I/O可选5V3.3V输出电路以及可选外部电压输入电路。(5)两路0-3V可调A/D输入电压,为A/D数据采集等提供便利。(6)双色88 LED点阵,可以完成图形、字模显示。(7)RS232接口可实现直接与PC机
9、进行通讯。(8)利用串行设备输入输出接口(SIO接口)扩展外部存储芯片SPR4096A,为实验箱系统增加4M Bits Flash 或32K Bits SRAM的存储空间。(9)USB1.1 接口,提供完整的单片机固体程序、上位机驱动程序源代码及其完整的软件包和应用范例,可直接进行USB通讯。(10)带背光的12864点阵液晶模组,内藏凌阳的一款LCD驱动芯片SPLC501,采用最新的COG(Chip on Glass)技术使驱动和液晶合二为一。(11)两路音频输出电路,采用凌阳音频功放芯片SPY0030A,可以充分体验SPCE061A带来的听觉效果。(12)MIC输入电路,配合SPCE061
10、A内部的AGC和OPI电路,可获得理想的语音效果。(13)SPCE061A内置ICE 电路,配合凌阳的在线调试器PROBE 和软件开发环境IDE 可方便的实现在线编程、仿真、下载、调试等功能。2.2.2 SPCE061A单片机1)功能特点本系统以凌阳自主开发的十六位单片机SPCE061A作为主控芯片,它是凌阳十六位单片机系列中的一款,具有以下功能特性:(1)16位unsp系列微处理器;(2)工作电压:VDD为3.03.6V(cpu), VDDH为3.05.5V(I/O);(3)CPU时钟:0.32MHz49.152MHz ;(4)内置2K字SRAM;(5)内置32K字FLASH;(6)内置可编
11、程音频处理电路;(7)时钟电路采用晶体振荡器电路;(8)2个16位可编程定时器计数器(可自动预置初始计数值);(9)2个10位DAC(数模转换)输出通道;(10)系统处于备用状态下(时钟处于停止状态)耗电小于2mA3.6V;(11)32位通用可编程输入输出端口;(12)14个中断源:定时器AB,2个外部时钟源输入,时基,键唤醒;(13)具备触键唤醒的功能(IOA0IOA7);(14)使用凌阳音频编码S240方式(2.4Kbps),能容纳210秒的语音数据;(15)锁相环PLL振荡器提供系统时钟信号;(16)7通道10位电压模数转换器(ADC) ,和单通道音频模数转换器;(17)音频模数转换器输
12、入通道内置麦克风放大器,并具有自动增益控制(AGC)功能;(18)具备标准串行接口(UART接口)和同步串行设备输入输出口(SIO接口);(19)具有低电压复位(LV CE(In- Circuit Emulator)接口;(20)具有保密能力;(21)具有WatchDog功能。R)功能和低电压监测(LVD)功能;2)SPCE061A核心及周边电路原理图SPCE061A共提供两个16位通用的并行I/O口: IOA0-IOA15,IOB0-IOB15。这两个口的每一位都可以通过编程单独定义为输入或输出口。其中A 口的IOA0IOA 具有触键唤醒功能,可以应用于低功耗的场合。SPCE061A 核心及
13、周边电路实物图如图2.3所示。图2.3 SPCE061A核心及周边电路原理图SPCE061A的并行I/O口可以通过编程设置为上拉输入、下拉输入、悬浮输入或同相输出、反相输出的状态,详细的应用请配合提供的例程中BaseExa 实验16。2.2.3 系统电源电路实验箱的系统供电电路采用多种供电方式,用户可以有多种选择:1)220V交流电压供电用户可以选择220V交流电压供电,系统已将其经过变压、整流、稳压处理成5V直流电压,再经过一个三端稳压器提供3.3V直流电压,给系统提供电源。此时须将J37的V3和VDDH短接起来。实验箱的供电电源采用220V的交流电源,系统电源电路实物图见图2.4。图2.4
14、 系统电源电路实物图2)DC5V供电用户还可以直接提供直流5V电压为实验箱进行供电。只需将5V DC直接从“外接5V输入”端即J1输入,为系统供电即可。3)其它端口介绍在图 2.2 所示的系统电源电路实物图中可以看到220V 电源开关,低电压检测电压输入J3(可以将电压从此引入为系统供电,电压范围:03.6V,同时将J37的LVD与VDDH 相连), 5V电压输入J1,电源指示灯, 和I/O输出电压选择(将J30与J37的VDDH相连,选择I/O输出电压为5V,将J37的V3和VDDH相连,选择I/O输出电压为3.3V)。2.2.4 音频电路音频电路由音频输入电路以及音频输出电路组成。1)音频
15、输入电路如图2.5所示为音频输入部分外围实物图。从MIC输入的音频信号经过SPCE061A 内置的AGC 电路将语音信号的放大值控制在一定范围内,便可进行A/D转换。其中J9为2V A/D参考电压输入端口,当用跳线将J9的1、2脚短接,为选择2V 的A/D参考电压;如果选择使用外部参考电压,则将电压从J9左边的引脚(1脚)输入即可,外部参考电压范围为03.3V。详细的应用请配合提供的例程中BaseExa实验19。图2.5 音频输入部分外围实物图2)音频输出电路音频输出电路采用凌阳功放芯片SPY0030A,音频输出大于700mw,喇叭直流阻抗8欧,左右两个通道音量分立调节并备有两个外部音频信号放
16、大输入端。在图2.4中可以看到两组排针J8和J13,可以用来测量DAC的输出波形;另外拔掉跳线,可以断开DAC到实验箱的音频放大通路,使得DAC通道处于开路状态。这样便于用做其他用途,用户可以将DAC信号从这两组排针引出到自己的外围电路上。另外,如图2.8所示还为用户留出了两个外接喇叭接口,为追求音质的用户提供了方便。详细的应用请配合提供的例程中BaseExa实验18(路径:在IDE安装路径下SunplusunSPIDE184SPCE061ABaseExaex19)。音频输出电路实物图如图2.6。图2.6 音频输出电路实物图2.2.5 44 键盘和6位8段数码管44 键盘和6 位8 段数码管,
17、能满足按键显示的基础实验,以及电子钟之类的相关兴趣实验。44 键盘矩阵电路为行列式键盘,在其旁边的8 对排针中74 控制列扫描,30 控制行扫描。如图2.7,如果选用默认连接,可以用跳线将其短接;另外也可通过排线按需要进行连接。44键盘电路原理图如图2.25所示。图2.7 44键盘和6位8段数码管的实物图2.2.6 UART通讯电路实验箱的串口通讯电路实物见图2.8。通讯接口采用标准的232 接口电平,采用MAX3232 电平转换芯片。详细的应用请配合提供的例程中BaseExa 实验16 和IntExa 实验11 (路径:在IDE 安装路径下SunplusunSPIDE184SPCE061Am
18、odel_Exaex16和IntExaex11)。需要提醒的是,SPCE061A通过UART接口与外设进行通讯的时候,需要对拨码开关S19 进行设置,需要将Rx、Tx都拨到高端才能正常通讯。S19 详细含义见表2.1。图2.8 UART通讯电路实物图表2.1 拨码开关S19设置说明RxPC接收数据使能LCD液晶背光使能TxPC发送数据使能LCE在线仿真使能3 系统硬件设计3.1 4X4键盘扫描原理图键盘按其接线方法有:直接式键盘、行列式键盘(又称矩阵键盘)、串转并键盘等;在本设计中,采用4X4的行列式键盘,即键盘排列为4行、4列,共16个按键,分别定义这16个按键盘为KEY116。C1C4为4
19、4键盘的列扫描线,L1L4为44键盘的行扫描线。先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是无键盘按下时,则读取的列码必定全是0(低电平)。这也就可以判断有无按键的按下了。3.2 SPCE061A获取44键盘键值原理单片机与该电路连接时,使用4个端口作为输出口,接4条行扫描线;使用4个端口作为输入口,接4条列扫描线。使用SPCE061A的IOA815八个端口作44键盘的扫描,IOA03接行扫描线,IOA47接列扫描线。图3.1 SPCE061A和44键盘电路连接图如上图中,IOA12IOA15设
20、置为输出口,接行扫描线;IOA8IOA11设置为带下拉电阻的输入口,接列扫描线。按照44键盘的工作原理,先只把IOA12输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口的值还是0;再把IOA13输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口还没有检测到高电平;从IOA14输出高电平扫描,从IOA15输出高电平扫描,直到检测到高电平,保存扫描行值和列码。3.3 硬件连接硬件连接图如图 3.2,IOA0IOA7连接和6位数码管的ag、dp,IOA口的高八位IOA15IOA8连接44键盘的L1L4、C1C4,IOB15IOB1
21、2连接数码管的位信号14,IOB2IOB1连接数码管的位信号56,IOB0连接数码管的分隔符信号DD。即把JP4、JP5的引脚全部用跳线短接起来,用一根排线连接J28和JP7,注意J27和JP7的连接顺序(连接顺序为:J27的第0号引脚连接JP7的C4引脚,J27的第7号引脚连接JP7的L1引脚)。图3.2 硬件连接图4 系统软件设计4.1 集成开发环境IDE概述集成开发环境IDE,为凌阳科技股份有限公司提供的支持单片机开发的软件环境,它集程序的编辑、编译、链接、调试以及仿真等功能为一体。具有友好的交互界面、全面的工具,以及各种快捷键和快速访问命令列表等,使用户的编程、调试工作更加方便高效。此
22、外,它提供的软件仿真功能可以在不连接仿真板的情况下模拟硬件的各项功能来调试程序,不受硬件的限制。图4.1 nSP IDE仿真环境主界面集成开发环境IDE速成指南:1)从开始菜单内启动工具;2)选择FileOpen Project,在打开对话框内选择所要打开的工程;3)窗口(工作区窗口)显示在工具的左半边,在这个窗口内,用户可以看到当前工程所包含的所有文件;4)选择BuildRebuild All,进行源文件的编译和链接。编译过程里的语法错误显示在Output窗口内;5)选择BuildStart DebugDownload,把程序加载到芯片中,然后,用户可以用Debug菜单内所提供的调试命令来优
23、化和运行程序;6)BuildStart DebugGo,运行程序。4.2程序主流程图主程序流程图如图4.2,先要初始化键盘扫描和显示以及中断,因为要播放语音,要对语音播放进行初始化,这里初始化为自动播放的方式;调用键盘程序取键值,这里可以用前几个实验的键盘程序;用第一个数码管显示取到的键值;把语音播放音量设置为最大音量15,这个主要受语音资源的影响,如果能听清楚,可以不设置音量,默认的音量为8;根据键值播放实验要求相应的语音语句;执行清看门狗操作,返回继续扫描键盘。图4.2 主程序流程图4.3 实验箱自检准备4.3.1 自检步骤1)主板加电,POWER指示灯正常;2)LR音频输出电位器顺时针开
24、到两格(约是全音量的1/3);3)两路Voltage电位器逆时针关到最小;4)检查DAC1DAC2(J8J13)跳线是否接上;5)确认内置扬声器已连接或连接外置扬声器;6)确认右上角S19(选择开关)已按要求置OFF端。每步自检程序都有被检测部分的语音提示,并说明如何接线,另外液晶电路将会显示相关状态,具体过程请参考图4.3自检程序流程图。注意:1)自检过程中,当检测到相应部分,再将其短接上即可(其中JP3的B8用跳线将右端两脚短接)。2)当语音播报“欢迎进入自检模式,44键盘检测”结束后按键才有效。图4.3自检程序流程图4.3.2 实验步骤1) 新建一个工程ex6_LED_Key_Music
25、,在工程里新建C语言文件main.c;2)拷贝并添加语音库支持文件:hardware.asm、hardware.h以及hardware.inc到ex6_LED_Key_Music工程;3)拷贝语音播放库sacmv26e.lib和头文件s480.h、s480.inc到新建的ex6_LED_Key_Music工程文件夹; 4)如果在以前的实验中已经编写好键盘程序、数码管显示程序添加到ex6_LED_Key_Music工程,如果没有,读者可以自己定义文件,编写程序;5)在IDE集成开发环境的ProjectSettinglink中链接sacmv26e.lib库到
26、新建的工程中;6)添加hardware.asm到新建的工程的“Source Files”,添加s480.h、s480.inc、hardware.h、hardware.inc四个头文件到“Head Files”;7)添加语音资源S0.48kS9.48k到工程;8)按照程序流程图在main.c文件中编写程序;如果没有编写键盘程序,自行按照44键盘的工作原理,编写键盘程序;9)Rebuild All;10)按照硬件连接图连接电路,注意把JP3中的引针全部断开,即把JP3中的跳线全部拔掉;11)下载程序,运行; 12)按任意键,观察第一个数码管,根据实验箱播放的声音,分析是否和实验要求相符。5 调试结
27、果与分析5.1 调试结果首先,应该进行试验箱的自检测,特别是键盘检测、LED检测与单片机检测,只有当检测实验所用单元全部正常时,方可进行实验。当硬件连接好后,如图5.1所示,按键以后,通过SPCE061A单片机进行行扫描,确定哪个键按下;确定之后,利用一种算法计算键值,例如当S2按下时,在IOA口高八位得到的值应该为10000100B,这时候利用一种算法可以让键值为“8”;或者直接当这里的行扫描值为1000、读到列码0100时,让返回的键值为“8”。SPCE061A单片机取得键值后,利用自动播放的方式播放相应索引号的语音资源。仍然以S2按下为例,当SPCE061A单片机判断取得的键值为“8”时
28、,利用SACM_S480_Play(3, Channel, int Ramp_Set)播放第四段语音,即凌阳科技为专业集成电路设计公司,其实验运行结果如图5.2所示。图5.1 实验硬件连接图图5.2 实验运行结果图5.2 实验结果分析在实验开始时,由于J4和J5的接线出现问题,导致数码管的最高位没有按照指定要求显示处理。经过仔细检查改正后,才获得了正确的实验结构。6 总结报告在本次课程设计中,我查阅了相关资料,认真阅读相关的设计要求,独立按时完成任务。尽管本次课程设计是六人一组的,但是我们基本上每人都独立地拿出了一个方案,每个方案各有特色。彼此之间进行了一些讨论,交流,在讨论交流过程中,我也看
29、到了自己的有点和不足,也学习吸收他们比较好的地方。这不仅增长了我的知识,也增进了同学之间的感情。通过这次课程设计我基本学会了智能仪器设计的步聚和基本方法,提高了动手能力,增强了理论联系实际的能力,分组工作的方式给了我与同学合作的机会,提高了与人合作的意识与能力,同时也培养和发展了同学之间的感情,对此我感到非常欣慰。总之,在这次课程设计中我受益匪浅。 致谢课程设计的过程中,我遇到了不少的问题,但最终我终究还是战胜困难,取得了成功,当然其中很大一部分功劳都要归功于指导老师和同学们,要不是没有指导老师的指导和与同学们的相互交流学习,我的课程设计肯定不会如此轻松。在此,我非常感谢我的指导老师和同学们。
30、总之,这次课程设计是很成功的感谢学校给我了这样好的实践机会。这对提高我们的能力有很大的作用,这不仅能使我们更好地在社会中生存下去,也提升了学校的名誉,我想更多的这类科目应该被安排给我们。参考文献【1】朱麟章 蒙建波主编.检测理论及应用. 重庆大学出版社 2007.8(2)【2】张国雄编著.测控电路 天津大学出版社 2005.1【3】费业泰编著.误差理论与数据处理 .合肥工业出版社 2005.1【4】王志刚编著.单片机应用技术及实训.北京:清华大学出版社 2004.5附录主程序:MAIN.C/The information contained herein is the exclusive pr
31、operty of/Sunnnorth Technology Co. And shall not be distributed, reproduced,/or disclosed in whole in part without prior written permission./(C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO./ALL RIGHTS RESERVED/The entire notice above must be reproduced on all authorized copies./ 工程名称: ex6_LED_Key_Music /
32、功能描述: 实验指导书综合实验/ 4*4键盘播放语音/ 不同的按键选择播放相对应的语句/ 涉及的库:CMacro1016.lib/sacmv26e.lib / 组成文件:main.c/isr.asm/key.asm/Led.asm/hardware.asm/ hardware.h/s480.h/SPCE061A.h/hardware.inc/s480.inc/SPCE061A.inc/ 硬件连接: IOA口低8位连接1*8数码管的段选/OB口IOB15 、IOB14、IOB13、IOB12、IOB2、IOB1、IOB0连接位选/IOA口高8位连接4*4键盘/ 日期: 2005-10-17 v1
33、.0(建立)/文件名称:main.c/功能描述:4*4键盘控制语音播放/维护记录:2005-10-17v1.0#include SPCE061A.h#include Key.h#include Dig.h#include s480.h #define GREEN 0x00ff#define RED 0xff00#define HaveKey 1#define NoKey 0#defineSPEECH_1 0#defineDAC11#defineDAC22#defineRamp_UpDn_Off0#defineRamp_Up_On1#defineRamp_Dn_On2#defineRamp_Up
34、Dn_On3#defineAuto1#defineFull1#defineEmpty2unsigned char Keycode; unsigned char KeyFlag; /按键标识 / 语法格式:int main(void)/ 实现功能:主函数/ 参数:无/ 返回值:0unsigned int KeyDataChange(unsigned int Key_Data);void Initial_INT(void);unsignedintg_Data11= 0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x00
35、6f; /0, 1,2,3,4, 5,6,7,8,9int main(void) KeyFlag = 0;Keycode = 12;Key_Init();DIG_Init();Initial_INT();SACM_S480_Initial(Auto); /初始化为自动方式播放 while(1) *P_Watchdog_Clear = 0x0001; / 清看门狗 Keycode = Key_Get(); /扫描键盘if(Keycode!=0)Keycode = KeyDataChange(Keycode); DIG_Set(1,g_DataKeycode); SACM_S480_Volume(
36、15); /设置为最大播放音量 switch(Keycode) case 1:SACM_S480_Play(0,DAC1+DAC2,Ramp_UpDn_On); break; /播放语音资源s1case 2: SACM_S480_Play(1,DAC1+DAC2,Ramp_UpDn_On);break; /播放语音资源s2case 3: SACM_S480_Play(2,DAC1+DAC2,Ramp_UpDn_On); break; /播放语音资源s3case 4: SACM_S480_Play(3,DAC1+DAC2,Ramp_UpDn_On); break;/播放语音资源s4case 5:
37、 SACM_S480_Play(4,DAC1+DAC2,Ramp_UpDn_On); break;/播放语音资源s5case 6: SACM_S480_Play(5,DAC1+DAC2,Ramp_UpDn_On); break;/播放语音资源s6case 7:SACM_S480_Play(6,DAC1+DAC2,Ramp_UpDn_On); break;/播放语音资源s7case 8:SACM_S480_Play(7,DAC1+DAC2,Ramp_UpDn_On); break;/播放语音资源s8case 9:SACM_S480_Play(8,DAC1+DAC2,Ramp_UpDn_On);
38、break;/播放语音资源s9case 0:SACM_S480_Play(9,DAC1+DAC2,Ramp_UpDn_On); break;/播放语音资源s0default: break; SACM_S480_ServiceLoop(); / 获取语音数据并将其填入解码队列 *P_Watchdog_Clear = 0x0001; / 清看门狗 return 0; /语法格式:unsigned int KeyDataChange(unsigned int Key_Data)/实现功能:键值译码程序/参数:unsigned int Key_Data-键值机器码/返回值:0F-合法的数字键/0xff
39、-不合法的按键unsigned int KeyDataChange(unsigned int Key_Data)switch(Key_Data)case KEY_0: Key_Data = 7;break;case KEY_1: Key_Data = 8;break;case KEY_2: Key_Data = 9;break;case KEY_3: Key_Data = 0;break;case KEY_4: Key_Data = 4;break;case KEY_5: Key_Data = 5;break;case KEY_6: Key_Data = 6;break;case KEY_7:
40、 Key_Data = 0;break;case KEY_8: Key_Data = 1;break;case KEY_9: Key_Data = 2;break;case KEY_A: Key_Data = 3;break;case KEY_B: Key_Data = 0;break;case KEY_C: Key_Data = 0;break;case KEY_D: Key_Data = 0;break;case KEY_E: Key_Data = 0;break;case KEY_F: Key_Data = 0;break;default: Key_Data = 0;break;return Key_Data;第26页 共26页