2.c
来自「89s51单片机做的循迹小车」· C语言 代码 · 共 96 行
C
96 行
//#include d:\mc51\8051io.h
#include "reg51.h"
unsigned char speedleft,speedright;
unsigned char high,low,flag,time;
void delay(unsigned char time)
{
unsigned int i;
for(time=0;time<100;time++)
for(i=0;i<50;i++)
;
}
Start()
{
char exit,key;
exit =1;
while(exit)
{ P1=0x0F;
delay(time);
P1=0xF0;
delay(time);
//key = P1;
//if((key & 0x40)==0) exit=0;
}
}
Forward(char speed)
{
P1=0xF0;
speedright = speed+10;
speedleft = speed;
delay(time);
}
TurnRight()
{
P1=0xC3;
speedright = low+5;
speedleft = low;
delay(time);
}
TurnLeft()
{
P1=0x3C;
speedright = low+5;
speedleft = low;
delay(time);
}
Reverse(char speed)
{
P1=0x0F;
speedright = speed;
speedleft = speed+5;
delay(time);
}
Run()
{
char sensors;
sensors = (P3 &=0x0f);
if((sensors & 0x01)==0) {
TurnRight();
flag = 1; }
else if((sensors & 0x08)==0) {
TurnLeft();
flag = 2; }
else if(sensors == 0x09) {
Forward(high);
flag = 0; }
else if(((sensors==0x0b)||(sensors==0x0d))&&(flag==0))
Forward(low);
}
main()
{
P1=0x40;
P3=0xff;
high = 80;
low = 30;
flag = 0;
time = 50;
Start();
while(1) {
P3|= 0x0f;
Run();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?