📄 remote51_new.lst
字号:
C51 COMPILER V8.02 REMOTE51_NEW 02/12/2007 10:05:00 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE REMOTE51_NEW
OBJECT MODULE PLACED IN REMOTE51_NEW.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE REMOTE51_NEW.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REGX52.H>
2 #define D45MS 2500
3 #define D09MS 450
4 #define D220U 0x90
5 #define D250U 0x06
6
7 #define IRIN P2_0 //红外输入引脚的定义
8 //#define IRIN P1_4 //红外输入引脚的定义
9 //#define IRIN P2_7
10 //#define IRGND P2_6
11
12 union myd{
13 unsigned long r;
14 unsigned char led[4];
15 } ;
16 union myd k;
17 unsigned long readir(void);
18 void delay1(unsigned int nms);
19 void initTimer(unsigned char st0);
20 void initTimer1(void);
21 unsigned long readir2(void);
22 extern void lcd_init(void);
23 extern void lcd_string(char *strpoint); /*在当前显示位置显示LCD 字符串*/
24
25
26 unsigned char code remcode[]={0x12,0x90,0xb8,0xf8,0x98,0xd8,0x88,0xe8,0x48,0x68,//0,1-9
27 0xb0,0xa8,0x99,0x00,0x08,0x60,0x02,0x20,
28 //VOL+,VOL-,CH+,CH-,POWER,mute,recall,-/--
29 0x40,0xa0,0x2a,0xb2,0x50,0x78,0x70,0x58,0x38,0x30};
30 // 最后3排AV。。。Freeze。。。video。。。hide。。。panel等
31
32 void int1(void) interrupt 2
33 { EA = 0;
34 1 k.r = readir();
35 1 IE1 = 0;
36 1 EA = 1;
37 1 IE1 = 0;
38 1 }
39
40 //UART init
41 void initUart(void)
42 {
43 1 TMOD|=0x20;
44 1 SCON=0x50;
45 1 // PCON|=0x80;
46 1 //TH1=0xfd; TL1=0xfd;//11.0592M 9600bps
47 1
48 1 TH1=0xf3; TL1=0xf3;PCON|=0x80;//24M 9600bps
49 1 TR1=1;
50 1 ET1=0;
51 1 }
52
53 int main(void)
54 {
55 1 union myd rdata;
C51 COMPILER V8.02 REMOTE51_NEW 02/12/2007 10:05:00 PAGE 2
56 1 bit IROLD=0;
57 1 bit IRNEW=0;
58 1 unsigned char m,n,i;
59 1 unsigned char code seg[]={0x01,0x02,0x04,0x08,0x10,0x00,0x00,0x00};
60 1 unsigned char code zxm[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
61 1 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff, };
62 1 unsigned int rekey;
63 1 unsigned char key, str1[]="Code: -------- SYS:-- USER:--";
64 1 unsigned char code str2[]="Please press any key.....";
65 1 unsigned char idata irdb[128];
66 1 unsigned char leader[4];
67 1 initTimer(0);
68 1 initUart();
69 1 TI=0;
70 1 P1=0xff;
71 1 SBUF = 0xee;while(!TI);TI=0;
72 1 SBUF= 0x55;
73 1 while(!TI);TI=0;
74 1 IT1=1;
75 1 EX1=1;
76 1 EA=0;rekey=0;
77 1 key=0x10;
78 1 //lcd_init();
79 1 //lcd_string(str2);
80 1 while(1){
81 2 IROLD=1; TR0=0;
82 2 while(IRIN);
83 2 while(IROLD){
84 3 IRIN =1;
85 3 rekey=0;
86 3 TR0=0;
87 3 TH0=0;TL0=0;TR0=1;
88 3 while(!IRIN){rekey++;}
89 3 TR0=0;leader[0]=TH0;leader[1]=TL0;
90 3 TH0=0;TL0=0;TR0=1;
91 3 if(rekey>500) {
92 4 IROLD=0;
93 4 }
94 3 }
95 2 while(IRIN); //高电平
96 2 TR0=0;
97 2 leader[3]=TH0;leader[4]=TL0;
98 2 TL0=0x00; TH0=0x00;
99 2 TR0=1;
100 2 m=0;
101 2 while(m<127){
102 3 IRIN =1;
103 3 while(IRIN==0); //低电平
104 3 TR0=0;
105 3 irdb[m++]=TH0;
106 3 irdb[m++]=TL0;
107 3 TL0=0x00;TH0=0x00;
108 3 TR0=1;
109 3 while(IRIN); //高电平
110 3 TR0=0;
111 3 irdb[m++]=TH0;
112 3 irdb[m++]=TL0;
113 3 TL0=0x00; TH0=0x00;
114 3 TR0=1;
115 3 }
116 2
117 2 TR0=0;
C51 COMPILER V8.02 REMOTE51_NEW 02/12/2007 10:05:00 PAGE 3
118 2
119 2 rekey=0;
120 2 m=0;
121 2 while(m<4){
122 3
123 3 SBUF=leader[m++];while(!TI);TI=0;
124 3 SBUF=leader[m++];while(!TI);TI=0;
125 3
126 3 }
127 2 m=0;
128 2 while(m<127){
129 3
130 3 SBUF=irdb[m++];while(!TI);TI=0;
131 3 SBUF=irdb[m++];while(!TI);TI=0;
132 3
133 3 }
134 2
135 2 IROLD=0;
136 2 while(IROLD){
137 3 IRIN =1;
138 3 rekey=0;
139 3 while(IRIN){IRIN =1;rekey++;}
140 3 if(rekey>500) IROLD=0;
141 3 }
142 2 TI=0;
143 2 SBUF=0xaa;while(!TI);TI=0;
144 2 SBUF=0xbb;while(!TI);TI=0;
145 2 rekey=0;
146 2
147 2 k.r=0;
148 2 }
149 1 }
*** WARNING C280 IN LINE 55 OF REMOTE51_NEW.C: 'rdata': unreferenced local variable
*** WARNING C280 IN LINE 58 OF REMOTE51_NEW.C: 'n': unreferenced local variable
*** WARNING C280 IN LINE 58 OF REMOTE51_NEW.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 59 OF REMOTE51_NEW.C: 'seg': unreferenced local variable
*** WARNING C280 IN LINE 60 OF REMOTE51_NEW.C: 'zxm': unreferenced local variable
*** WARNING C280 IN LINE 64 OF REMOTE51_NEW.C: 'str2': unreferenced local variable
150
151 unsigned long readir2(void)
152 { static bit IROLD=0;
153 1 bit IRNEW;
154 1 union myd rem;
155 1 IRIN =1;
156 1 IRNEW = IRIN;
157 1 if(IRNEW != IROLD)
158 1 {
159 2 rem.led[0]=TL0;
160 2 rem.led[2]=TH0;
161 2 TL0=0x00;
162 2 TH0=0x00;
163 2 TR1=1;
164 2 }
165 1 else
166 1 {
167 2 rem.r=0;
168 2 }
169 1 IROLD =IRNEW;
170 1 return rem.r;
171 1 }
172
173 void delay1(unsigned int nms)
C51 COMPILER V8.02 REMOTE51_NEW 02/12/2007 10:05:00 PAGE 4
174 {
175 1 while(nms--);
176 1 }
177
178 // 24---220us, 06---250us
179 void initTimer(unsigned char st0)
180 {
181 1 TMOD=0x01;
182 1 TH0=st0;
183 1 TL0=st0;
184 1 TR0=0;
185 1 ET0=0;
186 1 ET1=0;
187 1 }
188
189 void initTimer1(void)
190 {
191 1 TMOD =0x10;
192 1 TH1=0x00;
193 1 TL1=0x00;
194 1 TR1=0;
195 1 ET1=0;
196 1 //ET1=0;
197 1 }
198
199 unsigned long readir(void)
200 { unsigned char i;
201 1 unsigned int delay;
202 1 unsigned long rdata=0;
203 1 union myd rem;
204 1 IRIN = 1;
205 1 if(IRIN) return 0;
206 1 EA=0;i=0;
207 1 initTimer2();TF0=0;
*** WARNING C206 IN LINE 207 OF REMOTE51_NEW.C: 'initTimer2': missing function-prototype
208 1 while(IRIN==0);
209 1 /* {
210 1 while(TF0==0);
211 1 TF0=0;i++;
212 1 TH0=0xfc;TL0=0x18;
213 1 }
214 1 TR0=0;
215 1 if (i<6) return i;*/
216 1 i=32;
217 1 while(i--) //始接收
218 1 {
219 2 delay =80;
220 2 initTimer(D220U);
221 2 while(delay--) // 延时4.5ms~6.0ms
222 2 {
223 3 while(TF0==0);
224 3 TF0=0;if(IRIN==0) delay = 0;
225 3 }
226 2 TR0=0;
227 2 while(IRIN==0) IRIN = 1; //等待高电平
228 2 // 延时0.9ms begin
229 2 initTimer(D220U);
230 2 delay=6;
231 2 while(delay--)
232 2 {while(TF0==0);TF0=0;}
233 2 TR0=0;
234 2 // 延时0.9ms end
C51 COMPILER V8.02 REMOTE51_NEW 02/12/2007 10:05:00 PAGE 5
235 2 rdata <<=1;
236 2 IRIN =1;
237 2 if(IRIN)
238 2 rdata |= 0x1;
239 2 }
240 1 rem.r = rdata;
241 1 if(rem.r+1) {
242 2 if (((rem.led[0]+ rem.led[1])== 0xff) &&((rem.led[2]+ rem.led[3])== 0xff)) return rdata;
243 2 else return 0;
244 2 }
245 1 else return rdata;
246 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 787 ----
CONSTANT SIZE = 119 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 61
IDATA SIZE = ---- 128
BIT SIZE = 1 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 7 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -