一.硬件方案
本系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。电路主要由51单片机+最小系统+LCD12864液晶显示屏+WT588语音模块+按键输入;
二.设计功能
(1)LCD12864液晶显示当前窗口01、02 排队人数 取号号码。
(2)第一个按键到1号窗口,第二个按键到二号窗口。
(3)第三个按键进行取号。
(4)语音播报当前取号号码到几号窗口。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)PCB图如下:
四.软件设计
主程序源码
/***************主函数*****************/
void main()
{
init_12864();
init_12864_dis();
while(1)
{
key(); //独立按键程序
if(key_can != 0)
{
if(key_can == 1)
{
zong_r ++;
if(zong_r / 2 == 0 )
{
write_string(2,0,"请00号到 1号窗口");
write_shu10(2,1,zong_r); //显示号
}else
{
write_string(1,0,"请00号到 1号窗口");
write_shu10(1,1,zong_r); //显示号
}
}
if(key_can == 2)
{
zong_r ++;
if(zong_r / 2 == 0 )
{
write_string(2,0,"请00号到 2号窗口");
write_shu10(2,1,zong_r); //显示号
}else
{
write_string(1,0,"请00号到 2号窗口");
write_shu10(1,1,zong_r); //显示号
}
}
dengdai_r = paidui_h - zong_r;
write_shu10(3,3,dengdai_r); //显示等待人数
if((key_can == 1)||(key_can == 2)) //语音
{
Send_threelines(118,1); //请
Send_threelines(zong_r,1); //
Send_threelines(zong_r/10%10,1); //
Send_threelines(10,1); //
Send_threelines(zong_r%10,1); //
Send_threelines(118,1); //号
if(key_can == 1)
Send_threelines(121,1);
if(key_can == 2)
Send_threelines(120,1);
}
}
if(key_can == 3)
{
paidui_h ++;
if(paidui_h >= 99)
paidui_h = 99;
write_shu10(4,5,paidui_h); //显示排队的号
}
dengdai_r = paidui_h - zong_r;
write_shu10(3,3,dengdai_r); //显示等待人数
}
}
资料链接:https://pan.baidu.com/s/1wLYcnCpBNzrAqpkvF-zxFw?pwd=wu0l