?? scar.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 + -