知道光敏电阻的原理吧 有光照 和没光照在上面 它的电阻值是不一样的 在码盘上安装个红外对管 自己做轮子的时候在上面 打孔 位置调整好 这些资料你应该都有吧 那么 把输出脚 接 单片机的 外部中断 每个低电平的时候 就触发一次中断 在中断程序里 计数变量 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度 推荐还是用第一种 都是些很基础的知识 资料网上肯定有 我用通俗的解释了 如果实在还是不懂 去看下书上的 中断 定时 指令这些
|