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

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

?? can_c.c

?? 單片機和GPS接收機構成的車載衛星定位系統
?? C
?? 第 1 頁 / 共 2 頁
字號:
#pragma   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
/*----------------------------lcd---------------------------------*/
#define clear   0x01  //清屏幕,約1.6ms
#define home    0x02   //光標回零(左上角)
#define f_set   0x30  //并行、基本指令
#define dis_on  0x0f  //打開顯示,光標,閃爍功能
#define in_mode 0x06  //輸入方式,地址增1,光標右移
#define panel_num 10
#define P_RS1    P1^3

sbit P_RS=P1^3;   //P0^1; P1.5  片選CS高電平選中即有效
sbit P_RW=P1^4;   //P0^2;  SID
sbit P_E=P1^5;    // P0^3;   CLK
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;
//idata uchar teleph0[17]={0x08,0xfd,0x04,0x0d,0,0,0,0,0,0,0,0,0,0,0,0,0};//0x38,0x36,0x31,0x33,0x38,0x34,0x35,0x31,0x32,
                        //0x34,0x36,0x34,0x32};
idata uchar str[10];
data uchar start;
//data uchar plat_data;
//uchar i;
/******************/
 /*---------------------------------------------------------*/
/****************************************************************
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          ......             數據

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

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;   //是否為查詢

unsigned char data SystemBuf[10];   //系統設置的接收數據緩沖區
unsigned char data SendBuf[10];   //系統設置的發送數據緩沖區
/*---------------------------------------------------------*/
void delay(uint j)    //  time=j*10+7 (us)延時函數/
{	
    data uchar ch;
    while(j--)
    {
    ch++; ch--;P_RS1=1;
    }
}
/*---------------------------------------------------------*/



/************************************************************************
 *以下為基本的函數說明(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()
{
   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);
   return 0;
}

/************************************************************************
 *函數原型:  bit    BCAN_DATA_RECEIVE(unsigned char *RcvDataBuf);       *
 *參數說明:  RcvDataBuf,存放微處理器保存數據緩沖區                      *
 *返回值:    0;接收成功                                                 *
 *           1;接收失敗                                                 *
 *說明:CAN控制器接收數據,僅限于接收數據                                 *
 ************************************************************************/
bit BCAN_DATA_RECEIVE(unsigned char data *RvcDataBuf)
 {
   unsigned  char  TempCount;
   SJA_BCANAdr = REG_STATUS;                //訪問地址指向狀態寄存器
   if((*SJA_BCANAdr&0x01)==0)               //判斷報文是否有效
   {
     return 1;
   }

   SJA_BCANAdr = REG_RxBuffer2;             //訪問地址指向接收緩沖區2
   if((*SJA_BCANAdr&0x10)==0)               //如果是數據幀
   {
     TempCount=(*SJA_BCANAdr&0x0f)+2;       //計算報文中數據的個數
   }

   else
   {
    TempCount=2;
   }
   SJA_BCANAdr = REG_RxBuffer1;             //訪問地址指向接收緩沖區1
   SystemBuf[0]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer2;
   SystemBuf[1]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer3;
   SystemBuf[2]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer4;
   SystemBuf[3]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer5;
   SystemBuf[4]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer6;
   SystemBuf[5]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer7;
   SystemBuf[6]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer8;
   SystemBuf[7]=*SJA_BCANAdr;
   SJA_BCANAdr = REG_RxBuffer9;
   SystemBuf[8]=*SJA_BCANAdr;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美mv和日韩mv的网站| 亚洲欧美另类图片小说| 樱花草国产18久久久久| 国产很黄免费观看久久| 日韩精品一区国产麻豆| 国产精品日日摸夜夜摸av| 奇米一区二区三区av| 亚洲欧洲精品成人久久奇米网 | 精品国产成人系列| 一区二区三区精品视频| 国产精品一区免费视频| 欧美xxx久久| 美女精品一区二区| 成人av免费观看| 亚洲欧美二区三区| 国产精品日日摸夜夜摸av| 奇米777欧美一区二区| 欧洲亚洲国产日韩| 亚洲激情校园春色| 色哟哟国产精品| 久久蜜桃av一区精品变态类天堂 | 婷婷成人综合网| 精品无码三级在线观看视频| 欧美自拍偷拍午夜视频| 国产精品久99| 成人va在线观看| 亚洲天堂久久久久久久| 日本道精品一区二区三区| 亚洲第一综合色| 91在线视频18| 欧美日韩免费在线视频| 91福利精品视频| 久久亚洲捆绑美女| 日韩有码一区二区三区| 7777精品伊人久久久大香线蕉 | 日韩欧美国产精品| 偷拍自拍另类欧美| 91福利精品视频| 日韩激情一区二区| 精品国产乱码久久久久久免费| 日韩中文字幕91| 国产日产亚洲精品系列| www.99精品| 日本成人在线网站| 欧美韩日一区二区三区| 色综合激情五月| 美日韩黄色大片| 亚洲视频一二三| 国产精品一二三在| 欧美精品一区二区久久久| 美腿丝袜亚洲色图| 国产偷国产偷亚洲高清人白洁| 国产 欧美在线| 亚洲欧美一区二区三区极速播放| 波多野结衣欧美| 亚洲成人在线观看视频| 精品久久五月天| 成人18视频在线播放| 一区二区三区在线免费| 欧美伦理电影网| 国产大陆精品国产| 一级日本不卡的影视| 日韩一级欧美一级| 成a人片国产精品| 日本亚洲一区二区| 亚洲精品免费播放| 日韩午夜小视频| 91免费观看在线| 国产99久久久国产精品潘金网站| 亚洲综合色婷婷| xnxx国产精品| 精品国产伦一区二区三区免费| 久久99久久99精品免视看婷婷| 91精品国产欧美日韩| 国产午夜精品久久久久久免费视 | 午夜电影网一区| 久久久精品国产免费观看同学| 国产精品77777竹菊影视小说| 日韩av电影免费观看高清完整版| 日本欧美大码aⅴ在线播放| 欧美日韩精品二区第二页| 天堂久久久久va久久久久| 精品女同一区二区| 国产精品99久久久久久久vr| 中文字幕高清不卡| 欧美吞精做爰啪啪高潮| 日韩高清欧美激情| 欧美精品v国产精品v日韩精品| 久久国内精品自在自线400部| 国产亚洲女人久久久久毛片| 91国产福利在线| 日本美女一区二区三区| 国产婷婷色一区二区三区在线| 日本电影亚洲天堂一区| 麻豆成人91精品二区三区| 中文字幕+乱码+中文字幕一区| av电影天堂一区二区在线观看| 亚洲国产欧美在线| 精品福利一区二区三区免费视频| 久久99国产精品免费| 中文字幕视频一区| 欧美精品乱码久久久久久按摩| 久久精品国产99| 亚洲精品乱码久久久久久久久| 91精品久久久久久久91蜜桃| 91美女蜜桃在线| 九九精品一区二区| 成人欧美一区二区三区小说 | 精品国产第一区二区三区观看体验| 99热国产精品| 秋霞午夜av一区二区三区| 精品捆绑美女sm三区| 在线视频中文字幕一区二区| 蜜臂av日日欢夜夜爽一区| 中文字幕一区二区三区不卡在线| 日韩三级伦理片妻子的秘密按摩| 成人av资源在线观看| 日本亚洲电影天堂| 国产亚洲短视频| 欧美人与禽zozo性伦| 成人一区二区三区在线观看| 亚洲精品美国一| 国产精品亲子伦对白| 91麻豆精品91久久久久久清纯| 国产成人精品亚洲777人妖| 老司机午夜精品| 亚洲精品免费看| 国产情人综合久久777777| 日韩精品专区在线影院观看| 91久久精品一区二区三| 国产露脸91国语对白| 看片的网站亚洲| 亚洲国产色一区| 中文字幕制服丝袜一区二区三区 | av亚洲精华国产精华精华| 亚洲va欧美va人人爽| 中文字幕在线不卡| 久久久.com| 精品久久久久香蕉网| 欧美色区777第一页| av在线不卡观看免费观看| 懂色av一区二区三区蜜臀| 蜜桃一区二区三区在线| 一区二区三区在线不卡| 亚洲精品视频一区| 中文字幕亚洲在| 国产亚洲综合在线| 久久久精品天堂| 欧美成人精品高清在线播放 | 麻豆精品一区二区综合av| 国产午夜亚洲精品午夜鲁丝片| 欧美日本高清视频在线观看| 欧美午夜精品久久久久久超碰| 一本大道久久精品懂色aⅴ| 成人黄色大片在线观看| 成人少妇影院yyyy| 北条麻妃一区二区三区| 9i在线看片成人免费| 波多野结衣一区二区三区 | 欧美aaa在线| 日韩电影在线一区二区| 日韩经典中文字幕一区| 日本欧美在线观看| 久久精品免费观看| 国产乱子轮精品视频| 国产91在线看| 成人aaaa免费全部观看| 91视频国产资源| 欧美私模裸体表演在线观看| 欧美视频一区二区三区在线观看| 欧美日韩一本到| 91精品国产欧美日韩| 精品久久久久香蕉网| 久久久久久**毛片大全| 日韩国产精品大片| 欧美变态口味重另类| 成人h版在线观看| 日本最新不卡在线| 久久精品亚洲一区二区三区浴池| 成人性生交大片免费看在线播放| 欧美日韩一卡二卡三卡 | 日本一区二区高清| 综合在线观看色| 一区二区三区在线视频免费观看| 最新热久久免费视频| 精品国一区二区三区| 欧美三级电影在线观看| 在线看国产一区二区| 91美女蜜桃在线| 精品福利在线导航| 亚洲精品va在线观看| 免费看日韩精品| 成人av网址在线| 欧美在线看片a免费观看| 91色porny在线视频| 99久久99久久综合| 91亚洲国产成人精品一区二区三| 青青草国产成人99久久| 亚洲综合视频网| 亚洲va韩国va欧美va精品|