freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于can總線的單片機(jī)監(jiān)控系統(tǒng)-資料下載頁(yè)

2024-11-07 03:20本頁(yè)面

【導(dǎo)讀】它作為工廠數(shù)字通信網(wǎng)路的基礎(chǔ),溝通了生產(chǎn)過(guò)程現(xiàn)場(chǎng)及控制設(shè)備之間及其與更高控制管理層。它不僅是一個(gè)基層網(wǎng)絡(luò),而且還是一種開(kāi)放式、新型全分布控制系統(tǒng)。傳感、控制、計(jì)算機(jī)、數(shù)字通訊等技術(shù)為主要內(nèi)容的綜合技術(shù)。夠接收和處理現(xiàn)場(chǎng)信號(hào)并能將處理好的信號(hào)發(fā)送給現(xiàn)場(chǎng)控制器和現(xiàn)場(chǎng)執(zhí)行器完成轉(zhuǎn)換任務(wù)。個(gè)人的獨(dú)立科研及設(shè)計(jì)能力。CAN-bus被設(shè)計(jì)作為汽車(chē)環(huán)境中的微控制器通訊工具,用于在車(chē)載各電子控制裝置ECU之間交換信息,從。如今,CAN-bus作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的遠(yuǎn)程網(wǎng)??偩€將是大勢(shì)所趨??刂频目偩€式串行通信網(wǎng)絡(luò),具有物理層,數(shù)據(jù)鏈路層和應(yīng)用層三層協(xié)議。CAN總線各節(jié)點(diǎn)之間依據(jù)優(yōu)先權(quán)進(jìn)行總線訪問(wèn),以廣。CAN節(jié)點(diǎn)的80%應(yīng)用于車(chē)輛,其余應(yīng)用于嵌入式。當(dāng)節(jié)發(fā)生嚴(yán)重錯(cuò)誤時(shí),CAN可自動(dòng)關(guān)閉該節(jié)點(diǎn),同時(shí)切斷與總線的聯(lián)系,以使總線上其它節(jié)點(diǎn)不受影響,CAN為多主工作方式,也就是說(shuō)網(wǎng)絡(luò)上的任何一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信

  

【正文】 11[4]={0x01,0x01,0x00,0x05}。 uchar send_frame20[4]={0x01,0x02,0x00,0x04}。 uchar send_frame21[4]={0x01,0x02,0x00,0x05}。 uchar send_frame30[4]={0x01,0x03,0x00,0x04}。 uchar send_frame31[4]={0x01,0x03,0x00,0x05}。 void PORT_Init(void)。 void SYSCLK_Init(void)。 void delay(uint time1)。 void write_byte(uchar address_sja,uchar byte_sja)。 uchar read_byte(uchar address_sja)。 void SJA1000_Init(void)。 void SJA1000_Send_frame(uchar *temp)。 uchar SJA1000_Receive_frame(void)。 void main(void) { uchar receive_frame=0。 uchar lin1=0。 SYSCLK_Init ()。 PORT_Init ()。 PCA0MD amp。= ~0x40。 BUFFER=1。 LED=1。 EA=0。 CS_sja=0。 SJA1000_Init()。 while(1) { if(BUTTON==0) { delay(500)。 if(BUTTON==0) { count=count+1。 if(count==1) { SJA1000_Send_frame(send_frame20)。 delay(1000)。 } if(count==2) { SJA1000_Send_frame(send_frame21)。 delay(1000)。 SJA1000_Send_frame(send_frame30)。 delay(1000)。 } if(count==3) { SJA1000_Send_frame(send_frame31)。 count=0。 delay(1000)。 } while(BUTTON==0)。 } } receive_frame=SJA1000_Receive_frame()。 if(receive_symbol==1) { receive_symbol=0。 if(receive_frame==0x04) { lin1=~lin1。 receive_frame=0。 } if(receive_frame==0x05) { lin1=0。 BUFFER=1。 receive_frame=0。 } } if(lin1) } BUFFER=1。 delay(1000)。 BUFFER=0。 delay(1000)。 }}} void SYSCLK_Init (void) { OSCICN = 0x83。 RSTSRC = 0x04。 } void PORT_Init (void) { XBR0 = 0x00。 XBR1 = 0x40。 P0MDIN=0xFF。 P0MDOUT= 0x00。 P1MDIN=0xFF。 P1MDOUT=0x06。 P2MDIN=0xFF。 P2MDOUT= 0x00。 P3MDIN=0xFF。 P3MDOUT= 0x00。 } void delay(uint time1) { uint lin1,lin2。 for(lin1=0。lin1time1。lin1++) { lin2=time1。 while(lin2)。}} uchar read_byte(uchar address_sja) { uchar byte_sja。 READ_sja=1。 WRITE_sja=1。 ALE_sja=1。 delay(1)。 P2=address_sja。 delay(1)。 ALE_sja=0。 P2=0xFF。 READ_sja=0。 byte_sja=P2。 delay(1)。 READ_sja=1。 ALE_sja=0。 delay(10)。 return(byte_sja)。 } void write_byte(uchar address_sja,uchar byte_sja) { READ_sja=1。 WRITE_sja=1。 ALE_sja=1。 delay(2)。 P2=address_sja。 delay(2)。 ALE_sja=0。 delay(1)。 P2=byte_sja。 WRITE_sja=0。 delay(10)。 WRITE_sja=1。 ALE_sja=1。 delay(10)。 } void SJA1000_Init(void) { uchar readback_data_sja。 delay(100)。 RST_sja=0。 delay(100)。 RST_sja=1。 delay(100)。 write_byte(sja1000_MOD,0x01)。 do { readback_data_sja=read_byte(sja1000_MOD)。 } while(readback_data_sjaamp。0x01==0x00)。 write_byte(sja1000_BTR0,0x85)。 write_byte(sja1000_BTR1,0xb4)。 write_byte(sja1000_OCR,0x1a)。 write_byte(sja1000_CDR,0xc8)。 write_byte(sja1000_RBSA,0x00)。 write_byte(sja1000_ACR0,0x01)。 write_byte(sja1000_ACR1,0x00)。 write_byte(sja1000_ACR2,0xFF)。 write_byte(sja1000_ACR3,0xFF)。 write_byte(sja1000_AMR0,0x00)。 write_byte(sja1000_AMR1,0x0F)。 write_byte(sja1000_AMR2,0xFF)。 write_byte(sja1000_AMR3,0xFF)。 write_byte(sja1000_IER,0xFD)。 write_byte(sja1000_MOD,0x0C)。 } void SJA1000_Send_frame(uchar *temp) { uchar readback_data_sja。 do { readback_data_sja=read_byte(sja1000_SR)。 } while(readback_data_sjaamp。0x04==0)。 write_byte(sja1000_CMR,0x04)。 write_byte(sja1000_TX_FrameInfo ,temp[0])。 write_byte(sja1000_TX_Buffer1,temp[1])。 write_byte(sja1000_TX_Buffer2,temp[2])。 write_byte(sja1000_TX_Buffer3,temp[3])。 write_byte(sja1000_CMR,0x01)。 do { readback_data_sja=read_byte(sja1000_SR)。 } while(readback_data_sjaamp。0x08==0)。 } uchar SJA1000_Receive_frame(void) { uchar readback_data_sja=0。 uchar receive_frame=0。 readback_data_sja=read_byte(sja1000_IR)。 if(readback_data_sjaamp。0x01==0x01) { receive_frame=read_byte(sja1000_TX_Buffe 3)。 write_byte(sja1000_CMR,0x04)。 receive_symbol=1。 do { readback_data_sja=read_byte(sja1000_IR)。} while(readback_data_sja|0xFE==0xFF)。 return(receive_frame)。 } } 6 CAN 總線的單片機(jī)監(jiān)控系統(tǒng)原理圖設(shè)計(jì) 設(shè)計(jì)說(shuō)明 微處理器 AT89C51 負(fù)責(zé) SJA1000 的初始化,通過(guò)控制 SJA1000 實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通 電路主要由通信控制器 SJA1000、微處理器 C8051F3獨(dú)立 CAN 總線發(fā)報(bào)器 P82C250、高速光電耦合器 6N137組成。接口電路如圖 33 所示。 信任務(wù),設(shè)計(jì)中, SJA1000的地址 /數(shù)據(jù)總線 AD0~AD7 分別連接到 C8051F310的 P2口, CS連接到 C8051F310 的 , SJA1000 的 RD、 WR、 ALE 分別與 C8051F310 的 , ,引腳相連, INT 接 C8051F310 的 引腳, RST 接 C8051F310 的 引腳。 在設(shè)計(jì)硬件電路時(shí),要注意到以下幾點(diǎn): 為了 CAN 總線節(jié)點(diǎn)的抗干擾能力, SAJ1000 的 TX0 和 RX0 并不是直接與 82C250 的 TXD 和 RXD相連,而是通過(guò)高速光電耦合器 6N137 后 PAC82C250 相連,這樣就很好 地實(shí)現(xiàn)了總線上各 CAN 節(jié)點(diǎn)之間的電氣隔離,不過(guò)需特別說(shuō)明的一點(diǎn)是光耦部分電路所采用的兩個(gè)電源 VCC 和 VDD 必須完全隔離,否則采用光耦也就失去了意義。 PCA82C250 與 CAN 總線的接口部分也要采取了一定的安全和抗干擾措施, PAC82C250 的 CANH和 CANL 引腳各自通過(guò) 1 個(gè) 5 歐的電阻與 CAN 總線相連,電阻可起到一定的限流作用,保護(hù) PAC82C250免受過(guò)流的沖擊, CANH 和 CANL 與地之間并聯(lián)了 2 個(gè) 30pF 的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的作用,另外在兩根 CAN 總線接入端與 地之間分別反接了一個(gè)保護(hù)二極管,當(dāng) CAN總線有較高的負(fù)電壓時(shí),通過(guò)二極管的短路可起到一定的過(guò)壓保護(hù)作用 總線兩端應(yīng)接有兩個(gè) 120 的電阻,對(duì)于匹配總線阻抗起
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1