📄 chuanglian.lst
字号:
C51 COMPILER V6.20c CHUANGLIAN 11/21/2007 15:43:40 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE CHUANGLIAN
OBJECT MODULE PLACED IN chuanglian.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chuanglian.c ROM(SMALL) DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89x051.H>
2
3 #define led1 P3_0
4 #define led2 P3_1
5 #define led3 P1_6
6 #define led4 P1_5
7
8 unsigned char k;
9 unsigned char data psCount; //定时器计数器
10 unsigned char data i;
11 unsigned char data j;
12 unsigned char data temp;
13 unsigned char data dp[4]; //用来保存红外遥控的码值
14
15 main()
16 {
17 1 led1=0;
18 1 led2=0;
19 1 led3=0;
20 1 led4=1;
21 1 k=0;
22 1 dp[0]=0;
23 1 dp[1]=0;
24 1 dp[2]=0;
25 1 dp[3]=0;
26 1 TMOD=0X11;
27 1 TH0 = 254; //定时500uS
28 1 TL0 = 12;
29 1 TCON=0X05;
30 1 PX1=0;
31 1 PT0=1;
32 1 IE=0X80;
33 1 TR0=1;
34 1 EX1=1;
35 1 while(1)
36 1 {
37 2 if(dp[2]==0Xf3)
38 2 {
39 3 dp[2]=0;
40 3 led1=1;
41 3 led2=1;
42 3
43 3 }
44 2 if(dp[2]==0Xff)
45 2 {
46 3 dp[2]=0;
47 3 led1=1;
48 3 led2=0;
49 3 }
50 2 if(dp[2]==0Xfb)
51 2 {
52 3 dp[2]=0;
53 3 led1=0;
54 3 led2=1;
55 3 }
C51 COMPILER V6.20c CHUANGLIAN 11/21/2007 15:43:40 PAGE 2
56 2 if(dp[2]==0xf7)
57 2 {
58 3 dp[2]=0;
59 3 k=k+1;
60 3
61 3 if(k==3)
62 3 {
63 4 k=1;
64 4 }
65 3 //led1=1;
66 3 //led2=0;
67 3
68 3 }
69 2 if(k==1)
70 2 {led3=1;
71 3 led4=0;
72 3 }
73 2 if(k==2)
74 2 {
75 3 led3=0;
76 3 led4=1;
77 3 }
78 2 if(k==1)
79 2 {
80 3 if(P1_4==1)
81 3 {
82 4 led1=1;
83 4 led2=0;
84 4 }
85 3 if(P1_4==0)
86 3 {
87 4 led1=0;
88 4 led2=1;
89 4 }
90 3 }
91 2 }
92 1 }
93
94
95 void timer0() interrupt 1
96 {
97 1
98 1
99 1 psCount++;
100 1
101 1 TH0 = 254;//(65536-500)/256; //定时500uS
102 1 TL0 = 12;//(65536-500)%256;
103 1
104 1 }
105 void INT1_ISR() interrupt 2 using 2
106 {
107 1 ET0=0;
108 1 psCount=0;
109 1 //while(P3_2==1);//判断是否有键被按下
110 1 ET0=1;
111 1 while(P3_3 == 0);
112 1 if( psCount > 17)//0.5* 17 = 8.5ms约为9.0ms
113 1 {
114 2 ET0 = 0;
115 2 psCount = 0;
116 2 ET0 = 1;
117 2 while(P3_3 == 1);
C51 COMPILER V6.20c CHUANGLIAN 11/21/2007 15:43:40 PAGE 3
118 2 if(psCount > 5)//超过0.5*5 = 2.5毫秒,是起始位,小于2.5MS是停止位,检查一下遥控命令是不是连发,不是
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -