📄 main.lst
字号:
C51 COMPILER V6.02 MAIN 06/27/2003 16:58:58 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\main.c DEBUG OBJECTEXTEND
stmt level source
1 #include<motor.h>
2 unsigned char motoCou;
3 main()
4 {
5 1 unsigned char KeyValue;
6 1 bit key1,key2;
7 1 ///系统初始化
8 1 key1=0;
9 1 key2=0;
10 1 CON1=0;
11 1 CON2=0;
12 1 CON3=0;
13 1 CON4=0;
14 1 CON5=0;
15 1 /* ///系统硬件设置
16 1 TMOD = 0x20;
17 1 TH1 = 0x0fd; //9600
18 1 SCON = 0x50;
19 1 PCON = 0;
20 1 TR1 = 1;
21 1 ES = 1;
22 1 EA = 1;
23 1 while(1)
24 1 {
25 1
26 1 CON5=1;
27 1 CON1=0;
28 1 delay(500);
29 1 CON1=1;
30 1 CON2=0;
31 1 delay(500);
32 1 CON2=1;
33 1 CON3=0;
34 1 delay(500);
35 1 CON3=1;
36 1 CON4=0;
37 1 delay(500);
38 1 CON4=1;
39 1 CON5=0;
40 1 delay(500);
41 1
42 1 } */
43 1 delay(2000);
44 1 while(1)
45 1 {
46 2 WDI=!WDI;
47 2 KeyValue=scankey();
48 2 switch(KeyValue)
49 2 {
50 3 case 0: break;
51 3 case 1: key1=~key1;break;
52 3 case 2: key2=~key2;break;
53 3 }
54 2 if((key1==1) && (key2!=1)) doUp();
55 2 else if((key2==1) && (key1!=1))
C51 COMPILER V6.02 MAIN 06/27/2003 16:58:58 PAGE 2
56 2 {
57 3 if(BUTTON==0) continue;
58 3 else doDown();
59 3 }
60 2 else doStop();
61 2 delay(100);
62 2 }
63 1 }
64 ///子函数定义
65 void delay(long d)
66 {
67 1 while(d--)
68 1 {
69 2 WDI=!WDI;
70 2 }
71 1 }
72
73 void doMoto(long i)
74 {
75 1 // WDI=!WDI;
76 1 switch(motoCou)
77 1 {
78 2 case 0:
79 2 CON1=1;
80 2 CON2=1;
81 2 CON3=0;
82 2 CON4=0;
83 2 CON5=0;
84 2 delay(i);
85 2 break;
86 2 case 1:
87 2 CON1=0;
88 2 CON2=1;
89 2 CON3=1;
90 2 CON4=0;
91 2 CON5=0;
92 2 delay(i);
93 2 break;
94 2 case 2:
95 2 CON1=0;
96 2 CON2=0;
97 2 CON3=1;
98 2 CON4=1;
99 2 CON5=0;
100 2 delay(i);
101 2 break;
102 2 case 3:
103 2 CON1=0;
104 2 CON2=0;
105 2 CON3=0;
106 2 CON4=1;
107 2 CON5=1;
108 2 delay(i);
109 2 break;
110 2 case 4:
111 2 CON1=1;
112 2 CON2=0;
113 2 CON3=0;
114 2 CON4=0;
115 2 CON5=1;
116 2 delay(i);
117 2 break;
C51 COMPILER V6.02 MAIN 06/27/2003 16:58:58 PAGE 3
118 2 }
119 1 // delay(200);
120 1 }
121
122 void doUp()
123 {
124 1 motoCou++;
125 1 if(motoCou > 4)
126 1 {
127 2 motoCou=0;
128 2 }
129 1 doMoto(250);
130 1 }
131
132 void doDown()
133 {
134 1 if(BUTTON==0)
135 1 {
136 2 delay(500);
137 2 return;
138 2 }
139 1 if(motoCou==0)
140 1 {
141 2 motoCou=4;
142 2 }
143 1 else
144 1 {
145 2 motoCou--;
146 2 }
147 1 doMoto(500);
148 1 }
149
150 void doStop(void)
151 {
152 1 CON1=0;
153 1 CON2=0;
154 1 CON3=0;
155 1 CON4=0;
156 1 CON5=0;
157 1 }
158
159 unsigned char scankey(void)
160 {
161 1 unsigned char key;
162 1 BUTTON_UP=1;
163 1 BUTTON_DOWN=1;
164 1 key=0;
165 1 delay(10);
166 1 key=BUTTON_UP;
167 1 if(BUTTON_UP==0) delay(20);
168 1 if(BUTTON_UP==0)
169 1 {
170 2 while(BUTTON_UP==0)
171 2 {
172 3 WDI=!WDI;
173 3 }
174 2 return 1;
175 2 }
176 1 key=0;
177 1 delay(10);
178 1 key=BUTTON_DOWN;
179 1 if(BUTTON_DOWN==0) delay(20);
C51 COMPILER V6.02 MAIN 06/27/2003 16:58:58 PAGE 4
180 1 if(BUTTON_DOWN==0)
181 1 {
182 2 while(BUTTON_DOWN==0)
183 2 {
184 3 WDI=!WDI;
185 3 }
186 2 return 2;
187 2 }
188 1 else return 0;
189 1 }
190
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 367 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 8
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -