📄 mainloop.lst
字号:
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE MAINLOOP
OBJECT MODULE PLACED IN Mainloop.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Mainloop.c OMF2 OPTIMIZE(2,SPEED) DEBUG
line level source
1 #include <stdio.h>
2 #include <string.h>
3 #include <reg51.h> /* special function register decounterarations */
4 #include "mainloop.h"
5 #include "isr.h"
6 #include "protozlg.h"
7 #include "math.h"
8
9 #define GAOPIN_KAI 1
10 #define GAOPIN_GUAN 0
11 #define MOT_RUN 1
12 #define MOT_CLOSE 0
13
14 #include<absacc.h>
15 #define uchar unsigned char
16 #define uint unsigned int
17 sbit WR8253=P1^0;
18 sbit A8253=P1^1;
19 sbit RAMCS=P1^4;
20 sbit CS8253=P1^5;
21 sbit A15=P2^7;
22 sbit A0=P3^0;
23 sbit A1=P3^1;
24 sbit GATE=P1^2;
25 sbit PCS=P3^4;
26 sbit JCS=P3^5;
27 sbit WRITE=P3^6;
28 sbit READ=P3^7;
29
30 #define MAX_ORDER 5
31
32 void outportb(unsigned int Addr,unsigned char Data);
33
34 /*
35 //*************************************************************************
36 // Public static data
37 //*************************************************************************
38 */
39 extern EPPFLAGS bEPPflags;
40 extern unsigned char idata GenEpBuf[];
41 extern unsigned char idata EpBuf[];
42 extern unsigned int data d12_addr;
43
44 extern unsigned int data D12_DATA;
45 extern unsigned int data D12_COMMAND;
46
47 sfr CKCON = 0x8F;//87C52x2用
48 sbit clksel = P2^0;
49
50 char idata gaopzt,dianjzt,old_p_status;
51 unsigned char idata cc;
52 unsigned char idata c,c1,c2,c3;
53 unsigned long idata counter;
54 unsigned char idata read_jing_flag,read_prog_flag,send_req_flag,read_max_loop_flag,read_nc_num_flag,io_wro
-ng_flag;
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 2
55 unsigned char idata diand_flag,diand_axis,diandbz;
56 long diandjl;
57 unsigned char idata ch;
58 char idata mask_cc;
59 int i,j;
60 long idata l,ll;
61 double idata r,f1;
62 unsigned char idata lbuf[4];
63 unsigned char idata w_p,zf;
64 char idata xyt,uvt,work_status;
65 unsigned int cur_jing;
66 unsigned int old_cur_jing;
67 unsigned int loop_counter;
68 char loop_flag;
69 char anti_work_flag,timer_ok;
70 long loop_off;
71 unsigned char cur_order;
72
73 #define xytype(order) (2630+order) //xy类型
74 #define uvtype(order) (2640+order) //uv类型
75 #define xy(order) (2650+order) //XY记数
76 #define counterlen(order) (2660+order*4) //记数长度
77 #define ncorder(order) (2700+order*4) //程序序号
78 #define lpdata(order,off) (2780+(order*6+off)*4) //中心点坐标 起点坐标 末点坐标
79 #define lpdata1(order,off) (3020+(order*6+off)*4) //中心点坐标 起点坐标 末点坐标
80
81 #define cur_x (long)(*((long *)(&(XBYTE[2400])))) //当前xyuv坐标
82 #define cur_y (long)(*((long *)(&(XBYTE[2405]))))
83 #define cur_u (long)(*((long *)(&(XBYTE[2410]))))
84 #define cur_v (long)(*((long *)(&(XBYTE[2415]))))
85 #define cur_work_seg (long)(*((long *)(&(XBYTE[2420]))))
86 #define cur_seg (long)(*((long *)(&(XBYTE[2520])))) //当前段
87 #define cur_off (long)(*((long *)(&(XBYTE[2525])))) //当前段内记数
88 #define e_order XBYTE[3531] //末点指针
89 #define xy_uv XBYTE[3532] //xy记数或uv记数
90
91 //回零标志
92 #define home_flag XBYTE[2533]
93 //当前电机相序号
94 #define cur_x_step_order XBYTE[2534]
95 #define cur_y_step_order XBYTE[2535]
96 #define cur_u_step_order XBYTE[2536]
97 #define cur_v_step_order XBYTE[2537]
98 //异型参数工件高 上导轮到工件上表面高度
99 #define height (long)(*((long *)(&(XBYTE[2538]))))
100 #define up_height (long)(*((long *)(&(XBYTE[2542]))))
101 #define up_down_height (long)(*((long *)(&(XBYTE[2546]))))
102 #define cur_order1 XBYTE[2550]
103 #define max_loop_counter (unsigned int)(*((unsigned int*)(&(XBYTE[2425]))))
104
105 //进给速率
106 #define jinggsl XBYTE[2300]
107 //相序类型(5 3 2)
108 #define xiangxlx XBYTE[1200]
109 //正方向电平
110 #define zhengfxdp XBYTE[2553]
111 //脉冲宽度
112 #define maickd XBYTE[2554]
113 //高频状态
114 //电机状态
115 #define stop_flag XBYTE[2450]
116 #define stop_byte XBYTE[2452]
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 3
117 //点动轴号
118 #define diandzh XBYTE[2557]
119 //点动方向
120 #define diandfx XBYTE[2558]
121 //短路标志
122 #define duanlbz XBYTE[2563]
123 //短路回退步数
124 #define duanlhtbs (long)(*((long *)(&(XBYTE[2568]))))
125 //同一位置短路回退最大次数
126 #define tongywzdlhtzdcs (long)(*((long *)(&(XBYTE[2572]))))
127 //单段加工标志
128 #define dandjgbz XBYTE[2576]
129
130 #define x (long)(*((long *)(&(XBYTE[2580]))))
131 #define y (long)(*((long *)(&(XBYTE[2584]))))
132 #define bx (long)(*((long *)(&(XBYTE[2588]))))
133 #define by (long)(*((long *)(&(XBYTE[2592]))))
134 #define ex (long)(*((long *)(&(XBYTE[2596]))))
135 #define ey (long)(*((long *)(&(XBYTE[2600]))))
136 #define cx (long)(*((long *)(&(XBYTE[2604]))))
137 #define l1 (long)(*((long *)(&(XBYTE[2608]))))
138 #define l2 (long)(*((long *)(&(XBYTE[2612]))))
139 #define l3 (long)(*((long *)(&(XBYTE[2616]))))
140
141 void cmd_proc(void);
142 void send_req_order(char order);
143 void send_a_step(void);
144 void send_cur_pos(char axis,char order);
145 init_j8255();
146 init_p8255();
147 write_p8255_a();
148 write_p8255_b();
149 write_p8255_c();
150 write_j8255_a();
151 write_j8255_b();
152 write_j8255_c();
153 out_8255_1_a();
154 out_8255_1_c(char cc);
155 unsigned char get_x_y_port_byte(char cc);
156 unsigned char get_u_v_port_byte(char cc);
157 open_gao_pin();
158 close_gao_pin();
159 open_mot();
160 close_mot();
161 open_mac();
162 close_mac();
163 x_z();
164 x_f();
165 y_z();
166 y_f();
167 u_z();
168 u_f();
169 v_z();
170 v_f();
171 rem_cs();
172 rev_cs();
173 send_loop_msg();
174 void timer_isr();
175
176 //D12中断服务
177 usb_isr() interrupt 0
178 {
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 4
179 1 unsigned char c0,c1;
180 1
181 1 if (RAMCS == 0)
182 1 c0 = 0;
183 1 else
184 1 c0 = 1;
185 1 if (MCU_D12CS == 0)
186 1 c1 = 0;
187 1 else
188 1 c1 = 1;
189 1 RAMCS = 1;
190 1 MCU_D12CS = 0;
191 1 DISABLE;
192 1 fn_usb_isr();//调用D12中断服务子程序
193 1 ENABLE;
194 1 if (c0 == 1)
195 1 RAMCS = 1;
196 1 if (c1 == 1)
197 1 MCU_D12CS = 1;
198 1 if (c0 == 0)
199 1 RAMCS = 0;
200 1 if (c1 == 0)
201 1 MCU_D12CS = 0;
202 1 }
203
204 void timer_isr(void) interrupt 2
205 {
206 1 timer_ok = 1;
207 1 }
208
209 void main(void)
210 {
211 1 char bz;
212 1
213 1 while (1){
214 2 MCU_LED0 = 1;
215 2 for (i=0;i<100;i++);
216 2 MCU_LED0 = 0;
217 2 for (i=0;i<100;i++);
218 2 }
219 1 CKCON = 1;
220 1 MCU_LED0 = 1;
221 1 GATE = 0;
222 1
223 1 MCU_D12CS = 0x1;
224 1 RAMCS = 1;
225 1
226 1 cur_jing = 200;
227 1 anti_work_flag = 0;
228 1 loop_flag = 0;
229 1 loop_counter = 0;
230 1 timer_ok = 0;
231 1
232 1 //init 8253
233 1 init_j8255();
234 1 init_p8255();
235 1 P2 = 0x3e;
236 1 PCS = 1;
237 1 JCS = 1;
238 1 CS8253 = 0;
239 1 A8253 = 1;
240 1 WR8253 = 1;
C51 COMPILER V7.09 MAINLOOP 10/14/2004 20:25:36 PAGE 5
241 1 delay1();
*** WARNING C206 IN LINE 241 OF MAINLOOP.C: 'delay1': missing function-prototype
242 1 WR8253 = 0;
243 1 delay1();
244 1 WR8253 = 1;
245 1 delay1();
246 1
247 1 P2 = 2;
248 1 A8253 = 0;
249 1 WR8253 = 1;
250 1 delay1();
251 1 WR8253 = 0;
252 1 delay1();
253 1 WR8253 = 1;
254 1 delay1();
255 1
256 1 P2 = 0;
257 1 A8253 = 0;
258 1 WR8253 = 1;
259 1 delay1();
260 1 WR8253 = 0;
261 1 delay1();
262 1 WR8253 = 1;
263 1 delay1();
264 1
265 1 GATE = 1;
266 1
267 1 CS8253 = 1;
268 1
269 1 // P0 = 0xFF;//初始化I/O口
270 1 // P1 = 0xFF;
271 1 // P2 = 0xFF;
272 1 // P3 = 0xFF;
273 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -