
1、这不是一个完整的C程序,仅仅是一个延时函数,标准的C程序必须包括main函数。
2、t是函数的参数,在调用的时候,将t值传入,这个值就相当于你说的初值了。
3、3个while可以看出,这是3层循环,所以总的循环次数是jIt,即乘数关系。因为只使用1层或2层循环的话,循环次数受char类型的限制,所以,必须使用3层循环。
4、这个函数的作用应当是控制小车的速度。
黑标传感器循迹小车工作原理:传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态。
循迹小车的构成及用法
循迹小车可以分成三个部分组成,传感器部分,控制器部分,执行器部分。主要控制器部分,接受由传感器传输来的信息,进行判断后将控制信号发送给执行部分,通过传感器部分和执行部分的连接,编写程序来判断接收到的信息然后做出响应。
控制器部分接收传感器部分传递过来的信号,并根据事前写入的决策系统,来决定机器人对外部信号的反应,将控制信号发给执行器部分,传感器部分机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。
执行器部分:驱动机器人做出各种行为,包括发出各种信号的部分,并且可以根据控制器部分的信号调整自己的状态。
我用十三个对管,舵机控制转向,八个对管的话状态改下就行,给你参考下,不明白可以追问我,qq 181325995
#include<reg52h>
#define uint unsigned int
#define uchar unsigned char
uint i,count;
uchar pro; //驱动电机调速//
uchar finish=0;//停车标志
sbit le1=P1^0; //左边传感器//
sbit le2=P1^1;
sbit le3=P1^2;
sbit le4=P1^3;
sbit le5=P1^4;
sbit le6=P1^5;
sbit mid=P1^6;//中间传感器//
sbit ri6=P1^7;
sbit ri5=P2^3;
sbit ri4=P2^4;
sbit ri3=P2^5;
sbit ri2=P2^6;
sbit ri1=P2^7;//右边传感器//
sbit ENA=P2^0; //驱动电机pwm//
sbit moto1=P2^1; //电机控制//
sbit moto2=P2^2;
sbit PWM=P3^5; //舵机pwm//
sbit bz=P3^7;//蔽障管
init()
{
TMOD=0x11;//设定双定时器
EA=1;
TR0=1;
TR1=1;
TH0 = 0x0B1;//设定定时初始值,可去下载个定时器计算软件,
TL0 = 0x0E0;
TH1=(65536-100)/256;
TL1=(65536-100)%256;
ET0=1;
ET1=1;
ENA=1;
}
void delay(uint n)//延时函数
{
uchar a,b,c;
for(c=1;c>0;c--)
for(b=n;b>0;b--)
for(a=2;a>0;a--);
}
void delay2(uint z)
{
uchar a,b,c;
for(a=2;a>0;a--)
for(b=100;b>0;b--)
for(c=z;c>0;c--);
}
void qctyp(void) //光电管全无状态时(脱离轨道),读取前次状态
{
le1=P1^0;
le2=P1^1;
le3=P1^2;
le4=P1^3;
le5=P1^4;
le6=P1^5;
mid=P1^6;
ri6=P1^7;
ri5=P2^3;
ri4=P2^4;
ri3=P2^5;
ri2=P2^6;
ri1=P2^7;
}
void hhig(uint y)//前进函数
{
pro=y;//变量y是改变小车速度这里范围是0--39
moto1=1;
moto2=0;
}
void back(uint z)//后退函数
{
pro=z;//改变z 可改变行驶速度
moto1=0;
moto2=1;
}
void dj(uint m) //舵机控制
{
PWM=1;
delay(m); //改变m可改变舵机转向角度,
PWM=0;
}
>
使用digitalRead()函数读取数字引脚的高低电平,循迹模块检测到黑线为高电平HIGH(1),白线为低电平LOW(0),如果循迹模块的指示灯不灵敏或者一闪一闪的,就需要用螺丝刀调节蓝色的电位器,将循迹模块放在黑线上,把灯调亮,然后再回调一些,把灯调灭,这样循迹模块的阈值就刚好在临界点了。
Sensor [0] = digitalRead(10);
Sensor [1] = digitalRead(11);
Sensor [2] = digitalRead(12);
Sensor [3] = digitalRead(13;
2打印循迹模块的高低电平
使用Serialprint();函数打印循迹的值,在Arduino的右上角有个放大镜,可以打开串口监视器,电脑连接Arduino就可以看到串口的值了
以上就是关于这一段C51程序是什么意思,请行家解释一下全部的内容,包括:这一段C51程序是什么意思,请行家解释一下、黑标传感器循迹小车工作原理、tcrt5000的小车循迹模块怎么用51单片机编程。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)