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

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

?? canmain.c

?? C8051F020控制的SJA1000can總線芯片的驅動程序
?? C
字號:
#pragma  REGPARMS
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "c8051f020.h"
#include "can20.h"
#define BAUDRATE  115200              // Baud rate of UART in bps
#define SYSCLK    22118400          // SYSCLK frequency in Hz
unsigned char SendBuffer[11];
unsigned char GetBuffer[11];
unsigned char GETOK;
void config (void) {

//Local Variable Definitions
	WDTCN = 0x07;	// Watchdog Timer Control Register
    WDTCN = 0xDE;   // Disable WDT
    WDTCN = 0xAD;

	XBR0 = 0xEF;	// XBAR0: Initial Reset Value
	XBR1 = 0x07;	// XBAR1: Initial Reset Value
	XBR2 = 0x44;	// XBAR2: Initial Reset Value
// Port configuration (1 = Push Pull Output)
    P0MDOUT = 0x1D; // Output configuration for P0 
    P1MDOUT = 0x01; // Output configuration for P1 
    P2MDOUT = 0x03; // Output configuration for P2 
    P3MDOUT = 0x00; // Output configuration for P3 
    P74OUT = 0xff;  // Output configuration for P4-7
    P1MDIN = 0xFF;  // Input configuration for P1
// View port pinout

		// The current Crossbar configuration results in the 
		// following port pinout assignment:
		// Port 0
		// P0.0 = UART TX0        (Push-Pull Output)
		// P0.1 = UART RX0        (Open-Drain Output/Input)
		// P0.2 = SPI Bus SCK     (Push-Pull Output)
		// P0.3 = SPI Bus MISO    (Push-Pull Output)
		// P0.4 = SPI Bus MOSI    (Push-Pull Output)
		// P0.5 = SPI Bus NSS     (Open-Drain Output/Input)
		// P0.6 = SMBus SDA       (Open-Drain Output/Input)
		// P0.7 = SMBus SCL       (Open-Drain Output/Input)

		// Port 1
		// P1.0 = UART TX1        (Push-Pull Output)(Digital)
		// P1.1 = UART RX1        (Open-Drain Output/Input)(Digital)
		// P1.2 = PCA CEX0        (Open-Drain Output/Input)(Digital)
		// P1.3 = PCA CEX1        (Open-Drain Output/Input)(Digital)
		// P1.4 = PCA CEX2        (Open-Drain Output/Input)(Digital)
		// P1.5 = PCA CEX3        (Open-Drain Output/Input)(Digital)
		// P1.6 = PCA CEX4        (Open-Drain Output/Input)(Digital)
		// P1.7 = PCA ECI         (Open-Drain Output/Input)(Digital)
					
		// Port 2		
		// P2.0 = CP0             (Push-Pull Output)
		// P2.1 = CP1             (Push-Pull Output)
		// P2.2 = T0              (Open-Drain Output/Input)
		// P2.3 = /INT0           (Open-Drain Output/Input)
		// P2.4 = GP I/O          (Open-Drain Output/Input)
		// P2.5 = GP I/O          (Open-Drain Output/Input)
		// P2.6 = GP I/O          (Open-Drain Output/Input)
		// P2.7 = GP I/O          (Open-Drain Output/Input)

		// Port 3		
		// P3.0 = GP I/O          (Open-Drain Output/Input)
		// P3.1 = GP I/O          (Open-Drain Output/Input)
		// P3.2 = GP I/O          (Open-Drain Output/Input)
		// P3.3 = GP I/O          (Open-Drain Output/Input)
		// P3.4 = GP I/O          (Open-Drain Output/Input)
		// P3.5 = GP I/O          (Open-Drain Output/Input)
		// P3.6 = GP I/O          (Open-Drain Output/Input)
		// P3.7 = GP I/O          (Open-Drain Output/Input)

    EMI0CF = 0x24;    // External Memory Configuration Register
	EMI0CN=0x00;
    EMI0TC=0x01;
}
void SYSCLK_Init (void)
{
   int data i;                              // delay counter
   OSCXCN = 0x67;                      // start external oscillator with
                                       // 22.1184MHz crystal
   for (i=0; i < 256; i++) ;           // XTLVLD blanking interval (>1ms)
   while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle
   OSCICN = 0x88;                      // select external oscillator as SYSCLK
                                       // source and enable missing clock
                                       // detector
}
void UART0_Init (void)
{
   SCON0   = 0x50;                     // SCON0: T1 mode 1, 8-bit UART, enable RX
                                      
   TMOD    = 0x21;                     // TMOD: timer 1, mode 2, 8-bit reload
                                       // T0 16 bit Timer
   T2CON &= 0x0cf;                     //select T1 as  baudrate 
   TH1    = -(SYSCLK/BAUDRATE/16);     // set Timer1 reload value for baudrate
   TR1    = 1;                         // start Timer1
   CKCON |= 0x10;                      // Timer1 uses SYSCLK as time base
   PCON  |= 0x80;                      // SMOD00 = 1
   
}
unsigned char Can_Init(void)
{
 unsigned char tt;
 unsigned int i;
 P3=0xff;
 for(i=0;i<1000;i++);
 P3=0x00;
 for(i=0;i<1000;i++);
 P3=0xff;
 for(i=0;i<1000;i++);
 ModeControlReg= RM_RR_Bit;
 tt=ModeControlReg;
 ClockDivideReg=0x88;
 InterruptEnReg=0xff;
 BusTiming0Reg= 0x03; //100 K
 BusTiming1Reg=0x2f;
 AcceptCode0Reg=0x57;
 AcceptCode1Reg=0x00;
 AcceptCode2Reg=0xaa;
 AcceptCode3Reg=0x55;
 AccepMask0Reg=0x00;
 AccepMask1Reg=0xff;
 AccepMask2Reg=0xff;
 AccepMask3Reg=0xff;
 
 RxBufstartAdr=0;
 TxErrCountReg=0;
 RxErrCountReg=0;
 ErrCodeCapReg=0;
 OutControlReg=0x1a;
 ModeControlReg=AFM_Bit;
 
 tt=StatusReg;
 while(tt==0x10)
 tt=StatusReg; 
 return tt;
}
unsigned char WriteCan()
{
 unsigned char * xdata tt;
 unsigned int i;
 unsigned char tt1;
 SendBuffer[0]=0x08;
 SendBuffer[1]=0x01;
 SendBuffer[2]=0x08;
 SendBuffer[3]=0x57;
 SendBuffer[4]=0x00;
 SendBuffer[5]=0x00;
 SendBuffer[6]=0x0;
 SendBuffer[7]=0x0;
 SendBuffer[8]=0x0;
 SendBuffer[9]=0x0;
 SendBuffer[10]=0x0;
 tt=&TxFramInFo;
 
 tt1=StatusReg;
 while((tt1&RS_Bit)!=0x00)
 tt1=StatusReg; 
 
 tt1=StatusReg;
 while((tt1&TCS_Bit)==0x00)
 tt1=StatusReg;
 for(i=0;i<11;i++)
 {*tt=SendBuffer[i];
  tt++;
 }
 CommandReg=TR_Bit;
 tt1=StatusReg;
 tt1=InterruptReg;
 return tt1;
}
void INTE0_ISR (void) interrupt 0
{
  unsigned char tt1;
  unsigned char * xdata tt;
  unsigned int i,count;
  tt1=InterruptReg;
  if((tt1&0x80)!=0)
  {ModeControlReg=AFM_Bit;
   return;
  }
  if((tt1&0x08)!=0)
  {CommandReg=0x0c;
   return;
  }
  if((tt1&0x01)!=0)
  {tt=&RxFramInFo;
   count=(*tt&0x0f);
   if((*tt&0x80)==0)
   count+=3;
   else
   count+=5;
   for(i=0;i<count;i++)
   {GetBuffer[i]=*tt;
    tt++;
   }
  for(i=0;i<count;i++)
  {SBUF0=GetBuffer[i];
   while(TI0==0);
   TI0=0;
   }
  CommandReg=RRB_Bit;
  GETOK=1;
  }
  tt1=ArbLostCapReg;
  tt1=ErrCodeCapReg; 
  return;
}
main()
{
 SYSCLK_Init();
 config();
 UART0_Init();


 Can_Init();
 EA=1;
 EX0=1;
 GETOK=1;
 while(1)
 if(GETOK==0x01)
 {WriteCan();
 // GETOK=0;
 } 
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产伦精品一区二区三区视频青涩| 日本高清不卡视频| 精品日韩av一区二区| 爽爽淫人综合网网站| 欧美久久久久久蜜桃| 日韩电影免费在线看| 欧美成人免费网站| 国产69精品久久777的优势| 国产欧美日本一区二区三区| 成人动漫在线一区| 1区2区3区国产精品| 欧洲一区二区三区免费视频| 日韩av网站在线观看| 欧美xxxxx裸体时装秀| 国产91露脸合集magnet | 国产91精品久久久久久久网曝门 | 久久国产生活片100| 久久网站热最新地址| 成人高清免费在线播放| 亚洲综合在线观看视频| 欧美精选一区二区| 国产成人精品影视| 亚洲一区在线电影| 精品免费国产二区三区| 成人av一区二区三区| 性久久久久久久久| 国产日韩精品一区| 欧美日韩精品专区| 国产一区二区三区黄视频| 自拍偷在线精品自拍偷无码专区| 欧美人伦禁忌dvd放荡欲情| 国产一区二区精品久久99| 亚洲综合一区二区三区| 精品国产网站在线观看| 91美女视频网站| 国产最新精品免费| 亚洲成av人综合在线观看| 久久久精品人体av艺术| 欧美日韩中文字幕一区二区| 国产专区综合网| 亚洲大片一区二区三区| 国产精品美女久久久久aⅴ| 欧美一区二区久久| 色综合天天做天天爱| 久久精品72免费观看| 一区二区三区在线免费播放| 国产三区在线成人av| 欧美一区日韩一区| 日本道色综合久久| 福利视频网站一区二区三区| 蜜桃av噜噜一区| 亚洲国产成人高清精品| 中文字幕第一区综合| 日韩欧美一区二区免费| 欧美最猛性xxxxx直播| www.亚洲色图| 国产成人夜色高潮福利影视| 日韩国产精品91| 亚洲一区二区三区爽爽爽爽爽| 国产丝袜欧美中文另类| 欧美va亚洲va| 欧美一区二区久久久| 欧美日韩亚洲不卡| 在线视频你懂得一区二区三区| 国产精品主播直播| 国产剧情一区二区| 精品一区二区免费在线观看| 日韩和欧美的一区| 午夜私人影院久久久久| 亚洲第一会所有码转帖| 亚洲成av人片在www色猫咪| 亚洲欧美激情在线| 亚洲精品第一国产综合野| 1024国产精品| 日韩毛片精品高清免费| 亚洲人一二三区| 亚洲日本在线观看| 亚洲猫色日本管| 亚洲欧洲99久久| 日韩理论电影院| 亚洲精品成人少妇| 亚洲电影中文字幕在线观看| 亚洲精品国产视频| 亚洲成人免费在线| 免费高清成人在线| 经典三级一区二区| 国产高清无密码一区二区三区| 国产精品一区在线观看你懂的| 国产精品一区免费在线观看| 国产成人精品一区二| jiyouzz国产精品久久| 色综合视频在线观看| 色88888久久久久久影院野外| 色视频一区二区| 欧美精品久久久久久久久老牛影院 | 欧美国产激情一区二区三区蜜月| 国产人成一区二区三区影院| 国产精品网友自拍| 亚洲制服丝袜一区| 天天亚洲美女在线视频| 久久97超碰国产精品超碰| 国产福利一区在线| 色哟哟国产精品免费观看| 欧美伦理电影网| 久久精品视频一区二区| 亚洲日本成人在线观看| 一区二区三区毛片| 久久99国产精品免费| 久久青草国产手机看片福利盒子 | 一区二区三区中文字幕电影| 亚洲精品视频在线看| 婷婷开心激情综合| 久草热8精品视频在线观看| 成人午夜av电影| 在线免费一区三区| 日韩精品一区二区三区视频在线观看| 精品成人一区二区| 亚洲欧洲精品成人久久奇米网| 香蕉久久一区二区不卡无毒影院| 国产自产v一区二区三区c| 91视频在线看| 精品国产伦一区二区三区观看体验| 国产精品激情偷乱一区二区∴| 亚洲国产aⅴ天堂久久| 国产黄人亚洲片| 欧美日韩免费高清一区色橹橹| 欧美精品一区二区三区在线播放| 亚洲视频免费在线观看| 精品亚洲porn| 欧美午夜在线观看| 国产精品欧美一区二区三区| 免费成人av在线| 色婷婷av一区二区三区大白胸| 亚洲欧美影音先锋| 久久av中文字幕片| 亚洲欧美日韩国产综合| 成人av动漫在线| 亚洲电影一区二区三区| 欧美精品vⅰdeose4hd| 精品一区二区免费视频| 一区二区久久久久久| 91精品国产综合久久久久久| 洋洋成人永久网站入口| 久久精品99久久久| 欧美久久一二区| 亚洲激情av在线| 不卡一区中文字幕| 久久精品亚洲国产奇米99| 日韩在线a电影| 日本精品视频一区二区| 中文在线一区二区| 国产美女av一区二区三区| 欧美一区二区三区不卡| 亚洲成人午夜影院| 在线精品国精品国产尤物884a| 国产精品日日摸夜夜摸av| 国产精品综合一区二区三区| 欧美一区二区福利在线| 亚洲成人av一区二区| 一本久久a久久免费精品不卡| 亚洲国产高清在线观看视频| 韩国成人在线视频| 亚洲天堂福利av| 日韩欧美一区二区视频| 国产精品国产三级国产普通话99| 国产综合色在线视频区| 欧美r级在线观看| 精品无人码麻豆乱码1区2区| 日韩精品一区二区三区视频播放| 欧美a一区二区| 欧美va亚洲va香蕉在线| 韩国三级中文字幕hd久久精品| 日韩一级视频免费观看在线| 另类小说图片综合网| 久久天堂av综合合色蜜桃网| 黄页网站大全一区二区| 日本一区二区三区国色天香| 国产老女人精品毛片久久| 亚洲国产岛国毛片在线| 成人福利视频在线| 亚洲日本一区二区三区| 欧美在线色视频| 免费在线看成人av| 久久久久久久久久久电影| 夫妻av一区二区| 亚洲综合激情网| 69堂精品视频| 国产剧情一区二区| 最新国产成人在线观看| 欧美午夜一区二区三区| 视频一区二区中文字幕| 精品国产网站在线观看| 成人综合婷婷国产精品久久蜜臀| 亚洲欧洲国产专区| 欧美肥妇free| 国产一区二区三区免费看| 综合激情成人伊人| 欧美另类一区二区三区| 国产精品一区二区黑丝| 国产精品国产三级国产普通话三级 |