📄 motor.lst
字号:
C51 COMPILER V8.02 MOTOR 04/06/2008 11:49:11 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MOTOR
OBJECT MODULE PLACED IN motor.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE motor.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*****************************************************************/
3 /*
-
4 /* 热释红外探测人体,USB摄像头进行观察
-
5 /*
6 /*
-
7 /*
8 /*
-
-
9 /******************************************************************/
10
11 #include <reg52.h>
12 #include <string.h>
13
14 #define uchar unsigned char
15 #define uint unsigned int
16
17
18
19 uchar code FFW1[4]={0x03,0x09,0x0c,0x06};//正转数组
20 uchar code REV1[4]={0x06,0x0c,0x09,0x03};//反转数组
21 uchar code FFW2[4]={0x30,0x90,0xc0,0x60};//正转数组
22 uchar code REV2[4]={0x60,0xc0,0x90,0x30};//反转数组
23
24
25
26
27 bit StartFlag1=0;
28 bit StartFlag2=0;
29 bit SingalFlag=0;
30 sbit sensor_signal=P3^3;
31 sbit photoelectric_switch=P3^2;
32 uchar rate=0xff;
33 uchar motorstep1=0;
34 uchar motorstep2=0;
35 uchar con_step;
36 uchar count1;
37 uchar count2;
38 uchar j=0;
39 bit con_direction;
40 uchar m=0,n=0;
41
42 /********************************************************/
43 /*
44 /* 延时 1ms
45 /* 11.0592MHz时钟,
46 /*
47 /********************************************************/
48 void delay()
49 {
50 1 uchar k;
C51 COMPILER V8.02 MOTOR 04/06/2008 11:49:11 PAGE 2
51 1 uint s;
52 1 k = rate;
53 1 do
54 1 {
55 2 for(s = 0 ; s <100 ; s++) ;
56 2 }while(--k);
57 1 }
58
59
60
61 /********************************************************/
62 /*
63 /*步进电机正转
64 /*
65 /********************************************************
66 void motor2_ffw()
67 {
68 uchar i;
69
70 for (i=0; i<4; i++) //一个周期转30度
71 { motorstep2++;
72 if(motorstep2==1)EX1=1;
73
74 P1 = FFW2[i];//取数据
75 delay(); //调节转速
76 }
77 }
78 *******************************************************/
79 /*
80 /*步进电机反转
81 /*
82 /**********************************************
83 void motor2_rev()
84 {
85 uchar i;
86
87 for (i=0; i<4; i++) //一个周期转30度
88 { motorstep2++;
89 if(motorstep2==1)EX1=1;
90 P1 = REV2[i]; //取数据
91 delay(); //调节转速
92 }
93 }
94
95 **********/
96 /********************************************************
97 *
98 * 主程序
99 *
100 *********************************************************/
101 void main(void)
102 {
103 1 uint a,b,c;
104 1
105 1
106 1
107 1 /*******************定时器0初始化************************/
108 1 count1=0;
109 1 TMOD=0x61;
110 1 TH0=-50000/256;
111 1 TL0=-50000%256;
112 1 PT0=0;
C51 COMPILER V8.02 MOTOR 04/06/2008 11:49:11 PAGE 3
113 1 ET0=1;
114 1 TR0=1;
115 1 EA=1;
116 1
117 1 /*****************定时器1初始化**************************/
118 1 TL1=0xff;
119 1 TH1=0xff;
120 1 ET1=1;
121 1 TR1=1;
122 1 PT1=1;
123 1 /******************外部中断0初始化——光电对管1**********************/
124 1 EX0=1;
125 1 PX0=0;
126 1 IT0=0;
127 1 EA=1;
128 1 /******************外部中断1初始化——光电对管2********************/
129 1
130 1 EX1=1;
131 1 PX1=0;
132 1 IT1=0;
133 1 EA=1;
134 1
135 1 /******************************************************/
136 1
137 1
138 1
139 1
140 1
141 1 while(1)
142 1
143 1
144 1
145 1 {
146 2
147 2
148 2
149 2 if(SingalFlag==1)
150 2 {
151 3
152 3 EA=0;
153 3 con_direction=StartFlag1;
154 3 con_step=motorstep1;
155 3
156 3 //MOTOR2转至信号输入方向
157 3 if(con_direction==1) {
158 4 while(motorstep2<=con_step)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -