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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? testcan.c

?? can for 51 ,用keil 51建的項(xiàng)目
?? C
字號:
#include <REG52.H>
//#include <AT89X51.H>
#include <SJA_BCANCONF.H>
//#include <SJA_BCANFUNC.C>
#include <display_s.h>
#include    <string.h>

void Init_Cpu(void);
void Init_T0(void);
void Sja_1000_Init(void);
void disp_ok(void);
void disp_err(void);

bit flag_sec;
unsigned char data a[5];
unsigned char data  send_data[10],rcv_data[10];
unsigned char databuf,sec_data,second;
unsigned char data  Tmod_data;
unsigned char bdata flag_init;

sbit rcv_flag=flag_init^0;
sbit err_flag=flag_init^2;


void main(void)
{
	Sja_1000_Init();								//initialize Sja100
	Init_T0();										//initialize T0
	Init_Cpu();										//initialize mcu
	flag_init=0x00;

	while(1)
	{
		if(rcv_flag)								//if there is receive interrupt
		{
			rcv_flag=0;
			BCAN_DATA_RECEIVE(rcv_data);
			BCAN_CMD_PRG(0x04);
			disp_ok();
		}
		if(flag_sec)								//
		{
			flag_sec=0;								//send data if reach 1 s
			//send_data[0]=0xaa;					//Basic can
			send_data[0]=0x48;						//Pelican
			send_data[1]=0xaa;
			send_data[2]=0x00;
			send_data[3]=second;
			BCAN_DATA_WRITE(send_data);
			BCAN_CMD_PRG(0x12);
		}
		if (err_flag)
		{
			err_flag=0;
			disp_err();
			Sja_1000_Init();
		}
		display(a);
	}
}


void ex0_int(void) interrupt 0 using 1
{
	SJA_BCANAdr=REG_INTERRUPT;
	flag_init=*SJA_BCANAdr;
}


void T0_int(void) interrupt 1 using 2
{
	TR0=0;
	sec_data--;
	if(sec_data==0)
	{
		sec_data=0x10;
		TH0=0x80;
		TL0=0x60;
		flag_sec=1;
		second++;
	}
	TR0=1;
}


void Init_Cpu(void)
{
	PX0=1;
	IT0=1;
	EX0=1;
	ET0=1;
	EA=1;
	sec_data=0x10;
}


void Init_T0(void)
{
Tmod_data=TMOD;
Tmod_data&=0xf0;
Tmod_data|=0x01;
TMOD=Tmod_data;
TH0=0x80;
TL0=0x60;
TR0=1;
sec_data=0x20;
second=0x00;
}


void Sja_1000_Init(void)
{
	bit s;
	s=BCAN_CREATE_COMMUNATION();
	s=BCAN_ENTER_RETMODEL();
	s=BCAN_SET_OUTCLK(0xaa,0xc8);				//Pelican
	s=BCAN_SET_BANDRATE(0x04);
	s=BCAN_SET_OBJECT(0xaa,0xff);
	//s=BCAN_SET_OUTCLK(0xaa,0x48);
	s=BCAN_SET_MOD();
	s=BCAN_QUIT_RETMODEL();
	SJA_BCANAdr=REG_IER;
	*SJA_BCANAdr|=0xff;
	SJA_BCANAdr=REG_CONTROL;
	//*SJA_BCANAdr|=0x1e;
}



void disp_ok(void)
{
	a[0]=0x00;
	a[1]=0x11;
	a[2]=0x10;
	databuf=rcv_data[2];
	databuf>>=0x04;
	a[3]=databuf;
	databuf=rcv_data[2];
	databuf=databuf&0x0f;
	a[4]=databuf;
}


void disp_err(void)
{
	a[0]=0x00;
	a[1]=0x0e;
	a[2]=0x10;
	a[3]=0x0f;
	a[4]=0x0c;
}



 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)
 {
    unsigned   char   TempData;
    SJA_BCANAdr  = REG_CONTROL;                   //訪問地址指向控制寄存器 
    TempData=  *SJA_BCANAdr;                      //保存原始值
    *SJA_BCANAdr=(TempData|0x01);                 //置位復(fù)位請求
    if((*SJA_BCANAdr&0x01) == 1)
    {
       return   0;
    }
    else
    {
       return   1;
    }
    
 }


 bit   BCAN_QUIT_RETMODEL(void)
 {
    unsigned   char   TempData;
    SJA_BCANAdr = REG_CONTROL;                   //訪問地址指向控制寄存器 
    TempData    = *SJA_BCANAdr;                  //保存原始值
    *SJA_BCANAdr=(TempData&0xfe);       		 //清除復(fù)位請求
    if((*SJA_BCANAdr&0x01) == 0)
    {
       return   0;                               //
    }
    else
    {
       return   1;                              //退出成功
    }

 }


unsigned  char	code	SJA_BTR_CODETAB[]={
    0x53,0x2F,		              //   ;20KBPS的預(yù)設(shè)值
    0x87,0xFF,                     //;40KBPS的預(yù)設(shè)值
    0x47,0x2F,                     //;50KBPS的預(yù)設(shè)值
    0x83,0xFF,                     //;80KBPS的預(yù)設(shè)值
    0x43,0x2f,                     //;100KBPS的預(yù)設(shè)值
    0x03,0x1c,                     //;125KBPS的預(yù)設(shè)值
    0x81,0xfa,                     //;200KBPS的預(yù)設(shè)值
    0x01,0x1c,                     //;250KBPS的預(yù)設(shè)值
    0x80,0xfa,                     //;400KBPS的預(yù)設(shè)值
    0x00,0x1c,                     //;500KBPS的預(yù)設(shè)值
    0x80,0xb6,                     //;666KBPS的預(yù)設(shè)值
    0x00,0x16,                     //;800KBPS的預(yù)設(shè)值
    0x00,0x14                     //;1000KBPS的預(yù)設(shè)值
   
};

bit   BCAN_SET_BANDRATE(unsigned char CAN_ByteRate)
{
  unsigned  char  BTR0_num,BTR1_num;
  BTR0_num = SJA_BTR_CODETAB[CAN_ByteRate*2];
  BTR1_num = SJA_BTR_CODETAB[CAN_ByteRate*2+1];
  //將波特率的的預(yù)設(shè)值裝入sja1000的總線定時器
  SJA_BCANAdr=REG_BTR0;          		//訪問地址指向總線定時寄存器0
  *SJA_BCANAdr=BTR0_num;      			//寫入?yún)?shù)
  if(*SJA_BCANAdr != BTR0_num)			//校驗(yàn)寫入值
  {
    return  1; 
  }
  SJA_BCANAdr=REG_BTR1;         		//訪問地址指向總線定時寄存器0
  *SJA_BCANAdr=BTR1_num;      			//寫入?yún)?shù)
  if(*SJA_BCANAdr != BTR1_num)			//校驗(yàn)寫入值
  {
    return  1; 
  }

  return    0;
}  



bit    BCAN_SET_OBJECT(unsigned char  BCAN_ACR,unsigned char  BCAN_AMR)
{
  SJA_BCANAdr=REG_TxBuffer5;          		//訪問地址指向驗(yàn)收屏蔽寄存器(AMR)
  *SJA_BCANAdr=BCAN_AMR;        		//寫入?yún)?shù)
  *(SJA_BCANAdr+1)=BCAN_AMR;
  *(SJA_BCANAdr+2)=BCAN_AMR;
  *(SJA_BCANAdr+3)=BCAN_AMR;
  if(*SJA_BCANAdr != BCAN_AMR)  		//校驗(yàn)寫入值
  {
    return  1; 
  }

  SJA_BCANAdr=REG_TxBuffer1;          		//訪問地址指向驗(yàn)收代碼寄存器(ACR)
  *SJA_BCANAdr=BCAN_ACR;        		//寫入?yún)?shù)

  if(*SJA_BCANAdr != BCAN_ACR)  		//校驗(yàn)寫入值
  {
    return  1; 
  }

  return    0;
}


bit  BCAN_SET_OUTCLK (unsigned char Out_Control,    
                     unsigned char  Clock_Out)
{
  SJA_BCANAdr=REG_OCR ;          		//訪問地址指向輸出控制寄存器
  *SJA_BCANAdr=Out_Control;      		//寫入?yún)?shù)
  if(*SJA_BCANAdr != Out_Control)		//校驗(yàn)寫入值
  {
    return  1; 
  } 
  SJA_BCANAdr=REG_CDR;          		//訪問地址指向輸出控制寄存器
  *SJA_BCANAdr=Clock_Out;        		//寫入?yún)?shù)
  return    0;
}



 bit   BCAN_DATA_WRITE(unsigned char *SendDataBuf)
 {
   unsigned  char  TempCount;
   SJA_BCANAdr = REG_STATUS;            //訪問地址指向狀態(tài)寄存器
   if((*SJA_BCANAdr&0x08) == 0)         //判斷上次發(fā)送是否完成
   {
    return	1;
   }  

   if((*SJA_BCANAdr&0x04)==0)          //判斷發(fā)送緩沖區(qū)是否鎖定
   {
     return	1;
   }  
 
   SJA_BCANAdr = REG_TxBuffer1;        //訪問地址指向發(fā)送緩沖區(qū)1
   if((SendDataBuf[0]&0x40)==0)        //判斷RTR,從而得出是數(shù)據(jù)幀還是遠(yuǎn)程幀
   { 
     TempCount =(SendDataBuf[0]&0x0f)+3; //輸入數(shù)據(jù)幀
   }

   else
   {
     TempCount =3;                     //遠(yuǎn)程幀
   }

  memcpy(SJA_BCANAdr,SendDataBuf,TempCount);
   return 0;
}



bit    BCAN_DATA_RECEIVE(unsigned char *RcvDataBuf)
 {
   unsigned  char  TempCount; 
   SJA_BCANAdr = REG_STATUS;                //訪問地址指向狀態(tài)寄存器
   if((*SJA_BCANAdr&0x01)==0)               //判斷報文是否有效
   {
      return 1;
   }
   
   SJA_BCANAdr = REG_RxBuffer1;             //訪問地址指向接收緩沖區(qū)2
   if((*SJA_BCANAdr&0x40)==0)               //如果是數(shù)據(jù)幀
   {
     TempCount=(*SJA_BCANAdr&0x0f)+3;       //計算報文中數(shù)據(jù)的個數(shù)
   }
   
   else
   {
    TempCount=3;
   }
   SJA_BCANAdr = REG_RxBuffer1;             //訪問地址指向接收緩沖區(qū)1
   memcpy(RcvDataBuf,SJA_BCANAdr,TempCount);//讀取接收緩沖區(qū)的報文
   return  0;
 }

bit  BCAN_CMD_PRG(unsigned char cmd)
 {
   SJA_BCANAdr=REG_COMMAND;            //訪問地址指向命令寄存器
   *SJA_BCANAdr=cmd;                   //啟動命令字
   switch(cmd)
   {
     case  TR_CMD:                     //發(fā)送請求命令
           return    0;
           break;
	 case  SRR_CMD:						//自接收請求
	 	   return	0;
		   break;
     case  AT_CMD:                     //夭折發(fā)送命令 
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態(tài)寄存器   
           if((*SJA_BCANAdr & 0x20)==0)//判斷是否正在發(fā)送
           {
              return  0;
           }
           else
           {
              return  1;
           }   
           break; 
     case  RRB_CMD:                    //釋放接收緩沖區(qū) 
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態(tài)寄存器   
           if((*SJA_BCANAdr & 0x01)==1)//判斷是否釋放成功
           {
             return  1;
           }
           else
           {
              return  0;
           }   
           break; 
  
     case  COS_CMD:                    //清除超載狀態(tài)
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態(tài)寄存器   
           if((*SJA_BCANAdr & 0x02)==0)//判斷清除超載是否成功
           {
             return  0;
           }
           else
           {
              return  1;
           }   
           break; 
     
/*     case  GTS_CMD:                    //進(jìn)入睡眠狀態(tài)命令 
           return    0;
           break; */
     default:
             return  1;
             break; 
   }
}

bit  BCAN_SET_MOD(void)
{
  unsigned   char   TempData;
  SJA_BCANAdr=REG_CONTROL;
  TempData=  *SJA_BCANAdr;
  *SJA_BCANAdr=(TempData|0x04);
  if ((*SJA_BCANAdr&0x04)==0)
  {
  	return 1;
  }
  
   return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品久久嫩草网站秘色| 成人精品视频一区| 欧美日高清视频| 亚洲激情图片qvod| 在线观看国产日韩| 五月综合激情网| 欧美大片一区二区| 国产精品一二三四五| 国产欧美日韩一区二区三区在线观看 | 久久久精品日韩欧美| 国产精品一区在线观看你懂的| 国产乱码精品一区二区三| 国产片一区二区| 国产成人免费av在线| 一区二区中文字幕在线| 欧美酷刑日本凌虐凌虐| 久久国产精品免费| 国产精品欧美一级免费| 欧洲视频一区二区| 麻豆国产精品视频| **网站欧美大片在线观看| 欧美日韩电影一区| 国产乱人伦偷精品视频不卡| 日韩美女啊v在线免费观看| 91.xcao| 成人app软件下载大全免费| 亚洲激情图片qvod| 国产三级精品三级在线专区| 在线观看免费亚洲| 国产99久久久精品| 性感美女久久精品| 欧美激情在线一区二区| 欧美日韩五月天| 粉嫩欧美一区二区三区高清影视 | 久久成人羞羞网站| 亚洲欧美激情插| 欧美成人精品3d动漫h| 91蜜桃传媒精品久久久一区二区| 欧美va天堂va视频va在线| 成人深夜在线观看| 日韩国产成人精品| 亚洲同性同志一二三专区| 日韩一区二区中文字幕| 91麻豆蜜桃一区二区三区| 激情综合一区二区三区| 亚洲不卡av一区二区三区| 国产精品萝li| 久久久蜜桃精品| 91精品国产欧美日韩| 在线一区二区三区| 国产成人精品亚洲日本在线桃色 | 久久激情五月激情| 亚洲高清不卡在线观看| 亚洲国产成人午夜在线一区| 日韩精品一区二区三区三区免费| 日本在线不卡视频一二三区| 综合在线观看色| 国产精品国产成人国产三级| 精品亚洲成a人在线观看| 欧美一区二区三区免费| 国产激情一区二区三区| 青草av.久久免费一区| 亚洲精品v日韩精品| 国产精品久久久久国产精品日日| 成人av网站免费| 国产一区91精品张津瑜| 九九精品一区二区| 日本麻豆一区二区三区视频| 亚洲高清久久久| 亚洲成人精品在线观看| 樱花草国产18久久久久| 亚洲色图欧美激情| 成人欧美一区二区三区1314| 国产精品每日更新在线播放网址| 色999日韩国产欧美一区二区| 亚洲在线中文字幕| 亚洲美女偷拍久久| 亚洲一区二区三区在线| 中文av一区特黄| 国产精品久线观看视频| 国产精品国产三级国产aⅴ原创| 欧美美女黄视频| 欧美日韩成人一区二区| 欧美日韩免费电影| 51精品视频一区二区三区| 在线播放日韩导航| 日韩欧美国产综合在线一区二区三区| 国产一区二区三区久久悠悠色av| 国产精品福利一区二区| 日韩伦理av电影| 亚洲在线免费播放| 日韩国产欧美三级| 美女一区二区三区在线观看| 另类小说欧美激情| 久久99精品久久久久| 国产成人在线视频免费播放| 成人动漫视频在线| 色婷婷国产精品久久包臀| 欧美日韩国产成人在线91 | 国产一区二区三区四| 国产麻豆一精品一av一免费 | 亚洲成a人片在线不卡一二三区| 久久亚洲精华国产精华液 | 日韩一级完整毛片| 国产亚洲欧美激情| 日韩理论片网站| 亚洲bdsm女犯bdsm网站| 美日韩黄色大片| 国产乱码精品一区二区三区五月婷| 亚洲国产成人精品视频| 午夜精品久久久久久久久久久 | 亚洲美女视频在线观看| 亚洲一区电影777| 久久精品噜噜噜成人88aⅴ| 国产成人免费网站| 欧美日韩你懂的| 国产视频一区二区三区在线观看| 欧美二区在线观看| 国产亚洲欧美色| 中文字幕一区在线观看视频| 奇米亚洲午夜久久精品| 成人av资源在线观看| 欧美一级理论片| 亚洲欧洲国产日韩| 久久99国产精品成人| 欧美综合欧美视频| 国产女同性恋一区二区| 婷婷中文字幕综合| 99久久99久久综合| 国产精品久久免费看| 国产精品久99| 天天射综合影视| 成人福利在线看| 欧美一级片在线观看| 成人欧美一区二区三区视频网页| 精品国产91久久久久久久妲己| 欧美性大战久久久久久久| 日韩欧美另类在线| 亚洲国产精品综合小说图片区| 亚洲精品国产第一综合99久久 | 国产婷婷一区二区| 性做久久久久久| 91蝌蚪porny九色| 精品伦理精品一区| 日韩精品一区第一页| 色欲综合视频天天天| 国产欧美日韩另类一区| 免费一级欧美片在线观看| 在线影视一区二区三区| 欧美激情自拍偷拍| 黑人巨大精品欧美一区| 欧美电影一区二区| 一二三四社区欧美黄| 91小视频在线免费看| 国产精品萝li| 成人动漫av在线| 中文字幕av一区二区三区免费看| 亚洲婷婷在线视频| 粉嫩av一区二区三区| 国产亚洲欧美日韩日本| 国内久久精品视频| 精品国产3级a| 国产毛片一区二区| 久久久久久久久伊人| 国产乱理伦片在线观看夜一区| 国产精品一区二区无线| 欧美va亚洲va香蕉在线| 午夜精品久久久久久久蜜桃app| 亚洲国产高清在线| 国产成人精品影视| 中文字幕第一区第二区| 成人午夜视频网站| 国产精品免费av| 99精品国产视频| 一区二区三区日韩| 欧美少妇性性性| 青椒成人免费视频| 日韩欧美国产一二三区| 男女性色大片免费观看一区二区| 成人午夜看片网址| 国产精品视频在线看| 懂色av一区二区在线播放| 久久亚洲综合av| 成人激情小说乱人伦| 国产精品丝袜一区| 色综合天天视频在线观看| 亚洲情趣在线观看| 欧美日韩三级在线| 国模冰冰炮一区二区| 国产精品久久久久久妇女6080 | 亚洲欧洲日产国产综合网| 91伊人久久大香线蕉| 亚洲成人av电影| 日韩欧美高清在线| voyeur盗摄精品| 午夜日韩在线电影| 国产午夜三级一区二区三| 91在线视频在线| 秋霞午夜鲁丝一区二区老狼| 久久免费午夜影院|