📄 步进马达.lst
字号:
C51 COMPILER V7.10 步絖马达 08/15/2009 22:51:34 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 * 接线: 5v-黑色 p10-红线 p11-白线 p12-黄色 p13-绿色(对照电路板字符标示) *
4 * *
5 * 通过本例程了解步进马达使用及驱动程序编写 *
6 *; 单双八拍工作方式: *
7 *; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度) *
8 * *
9 * 请学员一定要消化掉本例程 *
10 **************************************************************************************/
11
12
13 #include "reg52.h"
14
15 void delay();
16
17 //Motor
18 sbit F1 = P1^0;
19 sbit F2 = P1^1;
20 sbit F3 = P1^2;
21 sbit F4 = P1^3;
22
23 unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转
24 unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转
25 unsigned int K, rate;
26
27
28 /**********************************************************
29 * *
30 * 步进电机驱动 *
31 ***********************************************************/
32 void motor_ffw()
33 {
34 1 unsigned char i;
35 1
36 1 for (i=0; i<8; i++) //一个周期转30度
37 1 {
38 2 P1 = FFW[i]&0x1f; //取数据
39 2
40 2 delay(); //调节转速
41 2 }
42 1 }
43
44 /********************************************
45 延时程序
46 *********************************************/
47
48 void delay()
49 {
50 1 unsigned int k,t;
51 1 t=rate;
52 1 while(t--)
53 1 {
54 2 for(k=0; k<150; k++)
55 2 { }
C51 COMPILER V7.10 步絖马达 08/15/2009 22:51:34 PAGE 2
56 2 }
57 1 }
58
59
60 /********************************************************
61 *
62 *步进电机运行
63 *
64 *********************************************************/
65 void motor_turn()
66 {
67 1 unsigned char x;
68 1 rate=0x0a;
69 1 x=0x40;
70 1 do
71 1 {
72 2 motor_ffw(); //加速
73 2 rate--;
74 2 }while(rate!=0x01);
75 1 do
76 1 {
77 2 motor_ffw(); //匀速
78 2 x--;
79 2 }while(x!=0x01);
80 1
81 1 do
82 1 {
83 2 motor_ffw(); //减速
84 2 rate++;
85 2 }while(rate!=0x0a);
86 1 }
87
88 main()
89 {
90 1 while(1)
91 1 {
92 2
93 2 motor_turn();
94 2
95 2
96 2 }
97 1 }
98
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 + -