📄 步进马达.lst
字号:
C51 COMPILER V7.10 步絖马达 09/10/2011 09:31:48 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE 步絖马达
OBJECT MODULE PLACED IN 步进马达.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 步进马达.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************************************************************************************
2 * 标题: 步进电机试验三(加减速运行) *
3 * *
4 * 通过本例程了解步进马达使用及驱动程序编写 *
5 *; 单双八拍工作方式: *
6 *; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度) *
7 * *
8 * 请学员一定要消化掉本例程 *
9 **************************************************************************************/
10
11
12 #include "reg52.h"
13
14 void delay();
15
16 //Motor
17 sbit F1 = P1^0;
18 sbit F2 = P1^1;
19 sbit F3 = P1^2;
20 sbit F4 = P1^3;
21
22 unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转
23 unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转
24 unsigned int K, rate;
25
26
27 /**********************************************************
28 * *
29 * 步进电机驱动 *
30 ***********************************************************/
31 void motor_ffw()
32 {
33 1 unsigned char i;
34 1
35 1 for (i=0; i<8; i++) //一个周期转30度
36 1 {
37 2 P1 = FFW[i]&0x1f; //取数据
38 2
39 2 delay(); //调节转速
40 2 }
41 1 }
42
43 /********************************************
44 延时程序
45 *********************************************/
46
47 void delay()
48 {
49 1 unsigned int k,t;
50 1 t=rate;
51 1 while(t--)
52 1 {
53 2 for(k=0; k<100; k++)
54 2 { }
55 2 }
C51 COMPILER V7.10 步絖马达 09/10/2011 09:31:48 PAGE 2
56 1 }
57
58
59 /********************************************************
60 *
61 *步进电机运行
62 *
63 *********************************************************/
64 void motor_turn()
65 {
66 1 unsigned char x;
67 1 rate=0x2a;
68 1 x=0x40;
69 1 do
70 1 {
71 2 motor_ffw(); //加速
72 2 rate--;
73 2 }while(rate!=0x08);
74 1 do
75 1 {
76 2 motor_ffw(); //匀速
77 2 x--;
78 2 }while(x!=0x01);
79 1
80 1 do
81 1 {
82 2 motor_ffw(); //减速
83 2 rate++;
84 2 }while(rate!=0x2a);
85 1 }
86
87 main()
88 {
89 1 while(1)
90 1 {
91 2
92 2 motor_turn();
93 2
94 2
95 2 }
96 1 }
97
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 121 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -