知道光敏电阻的原理吧 有光照 和没光照在上面 它的电阻值是不一样的
在码盘上安装个红外对管
自己做轮子的时候在上面 打孔 位置调整好
这些资料你应该都有吧
那么 把输出脚 接 单片机的 外部中断
每个低电平的时候 就触发一次中断
在中断程序里 计数变量 count 加1
那么 在主程序中 当 碰到障碍要转弯时 给电机设置好 脉冲
然后 设置标志位 为 SETB F0 ; F0 为1
再给 count 给初值比如 20
然后就 JB F0 $ ;为1就等待
那么在中断程序里面 你用个DJNZ COUNT EXIT
判断码盘是位检测到20次中断 检测到20次了
然后 清标志位
然后EXIT
这个值只是个假想值 实际你要根据你的电源 机械部分 等 做调整 就可以 实现小车 90度 180度 360 度
当然另外还有种方法 也用中断 不过 是用定时器T0 或者T1
T0 定时 50MS 时溢出 也要设置一个 计数值 COUNT
在主程序中 当 碰到障碍要转弯时 给电机设置好 脉冲
然后 设置标志位 为 1 SETB F0
然后 给count 给初值 20
然后就 JB F0 $ ;为1等待
在T0或者T1的中断程序里面 你用个DJNZ COUNT EXIT
这就是说是否转了1秒了 转完了 清标志位 EXIT
但是这个方法有个缺点 由于机械部分 和电源 的影响 并不能保证每次转的角度是精确的
比如你刚冲满电 他1秒能转180度 但是当用了没有多少电了 它1秒只给你转90度
推荐还是用第一种
都是些很基础的知识 资料网上肯定有
我用通俗的解释了
如果实在还是不懂 去看下书上的 中断 定时 指令这些
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |