当前位置:首页 > 单片机 > 单片机
[导读]/******************************************************************************Copyright 2007All rights reserved.文件名:gps1602.c模块名称:功能概要:取代版本:0.0.1升级说明:createcpu:stc89c58 晶振频

/******************************************************************************
Copyright 2007
All rights reserved.

文件名:gps1602.c
模块名称:
功能概要:

取代版本:0.0.1
升级说明:create
cpu:stc89c58 晶振频率:11.0592Mhz
硬件连接:
---------------------------------------------------------------
|DB0-----P0.0 | DB4-----P0.4 | WR-------P2.2 | A0--------P2.1 |
|DB1-----P0.1 | DB5-----P0.5 | RD-------P2.4 | Vo悬空 |
|DB2-----P0.2 | DB6-----P0.6 | CS-------P2.5 |
|DB3-----P0.3 | DB7-----P0.7 | RST-------P2.3 |
---------------------------------------------------------------
******************************************************************************/

#include
#include

#define LCM_Data P0
#define Busy 0x80 //用于检测LCM状态字中的Busy标识
sbit LCM_RW = P2^2; //1602定义引脚
sbit LCM_RS = P2^1;
sbit LCM_E = P2^5;

//sbit GPS_SPD=P1^2;
//sbit SPD_TYPE=P1^3;
sbit KEY1=P1^1;


char code TIME_AREA= 8; //时区

//GPS数据存储数组
unsigned char JD[10]; //经度
unsigned char JD_a; //经度方向
unsigned char WD[9]; //纬度
unsigned char WD_a; //纬度方向
unsigned char time[6]; //时间
unsigned char date[6]; //日期
unsigned char speed[5]; //速度
unsigned char high[6]; //高度
unsigned char angle[5]; //方位角
unsigned char use_sat[2]; //使用的卫星数
unsigned char total_sat[2]; //天空中总卫星数
unsigned char lock; //定位状态

//串口中断需要的变量
unsigned char seg_count; //逗号计数器
unsigned char dot_count; //小数点计数器
unsigned char byte_count; //位数计数器
unsigned char cmd_number; //命令类型
unsigned char mode; //0:结束模式,1:命令模式,2:数据模式
unsigned char buf_full; //1:整句接收完成,相应数据有效。0:缓存数据无效。
unsigned char cmd[5]; //命令类型存储数组

//显示需要的变量
unsigned int dsp_count; //刷新次数计数器
unsigned char time_count;
bit page;
bit spd_type;

void sys_init(void);
bit chk_key(void);

void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);
unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
void LCD_cls(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
/******************************************************************************************
* 函数名称 :
* 功能描述 :
* 参数 : 参数名称:输入/输出?类型描述
*
* 返回值 :
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 :
* 修改说明 :
******************************************************************************************/
main()
{
unsigned char i;
char Bhour;
// unsigned int Knots;
sys_init();

while(1)
{
if(buf_full==0) //无GPS信号时
{
dsp_count++;
if(dsp_count>=65000)
{
LCD_cls(); //清屏
DisplayListChar(0,0,"No GPS connect..");
while(buf_full==0);
LCD_cls();
dsp_count=0;
}
}
else if(lock=='V') //GPRMC语句
{ //如果未定位
DisplayListChar(0,2,"No Positioning");
LCD_cls();
}
else
{ //如果已定位
DisplayOneChar(0,0,JD_a); //显示经度
DisplayOneChar(1,0,' ');
for(i=0;i<3;i++)
{
DisplayOneChar(i+1,0,JD[i]);
}
DisplayOneChar(4,0,'.');
for(i=3;i<10;i++)
{
DisplayOneChar(i+2,0,JD[i]);
}
DisplayOneChar(0,1,WD_a); //显示纬度
DisplayOneChar(1,1,' ');
for(i=0;i<2;i++)
{
DisplayOneChar(i+2,1,WD[i]);
}
DisplayOneChar(4,1,'.');
for(i=2;i<9;i++)
{
DisplayOneChar(i+3,1,WD[i]);
}
DisplayOneChar(1,2,'2'); //日期2009-03-24
DisplayOneChar(2,2,'0');
DisplayOneChar(3,2,date[4]);
DisplayOneChar(4,2,date[5]);
DisplayOneChar(5,2,'-');
DisplayOneChar(6,2,date[2]);
DisplayOneChar(7,2,date[3]);
DisplayOneChar(8,2,'-');
DisplayOneChar(9,2,date[0]);
DisplayOneChar(10,2,date[1]);

Bhour=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA;
if(Bhour>=24)
{
Bhour-=24;
}
else if(Bhour<0)
{
Bhour+=24;
}
// DisplayListChar(2,3,"BJT ");
DisplayOneChar(1,3,Bhour/10+0x30);
DisplayOneChar(2,3,Bhour%10+0x30);
DisplayOneChar(3,3,':');
DisplayOneChar(4,3,time[2]);
DisplayOneChar(5,3,time[3]);
DisplayOneChar(6,3,':');
DisplayOneChar(7,3,time[4]);
DisplayOneChar(8,3,time[5]);
// if(spd_type)
// {
// DisplayListChar(5,3,"km/h A");
// }
// else
// {
// DisplayListChar(5,3,"knot A");
// }

// if(spd_type)
// { //km/h显示
// for(i=0;i<5;i++)
// {
// DisplayOneChar(i,0,speed[i]);
// }
// }
// else
//{ //knot显示
// Knots= (((speed[0]-0x30)*1000
// +(speed[1]-0x30)*100
// +(speed[2]-0x30)*10
// +(speed[4]-0x30))*1000)/1852;
// DisplayOneChar(0,3,Knots/1000+0x30);
// DisplayOneChar(1,3,(Knots%1000)/100+0x30);
// DisplayOneChar(2,3,(Knots%100)/10+0x30);
// DisplayOneChar(3,3,'.');
// DisplayOneChar(4,3,Knots%10+0x30);
// }
// for(i=0;i<5;i++)
// {
// DisplayOneChar(11+i,0,angle[i]);
// }
}


dsp_count=0;
}
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭