📄 步进电机.lst
字号:
C51 COMPILER V7.50 步絖电籣 09/01/2011 13:53:08 PAGE 1
C51 COMPILER V7.50, 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 * 名称 : 步进电机.c
3 * 功能 : 通过P1.3,P1.4,P1.5,P1.6四个IO口,来控制步进电机。
4 杜邦线的连接线,可以参考使用说明的1.3节。
5 /***********************************************************************/
6 #include <reg52.h>
7 #define uchar unsigned char
8 #define uint unsigned int
9
10 sbit KEY1 = P3^2; //步进电机顺时针方向转
11 sbit KEY2 = P3^3; //步进电机逆时针方向转
12 sbit KEY3 = P3^4; //步进电机调速
13
14 uchar Step = 0;
15 bit FB_flag = 0;
16
17 unsigned char code F_Rotation[8]={0x08,0x18,0x10,0x30,0x20,0x60,0x40,0x48}; //顺时针转表格
18 unsigned char code B_Rotation[8]={0x48,0x40,0x60,0x20,0x30,0x10,0x18,0x08}; //逆时针转表格
19
20 /********************************************************************
21 * 名称 : Delay_1ms()
22 * 功能 : 延时子程序,延时时间为 1ms * x
23 * 输入 : x (延时一毫秒的个数)
24 * 输出 : 无
25 ***********************************************************************/
26 void Delay(uint i)
27 {
28 1 uchar x,j;
29 1 for(j=0;j<i;j++)
30 1 for(x=0;x<=148;x++);
31 1 }
32
33 void KEY(void)
34 {
35 1 if(KEY1 == 0) //按P3.2,实现步进电机的顺时针转动
36 1 {
37 2 Delay(15);
38 2 if(KEY1 == 0)
39 2 {
40 3 FB_flag = 0;
41 3 }
42 2 Delay(200);
43 2 }
44 1 if(KEY2 == 0) //按P3.3,实现步进电机的逆时针转动
45 1 {
46 2 Delay(15);
47 2 if(KEY2 == 0)
48 2 {
49 3 FB_flag = 1;
50 3 }
51 2 Delay(200);
52 2 }
53 1 if(KEY3 == 0) //按P3.4,实现步进电机的调速
54 1 {
55 2 Delay(15);
C51 COMPILER V7.50 步絖电籣 09/01/2011 13:53:08 PAGE 2
56 2 if(KEY3 == 0)
57 2 {
58 3 Step++;
59 3 if(Step == 3)
60 3 {
61 4 Step = 0;
62 4 }
63 3 }
64 2 Delay(200);
65 2 }
66 1 }
67 main()
68 {
69 1 uchar i;
70 1 //uint k = 0;
71 1 while(1)
72 1 {
73 2 KEY(); //按键处理函数
74 2 for(i=0;i<8;i++) //因为有8路的控制时序
75 2 {
76 3 //k++;
77 3 //if(k == 4096) while(1);
78 3 if(FB_flag == 0)
79 3 {
80 4 P1 = F_Rotation[i]; //顺时针转动
81 4 }
82 3 else
83 3 {
84 4 P1 = B_Rotation[i]; //逆时针转动
85 4 }
86 3 Delay(1+Step); //改变这个参数可以调整电机转速
87 3 }
88 2 }
89 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 126 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -