当初申请开发板时设定的制作目标是一个多语种语音展板,前面经过努力分别解决了串行通讯、波特率调整、MP3指令发送等问题,最后就差一个语种选择的问题了,原打算是使用触摸键,经编程测试不是太稳定、可靠,于是便改为形式相近的软按键来控制,这样不仅得到了同样的使用效果,而且还能够扩展出更多的选择键,其硬件构成如下图所示。
多语种语音展板构成图
为便于直观地选择语种,可借助各国的国旗来辅助语种的选择,相应的标识如下:
按键与CH554的引脚连接关系如下:
K1 --- P1.0
K2 --- P1.1
K3 --- P1.2
K5 --- P3.4
K6 --- P3.5
对应的定义语句为:
sbit K1 = P1^0;
sbit K2 = P1^1;
sbit K3 = P1^2;
sbit K5 = P3^4;
sbit K6 = P3^5;
实现设计功能的主程序如下:
- void main( )
- {
- UINT16 i = 0;
- CfgFsys( );
- mDelaymS(20);
- mInitSTDIO( );
- Port1Cfg(3,0); // P1.0
- Port1Cfg(3,1);
- Port1Cfg(3,2);
- Port3Cfg(3,4);
- Port3Cfg(3,5);
- CH554UART0SendByte(0x7f);
- setVolume(10); // 设置音量
- for(i=0;i<10;i++)
- {
- CH554UART0SendByte(cmd6[i]);
- }
- mDelaymS(80);
- while(1) // 语音播放处理
- {
- if(K1==0) // 选择语种1解说
- {
- playn(1);
- for(i=0;i<10;i++)
- {
- CH554UART0SendByte(cmd3[i]);
- }
- }
- if(K2==0) // 选择语种2解说
- {
- playn(2);
- for(i=0;i<10;i++)
- {
- CH554UART0SendByte(cmd3[i]);
- }
- }
- if(K3==0) // 选择语种3解说
- {
- playn(3);
- for(i=0;i<10;i++)
- {
- CH554UART0SendByte(cmd3[i]);
- }
- }
- if(K5==0) // 选择语种4解说
- {
- playn(4);
- for(i=0;i<10;i++)
- {
- CH554UART0SendByte(cmd3[i]);
- }
- }
- if(K6==0) // 选择语种5解说
- {
- playn(5);
- for(i=0;i<10;i++)
- {
- CH554UART0SendByte(cmd3[i]);
- }
- }
- mDelaymS(500);
- }
- }
复制代码
结束语:
通过亲自体验,感觉CH554开发板的性能和易用程度还是比较高的,在短期内能将它用到作品制作中便是明证。据了解CH559的性能比CH554更加出色,希望以后能有机会亲自体验和了解该开发板的性能。
此内容由EEWORLD论坛网友jennyzhaojie原创,如需转载或用于商业用途需征得作者同意并注明出处