📄 main_0.lst
字号:
C51 COMPILER V7.06 MAIN_0 05/21/2009 11:42:54 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN_0
OBJECT MODULE PLACED IN main_0.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main_0.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //============================
2 //绕线机程序
3 //============================
4
5 #ifndef __main_0_c__
6 #define __main_0_c__
7
8 #include "included.h"
9
10 void main(void)
11 {
12 1 uchar key_value;
13 1
14 1 init_port();
15 1 TMOD = 0X11;
16 1 TH1 = 0X55;
17 1 TL1 = 0X00;
18 1 TR1 = 0;
19 1 ET1 =1;
20 1 EA =1;
21 1
22 1 clr_dis_sram();
23 1
24 1 int_lcd();
25 1
26 1 dis_0();
27 1
28 1 speak();
29 1
30 1 out_add = 0xff;
31 1
32 1 while(1)
33 1 {
34 2 key_value = key();
35 2
36 2 switch(key_value)
37 2 {
38 3 case 10:speak();tiaojie();break;
39 3
40 3 case 11:speak();setup_key();break;
41 3
42 3 case 12:speak();setup_key(); break;
43 3
44 3 case 15:speak();run(); break;
45 3 }
46 2 }
47 1 }
48 //=========================================
49 void tiaojie(void)
50 {
51 1 uchar temp=20;
52 1 uint t=0;
53 1
54 1 out_add = 0xff;
55 1
C51 COMPILER V7.06 MAIN_0 05/21/2009 11:42:54 PAGE 2
56 1 while(1)
57 1 {
58 2 temp = key_123();
59 2
60 2 switch(temp)
61 2 {
62 3 case 11:
63 3 dir_h();
64 3 for_m(2);
65 3 break;
66 3 case 12:
67 3 dir_l();
68 3 for_m(2);
69 3 break;
70 3 }
71 2 }
72 1 }
73 //=========================================
74 void run(void)
75 {
76 1 uint i=0;
77 1 unsigned int avr_[7];
78 1 unsigned int count;
79 1 unsigned int h=0;
80 1 unsigned int gh=0;
81 1 unsigned int speed;
82 1 uint temp[3],tem[3];
83 1
84 1 avr_[0] = fact_date(XIANJING);//线径
85 1
86 1 temp[2] = avr_[0]/100;
87 1 tem[2] = avr_[0]%100;
88 1 temp[1] = tem[2]/10;
89 1 tem[1] = tem[2]%10;
90 1 temp[0] = tem[1];
91 1 avr_[0] = temp[2]*2200+temp[1]*220+temp[0]*22;
92 1
93 1 avr_[1] = fact_date(QUANSHU); //圈数
94 1 avr_[2] = fact_date(ZASHU); //匝数===1层需要多少
95 1
96 1 avr_[3] = fact_date(CHOUTOU_1); //抽头1
97 1 avr_[4] = fact_date(CHOUTOU_2); //抽头2
98 1 avr_[5] = fact_date(CHOUTOU_3); //抽头3
99 1 avr_[6] = fact_date(CHOUTOU_4); //抽头4
100 1
101 1 speed=fact_sudu();
102 1 count=0;
103 1 out_add = 0x00;
104 1 for(i=0;i<400;i++) ;
105 1 TR1 =1;
106 1 do{
107 2 while(P3_3==0);
108 2 count++;
109 2 display(count);
110 2 gh=count/avr_[2]; //匝数===1层需要多少
111 2 if(gh%2)
112 2 {
113 3 dir_h();
114 3 for(h=0;h<=avr_[0];h++)
115 3 for_m(speed); //正转
116 3 }
117 2 else
C51 COMPILER V7.06 MAIN_0 05/21/2009 11:42:54 PAGE 3
118 2 {
119 3 dir_l();
120 3 for(h=0;h<=avr_[0];h++)
121 3 back_m(speed); //反转
122 3 }
123 2 if((count== avr_[3])&&(avr_[3]!=0)) //抽头1
124 2 {
125 3 out_add = 0xff;
126 3 start_key();
127 3 out_add = 0x00;
128 3 }
129 2 else if((count== (avr_[4]+avr_[3]))&&(avr_[4]!=0)) //抽头2
130 2 {
131 3 out_add = 0xff;
132 3 start_key();
133 3 out_add = 0x00;
134 3 }
135 2
136 2 else if((count== (avr_[5]+avr_[4]+avr_[3]))&&(avr_[5]!=0)) //抽头3
137 2 {
138 3 out_add = 0xff;
139 3 start_key();
140 3 out_add = 0x00;
141 3 }
142 2
143 2 else if((count== (avr_[6]+avr_[5]+avr_[4]+avr_[3]))&&(avr_[6]!=0)) //抽头4
144 2 {
145 3 out_add = 0xff;
146 3 start_key();
147 3 out_add = 0x00;
148 3 }
149 2 else if(count >= avr_[1]) //圈数
150 2 {
151 3
152 3 out_add = 0xff;
153 3 start_key();
154 3 out_add = 0x00;
155 3 count=0;
156 3 P3_5=0;
157 3 delay_1ms(500);
158 3 P3_5=1;
159 3 }
160 2 }while(1);
161 1 }
162 //===============================
163 void start_key(void)
164 {
165 1 uchar temp;
166 1 do{
167 2 temp= key();
168 2 }while(temp!=15);
169 1 }
170 //============================
171 void timer_1(void)interrupt 3 using 2
172 {
173 1 TR1 =0;
174 1 TH1 = 0X55;
175 1 TL1 = 0X55;
176 1 P1_0 =0;
177 1 _nop_();
178 1 _nop_();
179 1 if(P3_2==0)
C51 COMPILER V7.06 MAIN_0 05/21/2009 11:42:54 PAGE 4
180 1 {
181 2 out_add = 0xff;
182 2 while(stop()!=15);
183 2 out_add = 0x00;
184 2 }
185 1 TR1 =1;
186 1
187 1 }
188
189 //=============================
190 uchar stop(void)
191 {
192 1 uchar scan_code=0xfe;
193 1 uchar key_val=00;
194 1 uchar time_0 =0x00;
195 1
196 1 jxkey_1:
197 1 do{ //检测按键是否被按下
198 2 while(ks1()==0);
199 2 delay_1ms(20);//消抖动
200 2 }while(ks1()==0);
201 1
202 1 scan_code=0xfe;
203 1
204 1 for(time_0=0;time_0<8;time_0++)
205 1 {
206 2 P1 = scan_code;
207 2 P3 |= 0X07;
208 2 _nop_();
209 2 _nop_();
210 2 _nop_();
211 2
212 2 if( P3_0 == 0)
213 2 {
214 3 key_val=time_0; //0-7key
215 3 break;
216 3 }
217 2 if( P3_1 == 0)
218 2 {
219 3 key_val=time_0+0x08; //8-15key
220 3 break;
221 3 }
222 2 if( P3_2 == 0)
223 2 { //16 key=stop key
224 3 key_val=0x10;
225 3 break;
226 3 }
227 2 scan_code = scan_code<<1;
228 2 }
229 1
230 1 if(key_val>0x10)
231 1 goto jxkey_1;
232 1 else
233 1 do{
234 2 while(ks0()==1);
235 2 delay_1ms(20);//消抖动
236 2 //等待按键弹起
237 2 }while(ks0()==1);
238 1
239 1 return (key_val);
240 1 }
241 //=============================
C51 COMPILER V7.06 MAIN_0 05/21/2009 11:42:54 PAGE 5
242 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 832 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 40
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 + -