|
553.png (155.08 KB, 下載次數(shù): 231)
下載附件
電路圖
2016-6-6 15:14 上傳
0.png (71.08 KB, 下載次數(shù): 193)
下載附件
2016-6-6 17:41 上傳
所有資料下載:
5、基于51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng).rar
(4.19 MB, 下載次數(shù): 575)
2016-6-6 15:17 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
元件清單:
步進(jìn)電機(jī)控制系統(tǒng)元件清單 | 名稱 | 注釋 | 數(shù)量 | 51單片機(jī) | AT89C52 | 1 | 液晶顯示屏 | LCD12864 | 1 | 步進(jìn)電機(jī) | | 1 | 排阻 | 10K | 1 | 電機(jī)驅(qū)動(dòng)芯片 | ULN2003A | 1 | 電位器 | 10K | 1 | 晶振 | 12M | 1 | 電容 | 33P | 2 | 按鍵 | | 5 |
| | |
|
|
|
|
|
|
0.png (111.78 KB, 下載次數(shù): 199)
下載附件
2016-6-6 17:42 上傳
- #define TARGET_GLOBAL 1
- #include "target.h"
- #include "dot.h"
- void timer0_init(void)
- {
- TMOD|=0x01; //MODEL1,timer
- TH0=0xDC; //定時(shí)10ms
- TL0=0x00;
- ET0=1; //中斷使能
- TR0=1; //關(guān)閉定時(shí)器0
- }
- void target_init(void)
- {
- timer0_init();
- Lcd_Initial();
- }
- /************************************************
- *函數(shù)名稱:display_head(void)
- *函數(shù)功能:顯示“步進(jìn)電機(jī)運(yùn)行狀態(tài)”字樣
- *函數(shù)入口:無(wú)
- *函數(shù)出口:無(wú)
- ************************************************/
- void display_head(void)
- {
- uchar i,temp;
- temp=0x00;
- for(i=0;i<8;i++)
- {
- Lcd_Character_16X16(1,10,temp,MOTER_HEAD[i]);
- temp+=16;
- }
-
- }
- /************************************************
- *函數(shù)名稱:display_state(state)
- *函數(shù)功能:顯示電機(jī)狀態(tài)“停止”,“正轉(zhuǎn)”,“反轉(zhuǎn)”
- *函數(shù)入口:state,電機(jī)狀態(tài)
- *函數(shù)出口:無(wú)
- *說(shuō)明:state:0x01,停止;0x02,正轉(zhuǎn);0x03,反轉(zhuǎn)
- ************************************************/
- void display_state(state)
- {
- switch(state)
- {
- case 0x01: //顯示“停止”
- {
- Lcd_Character_16X16(1,60,0,MOTER_STATE[0]); //停
- Lcd_Character_16X16(1,60,16,MOTER_STATE[1]);//止
- break;
- }
- case 0x02: //顯示“正轉(zhuǎn)”
- {
- Lcd_Character_16X16(1,60,0,MOTER_STATE[2]); //正
- break;
- }
- case 0x03: //顯示“反轉(zhuǎn)”
- {
- Lcd_Character_16X16(1,60,0,MOTER_STATE[3]); //反
- break;
- }
- default:
- break;
- }
- if((state==0x02)||(state==0x03))
- Lcd_Character_16X16(1,60,16,MOTER_STATE[4]); //轉(zhuǎn)
- }
- /************************************************
- *函數(shù)名稱:display_speed(speed)
- *函數(shù)功能:顯示電機(jī)速度狀態(tài)
- *函數(shù)入口:speed,電機(jī)速度狀態(tài)
- *函數(shù)出口:無(wú)
- *說(shuō)明:speed:0x01,正常;0x02,低速;0x03,加速;
- 0x04,減速
- ************************************************/
- void display_speed(speed)
- {
- switch(speed)
- {
- case 0x01:
- {
- Lcd_Character_16X16(1,60,32,SPEED_STATE[4]); //正
- Lcd_Character_16X16(1,60,48,SPEED_STATE[5]); //常
- break;
- }
- case 0x02:
- {
- Lcd_Character_16X16(1,60,32,SPEED_STATE[2]); //低
- break;
- }
- case 0x03:
- {
- Lcd_Character_16X16(1,60,32,SPEED_STATE[0]); //加
- break;
- }
- case 0x04:
- {
- Lcd_Character_16X16(1,60,32,SPEED_STATE[1]); //減
- break;
- }
- default:
- break;
- }
- if((speed==0x02)||(speed==0x03)||(speed==0x04))
- Lcd_Character_16X16(1,60,48,SPEED_STATE[3]); //速
- }
- /*************************************************
- *函數(shù)名稱:moter_state_display(uchar moterState)
- *函數(shù)功能:實(shí)現(xiàn)步進(jìn)電機(jī)狀態(tài)顯示
- *函數(shù)入口:moterState,電機(jī)運(yùn)行狀態(tài)
- *函數(shù)出口:無(wú)
- *說(shuō)明:moterState:0x01,停止;0x02,正轉(zhuǎn)加速運(yùn)行;
- 0x03,正轉(zhuǎn)減速運(yùn)行;0x04,正轉(zhuǎn)正常運(yùn)行;
- 0x05,正轉(zhuǎn)低速運(yùn)行;0x06,反轉(zhuǎn)加速運(yùn)行;
- 0x07,反轉(zhuǎn)減速運(yùn)行;0x08,反轉(zhuǎn)正常運(yùn)行;
- 0x09,反轉(zhuǎn)低速運(yùn)行
- *************************************************/
- void moter_state_display(uchar moterState)
- {
- Lcd_Clear();
- display_head();
- switch(moterState)
- {
- case MOTER_STOP: //停止
- {
- display_state(0x01);
- break;
- }
- case MOTER_FRONT_ADD: //正轉(zhuǎn)加速運(yùn)行
- {
- display_state(0x02);
- display_speed(0x03);
- break;
- }
- case MOTER_FRONT_REDUCE: //正轉(zhuǎn)減速運(yùn)行
- {
- display_state(0x02);
- display_speed(0x04);
- break;
- }
- case MOTER_FRONT_NORMAL: //正轉(zhuǎn)正常運(yùn)行
- {
- display_state(0x02);
- display_speed(0x01);
- break;
- }
- case MOTER_FRONT_LOWER: //正轉(zhuǎn)低速運(yùn)行
- {
- display_state(0x02);
- display_speed(0x02);
- break;
- }
- case MOTER_QUEEN_ADD: //反轉(zhuǎn)加速運(yùn)行
- {
- display_state(0x03);
- display_speed(0x03);
- break;
- }
- case MOTER_QUEEN_REDUCE: //反轉(zhuǎn)減速運(yùn)行
- {
- display_state(0x03);
- display_speed(0x04);
- break;
- }
- case MOTER_QUEEN_NOMAL: //反轉(zhuǎn)正常運(yùn)行
- {
- display_state(0x03);
- display_speed(0x01);
- break;
- }
- case MOTER_QUEEN_LOWER: //反轉(zhuǎn)低速運(yùn)行
- {
- display_state(0x03);
- display_speed(0x02);
- break;
- }
- default:
- break;
- }
- if(moterState!=MOTER_STOP)
- {
- Lcd_Character_16X16(1,60,64,SPEED_STATE[6]); //運(yùn)
- Lcd_Character_16X16(1,60,80,SPEED_STATE[7]); //行
- }
- }
- /*******************************************************
- *函數(shù)名稱:ground(step)
- *函數(shù)功能:給電機(jī)的四個(gè)相極送信號(hào)
- *函數(shù)入口:step,電機(jī)相位的第幾步
- *函數(shù)出口:無(wú)
- *說(shuō)明:步進(jìn)電機(jī)轉(zhuǎn)步數(shù),分八步
- *******************************************************/
- void ground(step)
- {
- switch(step)
- {
- case 0x00:
- {
- MOTER_M1= 1;
- MOTER_M2= 0;
- MOTER_M3= 0;
- MOTER_M4= 0;
- break;
- }
- case 0x01:
- {
- MOTER_M1= 1;
- MOTER_M2= 1;
- MOTER_M3= 0;
- MOTER_M4= 0;
- break;
- }
- case 0x02:
- {
- MOTER_M1= 0;
- MOTER_M2= 1;
- MOTER_M3= 0;
- MOTER_M4= 0;
- break;
- }
- case 0x03:
- {
- MOTER_M1= 0;
- MOTER_M2= 1;
- MOTER_M3= 1;
- MOTER_M4= 0;
- break;
- }
- case 0x04:
- {
- MOTER_M1= 0;
- MOTER_M2= 0;
- MOTER_M3= 1;
- MOTER_M4= 0;
- break;
- }
- case 0x05:
- {
- MOTER_M1= 0;
- MOTER_M2= 0;
- MOTER_M3= 1;
- MOTER_M4= 1;
- break;
- }
- case 0x06:
- {
- MOTER_M1= 0;
- MOTER_M2= 0;
- MOTER_M3= 0;
- MOTER_M4= 1;
- break;
- }
- case 0x07:
- {
- MOTER_M1= 0;
- MOTER_M2= 0;
- MOTER_M3= 0;
- MOTER_M4= 1;
- break;
- }
- default:
- break;
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|