版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
//// 工程名稱: 汽車041項(xiàng)目目標(biāo)板3-6程序// 功能描述:CAN通信,繼電器控制,AD采集//IDE環(huán)境:ICCAVR//Init2515:2515初始化程序/===================================================================================#include"iom16v.h"#include"bit.h”#include"macros.h"#include"stdio.h" 〃標(biāo)準(zhǔn)輸入輸出頭文件#include”2515.h”#include"SPI_Ctrl.h”#include"Function.h"#include"CAN0.h”#include"MAX518.h”#include"AD.h”#pragmainterrupt_handlerExtint0:2#pragmainterrupt_handlertimer1_isr:9#defineuintunsignedint#defineucharunsignedchar/******************外部中斷常量******************/#defineGLOBAL7 〃全局中斷位宏定義#defineEXTINT06〃外部中斷0位宏定義#defineH_SRCLKPORTD|=(1<<6)〃上升沿移位#defineL_SRCLKPORTD&=~(1<<6)//下降沿不移位#defineH_SERPORTD|=(1<<7) //595串行數(shù)據(jù)輸#defineL_SERPORTD&=~(1<<7) //595串行數(shù)據(jù)輸#defineH_RCLKPORTD|=(1<<5)//595數(shù)據(jù)鎖存放開(kāi)#defineL_RCLKPORTD&=~(1<<5)//595數(shù)據(jù)鎖存ucharFlag=0,Flag1=0,pp=0;ucharReceive_Data=0,Start_Data=0;ucharCAN_TX_Buf[8],CAN_RX_Buf[8];//*************************************************************//*函數(shù)說(shuō)明:MCU端口初始化//*輸入:無(wú)//*輸出:無(wú)//*調(diào)用函數(shù)://*************************************************************//IO端口初始化voidport_init(void)//IO端口初始化DDRA=0x00;PORTA=0x00;DDRB=0xff;PORTB=0xff;DDRC=0xff;PORTC=0xff;DDRD=0xff;PORTD=0xff;/*******************************************函數(shù)名稱:Int_init功能:中斷初始化參數(shù):無(wú)返回值:無(wú)/********************************************/voidInt_init(void){SREG|=BIT(GLOBAL); 〃使能全局中斷MCUCR|=0x02; 〃外部中斷0采用下降沿觸發(fā)GICR|=BIT(EXTINT0);//使能外部中斷0DDRD&=~(BIT(PD2)); 〃配置中斷管腳為輸入PORTD|=BIT(PD2);〃使能中斷管腳的上拉}voidtimer1_init(void){TCCR1B=0x04;//256分頻TCNT1H=0Xff;〃賦初值TCNT1L=0Xfe;//賦初值TIMSK|=0x04;//中斷使能SREG|=0x80;//總中斷開(kāi)關(guān)}/*******************************************函數(shù)名稱:WR_74ls595(uchardata)功能:控制繼電器/********************************************/voidWR_74ls595(uchardata){uchari,dat;L_RCLK;for(i=0;i<8;i++){L_SRCLK;if(data&0x80)H_SER;elseL_SER;H_SRCLK;data<<=1;}H_RCLK;L_RCLK;}/*******************************************函數(shù)名稱:Data_get()功能:對(duì)上位機(jī)發(fā)過(guò)來(lái)的數(shù)據(jù)分析后返回需要設(shè)置的故障代碼/********************************************/voidData_get(){if(CAN_RX_Buf[0]==0x01)Start_Data=Start_Data|0x01;if(CAN_RX_Buf[0]==0x00)Start_Data=Start_Data&0xfe;if(CAN_RX_Buf[1]==0x01)Start_Data=Start_Data|0x02;if(CAN_RX_Buf[1]==0x00)Start_Data=Start_Data&0xfd;if(CAN_RX_Buf[2]==0x01)Start_Data=Start_Data|0x04;if(CAN_RX_Buf[2]==0x00)Start_Data=Start_Data&0xfb;if(CAN_RX_Buf[3]==0x01)Start_Data=Start_Data|0x08;if(CAN_RX_Buf[3]==0x00)Start_Data=Start_Data&0xf7;if(CAN_RX_Buf[4]==0x01)Start_Data=Start_Data|0x10;if(CAN_RX_Buf[4]==0x00)Start_Data=Start_Data&0xef;if(CAN_RX_Buf[5]==0x01)Start_Data=Start_Data|0x20;if(CAN_RX_Buf[5]==0x00)Start_Data=Start_Data&0xdf;if(CAN_RX_Buf[6]==0x01)Start_Data=Start_Data|0x40;if(CAN_RX_Buf[6]==0x00)Start_Data=Start_Data&0xbf;if(CAN_RX_Buf[7]==0x01)Start_Data=Start_Data|0x80;if(CAN_RX_Buf[7]==0x00)Start_Data=Start_Data&0x7f;if((CAN_RX_Buf[0]==0x55)&&(CAN_RX_Buf[7]==0x55))Flag1=1;if((CAN_RX_Buf[0]==0xaa)&&(CAN_RX_Buf[7]==0xaa))Flag1=0;/*******************************************函數(shù)名稱:Send_AD()功能:采集AD數(shù)據(jù)并通過(guò)can發(fā)送voidSend_AD(){delay10ms(20);//if(pp==0)CAN_TX_Buf[0]=mega16_ad(0);delay10ms(20);//if(pp==1)CAN_TX_Buf[1]=mega16_ad(1);delay10ms(20);//if(pp==2)CAN_TX_Buf[2]=mega16_ad(2);delay10ms(20);//if(pp==3)CAN_TX_Buf[3]=mega16_ad(3);delay10ms(20);//if(pp==4)CAN_TX_Buf[4]=mega16_ad(4);delay10ms(20);//if(pp==5)CAN_TX_Buf[5]=mega16_ad(5);delay10ms(20);//if(pp==6)CAN_TX_Buf[6]=mega16_ad(6);delay10ms(20);//if(pp==7)//{CAN_TX_Buf[7]=mega16_ad(7);delay10ms(20);CAN_Send(CAN_TX_Buf);//)/**************************************主函數(shù)****************************************/intmain(){unsignedchartemp;id_board=9;//******************修改板子代號(hào)*******************//port_init();Int_init(); 〃初始化中斷timer1_init();SPI_MasterInit();//SPI初始化,并啟動(dòng)Init2515();SEI();WR_74ls595(0x00);//所有繼電器不動(dòng)作while(1){if(Flag==1)//flag=1表示收到上位機(jī)下發(fā)的指令{Flag=0;CAN_Receive(CAN_RX_Buf);Data_get(); 〃處理得到的數(shù)據(jù)WR_74ls595(Start_Data); 〃控制繼電器動(dòng)作}if(Flag1==1){Send_AD();//發(fā)送數(shù)據(jù)//if(pp>=40)//{pp=o;//CAN_Send(CAN_TX_Buf);//)}return0;}/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 4706.92-2024家用和類似用途電器的安全第92部分:從空調(diào)和制冷設(shè)備中回收和/或再生制冷劑的器具的特殊要求
- 個(gè)人實(shí)習(xí)期轉(zhuǎn)正工作總結(jié)(15篇)
- 遵義市鳳岡縣招聘城鎮(zhèn)公益性崗位人員考試試卷及答案
- 福建長(zhǎng)樂(lè)區(qū)人民醫(yī)院招聘真題
- 瀘州市瀘縣事業(yè)單位招聘考試試卷及答案
- 黑龍江建筑職業(yè)技術(shù)學(xué)院招聘考試試卷及答案
- 《對(duì)剪花樣》微課教學(xué)設(shè)計(jì)
- 范文學(xué)期計(jì)劃范文合集9篇
- 銀行實(shí)習(xí)日記匯編十篇
- 學(xué)習(xí)委員競(jìng)選演講稿匯編八篇
- 一線員工安全心得體會(huì)范文(3篇)
- 初中物理科普知識(shí)
- 壓力性損傷的預(yù)防和護(hù)理培訓(xùn)
- 計(jì)劃考核管理辦法實(shí)施細(xì)則
- 2024年工裝夾具相關(guān)項(xiàng)目營(yíng)銷策略方案
- 通信系統(tǒng)施工方法和施工工藝(地鐵工程)
- 2022-2023學(xué)年無(wú)錫市高三語(yǔ)文上學(xué)期期中試題卷附答案解析
- 《物聯(lián)網(wǎng)技術(shù)綜合實(shí)訓(xùn)》課程標(biāo)準(zhǔn)
- 人工智能與智能交互設(shè)計(jì)
- 防范于未然安全無(wú)小事
- 水力機(jī)械原理與設(shè)計(jì)課件
評(píng)論
0/150
提交評(píng)論