📄 红外6.lst
字号:
C51 COMPILER V8.08 红蚠6 12/11/2008 17:42:20 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 红蚠6
OBJECT MODULE PLACED IN 红外6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 红外6.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<AT89X52.H>
2
3 void yinxiuf_INT();
4 void yinxiuf_t0();
5 void yinxiuf_q(); //停止函数
6 void yinxiuf_q0(); //前进函数
7 void yinxiuf_q1(); //后退函数
8 void yinxiuf_r(); //右转函数
9 void yinxiuf_l(); //左转函数
10 void yinxiuf_q2(); // 前进1米函数
11 void yinxiuf_q3(); //前进10厘米函数
12 void yinxiuf_q4(); //前进1毫米函数
13 void yinxiuf_r1(); //右转90度函数
14 void yinxiuf_r2(); //右转1度函数
15 void yinxiuf_r3(); // 两轮转
16 void yinxiuf_l3();
17 void delay(unsigned int);
18
19 bit b=0,a0=0,a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0,a10=0,a12=0;
20
21
22
23
24 unsigned char k=0;
25 unsigned long j=0;
26 unsigned long code a[12]={0xE240,0xE244,0xE254,0xE248,0xE250,0xE280,0xE204,0xE200,0xE208,0xE218,0xE24c,0xE
-298};
27 unsigned int code a11[]={0x7b,0xed,0xb7,0xde},a00[]={0xde,0xb7,0xed,0x7b};
28 unsigned char i;
29 unsigned int m=0;
30 int c5=0,c6=0,c7=0,c8=0,c9=0;
31
32 void main(){
33 1
34 1 yinxiuf_INT(); //初始化两外部中断,均下降沿触发
35 1 yinxiuf_t0(); //初始化T0
36 1 dog:while(EA);
37 1 for(i=0;i<12;i++)
38 1 if(a[i]==j)break;
39 1 switch(i){
40 2 case 0:a0=1;yinxiuf_q();break;
41 2 case 1:a1=1;yinxiuf_q0();break;
42 2 case 2:a2=1;yinxiuf_q1();break;
43 2 case 3:a3=1;yinxiuf_r();break;
44 2 case 4:a4=1;yinxiuf_l();break;
45 2 case 5:a5=1;yinxiuf_q2();c5=0;break;
46 2 case 6:a6=1;yinxiuf_q3();c6=0;break;
47 2 case 7:a7=1;yinxiuf_q4();c7=0;break;
48 2 case 8:a8=1;yinxiuf_r1();c8=0;break;
49 2 case 9:a9=1;yinxiuf_r2();c9=0;break;
50 2 case 10:a10=1;yinxiuf_r3();break;
51 2 case 11:a12=1;yinxiuf_l3();break;
52 2 default:break;
53 2 }
54 1 EA=1;
C51 COMPILER V8.08 红蚠6 12/11/2008 17:42:20 PAGE 2
55 1 m=0;
56 1 j=0;
57 1 b=0;
58 1 P1=P2=0xff;
59 1 goto dog;
60 1 }
61 void yinxiuf_INT0(void) interrupt 0{
62 1 TR0=1;
63 1 }
64 void yinxiuf_INT1(void) interrupt 2{
65 1 TR0=0;
66 1 if(b){
67 2 if((TH0>0x04)&&(TH0<=0x09))j=(j<<=1)+1;
68 2 else if((TH0>=0x01)&&(TH0<=0x04))j=(j<<=1)+0;
69 2 else{
70 3 j=0;
71 3 b=0;
72 3 goto apple;
73 3 }
74 2 k++;
75 2 if(k==16){
76 3 EA=0; //接受完毕,返回主函数进行处理
77 3 k=0; //清空帧信息完毕信号
78 3 a0=a1=a2=a3=a4=a5=a6=a7=a8=a9=a10=a12=0;
79 3 }
80 2 }
81 1 if(!b){if(TH0>0x09)b=1;}
82 1 apple:TH0=0;
83 1 TL0=0;
84 1 }
85 void yinxiuf_INT(void){
86 1 EA=1;
87 1 EX0=1;
88 1 EX1=1;
89 1 IT0=1;
90 1 IT1=1;
91 1 }
92 void yinxiuf_t0(void){
93 1 TMOD=0x01;
94 1 }
95 void yinxiuf_q(void){}
96 void yinxiuf_q0(void){
97 1 while(a1){
98 2 for(i=0;i<4;i++){
99 3 P1=a11[i];
100 3 P2=a11[i];
101 3 delay(3);
102 3 }
103 2
104 2 if(m++==40)EA=1; }
105 1 }
106 void yinxiuf_q1(void){
107 1 while(a2){
108 2 for(i=0;i<4;i++){
109 3 P1=a00[i];
110 3 P2=a00[i];
111 3 delay(3);
112 3 }
113 2 if(m++==40)EA=1; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -