刪除
近些年來,隨著經濟的飛速發展,人們對出行有了更高要求,公交車行業發展成為一個城市必不可少的交通工具,城市公交系統也開始快速發展,不僅公交車的型號不斷更新換代,而且為了公司效益目前已經全部改成無人售票車,報站也由原來的由隨車售票員報站改為由司機按鍵報站了。但是由于公交司機既要開車,又要兼顧按鍵報站,所以常常出現誤報、漏報等現象,不能夠滿足公交系統的要求;另一方面,由于司機開車時為報站分散精力,也對公交的安全運行埋下了隱患。因此,對自動語音報站系統的需求也日益強烈。應用自動語音報站系統既可以節省員工開支,
增強公司效益, 又可以利用報站器播報各種標準的語言站名, 使各城市間更容易交流與發展。本文所設計的公交車報站系統主要可分為五個部分:單片機控制部分、語音播報部分、液晶顯示部分、GPS模塊和時間顯示部分,采用51單片機作為主控制芯片,利用ISD4003實現語音報站,顯示采用12864液晶,時間獲取用DS1302,定位采用GPS模塊
完成設計的基本條件:一臺計算機,單片機,PROTEL軟件,C51 KEIL編程軟件.電路板制作工具等
設計依據:運用單片機原理,用PROTEL軟件畫出硬件電路圖,用KEIL編寫程序,熟悉ISD4003語音芯片12864液晶,DS1302時間芯片,GPS定位。
重點解決:
語音電路原理以及語音播放,掌握電路原理圖和PCB圖的繪制,學會手工制作電路板,提高動手能力,了解整個系統的編寫思路,時間系統的設計和12864的液晶顯示驅動。學會編程單片機程序和對電路的調試。
系統設計要求實現以下功能: (交報告時紅色字體要刪除)
1、液晶12864顯示時間,時間可設置和調整。(可以根據客戶要求增加顯示日歷)
2、液晶12864顯示對應的站名和下一站信息。 (站點和公交線路由客戶提供)
3、語音芯片ISD4003播放對應的站名,模擬播放4個站。
4. 可以播放一些溫馨提示語。
5. GPS自動定位報站。(和站點位置比較,接近時自動報站,有演示視頻感興趣者可以向客服索取)
6、公交站點GPS位置可以自行設定,方便根據客戶實際演示。
7、可以查看已設置的公交站點GPS位置信息。
8. 附加功能:應急時可以手動通過按鍵模擬報站。
9.具有上行和下行切換功能。
一、在確定課題后,全面搜集相關資料,包括整個系統的流程和框架的處理.
二、GPS模塊原理學習
三、單片機原理鞏固,硬件電路圖學習
四、制作電路板和C51編程,進行整體調試
五、根據課題要求撰寫畢業設計報告
六、答辯
點擊了解實物:https://shop34685796.taobao.com/
主要代碼:
//*****************ISD4003定義**************************
#define POWERUP 0x2000 //上電指令
#define SETPLAY 0xe000 //設定放音地址
#define PLAY 0xf000 //放音
#define SETREC 0xa000 //設定錄音地址
#define REC 0xb000 //錄音
#define STOP 0x3000 //停止指令
#define STOPWDN 0x1000 //停止并掉電
sbit SS = P0^5;
sbit CLK = P0^4;
sbit MOSI = P0^6;
sbit MISO = P0^7;
idata unsigned char aucDisplayBuff[10]={0,0,10,11,0,0,10,11,0,0};
uchar Sum_Nom;//站數計數
uchar Wen_Nom;//提示計數
sbit Lcd_beel = P1^0;
#define uint unsigned int //0 ~ 255
#define uchar unsigned char
GPS接收數據,自動報站功能函數:
//////////////////////////////////////////////////////////////////////////////
void Auto_Play()
{
unsigned int a,b;
uchar i;
if(Flag_GPS_OK == 1 && RX_Buffer[4] == 'L' && RX_Buffer[6] == ',' && RX_Buffer[11] == '.')//確定是否收到"GPGLL"這一幀數據
{
ES=0;//關串口中斷
for(i=0; i < 28; i++)
{
RX_Buffer_D[i] = RX_Buffer[i+6];
}
get_real_station();
if((a <= 1000) && (b <= 1000))//經驗測試,同一調試地點,多次測得最大誤差n:3064 e:3640
{
onemore_flag++;
if(onemore_flag == 2)
{
onemore_flag = 0;
if(Up_Down_Flag == 0)
{
switch(station_num)
{
case 0:
if(!station_1_flag)
{
station_1_flag = 1;
dispString(2,0,1," 韶關學院丁香苑");
dispString(3,0,1,"=>韶關學院南門 ");
Flash_Lcd();
ISDPlay(0x45);
}
break;
case 1:
if(!station_2_flag)
{
station_2_flag = 1;
dispString(2,0,1,"韶關學院南門到了");
dispString(3,0,1,"=>韶關學院北門 ");
Flash_Lcd();
ISDPlay(0x95);
}
break;
case 2:
if(!station_3_flag)
{
station_3_flag = 1;
dispString(2,0,1,"韶關學院北門到了");
dispString(3,0,1,"=> 信 工 樓 ");
Flash_Lcd();
ISDPlay(0x130);
}
break;
case 3:
if(!station_4_flag)
{
station_4_flag = 1;
dispString(2,0,1,"信工樓,終點站 ");
dispString(3,0,1,"祝乘客們旅途愉快");
Flash_Lcd();
ISDPlay(0x165);
}
break;
default:break;
}
}
if(Up_Down_Flag == 1)
{
switch(station_num)
{
case 0:
if(!station_1_flag)
{
station_1_flag = 1;
dispString(2,0,1,"起點站:信工樓 ");
dispString(3,0,1,"=>韶關學院北門 ");
Flash_Lcd();
ISDPlay(0x205);
}
break;
case 1:
if(!station_2_flag)
{
station_2_flag = 1;
dispString(2,0,1,"韶關學院北門到了");
dispString(3,0,1,"=>韶關學院南門 ");
Flash_Lcd();
ISDPlay(0x255);
}
break;
case 2:
if(!station_3_flag)
{
station_3_flag = 1;
dispString(2,0,1,"韶關學院南門到了");
dispString(3,0,1,"=>韶關學院丁香苑");
Flash_Lcd();
ISDPlay(0x295);
}
break;
case 3:
if(!station_4_flag)
{
station_4_flag = 1;
dispString(2,0,1,"韶關學院丁香苑!");
dispString(3,0,1,"祝乘客們旅途愉快");
Flash_Lcd();
ISDPlay(0x310);
}
break;
default:break;
}
}
station_num++;
if(station_num == 4)
station_num = 0;
}
}
ES=1;//開串口中斷,再次接收
}
}
詳情可百度搜索:科通畢業設計,進入店鋪索要資料,了解詳情,謝謝
評論
查看更多