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

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

?? can_z.c

?? 單片機和GPS接收機構成的車載衛星定位系統
?? C
?? 第 1 頁 / 共 2 頁
字號:
   return  0;
 }
/************************************************************************
 *函數原型:  bit  BCAN_CMD_PRG(unsigned char cmd)             *
 *參數說明:  cmd:sja1000運行的命令字                                    *
 *             01:發送請求                                              *
 *             02:中止發送                                             *
 *             04:釋放接收緩沖區                                       *
 *             08:清除超載狀態                                         *
 *             0x10:進入睡眠狀態                                        *
 *                                                                      *
 *返回值:                                                               *
 *           0 ; 表示命令執行成功                                       *
 *           1 ; 表示命令執行失敗                                       *
 *                                                                      *
 *說明:      執行sja1000命令                                            *
 ************************************************************************/
 bit  BCAN_CMD_PRG(unsigned char cmd)
 {
   SJA_BCANAdr=REG_COMMAND;            //訪問地址指向命令寄存器
   *SJA_BCANAdr=cmd;                   //啟動命令字
   switch(cmd)
   {
     case  TR_CMD:                     //發送請求命令
           return    0;
           break;
     case  AT_CMD:                     //中止發送命令
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態寄存器
           if((*SJA_BCANAdr & 0x20)==0)//判斷是否正在發送
           {
              return  0;
           }
           else
           {
              return  1;
           }
           break;
     case  RRB_CMD:                    //釋放接收緩沖區
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態寄存器
           if((*SJA_BCANAdr & 0x01)==1)//判斷是否釋放成功
           {
             return  1;
           }
           else
           {
              return  0;
           }
           break;

     case  COS_CMD:                    //清除超載狀態
           SJA_BCANAdr = REG_STATUS;   //訪問地址指向狀態寄存器
           if((*SJA_BCANAdr & 0x02)==0)//判斷清除超載是否成功
           {
             return  0;
           }
           else
           {
              return  1;
           }
           break;

     case  GTS_CMD:                    //進入睡眠狀態命令
           return    0;
           break;
     default:
             return  1;
             break;
   }

 }
void InitialCAN()
{
     SJA_reset=0;
     delay(100);
     SJA_reset=1;
     SJA_BCANAdr=REG_CONTROL;                      //設置控制寄存器
     *SJA_BCANAdr=0x02;                            //接收中斷使能
     do{;}while(BCAN_ENTER_RETMODEL());            //進入復位模式
     do{;}while(BCAN_CREATE_COMMUNATION());        //建立連接
     do{;}while(BCAN_SET_BANDRATE());              //設置BTR0,BTR1,配置波特率
     do{;}while(BCAN_SET_OBJECT(0x00,0x00));       //設置驗收代碼寄存器ACR,驗收屏蔽寄存器AMR,
                                                   //自身節點ID號為00000000!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     do{;}while(BCAN_SET_OUTCLK(0xda,0x08));       //設置輸出控制寄存器OC,時鐘分頻器CDR
     do{;}while(BCAN_QUIT_RETMODEL());             //進入工作模式
}

void  DataReceive()  interrupt 0  using 1
{
      red=0;                        //接受指示
      EX0=0;
      SJA_BCANAdr=REG_INTERRUPT;    //讀取中斷寄存器值,判斷中斷類型
      interrupt_flag=*SJA_BCANAdr;
      if((interrupt_flag&0x01)==1)//接收中斷
         {
          BCAN_DATA_RECEIVE(SystemBuf); //讀取緩沖區數據
          BCAN_CMD_PRG(RRB_CMD);        //釋放接收緩沖區
          request_flag=1;
          }
       if((interrupt_flag&0x04)==1)//錯誤中斷
          {
           SJA_reset=0; //復位
           }
   EX0=1;
}

void request_data()
{
     green=0;           //發送指示
     SendBuf[0]=0x01;   //從機點ID!!!!!!!!!!!!!!!!!!!!!!!!!
     SendBuf[1]=0x08;
     SendBuf[2]=0x00;   //自身ID
     SendBuf[3]=0x01;
     SendBuf[4]=0x02;
     SendBuf[5]=0x03;
     SendBuf[6]=0x04;         //測試用
     SendBuf[7]=0x05;         //測試用
     SendBuf[8]=0x06;         //測試用
     SendBuf[9]=0x07;          //測試用
     BCAN_DATA_WRITE(SendBuf);
     BCAN_CMD_PRG(TR_CMD);
}
/***************************lcd********************************/
void bit8_serial_input(uchar ix) //~~液晶八位串輸入信號行
{                                //~~ix串行輸入的數
data uchar i,j,nc;
P_E=0;    //clk=0;
ab=ix;
for(i=0;i<8;i++){
	P_RW=abit7;    //din=abit7;       ~~輸入最高位
	ab<<=1;
	P_E=1;                                 //~~鎖存輸入一位
	for(j=0;j<10;j++)nc=0;//~~  延時
	P_E=0;
	}
}
/*---------------------------------------------------------*/
void instruct(uchar dat) //??光標顯示,顯示控制
{
data uchar ch;
P_RS=1;   //選通
ch=0xf8;      //~~???
bit8_serial_input(ch);
ch=dat&0xf0;  //~~高四位不變低四位請零
bit8_serial_input(ch);
ch=dat<<4;
bit8_serial_input(ch);
P_RS=0;  //結束作業
}
void write_abyte(uchar dat) //~~寫入一位數據
{
data uchar ch;
P_RS=1;  //讀數據--不選通
ch=0xfa;  //RS=1 RW=0; ~~莫非還有寄存器CH就為寫狀態字的
bit8_serial_input(ch);
ch=dat&0xf0;  //RS=1 RW=0; ~~??寫兩次還是狀態字高幾位q
bit8_serial_input(ch);
ch=dat<<4;
bit8_serial_input(ch);
P_RS=0;  //結束作業
}


/*
   寫一個漢字到x,Y坐標處其中X為8列y為4行
   */
void  write_word(uint w)
{
data  uchar ch,cl;
ch=w>>8; //取高八位ch怎么看不出來
cl=w;
write_abyte(ch);
write_abyte(cl);
}
/*-------------------------------------------*/
/*-------------------------------------------*/
dis_hz_str(uchar x, uchar y, uchar *p_hz)  //~~顯示函數可
{                //~~能是顯示文字(也可是字母)串一共
data uchar loc,*p;  //可顯示4行漢字由x決定
data uint   xi;
code uchar xline[5]={0,1,3,2,4};
x=xline[x];
instruct(home);
loc=((x<<3)+y-9)|0x80;//~~
instruct(loc); p=p_hz;
xi=((*p++)<<8)|*p++;
while(xi){
     write_word(xi);   //*p++;// );
     xi=((*p++)<<8)|*p++;   //*p++; xi=xi|*p++;
     }
}
/*顯示字母數字在x,y處
*/
void dis_str(uchar x, uchar y, uchar *str)
{
data uchar loc,*p;
code uchar xline[5]={0,1,3,2,4};
p=str;
x=xline[x];
instruct(home);
loc=(16*(x-1)+y-1);
if(loc&0x01){
       loc/=2;
       instruct(loc|0x80);
       //ch=' ';   //字符串前加空格(0x20 )
       write_abyte(' ');
       }else{
       loc/=2;
       instruct(loc|0x80);
       }
while(*p){
       write_abyte(*p++);
       }
//instruct(0x9e); write_abyte(' ');
}
void initial_screen(void)//~~初始化顯示屏
{
data uchar i,j;
P0=0xff;
P_RS=0;           //串行--不選通
//P_PSB=0;
P_E=0;   //串行方式
instruct(f_set);    //0x30;     //8位并行接口 基本指令
for(i=0;i<30;i++){}   //~~~延時何用???
for(i=0;i<250;i++){}
for(i=0;i<250;i++){}
instruct(f_set);    //0x30;     //8位并行接口 基本指令
for(i=0;i<30;i++){}
for(i=0;i<250;i++){}
for(i=0;i<250;i++){}
instruct(dis_on);     //0x0f);     //開啟屏幕 光標 閃爍
for(i=0;i<30;i++){}
instruct(clear);     //0x01);     //清屏幕 clear
for(j=0;j<10;j++){
   for(i=0;i<250;i++){}
   }
instruct(in_mode);     //0x06);    //光標右移、地址增1 方式
for(i=0;i<30;i++){}
instruct(home);
}
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
void itoa(int x,unsigned char *str)//BCD碼到ASCII碼
{
unsigned int n;
unsigned char chn,*p,str1[5];
data unsigned char i,j;
if(x<0){
	*str++='-';
	x=-x;
	}
n=x;
p=str1;
j=0;
while(n!=0){
	chn=n%10;
	n=n/10;
	*p++=chn+'0';
	j++;
	}
if(j!=0){
	p--;
	for(i=0;i<j;i++)*str++=*p--;
	}
else    *str++='0';
*str=0;
return;
}
//------------------------------------------------------------------

void   b2hex(char ch,char *p)
{
char c1,c2;
    c1=((ch&0xf0)>>4)&0x0f;
   //c1=c1>>4;
    c2=ch&0x0f;   //二進制變16進制
    if(c1<=9)c1=c1+'0'; else c1=c1-10+'A';
    if(c2<=9)c2=c2+'0'; else c2=c2-10+'A';
    *p++=c1;  *p=c2;
}
//------------------------------------------------------------------
void dis_bin(uchar *buff,uchar n)
{
data uchar i,j,ch,*p,*p1;
idata uchar str[20],str1[3];
p=buff; p1=str; j=0;
for(i=0;i<n;i++){
    ch=*p++;
    b2hex(ch,str1);  //char ch,char *p)
    *p1++=str1[0]; *p1++=str1[1];
    j=j+2;
    }
p=buff;

for(i=0;i<j;i++)*p++=str[i];
}
/*-----------------------------------------------------------------*/
/*---------------------------------------------------------*/
void main(void)
{
   red=1;
   green=1;
   initial_screen();
   instruct(0x0c); //關閉光標
   InitialCAN();
   EX0=1;   // 開外部中斷
   IT0=0;   // 外部中斷源采用邊沿觸發方式
   EA=1;//總線初始化后開中斷
   request_data();
     while(1)
     { dis_str(1,4,"CAN");
       dis_hz_str(1,4,"總線主\0\0");
           if(request_flag==1)
          {
           dis_bin(SystemBuf,10);
           dis_str(2,1,SystemBuf);
           request_flag=0;
           delay(49990);
           red=1;
           request_data();
           }
     }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品免费专区| 欧美三级一区二区| 日韩精品一区二区三区视频播放 | 亚洲精品成人天堂一二三| 精品一区二区综合| 日韩一区二区三区观看| 午夜久久久久久久久久一区二区| 97久久超碰精品国产| 国产精品每日更新| 成人午夜视频福利| 国产精品久久久久久久久久久免费看 | 国产成人夜色高潮福利影视| 亚洲精品在线观| 国产一区二区精品久久99 | 91精品办公室少妇高潮对白| 国产精品国产三级国产aⅴ原创| 国产精品夜夜嗨| 久久综合狠狠综合久久激情| 精品一二三四在线| 国产亚洲精品精华液| 成人性生交大合| 国产精品久久久久久一区二区三区| 国产成人免费xxxxxxxx| 国产欧美日韩麻豆91| 国产在线一区观看| 国产欧美精品一区二区色综合朱莉 | 男女性色大片免费观看一区二区 | 国产伦精品一区二区三区免费迷| 亚洲精品一线二线三线无人区| 国产激情91久久精品导航| 国产偷国产偷精品高清尤物| 精品一区二区国语对白| 国产精品美女久久久久久久| 91丨porny丨国产| 中文字幕一区二区三区四区 | 亚洲午夜久久久| 日韩欧美专区在线| 国产91精品一区二区麻豆亚洲| 中文字幕精品—区二区四季| 色欧美88888久久久久久影院| 综合在线观看色| 欧美乱妇15p| 国产成人综合在线观看| 亚洲欧美日韩国产综合在线| 欧美精品777| 国产成人精品网址| 亚洲一级片在线观看| 日韩欧美一二三| 成人av免费在线| 亚洲丝袜另类动漫二区| 日韩亚洲欧美中文三级| jlzzjlzz亚洲日本少妇| 国产亚洲欧美日韩俺去了| 欧美色图片你懂的| 国产一区亚洲一区| 亚洲国产日韩综合久久精品| 精品久久久久香蕉网| 99re这里只有精品首页| 久久成人免费网| 中文字幕永久在线不卡| 欧美成人一区二区三区在线观看| 91美女精品福利| 国产乱码精品一品二品| 日韩在线一区二区| 欧美高清在线一区| 91精品国产一区二区三区蜜臀| 久久se精品一区精品二区| 亚洲一二三区视频在线观看| 国产亚洲短视频| 日韩欧美高清在线| 欧美亚洲高清一区| 成人av高清在线| 精品一二三四在线| 亚洲综合色视频| **性色生活片久久毛片| 69久久夜色精品国产69蝌蚪网| 91一区一区三区| 国产成人综合在线| 美国毛片一区二区三区| 亚洲三级在线看| 国产精品你懂的| 国产亚洲精品aa| 69p69国产精品| 欧美色图第一页| 91国偷自产一区二区三区观看| 成人福利视频在线看| 国产一区二区三区精品视频| 蓝色福利精品导航| 奇米精品一区二区三区在线观看| 天天综合天天做天天综合| 亚洲一区二区四区蜜桃| 亚洲视频香蕉人妖| 亚洲视频在线观看三级| 亚洲四区在线观看| 日韩美女精品在线| 国产精品视频一二| 欧美精品一区二区久久久| 欧美老肥妇做.爰bbww| 欧美三级电影一区| 国产日韩欧美精品电影三级在线| 久久先锋资源网| 久久久久高清精品| 国产人成亚洲第一网站在线播放 | 欧美视频一区二区三区| 在线观看视频一区二区欧美日韩| 色悠悠亚洲一区二区| 91国产免费观看| 欧美亚洲综合一区| 欧美日韩aaaaa| 欧美一级久久久| 精品国产伦一区二区三区观看体验| 欧美国产国产综合| 亚洲欧美日韩国产综合| 亚洲一区二区精品3399| 日韩不卡一区二区三区| 精品一区二区三区在线播放视频| 国产自产2019最新不卡| 日本女人一区二区三区| 国产二区国产一区在线观看| 国产精品一区免费视频| 成人a区在线观看| 在线精品视频一区二区三四| 欧美在线免费观看亚洲| 欧美一区二区三区人| 精品日韩av一区二区| 国产欧美一区二区三区沐欲| 欧美日韩三级一区| 欧美肥胖老妇做爰| 国产欧美综合在线观看第十页 | 欧美日韩国产乱码电影| 日韩免费高清av| 久久亚区不卡日本| 亚洲视频一二区| 午夜不卡av免费| 国精产品一区一区三区mba视频| 波多野结衣视频一区| 欧美精品一二三四| 久久奇米777| 亚洲二区在线观看| 蜜桃视频在线观看一区| 波多野结衣视频一区| 色呦呦一区二区三区| 欧美猛男男办公室激情| 国产日韩v精品一区二区| 日韩一区欧美小说| 久久99国产精品久久99| 在线观看日韩高清av| 久久日一线二线三线suv| 亚洲一区二区三区视频在线 | 国产日本亚洲高清| 视频在线在亚洲| www.欧美日韩| 欧美mv和日韩mv的网站| 午夜精品一区二区三区电影天堂 | 欧美亚洲高清一区| 中文字幕 久热精品 视频在线 | 在线欧美日韩国产| 亚洲国产精品av| 美女在线一区二区| 欧美综合欧美视频| 一色桃子久久精品亚洲| 国产剧情一区二区| 欧美精品1区2区3区| 亚洲免费观看高清完整| 风间由美一区二区三区在线观看| 日韩欧美国产一区二区三区| 亚洲一区二区三区在线看| av电影一区二区| 国产欧美一区二区精品性色超碰| 青青草原综合久久大伊人精品优势| 欧美高清视频www夜色资源网| 亚洲国产日日夜夜| 91精品国产综合久久久久久| 日本不卡视频在线| 欧美一级高清片在线观看| 麻豆国产精品777777在线| 日韩欧美另类在线| 国产精品99久久久久久久女警 | 久久九九99视频| 国产成人精品在线看| 国产精品久久三| 欧美午夜一区二区| 青青草国产精品97视觉盛宴| 日韩三级免费观看| 国产精品亚洲第一区在线暖暖韩国 | 久久久av毛片精品| 福利视频网站一区二区三区| 1024亚洲合集| 欧美日韩国产另类一区| 久久精品99国产精品| 欧美激情一区二区| 91久久精品一区二区| 日韩不卡免费视频| 国产精品网站在线| 91精品办公室少妇高潮对白| 日韩中文字幕一区二区三区| 国产精品乱人伦一区二区| 欧美影视一区在线| 国内精品视频一区二区三区八戒 | 91视频一区二区|