基于SLH89F5162的公交车语音报站系统设计
3.2单片机的SLH89F5162程序设计
本文引用地址:https://www.eepw.com.cn/article/246308.htm单片机的程序是用KEIL4编制的,主要是按键的识别、液晶屏的显示、语音芯片WT588D的单线通信程序三部分。主要程序如下,详情见附件。
void main(void)
{
uint block_n;
uint updata;
uint key_flag;
uchar flag_hold;
initinal(); //调用LCD字库初始化程序
delay(50); //大于100uS的延时程序
flag_key=0;
flag_hold=0;
beep1(2-1);
block_n=2;
updata=1;
Display_hanzi(0,0,“公交报站系统”,8);
Display_hanzi(0,2,“本站:”,3);
Display_hanzi(0,1,“上站:”,3);
Display_hanzi(0,3,“下站:”,3);
Display_hanzi(3,2,Station[block_n],5);
Display_hanzi(3,1,Station[block_n-1],5);//上一站
Display_hanzi(3,3,Station[block_n+1],5);//下一站
Display_hanzi(0,1,“本站:”,3);
Display_hanzi(0,2,“上站:”,3);
Display_hanzi(0,3,“下站:”,3);
while(1)
{
delay(200);
if(K1==0
key_flag=0;
updata=1;
block_n=1;
beep1(block_n-1);
}
else if(K2==0
key_flag=0;
updata=1;
block_n=block_n+1;
if(block_n》10)
block_n=10;
beep1(block_n-1);
}
else if(K3==0
key_flag=0;
updata=1;
block_n=block_n-1;
if(block_n《1)
block_n=1;
beep1(block_n-1);
}
else if(K4==0
key_flag=0;
updata=1;
block_n=10;
beep1(block_n-1);
}
if(K1!=0
{
key_flag=1; ///标志,当按键按下,动作一下,按键松开后才能再次按下响应,防止连续动作
}
if(updata==1){
updata=0;
if(block_n==1){
Display_hanzi(3,1,Station[block_n],5);
Display_hanzi(3,2,Station[block_n],5);//上一站
Display_hanzi(3,3,Station[block_n+1],5);//下一站
}else if(block_n==10){
Display_hanzi(3,1,Station[block_n],5);
Display_hanzi(3,2,Station[block_n-1],5);//上一站
Display_hanzi(3,3,Station[block_n],5);//下一站
}else{
Display_hanzi(3,1,Station[block_n],5);
Display_hanzi(3,2,Station[block_n-1],5);//上一站
Display_hanzi(3,3,Station[block_n+1],5);//下一站
}}}}
三、项目设计框图
1、硬件设计框图

2、软件设计框图

四、测试结果

系统的PCB板实物图

系统调试好的实物图
经过仔细认真的焊接和调试,最终完成了系统的实物系统,经过调试,系统稳定可靠。性能指标如下:
1、系统功率小于5W.
2、能够通过按键操作,进行起始站、上一站、下一站、终点站的语音报警和液晶屏显示,当按键按下时,液晶屏显示相应的信息,语音输出响应的信息。
3、语音的声音输出清晰,流畅,普通话标准,声音最大能够输出60分贝。
4、显示屏采用128*64的汉字显示屏,能够显示字母、数字、汉字。
pa相关文章:pa是什么
手机充电器相关文章:手机充电器原理 燃气报警器相关文章:燃气报警器原理
评论