历史上的今天
今天是:2024年09月30日(星期一)
2021年09月30日 | 基于51单片机的GPS公交车自动报站系统
2021-09-30 来源:eefocus
一.硬件方案
本设计主要是制作出一款基于51单片机的GPS自动报站公交车,根据设计需求,硬件部分应该具有的功能有,GPS定位、语音播报、液晶显示、按键操作以及相应的指示灯提示,所以本次设计采用了STC89C58RC单片机作为主控芯片、GPS模块采用了VK2828U7G5LF、液晶显示部分采用了LCD12864液晶、音频播放部分采用了Miniplay模块,以及按键电路、指示灯提示电路还增加了时钟显示电路。整体硬件框图如图:

二.设计功能
(1)本设计播报主要有两种方式,其一是当到达播报站点时,司机按下对应按键进行播报;另一种是全自动语音播报方式,到达播报站点时,设计会自动进行播报。
(2)自带时钟显示,并且设有GPS自动校时开关;当按下校准按键时,每次上电后若接收到有效的GPS数据,会自动校时一次当前时间数据。再按下按键,则关闭自动GPS校时功能,但是支持手动调试功能。
(3)时钟芯片带有纽扣电池,当系统掉电后,纽扣电池继续工作;重上电后,时间无需重新设置;
(4)可通过按键调整语音播报音量的大小。
(5)针对自动播报时的经纬度数据,有两种修改方式,一种是程序固化,不可修改,一种是自定义经纬度数据,用户可拿着设备站在想要播报的位置,选择好对应菜单,在GPS数据稳定时按下对应按键来录入该站名的经纬度数据。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:

(2)PCB图如下:

四.软件设计
(1)程序流程图

(2)主程序源码
void main()
{
TimeInt();
LCD12864_init(); //调用显示函数
// Send_Appoint_Music(1);
read_memory();
Mode=0;
if(Mode)
{
read_GPS();
}
while(1)
{
read_time1(); //读取时间函数,GPS_Write等于1,说明将获取的GPS是将赋值给时间
GPS_Route_Dispose();
Display(); //显示函数
key_dispose(); //按键处理函数
memory();
memory_GPS();
led_dispose();
if(Busy==0)
{
if(Sound_flag)
{
Sound_flag=0;
Send_Appoint_Sound(Sound);
}
}
}
}
下一篇:基于51单片机的智能雨刷设计
史海拾趣
|
引言: 单片机也称为微控制器(MCU Microcontroller Unit)是最典型、最广泛、最普及的嵌入式系统。目前我国大学,中等专业学校,职业学校,职工进修, 社会培训等,都已经广泛开设单片机教学课程和进行单片机教学。 随着SOC(片上系统)目前日新月异 ...… 查看全部问答> |
|
不错的资料哦 有ADC0809 VHDL控制程序,TLC7524接口电路程序,自动售货机VHDL程序与仿真,频率计程序设计与仿真, 出租车计价器VHDL程序与仿真(2004.8修改),出租车计价器VHDL程序与仿真等等 … 查看全部问答> |
|
以下代码段一直难以理解,请各位帮分析一下: ;IRQ中断服务程序 IRQ_Handler SUB LR, LR, #4 &nb ...… 查看全部问答> |
|
散80分... 新建的两个论坛(solaris,fedora),欢迎来坐坐.... 散分,散分,散分,散分................. fedora论坛: http://www.chinafedora.cn/ Solaris论坛: http://www.chinasolaris.org/… 查看全部问答> |
|
encode demo 里面在启动speech或者audio编码的时候需要配置什么吗?现在我用的EVM板子,跑DEMO的时候Sound_create这个函数总会失败!视频是没有问题的!谢谢指教!… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:23 编辑 据说要使用瑞萨的RL78/G13开发板,学习这个微控制器就得花很大的力气了,压力山大. … 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:10 编辑 想用带通滤波器从10K方波中取出3次谐波,,,仿真一直都没出来,,想问那些电容电阻是如何取值的,有没有什么简单的方法 … 查看全部问答> |




