知道光敏電阻的原理吧 有光照 和沒光照在上面 它的電阻值是不一樣的
在碼盤上安裝個紅外對管
自己做輪子的時候在上面 打孔 位置調(diào)整好
這些資料你應該都有吧
那么 把輸出腳 接 單片機的 外部中斷
每個低電平的時候 就觸發(fā)一次中斷
在中斷程序里 計數(shù)變量 count 加1
那么 在主程序中 當 碰到障礙要轉(zhuǎn)彎時 給電機設(shè)置好 脈沖
然后 設(shè)置標志位 為 SETB F0 ; F0 為1
再給 count 給初值比如 20
然后就 JB F0 $ ;為1就等待
那么在中斷程序里面 你用個DJNZ COUNT EXIT
判斷碼盤是位檢測到20次中斷 檢測到20次了
然后 清標志位
然后EXIT
這個值只是個假想值 實際你要根據(jù)你的電源 機械部分 等 做調(diào)整 就可以 實現(xiàn)小車 90度 180度 360 度
當然另外還有種方法 也用中斷 不過 是用定時器T0 或者T1
T0 定時 50MS 時溢出 也要設(shè)置一個 計數(shù)值 COUNT
在主程序中 當 碰到障礙要轉(zhuǎn)彎時 給電機設(shè)置好 脈沖
然后 設(shè)置標志位 為 1 SETB F0
然后 給count 給初值 20
然后就 JB F0 $ ;為1等待
在T0或者T1的中斷程序里面 你用個DJNZ COUNT EXIT
這就是說是否轉(zhuǎn)了1秒了 轉(zhuǎn)完了 清標志位 EXIT
但是這個方法有個缺點 由于機械部分 和電源 的影響 并不能保證每次轉(zhuǎn)的角度是精確的
比如你剛沖滿電 他1秒能轉(zhuǎn)180度 但是當用了沒有多少電了 它1秒只給你轉(zhuǎn)90度
推薦還是用第一種
都是些很基礎(chǔ)的知識 資料網(wǎng)上肯定有
我用通俗的解釋了
如果實在還是不懂 去看下書上的 中斷 定時 指令這些
歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |