📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 12/04/2007 01:27:31 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #define uchar unsigned char
3
4 sbit key_cycleless=P3^3;
5 sbit key_start=P3^4;
6 sbit key_reset=P3^2;
7 sbit key_set=P1^5;//定义键盘
8 sbit key_add=P1^6;
9 sbit key_esc=P1^7;
10 sbit key_pause=P3^5;
11
12 extern bit dir_flag;
13 extern bit Glint_enable_flag;
14 extern uchar Dis_bit_p;
15 extern uchar Counter;
16 extern void time_set();
17 extern void run();
18 extern void step_motor();
19 uchar Time[5]={0,0,0,0,0,};//秒百位,秒十位,秒个位,循环十位,循环个位
20 bit Second_flag;
21 bit Run_mode;
22 bit volatile Glint_time_flag;
23 bit Time_set_mode;
24 bit Pause_flag;
25 bit reset_flag;
26 bit reset_mode;
27 /***********延时程序约10MS****************/
28
29 void delay()
30 {
31 1 unsigned char i,j;
32 1 for(i=0;i<50;i++)
33 1
34 1 for(j=0;j<100;j++);
35 1 }
36
37
38 /*========================T0中断=============================*/
39 void timer0() interrupt 1 using 1
40 {
41 1 unsigned int time;
42 1 unsigned int sndacc; /*秒累加器*/
43 1 sndacc=sndacc+1;
44 1
45 1 if(sndacc==4000)
46 1 {
47 2
48 2 Second_flag=1;
49 2
50 2 if(Second_flag==1)//一秒时间到
51 2 {
52 3 time=Time[0]*100+Time[1]*10+Time[2];
53 3 time--;
54 3 Time[0]=time/100;
55 3 Time[1]=(time-(time/100)*100)/10;
C51 COMPILER V7.06 MAIN 12/04/2007 01:27:31 PAGE 2
56 3 Time[2]=(time-(time/100)*100)%10;
57 3
58 3 /*
59 3 Time[2]--;
60 3
61 3 if(Time[2]==0)
62 3 {
63 3 if(Time[1]!=0)
64 3 {
65 3 Time[1]--;
66 3 Time[2]=9;
67 3 }
68 3 else
69 3 if(Time[0]!=0)
70 3 {
71 3 Time[0]--;
72 3 Time[1]=9;
73 3 Time[2]=9;
74 3 }
75 3 else
76 3 Time[2]=0;
77 3 }
78 3 */
79 3 Second_flag=0;
80 3 }
81 2 sndacc=0;
82 2 }
83 1 }
84
85 void reset()//////////////////////////////////////////////////
86 {
87 1 while(key_reset==0)
88 1 key_reset=1;
89 1 reset_mode=1;
90 1 reset_flag=1;
91 1 dir_flag=1;
92 1 TR0=0;
93 1 Second_flag=0;
94 1 Time_set_mode=0;
95 1 Run_mode=0;
96 1 Pause_flag=0;
97 1 Glint_time_flag=0;
98 1 Counter=0;
99 1 Glint_enable_flag=0;
100 1 Dis_bit_p=0;
101 1 Time[0]=10;
102 1 Time[1]=10;
103 1 Time[2]=10;
104 1 Time[3]=10;
105 1 Time[4]=10;//显示"--"
106 1 key_cycleless=1;
107 1 key_start=1;
108 1 key_reset=1;
109 1 key_set=1;
110 1 key_add=1;
111 1 key_esc=1;
112 1
113 1
114 1 }
115
116 void interrupt_int0 () interrupt 0 using 3
117 {
C51 COMPILER V7.06 MAIN 12/04/2007 01:27:31 PAGE 3
118 1 reset();
119 1 }
120
121
122 void pause()
123 {
124 1 Pause_flag=1;
125 1 Glint_enable_flag=1;
126 1 while(Pause_flag==1)
127 1 {
128 2 TR0=0;
129 2
130 2 if(key_start==0)
131 2 {
132 3 delay();
133 3 if(key_start==0)
134 3 {
135 4 while(key_start==0)
136 4 key_start=1;
137 4 TR0=1;
138 4 Pause_flag=0;
139 4 Glint_enable_flag=0;
140 4 }
141 3 }
142 2
143 2
144 2
145 2 }
146 1 }
147
148 main()
149 {
150 1 key_cycleless=1;
151 1 key_start=1;
152 1 key_reset=1;
153 1 key_set=1;
154 1 key_add=1;
155 1 key_esc=1;
156 1
157 1
158 1 if(key_cycleless==0)//如果是无限循环,则显示"--"
159 1 {
160 2 Time[4]=10;
161 2 Time[3]=10;
162 2 }
163 1
164 1 TMOD&=0xf0;
165 1 TMOD|=0x02;
166 1 TH0=0x1a;//250us
167 1 TL0=0x1a;
168 1 ET0=1;
169 1
170 1
171 1 TMOD&=0x0f;
172 1 TMOD|=0x10;//T1工作方式1
173 1 TH1=0xf8;
174 1 TL1=0xcd;
175 1 ET1=1;
176 1 TR1=1;
177 1 EA=1;
178 1
179 1 IT0=1;
C51 COMPILER V7.06 MAIN 12/04/2007 01:27:31 PAGE 4
180 1 EX0=1;
181 1 //@@@@reset();
182 1 while(1)
183 1 {
184 2
185 2 if(key_set==0)
186 2 {
187 3 delay();
188 3 if(key_set==0)
189 3 {
190 4 while(key_set==0)
191 4 key_set=1;
192 4 Counter=1;//@@@@@@@@@@@@@@@@@@@@@@@@@
193 4
194 4 //while(key_set==0)
195 4 // key_set=1;
196 4 time_set();
197 4 }
198 3 }
199 2 if(reset_mode==0)
200 2 { if(key_start==0)
201 3 {
202 4 delay();
203 4 if(key_start==0)
204 4 {
205 5 while(key_start==0)
206 5 key_start=1;
207 5 TR0=1;
208 5 run();
209 5 }
210 4 }
211 3 }
212 2
213 2 }
214 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 382 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 2
IDATA SIZE = ---- ----
BIT SIZE = 7 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -