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

正文內(nèi)容

[工學(xué)]華中科技大學(xué)c51單片機(jī)應(yīng)用與c語言程序設(shè)計課件-總綱(編輯修改稿)

2025-03-15 01:02 本頁面
 

【文章內(nèi)容簡介】 觸須(胡須)硬件 安裝好胡須的機(jī)器人 Slide 22 DEPUSH 中級機(jī)器人制作與編程 第四講 輸入接口與機(jī)器人觸覺導(dǎo)航 測試胡須 胡須電路圖 int P1_4state(void) //獲取 P1_4的狀態(tài) { return (P1amp。0x10)?1:0。 } int P2_3state(void) //獲取 P2_3的狀態(tài) { return (P2amp。0x08)?1:0。 } C語言的一種運(yùn)算符 —— ? 表達(dá)式 1 ? 表達(dá)式 2:表達(dá)式 3 Slide 23 ? 單片機(jī) AT89S52的四個端口 P0、 P P2和 P3是可以按位來操作,從低到高依次為第 0口、第 1口 …… 第 7口,書寫分別為 、 、 …… 、 ( X取 0到 3)。 ? P1amp。0x10和 P2amp。0x08分別提取了 ,屏蔽了其他位。 Slide 24 DEPUSH 中級機(jī)器人制作與編程 第四講 輸入接口與機(jī)器人觸覺導(dǎo)航 胡須導(dǎo)航 if((P1_4state()==0)amp。amp。(P2_3state()==0)) { Backward()。 Left_Turn()。 Left_Turn()。 } else if(P1_4state()==0) { Backward()。 Left_Turn()。 } else if(P2_3state()==0) { Backward()。 Right_Turn()。 } else Forward()。 兩邊同時碰到,后退,左轉(zhuǎn)兩次 } 右邊碰到,后退再左拐 } } 左邊碰到,后退再右拐 沒有障礙物,前進(jìn) Slide 25 DEPUSH 中級機(jī)器人制作與編程 第四講 輸入接口與機(jī)器人觸覺導(dǎo)航 當(dāng)機(jī)器人進(jìn)入墻角時,左胡須觸墻,于是它右轉(zhuǎn),向前行走,右胡須觸墻,于是左轉(zhuǎn)前進(jìn),又碰到左墻,再次碰到右墻 ? 。如果不是你把它從墻角拿出來,它就會一直困在墻角里而出不來。 逃離墻角死區(qū) 修改程序讓機(jī)器人碰到上述問題時逃離死區(qū)。技巧是記下胡須交替觸動的總次數(shù)。技巧的關(guān)鍵是程序必須記住每個胡須的前一次觸動狀態(tài),并和當(dāng)前觸動狀態(tài)對比。如果狀態(tài)相反,就在交替總數(shù)上加 1。如果這個交替總數(shù)超過了程序中預(yù)先給定的閥值,那么就該做一個“ U” 型轉(zhuǎn)彎,并且把胡須交替計數(shù)器復(fù)位。 編程實現(xiàn)依賴于 if?else 嵌套語句 if( P1_4state()!=P2_3state() ) { if((old2!=P1_4state())amp。amp。(old3!=P2_3state())) { counter=counter+1。 old2=P1_4state()。old3=P2_3state()。 if(counter4) { counter=1。 Backward()。 Left_Turn()。 Left_Turn()。} } else counter=1。 } Slide 26 DEPUSH 中級機(jī)器人制作與編程 第五講 機(jī)器人紅外線導(dǎo)航 使用紅外線發(fā)射和接收器探測道路 Slide 27 DEPUSH 中級機(jī)器人制作與編程 第五講 機(jī)器人紅外線導(dǎo)航 搭建 IR發(fā)射和探測器對 左側(cè)和右側(cè) IR組原理圖 三極管結(jié)構(gòu)、符號及管腳 Slide 28 DEPUSH 中級機(jī)器人制作與編程 for(counter=0。counter38。counter++) { P1_3=1。 delay_nus(13)。 P1_3=0。 delay_nus(13)。 } irDetectLeft=P1_5state()。 第五講 機(jī)器人紅外線導(dǎo)航 測試 IR發(fā)射和探測器對 讓每個 IR LED 探測器組工作的關(guān)鍵是發(fā)送 1毫秒頻率 kHz的紅外信號,然后立刻將 IR探測器的輸出存儲到一個變量中。 } 周期 T=26us,頻率 f=1/T= 持續(xù)時間 t=38T=1ms 變量 irDetectLeft存儲探測器狀態(tài) Slide 29 DEPUSH 中級機(jī)器人制作與編程 第五講 機(jī)器人紅外線導(dǎo)航 函數(shù)延時的不精確性 函數(shù)調(diào)用所需時間是微秒級,與工作要求同級,故延時不精確。 空函數(shù) —— _nop_(void) 當(dāng)微控制器在 12MHz晶振下工作時,單片機(jī) AT89S52一個時鐘周期為: T=(1/12)*106 S 微控制器操作是用機(jī)器周期來計算的,一個機(jī)器周期為十二個時鐘周期: t=12*T=1*106s=1us 所以空函數(shù) _nop_()能產(chǎn)生 1us的延時。 教學(xué)板的晶振選用 ,它能產(chǎn)生延時時間是 ,比 1us有稍許誤差 Slide 30 DEPUSH 中級機(jī)器人制作與編程 第五講 機(jī)器人紅外線導(dǎo)航 探測和避開障礙物 用 define語句來簡化程序,如: define LeftIR P1_2 //左邊紅外接收連接到 P1_2 define LeftLaunch P1_3 //左邊紅外發(fā)射連接到 P1_3 在以后的程序中,可以用 LeftIR代替 P1_2 發(fā)射并檢測信號 IRLaunch(39。R39。)。 irDetectRight = RightIR。//右邊接收 IRLaunch(39。L39。)。 irDetectLeft = LeftIR。//左邊接收 紅外線導(dǎo)航,與胡須類似 if((irDetectLeft==0)amp。amp。(irDetectRight==0))//兩邊同時接收到紅外線 { Backward()。 Left_Turn()。 Left_Turn()。 } else if(irDetectLeft==0)//只有左邊接收到紅外線 { Backward()。 Right_Turn()。 } else if(irDetectRight==0)//只有右邊接收到紅外線 { Backward()。 Left_Turn()。 } el
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1