小车,测走过的距离,计算走过的时间,stc8a8k

莫道桑榆晚,为霞尚满天。这篇文章主要讲述小车,测走过的距离,计算走过的时间,stc8a8k相关的知识,希望能为你提供帮助。
1、实验目的
测试小车的运行距离,从启动开始,到停止,小车的运动距离;
用的是stc8a8k增强型51单片机;
用OLED显示出距离。
2、实验思路
(1)用外部中断P32,接上单片机的测速模块,就是一个霍尔开关,有一个光电码盘,一圈360度,有N个格子,计算格子数量Y,就是脉冲个数。
N/20piD=距离
【小车,测走过的距离,计算走过的时间,stc8a8k】综上,要得到小车走过的距离,需要计算格子的数。

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

当霍尔开关的光线,被不是格子的轮子部分挡住,接收不到格子信号一直是0,当碰到格子,光线通过,就发出一个1,这样一直0,1,0,1,0,1.。。替换,就得到格子的个数。
属于遮光型的传感器。
小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

(4)编程实现:
利用外部脉冲数,设置下降沿触发,计算脉冲个数N。
小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

小车,测走过的距离,计算走过的时间,stc8a8k

文章图片

#include “reg51.h”
#include “intrins.h”
sbit P10 = P1^0;
void INT1_Isr() interrupt 2 using 1
{
P10 = !P10; //测试端口
}
void main()
{
IT1 = 1; //使能INT1下降沿中断
EX1 = 1; //使能INT1中断
EA = 1;
while (1);

}

    推荐阅读