⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scar.c

📁 51单片机输出PWM信号
💻 C
字号:
//程序名:电机PWM调速控制小车。
//关键问题:两路PWM信号如何产生,解决方法之一,用FPGA产生。51只作控制。
#include<reg52.h>
#define uchar unsigned char 
#define  uint unsigned int
sbit rrc=P1^0;//最右边的红外接收头
sbit rc=P1^1;//右边的红外接收头
sbit lc=P1^2;//左边的红外接收头
sbit llc=P1^3;//小车底下用来探测黑线的四个红外接收头数据脚。
/*====================================================================================//
函数功能:根据黑线改变小车方向
入口参数:direction:小车方向控制字 
		  
/-------------------------------------------------------------------------------------*/
void turn(uchar direction  )
{
 P1=direction;
}
//=================================Main==============================================//
void main()
{
	turn(0x0f);
	while(1)
		{
		 turn(0x0f);
		}
}
//===================================================================================//
void itto() interrupt 0 using 1	//进中断后判断是那个红外接收头探测到黑线。
								//根据探测所知黑线位置,调用不同强调的函数调整小车方向。
{	//可能要延时一小段时间。
	//这样可能有问题,可以改成先把P1口的数据读回来,屏蔽掉高四位后进行判断
	//改变速度通过改变占空比定时器,来改变PWM信号。
	//这里有两个电机。
	if(rc=1)
		{
		turn(0x00);//调用之后可能要适当的延时。
		}
	else if(lc=1)
		{
		turn(0x02);
		}
	else if(rrc=1)
		{
		turn(0x4);
		}
	else if(llc=1)
		{
		turn(0x08);
		}
	else 
		{
		}//同时测到两个黑线以上,可以报警。

}
//***************************************END*****************************************//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -