标题:
STC8单片机-循迹小车软件驱动PWM源码
[打印本页]
作者:
小江loopone
时间:
2018-8-3 10:23
标题:
STC8单片机-循迹小车软件驱动PWM源码
#include <stc8.h>
sbit IN4 = P0^0;
sbit IN3 = P0^1;
sbit ENB = P2^1;
sbit IN2 = P0^2;
sbit IN1 = P0^3;
sbit ENA = P2^2;
sbit IN4h = P0^4;
sbit IN3h = P0^5;
sbit ENBh = P1^6;
sbit IN2h = P0^6;
sbit IN1h = P0^7;
sbit ENAh = P1^7;
sbit left0 = P3^2;
sbit right0 = P3^3;
unsigned char zkb0 = 0;
unsigned char zkb1 = 0;
unsigned char t = 0;
void Init()
{
P0M1 = 0x00;
P0M0 = 0xff;
P1M1 = 0x00;
P1M0 = 0xc0;
P2M1 = 0x00;
P2M0 = 0x06;
P3M1 = 0x0c;
P3M0 = 0x00; //配置对应I/o口的工作方式
IP &=~0x08;
IPH &=~0x08;
TMOD |= 0x00;//将定时器0配置成模式0,优先级(00)最低
TH0 =(65536-100)/256;
TL0 =(65536-100)%256;
ET0 =1;
EA =1;
TR0 =1;
}
void timer0() interrupt 1
{
if(t< zkb0)
{
if(t%2==0)
{
ENB =1;
ENBh =1;
}
else
{
ENB =0;
ENBh=0;
}
ENB =1;
ENBh =1;
}
else
{
ENB =0;
ENBh =0;
}
if(t<zkb1)
{
if(t%2==0)
{
ENA =1;
ENAh =1;
}
else
{
ENA =0;
ENAh =0;
}
ENA =1;
ENAh =1;
}
else
{
ENA =0;
ENAh =0;
}
++t;
if(t>=50)
{
t=0;
}
}
void turn_left0()
{
zkb0 =13;
zkb1 =0;
}
void turn_right0()
{
zkb0 =0;
zkb1 =13;
}
void runing()
{
zkb0=8;
zkb1=8;
}
void xunji()
{
unsigned char flag;
if((right0 == 0)&&(left0 == 0))
{
flag = 0;
}
if((right0 == 1)&&(left0 == 0))
{
flag = 1;
}
if((right0 == 0)&&(left0 == 1))
{
flag = 2;
}
switch(flag)
{
case 0:runing();break;
case 1:turn_right0();break;
case 2:turn_left0();break;
default:runing();break;
}
}
void main()
{
Init();
IN1 = 0;
IN2 = 1;
IN3 = 0;
IN4 = 1;
IN1h = 0;
IN2h = 1;
IN3h = 0;
IN4h = 1;
while(1)
{
xunji();
}
}
作者:
admin
时间:
2018-8-3 15:44
原理图能分享下吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1