亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gps1602.c

?? 用單片機接收gps信號采用1602進行顯示的元代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
Copyright 2007 
All rights reserved.

文件名	:gps1602.c
模塊名稱:
功能概要:

取代版本:0.0.1
修改人	:pulan
完成日期:2007.07.27
升級說明: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 <reg52.h>
#include <string.h>

#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 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);
/******************************************************************************************
* 函數名稱    :
* 功能描述    :
* 參數        :  參數名稱:	輸入/輸出?	類型		描述
* 
* 返回值      :
* 作者        :
* 創建日期    :2006-12-19
* 全局變量    :
* 全局靜態變量:
* 局部靜態變量:
*----------------------------------------修改歷史------------------------------------------
* 當前版本    : 			 修改人:                  修改日期:
* 修改說明    :
******************************************************************************************/
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
        	{                        //有GPS信號時
            if(chk_key())
            	{                //檢測到按鍵切換顯示
                page=!page;
                LCD_cls();
            	}

            if(!page)
            	{                        //頁面1
                if(buf_full|0x01)
                	{                //GGA語句
                    if(lock=='0')
                    	{                    //如果未定位
                        DisplayListChar(0,0,"*---.--.----  ");
                        DisplayListChar(0,1,"* --.--.----  ");                    
                    	}
                    else
                    	{                            //如果已定位
                        DisplayOneChar(0,0,JD_a);            //顯示經度
                        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(14,0,use_sat[0]);        //顯示接收衛星數
                    DisplayOneChar(15,0,use_sat[1]);
                    buf_full&=~0x01;
                    dsp_count=0;
                }
                if(buf_full|0x02){                //GSV語句
                    DisplayOneChar(14,1,total_sat[0]);
                    DisplayOneChar(15,1,total_sat[1]);
                    buf_full&=~0x02;
                    dsp_count=0;
                }
                if(buf_full|0x04)
                	{
                    buf_full&=~0x04;
                    dsp_count=0;
                	}
            }
            else
            	{                            //頁面2
                if(buf_full|0x01)
                	{                //GGA語句
                    buf_full&=~0x01;
                    dsp_count=0;
                	}
                if(buf_full|0x02)
                	{
                    buf_full&=~0x02;
                    dsp_count=0;
                	}
                if(buf_full|0x04)
                		{                //RMC語句
                    Bhour=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA;
                    if(Bhour>=24)
                    	{
                        Bhour-=24;
                    	}
                    else if(Bhour<0)
                    	{
                        Bhour+=24;
                    	}
                    DisplayListChar(2,1,"BJT ");
                    DisplayOneChar(6,1,Bhour/10+0x30);
                    DisplayOneChar(7,1,Bhour%10+0x30);
                    DisplayOneChar(8,1,':');
                    DisplayOneChar(9,1,time[2]);
                    DisplayOneChar(10,1,time[3]);
                    DisplayOneChar(11,1,':');
                    DisplayOneChar(12,1,time[4]);
                    DisplayOneChar(13,1,time[5]);
                    if(spd_type)
                    	{
                        DisplayListChar(5,0,"km/h A");
                    	}
                    else
                    	{
                        DisplayListChar(5,0,"knot A");
                    	}
                    if(lock=='0')
                    	{                    //如果未定位
                        DisplayListChar(0,0,"---.-");
                        DisplayListChar(11,0,"---.-");
                    	}
                    else
                    	{                            //已經定位
                        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,0,Knots/1000+0x30);
                            DisplayOneChar(1,0,(Knots%1000)/100+0x30);
                            DisplayOneChar(2,0,(Knots%100)/10+0x30);
                            DisplayOneChar(3,0,'.');
                            DisplayOneChar(4,0,Knots%10+0x30);
                        	}
                        for(i=0;i<5;i++)
                        {
                            DisplayOneChar(11+i,0,angle[i]);
                        }
                    }
                    buf_full&=~0x04;
                    dsp_count=0;
                }
            }
        }
    }
}
/******************************************************************************************
* 函數名稱    :
* 功能描述    :
* 參數        :  參數名稱:	輸入/輸出?	類型		描述
* 
* 返回值      :
* 作者        :
* 創建日期    :2006-12-19
* 全局變量    :
* 全局靜態變量:
* 局部靜態變量:
*----------------------------------------修改歷史------------------------------------------
* 當前版本    : 			 修改人:                  修改日期:
* 修改說明    :
******************************************************************************************/
bit chk_key(void)
{
    if(!KEY1)
    	{
        Delay5Ms();
        Delay5Ms();
        if(!KEY1)
        	{
            while(!KEY1);
            Delay5Ms();
            Delay5Ms();
            return(1);
        	}
    	}
    return(0);
}

/******************************************************************************************
* 函數名稱    :sys_init
* 功能描述    :系統初始化
* 參數        :  參數名稱:	輸入/輸出?	類型		描述
* 
* 返回值      :
* 作者        :
* 創建日期    :2006-12-19
* 全局變量    :
* 全局靜態變量:
* 局部靜態變量:
*----------------------------------------修改歷史------------------------------------------
* 當前版本    : 			 修改人:                  修改日期:
* 修改說明    :
******************************************************************************************/
void sys_init() 
{
   
    SCON = 0x50;     /* SCON: mode 1, 8-bit UART, enable rcvr */
    TMOD = 0x21;     /* TMOD: timer 1, mode 2, 8-bit reload */
    TH1 = 0xfa;            /* TH1: reload value for 4800 baud @ 11.059MHz */

   
    spd_type=1;            //速度單位km/h
    
    TR1 = 1;         /* TR1: timer 1 run */
    LCMInit();        //初始化LCD
    DisplayListChar(0,0,"GPS Monitor V1.2");
    Delay400Ms();
    LCD_cls();
    IE=0x90;            //開總中斷、串口中斷
}

/******************************************************************************************
* 函數名稱    :WriteDataLCM
* 功能描述    :寫數據
* 參數        :  參數名稱:	輸入/輸出?	類型		描述
* 
* 返回值      :
* 作者        :
* 創建日期    :2006-12-19
* 全局變量    :
* 全局靜態變量:
* 局部靜態變量:
*----------------------------------------修改歷史------------------------------------------
* 當前版本    : 			 修改人:                  修改日期:
* 修改說明    :
******************************************************************************************/
void WriteDataLCM(unsigned char WDLCM)
{
		ReadStatusLCM(); //檢測忙
		LCM_Data = WDLCM;
		LCM_RS = 1;
		LCM_RW = 0;
		LCM_E = 0; //若晶振速度太高可以在這后加小的延時
		LCM_E = 0; //延時
		LCM_E = 1;
}

/******************************************************************************************
* 函數名稱    :WriteCommandLCM
* 功能描述    :寫指令
* 參數        :  參數名稱:	輸入/輸出?	類型		描述
* 
* 返回值      :
* 作者        :
* 創建日期    :2006-12-19
* 全局變量    :
* 全局靜態變量:
* 局部靜態變量:
*----------------------------------------修改歷史------------------------------------------
* 當前版本    : 			 修改人:                  修改日期:
* 修改說明    :
******************************************************************************************/
void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC為0時忽略忙檢測
{
		if (BuysC) 
		ReadStatusLCM(); //根據需要檢測忙
		LCM_Data = WCLCM;
		LCM_RS = 0;
		LCM_RW = 0; 
		LCM_E = 0;
		LCM_E = 0;
		LCM_E = 1; 
}

/******************************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品在线视频观看| 日韩视频一区在线观看| 精品视频一区二区三区免费| 欧美成人精品1314www| 亚洲人成亚洲人成在线观看图片| 亚洲高清免费在线| 成人小视频免费观看| 欧美一区二区三区啪啪| 亚洲色图欧洲色图| 国产精品一区免费在线观看| 91精品国产综合久久久久久久久久| 久久久久免费观看| 日本欧美加勒比视频| 在线观看欧美黄色| 国产精品久久久久久久蜜臀| 国产一区二区三区四区五区美女| 这里只有精品电影| 亚洲精品国产成人久久av盗摄| 国产精品18久久久久| 日韩欧美一区二区在线视频| 亚洲自拍欧美精品| 色中色一区二区| 国产精品久久久久影视| 国产白丝精品91爽爽久久| 精品国产伦一区二区三区观看体验| 亚洲123区在线观看| 欧美色手机在线观看| 亚洲综合在线观看视频| 不卡av免费在线观看| 国产精品色噜噜| 成人一区二区三区中文字幕| 久久久不卡影院| 国产高清亚洲一区| 国产日产欧美一区二区三区| 国产精品资源在线观看| 国产清纯白嫩初高生在线观看91 | 久久精品久久精品| 欧美三级电影网| 丝袜美腿亚洲一区| 精品美女在线播放| 韩国av一区二区三区| 国产欧美精品一区aⅴ影院| 懂色中文一区二区在线播放| 中文字幕 久热精品 视频在线| 丁香一区二区三区| 亚洲视频一区在线| 欧美无人高清视频在线观看| 婷婷久久综合九色国产成人 | 一区二区国产盗摄色噜噜| 色综合久久中文字幕| 亚洲成人av在线电影| 91精品欧美久久久久久动漫| 美女视频第一区二区三区免费观看网站 | 国产女人18水真多18精品一级做| 国产成人精品影视| 亚洲视频网在线直播| 欧洲亚洲国产日韩| 日韩福利视频网| 久久久久久久综合日本| 91色视频在线| 久久成人久久爱| 欧美xxxxxxxx| av爱爱亚洲一区| 天天做天天摸天天爽国产一区| 欧美一级二级三级乱码| 风间由美一区二区三区在线观看| 亚洲色图色小说| 欧美成人一区二区三区在线观看| 成人视屏免费看| 婷婷一区二区三区| 国产欧美一区二区精品秋霞影院 | 国产精品一级二级三级| 亚洲人成7777| 欧美va亚洲va| 欧美天堂一区二区三区| 国产成人午夜99999| 亚洲伊人色欲综合网| 国产偷国产偷亚洲高清人白洁| 色屁屁一区二区| 国产精品1024| 蜜臀精品一区二区三区在线观看 | 亚洲国产精品一区二区www在线| 日韩精品中文字幕一区二区三区| www.视频一区| 国内精品久久久久影院色| 亚洲欧美国产高清| 久久久久9999亚洲精品| 欧美精品三级在线观看| 色一区在线观看| 成人午夜视频在线观看| 奇米色777欧美一区二区| 亚洲另类在线视频| 国产清纯在线一区二区www| 日韩欧美激情一区| 欧美猛男超大videosgay| 一本大道久久精品懂色aⅴ| 国产高清亚洲一区| 国产在线麻豆精品观看| 秋霞电影网一区二区| 九一久久久久久| 日韩电影在线免费| 亚洲高清免费观看| 亚洲码国产岛国毛片在线| 国产精品日日摸夜夜摸av| 久久亚洲一区二区三区明星换脸| 欧美一区二区视频在线观看| 欧美在线免费观看亚洲| 一本大道久久a久久综合婷婷| 成人精品一区二区三区中文字幕| 国产精品自拍av| 国产成人综合亚洲网站| 激情五月婷婷综合| 狠狠久久亚洲欧美| 久久99在线观看| 极品少妇xxxx精品少妇| 黄一区二区三区| 国产激情一区二区三区| 国产不卡免费视频| 成人免费视频视频| 成人av网站在线| 91在线看国产| 欧美在线色视频| 欧美久久一区二区| 日韩欧美高清在线| 精品国产三级a在线观看| 久久久久久久久免费| 亚洲国产成人一区二区三区| 中文字幕不卡的av| 成人欧美一区二区三区小说| 亚洲精品国产第一综合99久久| 自拍偷拍国产精品| 亚洲一二三区视频在线观看| 亚洲444eee在线观看| 免费成人在线观看视频| 国产美女娇喘av呻吟久久| 成人福利视频在线看| 成人18视频在线播放| 欧美这里有精品| 日韩一区二区精品在线观看| 久久午夜羞羞影院免费观看| 国产情人综合久久777777| 亚洲成年人影院| 国产一区二区剧情av在线| bt欧美亚洲午夜电影天堂| 精品视频1区2区| 2021中文字幕一区亚洲| 国产精品成人免费| 天天做天天摸天天爽国产一区 | 成熟亚洲日本毛茸茸凸凹| 99re视频精品| 日韩一级二级三级| 国产精品另类一区| 五月天亚洲婷婷| 成人性生交大片免费| 777奇米四色成人影色区| 国产三级精品三级在线专区| 亚洲综合丁香婷婷六月香| 久久av资源网| 欧美羞羞免费网站| 国产人伦精品一区二区| 天天影视色香欲综合网老头| 国产精品1区二区.| 欧美一区二区三区日韩视频| 亚洲丝袜另类动漫二区| 九九国产精品视频| 欧美视频自拍偷拍| 国产欧美日韩视频在线观看| 调教+趴+乳夹+国产+精品| 成人av在线资源网| 精品国产不卡一区二区三区| 亚洲一区二三区| 成人激情综合网站| 亚洲精品在线电影| 天堂一区二区在线| 色婷婷香蕉在线一区二区| 国产欧美日韩在线视频| 另类欧美日韩国产在线| 在线影视一区二区三区| 中文字幕免费不卡在线| 精品一区二区国语对白| 欧美日韩国产首页| 亚洲精品成人在线| av亚洲精华国产精华精华| 久久亚洲一区二区三区四区| 青青草伊人久久| 欧美视频在线不卡| 亚洲欧美日韩一区二区| 粉嫩蜜臀av国产精品网站| 日韩精品中文字幕一区二区三区| 亚洲高清三级视频| 精品视频在线免费观看| 亚洲免费毛片网站| 91原创在线视频| 亚洲精品美腿丝袜| 91看片淫黄大片一级在线观看| 亚洲欧洲美洲综合色网| 成人不卡免费av| 亚洲欧美一区二区视频| 91免费视频网址| 亚洲精品国产一区二区三区四区在线|