基于GPS定位的公交车自动报站系统的设计全解.doc 下载本文

苏州经贸学院

4、设置输入模式子函数LCD_SetInput()

void LCD_SetInput(unsigned char InputMode) {

LCD_Write(LCD_COMMAND, 0x04|InputMode); }

5、初始化LCD子函数LCD_Initial() void LCD_Initial() {

LcdEn=0;

LCD_Write(LCD_COMMAND,0x38); //8位数据端口,16×2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏

LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动 }

6、显示定位子函数GotoXY()

void GotoXY(unsigned char x, unsigned char y) {

if(y==0)

LCD_Write(LCD_COMMAND,0x80|x); //第一行 设置数据指针地址 if(y==1)

LCD_Write(LCD_COMMAND,0x80|(x-0x40)); }

7、显示字符子函数Print()

void Print(unsigned char *str) {

while(*str!='\\0') {

LCD_Write(LCD_DATA,*str); str++; delay1(); } }

站点信息设置及调用

用数组定义站点信息字符串: uchar code dis1[]=%uchar code dis2[]=%uchar code dis3[]=%uchar code dis4[]=%uchar code dis5[]=%uchar *p;

用case语句判断要显示的站点 switch(i) {

case 0:{p=dis1;} break;

26

苏州经贸学院

case 1:{p=dis2;} break; case 2:{p=dis3;} break; case 3:{p=dis4;} break; case 4:{p=dis5;} break; };

附录三:语音模块程序设计

该模块采用单片机端口输出负脉冲信号模拟按键信号对语音芯片进行控制。 P24=0; // 模拟负脉冲FWD有效,播放指针指向下一段 delay(); P24=1;

delay(); //给语音芯片一定的执行时间 P25=0; //模拟负脉冲 PLAY有效,播放当前段 delay(); P25=1;

27