|
553.png (155.08 KB, 下載次數: 231)
下載附件
電路圖
2016-6-6 15:14 上傳
0.png (71.08 KB, 下載次數: 193)
下載附件
2016-6-6 17:41 上傳
所有資料下載:
5、基于51單片機的步進電機控制系統.rar
(4.19 MB, 下載次數: 575)
2016-6-6 15:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
元件清單:
步進電機控制系統元件清單 | 名稱 | 注釋 | 數量 | 51單片機 | AT89C52 | 1 | 液晶顯示屏 | LCD12864 | 1 | 步進電機 | | 1 | 排阻 | 10K | 1 | 電機驅動芯片 | ULN2003A | 1 | 電位器 | 10K | 1 | 晶振 | 12M | 1 | 電容 | 33P | 2 | 按鍵 | | 5 |
| | |
|
|
|
|
|
|
0.png (111.78 KB, 下載次數: 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; //定時10ms
- TL0=0x00;
- ET0=1; //中斷使能
- TR0=1; //關閉定時器0
- }
- void target_init(void)
- {
- timer0_init();
- Lcd_Initial();
- }
- /************************************************
- *函數名稱:display_head(void)
- *函數功能:顯示“步進電機運行狀態”字樣
- *函數入口:無
- *函數出口:無
- ************************************************/
- 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;
- }
-
- }
- /************************************************
- *函數名稱:display_state(state)
- *函數功能:顯示電機狀態“停止”,“正轉”,“反轉”
- *函數入口:state,電機狀態
- *函數出口:無
- *說明:state:0x01,停止;0x02,正轉;0x03,反轉
- ************************************************/
- 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: //顯示“正轉”
- {
- Lcd_Character_16X16(1,60,0,MOTER_STATE[2]); //正
- break;
- }
- case 0x03: //顯示“反轉”
- {
- 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]); //轉
- }
- /************************************************
- *函數名稱:display_speed(speed)
- *函數功能:顯示電機速度狀態
- *函數入口:speed,電機速度狀態
- *函數出口:無
- *說明: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]); //速
- }
- /*************************************************
- *函數名稱:moter_state_display(uchar moterState)
- *函數功能:實現步進電機狀態顯示
- *函數入口:moterState,電機運行狀態
- *函數出口:無
- *說明:moterState:0x01,停止;0x02,正轉加速運行;
- 0x03,正轉減速運行;0x04,正轉正常運行;
- 0x05,正轉低速運行;0x06,反轉加速運行;
- 0x07,反轉減速運行;0x08,反轉正常運行;
- 0x09,反轉低速運行
- *************************************************/
- void moter_state_display(uchar moterState)
- {
- Lcd_Clear();
- display_head();
- switch(moterState)
- {
- case MOTER_STOP: //停止
- {
- display_state(0x01);
- break;
- }
- case MOTER_FRONT_ADD: //正轉加速運行
- {
- display_state(0x02);
- display_speed(0x03);
- break;
- }
- case MOTER_FRONT_REDUCE: //正轉減速運行
- {
- display_state(0x02);
- display_speed(0x04);
- break;
- }
- case MOTER_FRONT_NORMAL: //正轉正常運行
- {
- display_state(0x02);
- display_speed(0x01);
- break;
- }
- case MOTER_FRONT_LOWER: //正轉低速運行
- {
- display_state(0x02);
- display_speed(0x02);
- break;
- }
- case MOTER_QUEEN_ADD: //反轉加速運行
- {
- display_state(0x03);
- display_speed(0x03);
- break;
- }
- case MOTER_QUEEN_REDUCE: //反轉減速運行
- {
- display_state(0x03);
- display_speed(0x04);
- break;
- }
- case MOTER_QUEEN_NOMAL: //反轉正常運行
- {
- display_state(0x03);
- display_speed(0x01);
- break;
- }
- case MOTER_QUEEN_LOWER: //反轉低速運行
- {
- display_state(0x03);
- display_speed(0x02);
- break;
- }
- default:
- break;
- }
- if(moterState!=MOTER_STOP)
- {
- Lcd_Character_16X16(1,60,64,SPEED_STATE[6]); //運
- Lcd_Character_16X16(1,60,80,SPEED_STATE[7]); //行
- }
- }
- /*******************************************************
- *函數名稱:ground(step)
- *函數功能:給電機的四個相極送信號
- *函數入口:step,電機相位的第幾步
- *函數出口:無
- *說明:步進電機轉步數,分八步
- *******************************************************/
- 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;
- }
- }
復制代碼
|
評分
-
查看全部評分
|