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

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

?? can_gps.c

?? 單片機和GPS接收機構成的車載衛星定位系統
?? C
?? 第 1 頁 / 共 4 頁
字號:
#pragma   /*small*/  large   /*large*/
#include  <reg52.h>
#include  <SJA_BCANCONF.H>
#include  <absacc.h>
#include  <string.h>
#include  <intrins.h>
#define   uchar  unsigned char
#define   uint   unsigned int
/*
#define   machine_NUM    0x02              //機器號
#define   function_code  0x04              //功能碼
#define   data_NUMER     0x10              //數據個數
*/
idata uchar machine_NUM;             //機器號
idata uchar function_code;           //功能碼
idata uchar data_NUMER;              //數據個數
/*----------------------------------------------------------*/
bdata uchar ab,d;
sbit abit0=ab^0;sbit abit1=ab^1;sbit abit2=ab^2;sbit abit3=ab^3;
sbit abit4=ab^4;sbit abit5=ab^5;sbit abit6=ab^6;sbit abit7=ab^7;
/*************************************************************/
/********************** GPS **********************************/
/*************************************************************/
/*----------------------------------------------------------*/
code  uchar NO_GPS[]={2,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xC3,0xDF}; 
code  uchar NO_position[]={2,4,16,'*','*','*','*','*','*','*','*','*','*','*','*','*','*',0xFA,0x0D};
/*GGA的4個數據*/
/*RMC的6個數據*/
//xdata directe[7];
/*可選數據*/
//uchar satellites_state1,satellites_state2,HDOP;
//GPS數據存儲數組
xdata uchar GPSdata[50];	  //全部GPS數據串
xdata uchar GPSdataCount;	  //GPSdata計數器
xdata uchar date[7];		  //日期
xdata uchar cmd[5];           //命令類型存儲數組   /*$GPGGA  或   $GPRMC*/
xdata uchar JD[15];           //經度
xdata uchar JD_a[2];          //經度方向
xdata uchar WD[15];           //緯度
xdata uchar WD_a[2];          //緯度方向
xdata uchar time[12];         //時間
xdata uchar speed[8];         //速度
xdata uchar high[8];          //高度
xdata uchar angle[7];         //方位角
xdata uchar use_sat[2];       //使用的衛星數
xdata uchar total_sat[2];     //天空中總衛星數
xdata uchar altitude[8];	  //海拔高度
idata uchar lock;             //定位狀態
//串口中斷需要的變量
idata uchar seg_count;        //逗號計數器
idata uchar dot_count;        //小數點計數器
idata uchar byte_count;       //位數計數器
idata uchar cmd_number;       //命令類型,數據類型:1、GGA 2、GSV 3、RMC
idata uchar mode;             //0:結束模式,1:命令模式(判斷數據類型)2:數據模式(數據接受和處理)
idata uchar buf_full;         //1:整句接收完成,相應數據有效。0:緩存數據無效。
//顯示需要的變量
idata unsigned int dsp_count;        //刷新次數計數器
idata unsigned char time_count;
/*************************************************************/
/********************** LCD **********************************/
/*************************************************************/
#define clear   0x01  //清屏幕,約1.6ms
#define home    0x02  //光標回零(左上角)
#define in_mode 0x06  //輸入方式:0x06 地址增1,光標右移;0x04地址減1,光標左移;
//#define dis_on  0x0f  //開關:bit2顯示、bit1光標、bit0閃爍功能
#define dis_on  0x0C  //開關:bit2顯示、bit1光標、bit0閃爍功能
#define dis_cur 0x1f  //光標位置設定和反白是指
#define f_set   0x30  // 8位基本指令   bit4:8位或四位;bit2:基本指令或擴展指令; bit1:圖形顯示開關
#define f_set_E 0x36  // 8位擴展指令圖形顯示  先送8位垂直地址,再送4位水平地址

sbit P_RS=P1^3;   //4
sbit P_RW=P1^4;   //5
sbit P_E =P1^5;   //6  
/*************************************************************/
/********************** 24c256 *******************************/
/*************************************************************/
sbit SDA24=P2^3;           //24C256的5腳
sbit SCL24=P2^2;           //24C256的6腳
idata uchar cnop24;
bit  ACK24;
idata uchar save_point;
 /*---------------------------------------------------------*/
/****************************************************************
CAN總線數據協議:

       0          "1" to "20"          目標ID
       1            "0x08"             特定
       2          "m" or "p" or  "d"   關節的選擇
       3          "1" to "3"           自身ID
       4          "C" or "D"           命令口or數據口的選擇
       5          "R" or "A"           命令字
       6-9          ......             數據

******************************************************************/
idata uchar str[10];
data uchar start;
//data uchar plat_data;
//uchar i;
/******************/
sbit SJA_reset=P2^1;
sbit green    =P1^1;
sbit red      =P1^2;
long real_position_m,real_position_p,real_position_d;
unsigned char request_flag,interrupt_flag;   //是否為查詢

data uchar SystemBuf[10]; //系統設置的接收數據緩沖區
data uchar SendBuf[10];   //系統設置的發送數據緩沖區
//idata uchar CanRecBuf[50];
//xdata uchar CanSendBuf[50];
/*************************************************************/
/********************** 函數 *********************************/
/*************************************************************/
/*---------------------------------------------------------*/
void delay(uint j)    //  time=j*10+7 (us)延時函數/
{	
    data uchar ch;
    while(j--)
    {
    ch++; ch--;
    }
}
/*----------------------- 延時 ------------------------------*/
void delay_us(uint j)    //  time=j*10+7 (us)延時函數/
{
    idata uchar ch;
    while(j--)
    {
    ch++; ch--;
    }
}
/*************************************************************/
/********************** can **********************************/
/*************************************************************/
/************************************************************************
 *以下為基本的函數說明(BasicCAN)                                       *
 ************************************************************************/

/************************************************************************
 *函數原型:  bit   BCAN_CREATE_COMMUNATION(void)                        *
 *參數說明:  無                                                         *
 *返回值:                                                               *
 *           0 ; 表示SJA1000接口正常                                    *
 *           1 ; 表示SJA1000與處理器接口不正常                          *
 *                                                                      *
 *說明:該函數用于檢測CAN控制器的接口是否正常                            *
 ************************************************************************/
 bit   BCAN_CREATE_COMMUNATION(void)
 {
    SJA_BCANAdr=REG_TEST;                     //訪問測試寄存器

    *SJA_BCANAdr   =0xaa;                     //寫入測試值
    if(*SJA_BCANAdr == 0xaa)
    {
        return    0;                          //讀測試正確
    }
    else
    {
       return    1;
    }
 }

/************************************************************************
 *函數原型:      bit   BCAN_ENTER_RETMODEL(void)                        *
 *參數說明:  無                                                         *
 *返回值:                                                               *
 *           0 ; 表示成功進入復位工作模式                               *
 *           1 ; 表示不能進入復位工作模式                               *
 *                                                                      *
 *說明:      CAN控制器進入復位工作模式                                  *
 ************************************************************************/
 bit   BCAN_ENTER_RETMODEL(void)
 {
    unsigned   char   TempData;
    SJA_BCANAdr  = REG_CONTROL;                   //訪問地址指向控制寄存器
    TempData=  *SJA_BCANAdr;                      //保存原始值
    *SJA_BCANAdr=(TempData|0x01);                 //置位復位請求
    if((*SJA_BCANAdr&0x01) == 1)
    {
       return   0;
    }
    else
    {
       return   1;
    }

 }

/************************************************************************
 *函數原型:      bit   BCAN_QUIT_RETMODEL(void)                         *
 *參數說明:  無                                                         *
 *返回值:                                                               *
 *           0 ; 表示成功退出復位工作模式                               *
 *           1 ; 表示不能退出復位工作模式                               *
 *                                                                      *
 *說明:      CAN控制器退出復位工作模式                                  *
 ************************************************************************/
 bit   BCAN_QUIT_RETMODEL(void)
 {
    unsigned   char   TempData;
    SJA_BCANAdr = REG_CONTROL;                   //訪問地址指向控制寄存器
    TempData    = *SJA_BCANAdr;                  //保存原始值
    *SJA_BCANAdr=(TempData&0xfe);       		 //清除復位請求
    if((*SJA_BCANAdr&0x01) == 0)
    {
       return   0;                               //
    }
    else
    {
       return   1;                              //退出成功
    }

 }

/************************************************************************
;*函數原型:   bit   BCAN_SET_BANDRATE(unsigned char CAN_ByteRate)       *
;*參數說明:    R7            波特率(Kbit/s) BTR0     BTR1             *
                                    500K
;*返回值:                                                               *
;*           0 ;波特率設置成功                                          *
;*           1 ;波特率設置失敗                                          *
;*                                                                      *                                                        *
;************************************************************************/
bit   BCAN_SET_BANDRATE(void)
{
   unsigned char BTR0_num=0x00;  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   unsigned char BTR1_num=0x1c;  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  //將波特率的的預設值裝入sja1000的總線定時器
  SJA_BCANAdr=REG_BTR0;          		//訪問地址指向總線定時寄存器0
  *SJA_BCANAdr=BTR0_num;      			//寫入參數
  if(*SJA_BCANAdr != BTR0_num)			//校驗寫入值
  {
    return  1;
  }
  SJA_BCANAdr=REG_BTR1;         		//訪問地址指向總線定時寄存器
  *SJA_BCANAdr=BTR1_num;      			//寫入參數
  if(*SJA_BCANAdr != BTR1_num)			//校驗寫入值
  {
    return  1;
  }

  return    0;
}


/************************************************************************
;*函數原型:    BCAN_SET_OBJECT                                          *
*參數說明:                                                              *
 *    BCAN_ACR:存放驗收代碼寄存器(ACR)的參數設置                      *
 *    BCAN_AMR:存放接收屏蔽寄存器(AMR)的參數設置                      *
;*返回值:                                                               *
;*           0 ;通信對象設置成功                                        *
;*           1 ;通信對象設置失敗                                        *
;*                                                                      *
;*說明:設置CAN節點的通訊對象,允許接收的報文ID號的高8位(D10--D3) 。     *
;*     允許接收的報文,是由AMR和ACR共同決定的.                           *
;*    滿足以下條件的ID號的報文才可以被接收                              *
;*[(ID.10-ID.3)≡(AC.7-AC.0)]||(AM.7-AM.0)≡11111111              *
;*    該子程序只能用于復位模式                                          *                                                                                                                     *
;************************************************************************/
bit    BCAN_SET_OBJECT(unsigned char  BCAN_ACR,unsigned char  BCAN_AMR)
{
   SJA_BCANAdr=REG_ACR;          		//訪問地址指向驗收代碼寄存器(ACR)
  *SJA_BCANAdr=BCAN_ACR;        		//寫入參數
  if(*SJA_BCANAdr != BCAN_ACR)  		//校驗寫入值
  {
    return  1;
  }
  SJA_BCANAdr=REG_AMR;          		//訪問地址指向驗收屏蔽寄存器(AMR)
  *SJA_BCANAdr=BCAN_AMR;        		//寫入參數
  if(*SJA_BCANAdr != BCAN_AMR)  		//校驗寫入值
  {
    return  1;
  }

  return    0;
}

/************************************************************************
;*函數原型: bit  BCAN_SET_OUTCLK (unsigned char Out_Control, 	        *
                                  unsigned char  Clock_Out);            *
;*參數說明:										      					*
 *    Out_Control:存放輸出控制寄存器 (OC)  的參數設置                   *
 *    Clock_Out:存放時鐘分頻寄存器 (CDR) 的參數設置                     *
 *                                                                      *
;*返回值:                                                               *
;*           0 ;設置成功                                                *
;*           1 ;設置失敗                                                *
;*                                                                      *
;*說明:設置SJA1000的輸出模式和時鐘分頻 。該子程序只能用于復位模式       *                                                                                                                     *
;************************************************************************/
bit  BCAN_SET_OUTCLK (unsigned char Out_Control,
                     unsigned char  Clock_Out)
{
  SJA_BCANAdr=REG_OCR ;          		//訪問地址指向輸出控制寄存器
  *SJA_BCANAdr=Out_Control;      		//寫入參數
  if(*SJA_BCANAdr != Out_Control)		//校驗寫入值
  {
    return  1;
  }
  SJA_BCANAdr=REG_CDR;          		//訪問地址指向輸出控制寄存器
  *SJA_BCANAdr=Clock_Out;        		//寫入參數
  return    0;
}
/************************************************************************
 *函數原型:  bit   BCAN_DATA_WRITE(unsigned char *SendDataBuf)*
 *參數說明:  特定幀各式的數據?                                         *
 *返回值:                                                               *
 *           0    ; 表示將數據成功的送至發送緩沖區                      *
 *           1	  ; 表示上一次的數據正在發送,                          *
 *                ; 表示發送緩沖區被鎖定,不能寫入數據                  *
 *                ; 表示寫入數據錯誤                                    *
 *說明: 將待發送特定幀各式的數據,送入SJA1000發送緩存區中,然后啟動     *
 *        SJA1000發送。                                                 *
 *   特定幀格式為:開始的兩個字節存放 '描述符' ,以后的為數據             *
 *   描述符包括11位長的ID(標志符)\1位RTR\4位描述數據長度的DLC共16位    *
 *                                                                      *
 *注:本函數的返回值僅指示,將數據正確寫入SJA1000發送緩存區中與否。     *
 *    不指示SJA1000將該數據正確發送到CAN總線上完畢與否                  *
 ************************************************************************/
 bit   BCAN_DATA_WRITE(unsigned char data *SendDataBuf)
 {
   unsigned  char  TempCount;
   SJA_BCANAdr = REG_STATUS;            //訪問地址指向狀態寄存器
   if((*SJA_BCANAdr&0x08) == 0)         //判斷上次發送是否完成
   {
    return	1;
   }

   if((*SJA_BCANAdr&0x04)==0)          //判斷發送緩沖區是否鎖定
   {
     return	1;
   }

   SJA_BCANAdr = REG_TxBuffer1;        //訪問地址指向發送緩沖區1
   if((SendDataBuf[1]&0x10)==0)        //判斷RTR,從而得出是數據幀還是遠程幀
   {
     TempCount =(SendDataBuf[1]&0x0f)+2; //輸入數據幀
   }

   else
   {
     TempCount =2;                     //遠程幀
   }

  memcpy(SJA_BCANAdr,SendDataBuf,TempCount);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品网址| 亚洲啪啪综合av一区二区三区| 懂色av中文字幕一区二区三区 | 日韩欧美中文一区二区| 91在线观看下载| 国产99久久精品| 韩国一区二区在线观看| 日日骚欧美日韩| 亚洲乱码日产精品bd| 中文字幕亚洲在| 精品国产一区二区在线观看| 欧美日韩一区成人| 91浏览器入口在线观看| 99综合电影在线视频| 成人精品一区二区三区四区| 久久国产欧美日韩精品| 美女任你摸久久| 久久精品国产亚洲一区二区三区 | 蜜臂av日日欢夜夜爽一区| 亚洲一区欧美一区| 亚洲gay无套男同| 日本午夜精品一区二区三区电影| 亚洲mv在线观看| 麻豆久久一区二区| 国产一区二区不卡在线| 国产成人午夜精品影院观看视频| 久久er精品视频| av不卡免费电影| 在线亚洲高清视频| 91精品国产综合久久香蕉麻豆| 欧美高清hd18日本| 久久久亚洲精品石原莉奈| 国产日韩综合av| 亚洲午夜一区二区| 美女www一区二区| av一区二区三区在线| 欧美日韩美少妇| 久久网站热最新地址| 亚洲天堂a在线| 免费视频一区二区| 91麻豆国产香蕉久久精品| 欧美日韩在线电影| 国产亚洲精品中文字幕| 午夜伦欧美伦电影理论片| 国产一区二区不卡在线| 欧美日本在线看| 中文无字幕一区二区三区| 日日夜夜一区二区| 99国产精品国产精品毛片| 日韩一区二区三| 一区二区激情视频| 99精品国产99久久久久久白柏| 欧美精品xxxxbbbb| 日韩理论片一区二区| 国产精品香蕉一区二区三区| 欧美日韩三级在线| 亚洲乱码国产乱码精品精的特点| 国产美女精品在线| 日韩欧美国产一区二区三区| 亚洲人成网站色在线观看| 成人免费看的视频| 久久久影视传媒| 狠狠色丁香婷婷综合久久片| 宅男在线国产精品| 亚洲第一狼人社区| 91精品福利视频| 亚洲黄色av一区| 91久久精品午夜一区二区| 亚洲视频1区2区| 在线一区二区三区| 一区二区三区精品久久久| 色综合久久中文字幕| 亚洲一卡二卡三卡四卡无卡久久 | 国产专区欧美精品| 国产亚洲一区字幕| 成人免费看黄yyy456| 亚洲视频香蕉人妖| 91行情网站电视在线观看高清版| 亚洲蜜臀av乱码久久精品| 欧美体内she精高潮| 亚洲成av人影院在线观看网| 日韩无一区二区| 国产一区二区三区精品视频| 国产精品久久久久一区二区三区| proumb性欧美在线观看| 亚洲综合在线观看视频| 欧美日韩亚洲综合在线| 免费成人美女在线观看.| 亚洲国产精品二十页| 欧美三级一区二区| 国产91精品一区二区麻豆网站 | 亚洲欧美一区二区三区极速播放| 在线观看不卡视频| 国产精品香蕉一区二区三区| 亚洲美女在线国产| 久久久综合网站| 欧美少妇bbb| 成人av免费网站| 久久99精品国产.久久久久| 国产欧美1区2区3区| 欧美一区二区三区婷婷月色| 波多野结衣一区二区三区| 麻豆视频一区二区| 亚洲黄色性网站| 国产精品久久久久精k8 | 欧美日高清视频| 成人网在线播放| 韩国在线一区二区| 日本不卡不码高清免费观看| 洋洋av久久久久久久一区| 欧美国产精品一区二区三区| 欧美一二三四区在线| 欧美妇女性影城| www国产精品av| 欧美视频在线观看一区| 不卡视频免费播放| 精品一区二区三区在线观看国产| 一区二区成人在线观看| 国产日韩欧美激情| 久久久99精品免费观看不卡| 久久久精品欧美丰满| 精品国产免费一区二区三区香蕉 | 久久精工是国产品牌吗| 香蕉久久夜色精品国产使用方法 | 亚洲国产日韩a在线播放性色| 亚洲日本电影在线| 亚洲精品欧美在线| 亚洲精品一卡二卡| 日韩电影在线观看一区| 日本成人在线看| 国产精选一区二区三区| 成人成人成人在线视频| 972aa.com艺术欧美| 欧美在线|欧美| 日韩一区二区三区在线| 精品99一区二区三区| 国产欧美一区二区三区鸳鸯浴| 国产精品毛片久久久久久久| 一二三区精品视频| 经典三级在线一区| eeuss鲁片一区二区三区| 欧美性xxxxxxxx| 精品日韩一区二区三区 | 国精产品一区一区三区mba视频 | 亚洲一区二区三区自拍| 精品一区二区三区免费播放| 91一区一区三区| 欧美成人一区二区三区片免费| 国产精品乱人伦中文| 亚洲成a人v欧美综合天堂| 国产电影精品久久禁18| 欧美美女激情18p| 国产精品久久久久久久蜜臀| 亚洲成人av一区| 99国产精品99久久久久久| 69堂精品视频| 樱桃国产成人精品视频| 国产乱淫av一区二区三区| 欧美日韩国产系列| 中文字幕日韩av资源站| 美女被吸乳得到大胸91| 在线电影国产精品| 亚洲你懂的在线视频| 成人毛片在线观看| 国产欧美精品日韩区二区麻豆天美| 奇米色777欧美一区二区| 欧美久久一二区| 午夜精品久久久久久久久| 欧美主播一区二区三区| 亚洲精品视频一区二区| 色哦色哦哦色天天综合| 亚洲免费观看高清完整版在线观看| 国产成人免费av在线| 国产午夜精品久久久久久久| 精品伊人久久久久7777人| 日韩精品一区二区三区四区| 精品在线一区二区| www久久精品| 91亚洲精品乱码久久久久久蜜桃| 欧美激情在线免费观看| 99re66热这里只有精品3直播 | 欧美中文字幕一区二区三区| 亚洲伦在线观看| 日韩一级欧美一级| 久久66热re国产| 国产精品嫩草99a| 色综合婷婷久久| 久久国产福利国产秒拍| 国产亚洲欧美激情| 一本久久精品一区二区| 亚洲国产欧美在线| 精品入口麻豆88视频| youjizz久久| 日本不卡的三区四区五区| 亚洲精品一区二区三区四区高清| 高清成人免费视频| 午夜婷婷国产麻豆精品| 国产欧美日韩精品一区| 色88888久久久久久影院按摩| 亚洲午夜成aⅴ人片|