📄 dianjizhongduan.c
字号:
#include <reg51.h>
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
void dongji();
void delay(unsigned long i);
void timer0_(void);
unsigned int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0;
//~~~~~~~~~~~~~~~~~~~~~~延时子函数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void delay(unsigned long i)
{
while(i--);
}
//~~~~~~~~~~~~~~~~~~~~~~延时子函数end ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~主函数~~~~~~~~~~~~~~~~~~~~~~
void main()
{
EA = 1; //开总中断
ET0=1;
TMOD = 0x1; //定时器工作方式1
TL0 = 0xF0;
TH0 = 0xD8; //定时器赋予初值12MHz/10ms
TR0 = 1; //启动定时器
P11=1;
P14=1;
P15=1;
P10=1;
P12=1;
P13=0;
P23=0;
P24=0;
P25=0;
delay(25000);
while(1)
{
dongji();
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~主函数end~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~定时中断开始~~~~~~~~~~
void timer0_(void) interrupt 1 using 1
{
P23=!P23;
P24=!P24;
P25=!P25;
TL0 = 0xF0;
TH0 = 0xD8;
}
//~~~~~~~~~~~~定时中断结束~~~~~~~~~
//~~~~~~~~~~~~动机驱动函数~~~~~~~~~~
void dongji()
{
if(P23==1&P24==1&P25==1)
{
}
else if(P23==0&P24==0&P25==0)
{
if(P22==0&P21==1&P20==1) //右转
{
for(b=0;b<2;b++)
{
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(7);
P11=1;
P14=1;
P15=0;
P10=0;
delay(5);
}
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(5);
}
if(P22==0&P21==0&P20==1) //中右转
{
P11=1;
P14=1;
P15=0;
P10=1;
P12=0;
P13=1;
delay(10);
for(c=0;c<2;c++)
{
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(7);
P11=1;
P14=1;
P15=0;
P10=0;
delay(5);
}
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(5);
}
if(P22==1&P21==0&P20==1) //中右转
{ P11=1;
P14=1;
P15=0;
P10=1;
P12=0;
P13=1;
delay(10);
for(d=0;d<2;d++)
{
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(7);
P11=1;
P14=1;
P15=0;
P10=0;
delay(5);
}
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(5);
}
if(P22==0&P21==0&P20==0) //中右转
{
P11=1;
P14=1;
P15=0;
P10=1;
P12=0;
P13=1;
delay(10);
for(e=0;e<25;e++)
{
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(7);
P11=1;
P14=1;
P15=0;
P10=0;
delay(5);
}
P11=1;
P14=1;
P15=0;
P10=1;
P12=1;
P13=0;
delay(5);
}
if(P22==1&P21==0&P20==0) //左转
{
P11=1;
P14=0;
P15=1;
P10=1;
P12=0;
P13=1;
delay(10);
for(f=0;f<25;f++)
{
P11=1;
P14=0;
P15=1;
P10=1;
P12=1;
P13=0;
delay(7);
P11=1;
P14=0;
P15=1;
P10=0;
delay(5);
}
P11=1;
P14=0;
P15=1;
P10=1;
P12=1;
P13=0;
delay(5);
}
if(P22==1&P21==1&P20==0) //左转
{
for(g=0;g<25;g++)
{P11=1;
P14=0;
P15=1;
P10=1;
P12=1;
P13=0;
delay(7);
P11=1;
P14=0;
P15=1;
P10=0;
delay(5);
}
P11=1;
P14=0;
P15=1;
P10=1;
P12=1;
P13=0;
delay(5);
}
if(P22==0&P21==1&P20==0) //中进
{
P11=1;
P14=1;
P15=1;
P10=1;
P12=1;
P13=0;
delay(8);
P11=1;
P14=1;
P15=1;
P10=0;
delay(5);
}
if(P22==1&P21==1&P20==1) //中进
{
P11=1;
P14=1;
P15=1;
P10=1;
P12=1;
P13=0;
delay(8);
P11=1;
P14=1;
P15=1;
P10=0;
delay(5);
}
}
}
//~~~~~~~~~~~~动机驱动函数end~~~~~~~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -