久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機 直流電控制機程序(智能小車用)
[打印本頁]
作者:
das
時間:
2015-4-18 04:16
標題:
51單片機 直流電控制機程序(智能小車用)
sbit RIGHT_IN1 = P1^3; //右邊電機
sbit RIGHT_EN = P1^4;
sbit RIGHT_IN2 = P1^5;
sbit LEFT_IN1 = P1^2; //左邊電機
sbit LEFT_EN = P1^1;
sbit LEFT_IN2 = P1^0;
/*********************************************
宏定義
**********************************************/
#define PWM_PERIOD 100 //PWM周期PWM_PERIOD*100us
#define uchar unsigned char
#define uint unsigned int
/*********************************************
變量定義
**********************************************/
//---------- PWM ------------//
uchar PWM_COUNTER = 0; //pwm產生周期 100*100us
uchar LEFT_PWM_DUTY = 50; //左邊電機占空比
uchar RIGHT_PWM_DUTY = 50; //右邊電機占空比
//---------- 時鐘 ------------//
uchar SecondL = 0; //時間秒低位
uchar SecondH = 0; //時間秒高位
uchar MinuteL = 0; //時間分低位
uchar MinuteH = 0; //時間分高位
/*********************************************
函數名稱: Delay_10Us
函數功能: us延時函數
函數輸入: us-延時時間控制變量
函數輸出: 無
**********************************************/
void Delay_10Us(uint us)
{
while( us-- );
}
/*********************************************
函數名稱: DelayMs
函數功能: ms級延時函數,延時時間:ms*ms
函數輸入: ms-延時時間控制變量
函數輸出: 無
**********************************************/
void DelayMs(uint ms)
{
unsigned int i,j;
for( i = 0; i < ms; i ++ )
for( j = 115; j > 0; j --);
}
/*********************************************
函數名稱: Init
函數功能: 初始化單片機的定時0(用于產生PWM)、定時器1(用于產生時鐘)
函數輸入: 無
函數輸出: 無
**********************************************/
void Init_Timer(void)
{
TMOD = 0x12; //設定T0的工作模式為2,設定T0的工作模式為1
//----裝入定時器初值 -----//
TH0 = 0x95; //100us定時
TL0 = 0x95;
TH1 = (65536-50000)/256; //50ms定時
TL1 = (65536-50000)%256;
IT0 = 1;
IP = 0x03;
EA = 1; // 開總中斷
ET0 = 1; // 定時器0允許中斷
ET1 = 1; // 定時器1允許中斷
TR1 = 1; // 啟動定時器1
TR0 = 1; // 啟動定時器0
}
/*********************************************
函數名稱: Timer0_ISR
函數功能: 定時器0中斷服務函數,用于輸出PWM波
函數輸入: 無
函數輸出: 無
**********************************************/
void Timer0_ISR(void) interrupt 1 using 1
{
PWM_COUNTER ++;
if(PWM_COUNTER < PWM_PERIOD)
{
if(PWM_COUNTER > LEFT_PWM_DUTY) LEFT_EN = 0;
if(PWM_COUNTER > RIGHT_PWM_DUTY) RIGHT_EN = 0;
}
else
{
PWM_COUNTER = 0;
LEFT_EN = 1;
RIGHT_EN = 1;
}
}
/*********************************************
函數名稱: Timer1_ISR
函數功能: 定時器1中斷服務函數,用于產生時鐘
函數輸入: 無
函數輸出: 無
**********************************************/
void Timer1_ISR() interrupt 3
{
uchar cnt;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
cnt++;
if(cnt >= 20)
{
cnt = 0;
++SecondL;
if(SecondL == 10)
{
SecondL = 0;
++SecondH;
if(SecondH == 6)
{
SecondH = 0;
++MinuteL;
if(MinuteL == 10)
{
MinuteL = 0;
++MinuteH;
}
}
}
}
}
/*********************************************
函數名稱: Stop
函數功能: 停車函數
函數輸入: speed_left -左輪占空比
speed_right-右輪占空比
函數輸出: 無
**********************************************/
void Stop(uchar speed_left,uchar speed_right)
{
LEFT_IN1 = 0;
LEFT_IN2 = 0;
RIGHT_IN1 = 0;
RIGHT_IN2 = 0;
LEFT_PWM_DUTY = speed_left;
RIGHT_PWM_DUTY = speed_right;
}
/*********************************************
函數名稱: GoHead
函數功能: 前進函數:控制小車以一定速度直線前進,也可以
控制小車轉彎
函數輸入: speed_left -左輪占空比
speed_right-右輪占空比
函數輸出: 無
**********************************************/
void GoHead(uchar speed_left,uchar speed_right)
{
LEFT_IN1 = 1;
LEFT_IN2 = 0;
RIGHT_IN1 = 1;
RIGHT_IN2 = 0;
LEFT_PWM_DUTY = speed_left;
RIGHT_PWM_DUTY = speed_right*5/4; //走直線占空比校正
}
/*********************************************
函數名稱: GoBack
函數功能: 后退函數:控制小車以一定速度直線后退,也可以
小車后退轉彎
函數輸入: speed_left -左輪占空比
speed_right-右輪占空比
函數輸出: 無
**********************************************/
void GoBack(uchar speed_left,uchar speed_right)
{
LEFT_IN1 = 0;
LEFT_IN2 = 1;
RIGHT_IN1 = 0;
RIGHT_IN2 = 1;
LEFT_PWM_DUTY = speed_left;
RIGHT_PWM_DUTY = speed_right+2; //走直線占空比校正
}
/*********************************************
函數名稱: Goright
函數功能: 右轉90度函數:控制小車以一定速度旋轉90度
函數輸入: speed_left -左輪占空比
speed_right-右輪占空比
函數輸出: 無
**********************************************/
void Goright_90(void)
{
LEFT_IN1 = 1;
LEFT_IN2 = 0;
RIGHT_IN1 = 0;
RIGHT_IN2 = 1;
LEFT_PWM_DUTY = 20;
RIGHT_PWM_DUTY = 20;
DelayMs(1135);
}
復制代碼
作者:
horseydk
時間:
2015-5-6 17:45
直發程序,沒有電路圖無用啊
作者:
尋常kiss
時間:
2015-5-7 21:40
這個90度,轉的精確嗎?
作者:
lxa0
時間:
2015-5-8 19:12
有pwm調速嗎???
作者:
3151507812
時間:
2016-10-13 23:00
有上位機軟件嗎
作者:
3151507812
時間:
2016-10-13 23:00
樓主幫忙
作者:
3151507812
時間:
2016-10-13 23:00
大神
作者:
卡卡兮
時間:
2017-6-22 15:24
有程序所屬文件么
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
午夜aaa
|
日韩在线精品
|
日韩精品三区
|
精品日韩在线观看
|
青青草在线播放
|
天天综合影院
|
www.伊人网
|
亚洲激情在线播放
|
狠狠干天天
|
色婷婷一区
|
天天色播
|
国产精品99精品久久免费
|
亚洲午夜天堂
|
新香蕉视频
|
伊人9999
|
久久精品视
|
免费一区二区
|
日韩欧美国产综合
|
国产亚洲视频在线观看
|
亚洲精品资源
|
国产色在线
|
中文字幕在线观看一区二区三区
|
日韩欧美国产高清91
|
国产精品免费看
|
国产午夜精品一区二区三区视频
|
老司机免费福利视频
|
深夜福利网址
|
激情小说在线视频
|
国产91av在线
|
国产免费成人
|
99久久精品国产毛片
|
免费精品
|
国产一区二区三区在线视频
|
亚洲免费精品视频
|
成人免费视屏
|
高潮毛片7777777毛片
|
日韩黄网
|
午夜在线
|
国产成人免费观看
|
96久久
|
美女视频一区二区
|