正在做一个自动小车,需要一个程序控制(c语言),大家多帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/28 13:15:37
求用S51单片机控制驱动芯片L298程序(C语言)
有六个端口,输入端口分别为P1.0,P1.1,P1.2,P1.3,P1.4,P1.5.六个输出端口分别为P0.0,P0.1,P0.2,P0.3,P2.4,P2.5.其中P0.0,P0.2,P2.5输出高低电平.P0.1,P0.3,P2.4输出PWM脉冲信号.
程序要求
只要P1.0-P1.5中任一个为"1",则P0.0,P0.2输出高电平;
当P1.2或P1.3为"1",P0.1,P0.3输出占空比相同的PWM信号;
当P1.1为"1"时,P0.1的PWM信号的占空比大于P0.3的PWM信号的占空比;
当P1.0为"1"时,P0.1的PWM信号的占空比大于P0.3的PWM信号的占空比;
当P1.4为"1"时,P0.3的PWM信号的占空比大于P0.1的PWM信号的占空比;
当P1.5为"1"时,P0.3的PWM信号占空比大于P0.1的PWM信号占空比;
当P1.0-P1.5全为"0"时,P0.0,P0.2输出低电平,P2.5输出高电平,P2.4先输出占空比为2:1的PWM脉冲信号,5秒后输出占空比为1:2的PWM脉冲信号.
万分感谢!!!!

我以前做过
电子设计的时候
#include <AT89X52.h>
sbit door_light=P2^5; // 门灯
sbit up_light=P2^6; // 上行显示灯
sbit down_light=P2^7; // 下行显示灯
sbit LED_D=P2^0; // 接 LED数码管
sbit LED_C=P2^1;
sbit LED_B=P2^2;
sbit LED_A=P2^3;
unsigned int direct; // 全局变量 direct.floor.currentfloor
unsigned int floor;
unsigned int currentfloor;
// 电机驱动函数定义
sbit MA=P1^0;
sbit MB=P1^1;
sbit MC=P1^2;
sbit MD=P1^3;
static unsigned int count; //计数
static int step_index; //步进索引数,值为0-7
static bit turn; //步进电机转动方向
static int speedlevel; //步进电机转速参数,数值越大速度越慢,最小值为1,速度最快
static int spcount; //步进电机转速参数计数
unsigned int c=150; // 定时器时间常数 T=c*16+24 us
void delay(unsigned int N)
{
int i;
for(i=0;i<N;i++);
}
void system_init(void )
{