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

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

?? sja1000 basiccan模式的通訊測試程序.txt

?? SJA1000 BasicCAN模式的通訊測試 適用于任何基于任何兼容8051指令的微處理器同SJA1000組成的CAN系統(tǒng)
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
#include <P8XC5X2.H>       
#include <INTRINS.H>    
   
#include  "time_module.C"                           
#include  "sja_bcanFunc.C"    
#include  "seriele.c"    
#include  "keyled.c"    
   
//數(shù)據(jù)類型定義    
#define   uchar  unsigned char                  
#define   ulong  unsigned long    
#define   uint   unsigned int      
   
   
//設(shè)置系統(tǒng)數(shù)據(jù)緩沖區(qū)    
static    uchar  data       SetSystemBuf[10];   //系統(tǒng)設(shè)置數(shù)據(jù)緩沖區(qū)         
   
static    uchar  data       BandRateBuf;        //設(shè)置總線波特率值緩沖區(qū)      
   
static    uchar  idata      EditMsSendCount;    //編輯自動發(fā)送的頻率    
static    uchar  idata      EditMsSendSave;     //保存自動發(fā)送的頻率    
   
static    uchar  idata      SendDataCount;      //發(fā)送數(shù)據(jù)顯示    
   
static      uchar   idata   SendFrq;            //自動發(fā)送的頻率    
bit         AutoSendFlag;   
static    bit   MoveFlag=0;            //移位計數(shù)       
   
unsigned    int     AutoSendFrameID;   
unsigned    int     TestSendData;   
   
//鍵盤操作函數(shù)    
extern void       Write_Xdata(unsigned  char value);    // 將info送入外部地址xadr中    
extern uchar      Read_Xdata(uint Xadr);                //從外部地址xadr中讀取數(shù)據(jù)    
extern void       Key_Scan(void);                       //鍵盤掃描程序    
extern uchar      Key_Get(void);                        //取鍵盤值    
extern void       PushKey(uchar keynum);                //將鍵值送入按鍵處理隊列    
extern uchar      PopKey(void);                         //    
   
void      Key_handle(void);                     //處理鍵值    
   
void      FundationKey(void);                   //功能鍵    
void      MoveKey(void);                        //移位鍵    
void      SearchKey(void);                      //檢索鍵    
void      EnterKey(void);                       //確認(rèn)鍵    
void      IncKey(void);                         //增加鍵    
void      QuitKey(void);                        //退出鍵    
void      CanSendKey(void);                     //發(fā)送鍵    
   
void      EnterNext(void);                      //按確認(rèn)鍵后進入下一小項處理    
//led  送顯    
#define   LED_SelBit()   disp_pt++;if(disp_pt>4)disp_pt=0//位選               
extern    void      Show_LED(void);                     //顯示處理    
extern    void      Write_DispBuf(uchar buf0,uchar buf1,uchar buf2,uchar buf3,uchar buf4);//寫入顯示緩沖區(qū)    
extern    uchar     GetLedData(void);                     //將顯示的值換算    
extern    void      Error_disp(uchar ErrByte);            //將錯誤字送顯    
   
void      InitCPU(void);                        //初始化函數(shù)    
// 配置sja1000    
uchar  Config_SJA(void);                        //配置sja1000    
void   CanRcv_Prg(void);                        //can總線數(shù)據(jù)接收后處理    
void   CanSend_Prg(void);                       //can發(fā)送數(shù)據(jù)    
void   CanErr_Prg(void);                        //發(fā)現(xiàn)錯誤后處理    
void   CanDtOver_Prg(void);                     //超載處理    
void   CanWui_Prg(void);                        //喚醒中斷處理    
   
void   UartRcv_Prg(void);                       //串口接收到數(shù)據(jù)處理    
   
void   DrecDisplay(uchar *databuf);             //直通顯示處理函數(shù)    
void   TestDispPrg(void);                       //測試處理函數(shù)    
void   ClearDispPrg(uchar *databuf);            //消隱處理函數(shù)    
void   FlightDispPrg(uchar *databuf);           //閃爍處理函數(shù)        
void   LiftCrcDispPrg(uchar *databuf);          //左循環(huán)顯示處理    
void   RightCrcDispPrg(uchar *databuf);         //右循環(huán)顯示處理    
   
void   AutoSendDataToCanBus(void);              //自動發(fā)送    
   
//提取波特率的對應(yīng)值    
unsigned    char    ValueToBandRate(void);   
   
   
// 外部中斷0    
static   uchar  bdata    CanBusFlag=0;          //can標(biāo)志    
sbit     CanRcv_Good=CanBusFlag^0;              //成功接收標(biāo)志    
sbit     CanSend_Good=CanBusFlag^1;             //成功發(fā)送標(biāo)志    
sbit     CanErrFlag=CanBusFlag^2;               //can總線錯誤標(biāo)志    
sbit     CanDtOverFlag=CanBusFlag^3;            //can總線超載標(biāo)志    
sbit     CanWuiFlag=CanBusFlag^4;               //can總線喚醒中斷    
   
/*-------------------------------------------------------------------------------------------  
 外部中斷0處理程序                       
 -------------------------------------------------------------------------------------------*/    
void  ex0_Val(void)  interrupt   0   using  1   
{    
  SJA_BCANAdr=REG_INTERRUPT;   
  CanBusFlag=*SJA_BCANAdr;                      //保存sja1000中斷標(biāo)志    
}   
   
/*-------------------------------------------------------------------------------------------  
 main程序                 
 -------------------------------------------------------------------------------------------*/    
void      main(void)   
{      
    uchar status;                               //狀態(tài)字     
    uchar   i;   
    Delay_50us(100) ;                           //50us*100=5ms    
    status=Config_SJA();                        //配置sja1000    
    InitCPU();                                  //初始化    
    if(status!=0) Error_disp(status);           //配置sja1000出現(xiàn)錯誤    
    else   
    { Disp_Can();                               //無措顯示CAN1    
      Exe_Scon(0xaa,0,0);   
    }   
    Write_Xdata(0x00);   
                                                //設(shè)置并行方式    
    TimeOut_Start(20);                          //20*50us=1ms,定時周期1ms    
    while(1)   
    {   
        if(_testbit_(T0IR))                     //ms時間到    
        {   
          i++;   
          LED_SelBit();                         //位選    
          Key_Scan();   
          Show_LED();   
          if(i>=SendFrq)   
          {   
            i=0;   
            AutoSendDataToCanBus();   
          }   
          TimeOut_Start(20);                    //20*50us=1ms,定時周期1ms    
        }   
    //  CanBusFlag=Read_Xdata(REG_INTERRUPT);    
        if(_testbit_(CanRcv_Good))  CanRcv_Prg();   //是接收中斷標(biāo)志    
        if(_testbit_(CanSend_Good)) CanSend_Prg();  //是發(fā)送中斷標(biāo)志    
        if(_testbit_(CanErrFlag))   CanErr_Prg();   //是錯誤中斷標(biāo)志    
        if(_testbit_(CanDtOverFlag))CanDtOver_Prg();//是超載中斷標(biāo)志    
        if(_testbit_(CanWuiFlag))   CanWui_Prg();   //是喚醒中斷標(biāo)志    
        if(_testbit_(UartRcvGood))  UartRcv_Prg();  //串口接收成功標(biāo)志    
   
        Key_handle();                               //鍵盤隊列處理    
    }   
   
}   
   
   
/*-------------------------------------------------------------------------------------------  
 按鍵隊列處理程序               
 -------------------------------------------------------------------------------------------*/    
void      Key_handle(void)   
{   
    uchar TempData;    
    TempData=PopKey();   
    switch(TempData)   
    {   
      case  Key0:   
            SearchKey();   
            break;   
      case  Key1:   
            IncKey();   
            break;   
      case  Key2:   
            break;   
      case  Key3:   
            QuitKey();   
            break;   
      case  Key4:   
            FundationKey();   
            break;   
      case  Key5:   
            MoveKey();   
            break;   
      case  Key6:   
            EnterKey();   
            break;   
      case  Key7:   
            CanSendKey();   
            break;   
   
      default:   
            break;   
    }   
   
}   
   
   
   
//功能鍵處理    
bit       FunckeyFlag=0;                      //進入功能標(biāo)志      
static    uchar     data FunckeyCount;        //功能選項計數(shù)    
void      FundationKey(void)   
{   
    uchar   i;   
  ClearDispAttr();   
  MoveFlag=0;   
    AutoSendFlag =0;   
  if(FunckeyFlag)   
  {   
    if(++FunckeyCount>3)FunckeyCount=0;   
    switch(FunckeyCount)   
    {   
      case  0:   
            FunckeyFlag=0;   
            Disp_Can();                       //上電顯示CAN1    
            DispFlag=0x00;   
            break;   
      case  1:   
            if((ReadSjaReg(REG_CONTROL)&0x01)==0)   
            {   
                Write_DispBuf(0,0x0b,0x01,0,0);    //進入b功能    
                FlightLed3=1;                      //led3閃爍    
                FlightLed4=0;ClearLed4=0;    
            }   
            else   
            {   
                Write_DispBuf(0,0x0b,0x12,0x12,0x12);    //進入b功能    
            }   
            break;   
      case  2:   
            Write_DispBuf(0,0x0c,0x01,0,0);       //進入c功能    
            FlightLed3=1;                         //led3閃爍    
            FlightLed4=0;ClearLed4=0;    
            break;   
      case  3:   
            Write_DispBuf(0,0x05,0x0d,0,0);       //進入自動發(fā)送功能    
            FlightLed3=1;                         //led3閃爍    
            FlightLed4=0;ClearLed4=0;    
            break;   
      default:   
            AutoSendFlag=0;   
            break;   
    }   
  }   
  else   
  {   
     FunckeyFlag=1;   
     BCAN_ENTER_RETMODEL();   
     i = ReadSjaReg(REG_ACR);   
     Write_DispBuf(0,0x0a,0x01,i>>4,i&0x0f);       //a1功能    
     BCAN_QUIT_RETMODEL();   
     FlightLed3=1;                         //led3閃爍    
    FlightLed4=0;ClearLed4=0;    
  }   
}   
   
 //檢索鍵處理    
static    uchar  data  SearchCount;        //檢索計數(shù)器    
void      SearchKey(void)                  //檢索鍵    
{   
    uchar   i;   
  if(FunckeyFlag)   
  {   
    switch(DispBuf[1])   
    {   
      case  0x0a:   
            SearchCount=DispBuf[2];        //檢索a功能項      
            if(++SearchCount>3)SearchCount=1;   
            DispBuf[2]=SearchCount;   
            switch(SearchCount)   
            {   
                case 1:   
                    BCAN_ENTER_RETMODEL();   
                    i = ReadSjaReg(REG_ACR);   
                    Write_DispBuf(0,0x0a,0x01,i>>4,i&0x0f);       //a1功能    
                    BCAN_QUIT_RETMODEL();      
                    break;   
                case    2:   
                    BCAN_ENTER_RETMODEL();   
                    i = ReadSjaReg(REG_AMR);   
                    Write_DispBuf(0,0x0a,0x02,i>>4,i&0x0f);       //a2功能      
                    BCAN_QUIT_RETMODEL();   
                    break;   
                case    3:   
                    i = ValueToBandRate();   
                    Write_DispBuf(0,0x0a,0x03,i>>4,i&0x0f);       //a3功能      
                    break;   
                default:   
                    SearchCount =1;   
                    break;   
            }   
            break;   
      case  0x0b:                           //檢索b功能項    
            if((ReadSjaReg(REG_CONTROL)&0x01)==0)   
            {    
                SearchCount=DispBuf[2];            
                if(++SearchCount>10)SearchCount=1;   
                DispBuf[2]=SearchCount;   
                switch(SearchCount)   
                {   
                    case 1:   
                        i = ReadSjaReg(REG_TxBuffer1);   
                        break;   
                    case 2:   
                        i = ReadSjaReg(REG_TxBuffer2);   
                        break;   
                    case 3:   
                        i = ReadSjaReg(REG_TxBuffer3);   
                        break;   
                    case 4:   
                        i = ReadSjaReg(REG_TxBuffer4);   
                        break;   
                    case 5:   
                        i = ReadSjaReg(REG_TxBuffer5);   
                        break;   
                    case 6:   
                        i = ReadSjaReg(REG_TxBuffer6);   
                        break;   
                    case 7:   
                        i = ReadSjaReg(REG_TxBuffer7);   
                        break;   
                    case 8:   
                        i = ReadSjaReg(REG_TxBuffer8);   
                        break;   
                    case 9:   
                        i = ReadSjaReg(REG_TxBuffer9);   
                        break;   
                    case 10:   
                        i = ReadSjaReg(REG_TxBuffer10);   
                        break;   
                    default:   
                        i=0;   
                        break;   
                }   
                Write_DispBuf(0,0x0b,SearchCount,i>>4,i&0x0f);       //b功能        
   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av爱爱亚洲一区| 国产精品高潮呻吟| 日韩在线观看一区二区| 欧美色男人天堂| 亚洲h在线观看| 欧美裸体一区二区三区| 五月激情六月综合| 日韩区在线观看| 激情五月婷婷综合网| 国产午夜一区二区三区| yourporn久久国产精品| 亚洲天堂免费看| 欧美欧美午夜aⅴ在线观看| 日本 国产 欧美色综合| 久久网这里都是精品| 成人在线视频首页| 夜夜精品视频一区二区| 91精品国产日韩91久久久久久| 伦理电影国产精品| 欧美电视剧在线观看完整版| 国产一区二区三区不卡在线观看| 久久精品视频免费| 97精品国产97久久久久久久久久久久 | 日韩欧美国产综合| 国产成人亚洲精品青草天美| 亚洲同性gay激情无套| 7777精品伊人久久久大香线蕉的 | 成人黄色在线网站| 亚洲乱码一区二区三区在线观看| 欧美日韩国产另类不卡| 国产精品一区不卡| 亚洲五月六月丁香激情| 91精品福利在线一区二区三区 | 亚洲一区在线免费观看| 日韩欧美综合一区| 91视频在线观看免费| 日韩vs国产vs欧美| 中文字幕色av一区二区三区| 欧美三级中文字幕| 狠狠色狠狠色综合系列| 亚洲综合丁香婷婷六月香| 久久亚洲捆绑美女| 欧美日本一道本| 97精品国产露脸对白| 久久99国产精品久久99| 一区二区三国产精华液| 日本一区二区综合亚洲| 777欧美精品| 色综合久久综合中文综合网| 精品亚洲成a人| 一区二区三区在线看| 久久品道一品道久久精品| 欧美日韩国产综合视频在线观看| 国产高清精品网站| 天堂va蜜桃一区二区三区漫画版| 国产精品成人网| 久久久久久久综合色一本| 91麻豆精品国产91久久久| 99re视频精品| 成人毛片在线观看| 国产一区二区美女诱惑| 美洲天堂一区二卡三卡四卡视频| 亚洲综合在线电影| 国产精品电影院| 久久久久一区二区三区四区| 日韩你懂的在线观看| 欧美精品一级二级| 欧美性生交片4| 91福利视频网站| 久久精品亚洲乱码伦伦中文| 在线电影国产精品| 欧美日韩精品一区二区三区| 欧美曰成人黄网| 91香蕉视频在线| 99精品国产视频| 99久久国产综合精品女不卡| 国产宾馆实践打屁股91| 韩国欧美国产1区| 日韩成人av影视| 免费观看在线色综合| 麻豆精品一区二区av白丝在线| 污片在线观看一区二区 | 尤物视频一区二区| 亚洲精品国久久99热| 亚洲女人的天堂| 亚洲免费在线观看| 一区二区三区四区蜜桃| 亚洲综合一二三区| 亚洲18女电影在线观看| 亚洲国产精品一区二区www| 自拍偷拍国产精品| 亚洲影视在线观看| 天堂成人免费av电影一区| 日韩精品亚洲一区| 久久精品二区亚洲w码| 久久国产精品色| 国产剧情一区二区| av高清久久久| 欧美系列亚洲系列| 日韩精品中文字幕一区| 欧美成人精品3d动漫h| 久久无码av三级| 国产精品的网站| 亚洲一区二区三区四区五区中文 | 国产成人免费视频| 波多野结衣的一区二区三区| 色悠悠亚洲一区二区| 7777精品伊人久久久大香线蕉| 日韩三级精品电影久久久| 国产免费观看久久| 亚洲成国产人片在线观看| 全国精品久久少妇| 成人免费看视频| 欧美视频完全免费看| 欧美xxxx老人做受| 亚洲欧美日韩国产另类专区| 五月婷婷激情综合| 国产精品自产自拍| 色视频一区二区| 精品99一区二区三区| 亚洲三级免费观看| 久久成人久久爱| 色综合视频一区二区三区高清| 91精品国模一区二区三区| 国产欧美日韩精品一区| 亚洲一区二区三区在线播放| 国产美女精品人人做人人爽| 日本精品免费观看高清观看| 日韩欧美在线观看一区二区三区| 日本一区二区综合亚洲| 日韩国产高清在线| 99国产精品久久久久| 精品国产自在久精品国产| 亚洲精品老司机| 国产麻豆精品95视频| 欧美老肥妇做.爰bbww| 欧美国产在线观看| 免费成人美女在线观看.| 91蝌蚪porny成人天涯| 国产视频一区二区在线观看| 亚洲五码中文字幕| 91一区二区三区在线观看| 精品国免费一区二区三区| 亚洲午夜私人影院| 一本大道久久a久久综合婷婷| 精品国产一区a| 日韩高清在线一区| 欧美性猛片xxxx免费看久爱| 欧美国产综合色视频| 精品一区二区在线播放| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久亚洲精品国产精品紫薇| 琪琪一区二区三区| 欧美日韩成人综合| 一区二区三区在线免费播放| 成人国产精品免费观看| 亚洲国产精品精华液ab| 精品一区二区三区蜜桃| 欧美一区二区三区免费在线看| 一级日本不卡的影视| 99re热这里只有精品视频| 国产精品黄色在线观看| 国产成人精品一区二区三区四区| 91精品国产91久久久久久一区二区| 亚洲国产cao| 欧美色网站导航| 亚洲一级在线观看| 欧美日韩免费视频| 丝袜亚洲精品中文字幕一区| 欧美日韩一区二区不卡| 亚洲午夜激情av| 欧美人妖巨大在线| 日韩精品电影在线观看| 337p亚洲精品色噜噜| 免费看欧美美女黄的网站| 91精品一区二区三区久久久久久 | 在线观看区一区二| 一区二区三区四区视频精品免费| 91视频在线观看| 亚洲精品久久7777| 欧美男同性恋视频网站| 日本欧美一区二区三区乱码| 欧美一二三四区在线| 九九**精品视频免费播放| 2021中文字幕一区亚洲| 高清国产一区二区| 亚洲欧美偷拍另类a∨色屁股| 99r精品视频| 性久久久久久久久久久久| 欧美一二三区在线观看| 国产一区二区三区四区五区入口 | 9191成人精品久久| 久久国产精品99久久久久久老狼| 欧美电影免费观看高清完整版| 国产精品一区二区三区乱码| 国产精品久久久久久福利一牛影视| 色综合久久久久综合99| 日韩精品福利网| 国产精品免费看片| 欧美三级资源在线|