51单片机解析GPS程序

上传人:博****1 文档编号:486556822 上传时间:2023-10-26 格式:DOC 页数:17 大小:106.50KB
返回 下载 相关 举报
51单片机解析GPS程序_第1页
第1页 / 共17页
51单片机解析GPS程序_第2页
第2页 / 共17页
51单片机解析GPS程序_第3页
第3页 / 共17页
51单片机解析GPS程序_第4页
第4页 / 共17页
51单片机解析GPS程序_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《51单片机解析GPS程序》由会员分享,可在线阅读,更多相关《51单片机解析GPS程序(17页珍藏版)》请在金锄头文库上搜索。

1、这其中包括1602驱动头文件,和解析主程序,使用时分开粘贴到对应的 文件中/*LCD1602驱动,兼容LCD2402*/sbit LCD_DB0= P00;sbit LCD_DB1= P01;sbit LCD_DB2= P02;sbit LCD_DB3= P03;sbit LCD_DB4= P04;sbit LCD_DB5= P05;sbit LCD_DB6= P06;sbit LCD_DB7= P07;sbit LCD1602_RS=P24;sbit LCD1602_RW=P25; sbit LCD1602_EN=P26;void LCD_write_char( unsigned x,uns

2、igned char y,unsigned char dat);/在指定位置显示字符void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);/在指定位置显示字符串void LCD_cls(void);/清屏void LCD_en_command(unsigned char command);void LCD_en_dat(unsigned char temp);void LCD_set_xy( unsigned char x, unsigned char y );void LCD_init(unsigned

3、 char bw);void SET_LCD(unsigned char IO_temp);void delayms(unsigned char ms);void lcddelay(void);unsigned char LCDIO; unsigned char BitWidth;void LCD_cls(void)LCD_en_command(0x01);/0x01 清屏 delayms(2);void LCD_en_command(unsigned char command)LCD1602_RS=0; LCD1602_RW=0;LCD1602_EN=0;switch(BitWidth) c

4、ase 4:LCDIO=(command & 0xf0); /取高4位break; case 8:LCDIO=command; break;SET_LCD(LCDIO);LCD1602_EN=1;lcddelay();LCD1602_EN=0;if (BitWidth=4)LCDIO=(command & 0x0f)4;/取低4位SET_LCD(LCDIO);LCD1602_EN=1;lcddelay();LCD1602_EN=0;void SET_LCD(unsigned char IO_temp) /高4位LCD_DB7=IO_temp&0x80;LCD_DB6=IO_temp&0x40;

5、LCD_DB5=IO_temp&0x20;LCD_DB4=IO_temp&0x10;/低4位if (BitWidth=8)LCD_DB3=IO_temp&0x08;LCD_DB2=IO_temp&0x04;LCD_DB1=IO_temp&0x02;LCD_DB0=IO_temp&0x01;void LCD_en_dat(unsigned char dat)LCD1602_RS=1;LCD1602_RW=0;LCD1602_EN=0;switch(BitWidth) case 4:LCDIO=(dat & 0xf0); /取高4位break; case 8:LCDIO=dat;break;SET

6、_LCD(LCDIO);LCD1602_EN=1;lcddelay();LCD1602_EN=0;if (BitWidth=4)LCDIO=(dat & 0x0f)4; /取低4位SET_LCD(LCDIO);LCD1602_EN=1;lcddelay();LCD1602_EN=0;/*=*1602* 输入参数:x、y : 显示字符串的坐标,X:0-15,Y:0-1*LCD第一行显示寄存器地址:0X80-0X8F*LCD第二行显示寄存器地址:0XC0-0XCF *2404*LCD第1行显示地址:120(0x800x93) *LCD第2行显示地址:120(0xc00xd3) *LCD第3行显示地

7、址:120(0x940xa7) *LCD第4行显示地址:120(0xd40xe7) =*/ void LCD_set_xy( unsigned char x, unsigned char y )unsigned char address;if (y =0) address = 0x80 + x;else if(y=1) address = 0xC0 + x; else if(y=2) address = 0x94 + x;else if(y=3) address = 0xD4 + x;LCD_en_command(address); void LCD_write_char( unsigned

8、x,unsigned char y,unsigned char dat)LCD_set_xy( x, y ); LCD_en_dat(dat);void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s) LCD_set_xy( X, Y ); /set address while (*s) / write character LCDIO=*s;SET_LCD(LCDIO);LCD_en_dat(*s); s +; void LCD_init(unsigned char bw)BitWidth=bw;switch

9、(BitWidth) case 4:LCD_en_command(0x33);/delayms(20);LCD_en_command(0x32);/delayms(20);break; case 8:LCD_en_command(0x38);/delayms(20);LCD_en_command(0x38);/delayms(20);break;LCD_en_command(0x08);/0x08 令显示器off delayms(5);LCD_en_command(0x01);/0x01 清屏清屏指令delayms(5);LCD_en_command(0x06);/0x06 光标模式设置进入模

10、式设置指令 写入数据后光标右移delayms(5);LCD_en_command(0x0c);/0x0c 显示开 令光标,0x0c=不显示,0x0d=显示闪动delayms(5);void delayms(unsigned char ms)unsigned char i;while(ms-)for(i = 0; i 115; i+);void lcddelay(void)unsigned char i;for(i = 0; i 2; i+);/*GPS解码显示程序,*/#include#include 1602.h/#includemath.h/#include sbit GPS_SPD=P3

11、2;/GPS模块速率设置sbit KEY1=P33;/显示内容分屏切换,(T0,T1引脚 的第二功能为计数器。)char code TIME_AREA= 8;/时区/* 这是做的部分更改*/unsigned long maxspeed,b;unsigned int count=0;unsigned int a5;unsigned char hspeed5;unsigned int dot_count;/小数点计数器/unsigned char x;/GPS数据存储数组unsigned char JD10;/经度unsigned char JD_a;/经度方向unsigned char WD9;

12、/纬度unsigned char WD_a;/纬度方向unsigned char date6;/日期unsigned char time6;/时间unsigned char speed5=0,0,0,.,0;/速度unsigned char high6;/高度unsigned char angle5=0,0,0,0,0;/方位角unsigned char use_sat2;/使用的卫星数unsigned char total_sat2;/天空中总卫星数unsigned char lock;/定位状态/串口中断需要的变量unsigned char seg_count;/逗号计数器unsigned char byte_count;/位数计数器unsigned char cmd_number;/命令类型unsigned char mode;/0:结束模式,1:命令模式,2:数据模式unsigned char buf_full;/1:整句接收完成,相应数据有效。0:缓存数据无效。unsigned char cmd5;/命令类型存储数组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号