[討論] 如何用下列這些程式碼改成超音波紅外線

看板MATLAB作者 (Chu)時間11年前 (2014/01/09 22:35), 編輯推噓-1(010)
留言1則, 1人參與, 最新討論串1/1
//********************************************************** //* Ex10_1_ADC.c //********************************************************** #include <p18f4520.h> //納入微控制器定義檔 #include <delays.h> //納入時間延遲函式庫定義檔 #include <adc.h> //納入類比訊號轉換函式庫定義檔 // 結構位元定義 #pragma config OSC=HS, WDT=OFF, LVP=OFF void main () { PORTD = 0x00; // 將PORTD清除關閉LED TRISD = 0; // 將TRISD設為0,PORTD設定為輸出 // 開啟類比訊號轉換模組 //OpenADC(ADC_FOSC_32 & ADC_LEFT_JUST & ADC_20_TAD, //ADC_CH0 & ADC_INT_OFF & ADC_VREFPLUS_VDD & //ADC_VREFMINUS_VSS, 14); //OpenADC(ADC_FOSC_32 & ADC_LEFT_JUST & ADC_1ANA_0REF, ADC_CH0 & ADC_INT_OFF); ADCON0=0x01; // 選擇AN0通道轉換,開啟ADC模組 ADCON1=0x0E; // 使用VDD,VSS為參考電壓,設定AN0為類比輸入 ADCON2=0x3A; // 結果向左靠齊並設定轉換時間為Fosc/32,採樣時間為20TAD Delay10TCYx(5); //時間延遲以完成採樣 ConvertADC() ; //進行訊號轉換 while(BusyADC()); //等待轉換完成 PORTD = ADRESH ; //將高位元組結果傳至LED } } #include <p18f4520.h> #include<portb.h> #pragma config OSC=HS,PWRT=ON, WDT=OFF, LVP=OFF void F_Initial (void); void main (void) { F_Initial(); PORTB=0; LATD=0; ADCON1=0x0E; while ( 1 ) { if(PORTB==0b01000000) //紅外線010 LATD=0b00000101; //馬達(左)(右)前轉 if(PORTB==0b10000000) //紅外線100 LATD=0b00001001; //馬達(左)後轉(右)前轉 if (PORTB==0b00100000) //紅外線001 LATD=0b00000110; //馬達(左)前轉(右)後轉 if (PORTB==0b00000000) //紅外線000 LATD=0b00001010; //馬達(左)後轉(右)後轉 if (PORTB==0b11000000) //紅外線110 LATD=0b00000001; //馬達(左)不動(右)前轉 if (PORTB==0b01100000) //紅外線011 LATD=0b00000100; //馬達(左)前轉(右)不動 if (PORTB==0b11100000) //紅外線111 LATD=0b00000000; //馬達(左)(右)前轉 } } void F_Initial () { TRISD=0; TRISB=0xff; EnablePullups (); } (^X) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.245.175

01/10 12:36, , 1F
作業自己做
01/10 12:36, 1F
文章代碼(AID): #1IphEYF_ (MATLAB)
文章代碼(AID): #1IphEYF_ (MATLAB)