📄 text1.lst
字号:
C51 COMPILER V7.01 TEXT1 07/14/2008 20:47:30 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char
2 #define uint unsigned int
3 #define ulong unsigned long
4 /**********************************************************************/
5 #include <reg52.h>
6 #include <intrins.h>
7 /**********************************************************************/
8 //控制前进后退
9 //sbit MO_A=P1^4;
10 //sbit MO_B=P1^5;
11 //控制左右转
12 /*sbit LR_A=P1^0;
13 sbit LR_B=P1^2;
14 sbit LR_C=P1^1;
15 sbit LR_D=P1^3;*/
16 sbit P11=P1^1;
17
18 sbit M0=P0^0; //前进
19 sbit M1=P0^1 ; //后退
20 sbit LR_A=P0^2;//控制电机管脚
21 sbit LR_B=P0^3;//控制电机管脚
22 sbit LA=P0^4; //左边光敏电阻标志
23 sbit LB=P0^5; //右边
24
25 sbit ZD=P0^7; //中断判断标志
26 /*********************************************************************/
27 uchar n;
28 uchar time; //后轮马达变量
29 uchar period=100;
30 uchar high=64;
31 uchar d; //停车中断使用的延时变量
32
33 /*********************************************************************/
34 uchar tingche; // 开门时停车标志位
35 uchar zhongduancishu;//防止中断干扰标志位
36 /*********************************************************************/
37
38 /*
39 uchar count;
40
41 void timer0()interrupt 1 using 2 // 12M晶振 延时50ms程序
42 {count++;
43 TH0=(65536-50000)/256;
44 TL0=(65536-50000)%256;
45 }
46 /*********************************************************************/
47 void delay()
48 {
49 1 uchar i,j;
50 1 for(i=0;i<255;i++)
51 1 {for(j=0;j<10;j++);
52 2 }
53 1
54 1 }
55 delay5s()
C51 COMPILER V7.01 TEXT1 07/14/2008 20:47:30 PAGE 2
56 {
57 1 uint i,j;
58 1 for(i=0;i<350;i++)
59 1 {
60 2 for(j=0;j<2500;j++)
61 2 {;}
62 2 }
63 1 }
64
65
66 hongwaizhongduan() interrupt 0 using 2
67 {
68 1 if(ZD==0){
69 2
70 2 zhongduancishu++;
71 2
72 2 for(d=8;d>0;d--)
73 2 delay();
74 2 }
75 1 if(zhongduancishu==6)
76 1 {tingche=1;}
77 1
78 1 }
79
80
81 timer1() interrupt 3 using 0 // 进车库
82 {
83 1 TH1=(65536-50000)/256;
84 1 TL1=(65536-50000)%256;
85 1
86 1 n++;
87 1
88 1 }
89
90
91 timer0() interrupt 1 using 1 // 前进
92 {
93 1 TH0=(65536-500)/256;
94 1 TL0=(65536-500)%256;
95 1
96 1 if (++time==high)
97 1 M1=0;
98 1 else if(time==period)
99 1 {
100 2
101 2 time=0;
102 2 M1=1;
103 2 }
104 1 }
105
106 void left()
107 {uchar q;
108 1 LR_B=1;
109 1 delay();
110 1 LR_A=0;
111 1 //M1=0;
112 1 for(q=8;q>0;q--)delay();
113 1 //M1=1;
114 1 //_nop_();
115 1
116 1 }
117
C51 COMPILER V7.01 TEXT1 07/14/2008 20:47:30 PAGE 3
118 void right()
119 {uchar q;
120 1 LR_A=1;
121 1 delay();
122 1 LR_B=0;
123 1 for(q=8;q>0;q--)delay();
124 1 //M1=0;
125 1
126 1 //M1=1;
127 1 //_nop_();
128 1
129 1 }
130
131 void main(void)
132 {
133 1
134 1
135 1 TMOD=0x11; //定时器0和1都工作在方式1 16位
136 1 TH0=(65536-500)/256;
137 1 TL0=(65536-500)%256;
138 1 TH1=(65536-10000)/256;
139 1 TL1=(65536-10000)%256;
140 1 P11=0;
141 1
142 1 IT0=0;
143 1 EX0=1; //外部中断0
144 1 ET0=1; //开启定时器0
145 1 TR0=1;
146 1 M0=1;
147 1
148 1 //TMOD=0x01;
149 1 //TH0=(65536-50000)/256;
150 1 // TL0=(65536-50000)%256;
151 1 // IE=0x83;
152 1 // IT0=1;
153 1 //TR0=1;
154 1 //M1=0;
155 1 //delay();
156 1 //M1=1;
157 1 EA=1;
158 1 while(1)
159 1 {
160 2 //LR_D=1;
161 2 //LR_C=0;
162 2 LR_A=1;
163 2 LR_B=1;
164 2
165 2 if(LA==1)
166 2 {left();}
167 2
168 2 if(LB==1)
169 2 {right();
170 3 //count=0;
171 3 }
172 2
173 2
174 2 if(tingche==1)
175 2
176 2 { ET0=0;
177 3 TR0=0;
178 3 EX0=0;
179 3 M1=1;
C51 COMPILER V7.01 TEXT1 07/14/2008 20:47:30 PAGE 4
180 3 M0=1;
181 3 tingche=0;
182 3 delay5s();
183 3 delay5s();
184 3 delay5s();
185 3
186 3
187 3 ET1=1;
188 3 TR1=1;
189 3 ET0=1;
190 3 TR0=1;
191 3 }
192 2
193 2 if(n==103)
194 2 {
195 3 ET1=0;
196 3 TR1=0;
197 3 ET0=0;
198 3 TR0=0;
199 3 EA=0;
200 3 n=0;
201 3 M0=1;
202 3 M1=1;
203 3 LR_A=1;
204 3 LR_B=1;
205 3
206 3 }
207 2 }
208 1
209 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 265 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 ----
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 + -