这一段C51程序是什么意思,请行家解释一下

这一段C51程序是什么意思,请行家解释一下,第1张

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单片机编程。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9792888.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存