?? remote51_new.lst
字號:
C51 COMPILER V8.02 REMOTE51_NEW 04/30/2007 08:46:20 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 P3_2 //紅外輸入引腳的定義
8 //#define IRIN P1_4 //紅外輸入引腳的定義
9
10
11 union myd{
12 unsigned long r;
13 unsigned char led[4];
14 } ;
15 union myd k;
16 unsigned long readir(void);
17 void delay1(unsigned int nms);
18 void initTimer(unsigned char st0);
19 void initTimer1(void);
20 unsigned long readir2(void);
21 extern void lcd_init(void);
22 extern void lcd_string(char *strpoint); /*在當(dāng)前顯示位置顯示LCD 字符串*/
23
24
25 unsigned char code remcode2[]={0x12,0x90,0xb8,0xf8,0x98,0xd8,0x88,0xe8,0x48,0x68,//0,1-9
26 0xb0,0xa8,0x99,0x00,0x08,0x60,0x02,0x20,
27 //VOL+,VOL-,CH+,CH-,POWER,mute,recall,-/--
28 0x40,0xa0,0x2a,0xb2,0x50,0x78,0x70,0x58,0x38,0x30};
29 // 最后3排AV。。。Freeze。。。video。。。hide。。。panel等
30 unsigned char code remcode[]={
31 0x90,0x00,0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0,0x10,//0-9的編碼
32 0x28, 0x68,0x08, 0x88, 0x58,0x48,0xc8, 0xa8,
33 //TV/AV,關(guān)機(jī),頻道-,頻道+,重復(fù),VOL+,VOL-, 靜音MUTE,
34 0x78, 0xb8, 0x38, 0xe8, 0x98,0x18, 0x98, 0x50,0xd0,
35 //亮度,MIN,HOUR,IMER,SET,定時(shí),畫中畫,2*, 3*
36 };
37 void int1(void) interrupt 2
38 { EA = 0;
39 1 k.r = readir();
40 1 IE1 = 0;
41 1 EA = 1;
42 1 IE1 = 0;
43 1 }
44
45 //UART init
46 void initUart(void)
47 {
48 1 TMOD|=0x20;
49 1 SCON=0x50;
50 1 // PCON|=0x80;
51 1 TH1=0xfd;
52 1 TL1=0xfd;
53 1 TR1=1;
54 1 ET1=0;
55 1 }
C51 COMPILER V8.02 REMOTE51_NEW 04/30/2007 08:46:20 PAGE 2
56
57 int main(void)
58 {
59 1 union myd rdata;
60 1 bit IROLD=0;
61 1 bit IRNEW=0;
62 1 unsigned char m,n,i;
63 1 unsigned char code seg[]={0x01,0x02,0x04,0x08,0x10,0x00,0x00,0x00};
64 1 unsigned char code zxm[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
65 1 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff, };
66 1 unsigned int rekey;
67 1 unsigned char key, str1[]="Code: -------- SYS:-- USER:--";
68 1 unsigned char code str2[]="Please press any key.....";
69 1 unsigned char idata irdb[142];
70 1 unsigned char leader[4];
71 1 initTimer(0);
72 1 initUart();
73 1 TI=0;
74 1 P1=0xff;
75 1 SBUF = 0xee;while(!TI);TI=0;
76 1 SBUF= 0x55; while(!TI);TI=0;
77 1 IT1=1;
78 1 EX1=1;
79 1 EA=0;rekey=0;
80 1 key=0x10;
81 1 P2= 0xff;
82 1 P0=zxm[0];
83 1 //lcd_init();
84 1 //lcd_string(str2);
85 1 while(1){
86 2 IROLD=1; TR0=0;
87 2 P0=zxm[0];
88 2 //while(IRIN); // 高電平等待
89 2 P0=zxm[9];
90 2 while(IROLD){
91 3 IRIN =1;
92 3 rekey=0;
93 3 TR0=0;
94 3 TH0=0;TL0=0;TR0=1;
95 3 while(!IRIN){rekey++;}// 低電平的起始位
96 3 TR0=0;leader[0]=TH0;leader[1]=TL0;
97 3 TH0=0;TL0=0;TR0=1;
98 3 if(rekey>500) {
99 4 IROLD=0;
100 4 }
101 3 P0=zxm[1];
102 3 }
103 2 P0=zxm[2];
104 2 while(IRIN); //高電平
105 2 TR0=0;
106 2 leader[3]=TH0;leader[4]=TL0;
107 2 TL0=0x00; TH0=0x00;
108 2 TR0=1;
109 2 m=0;
110 2 while(m<140){
111 3 IRIN =1;
112 3 while(IRIN==0) //低電平
113 3 {rekey++; //高電平
114 4 if (rekey>10000) break;
115 4 }
116 3 TR0=0;
117 3 irdb[m++]=TH0;
C51 COMPILER V8.02 REMOTE51_NEW 04/30/2007 08:46:20 PAGE 3
118 3 irdb[m++]=TL0;
119 3 TL0=0x00;TH0=0x00;
120 3 TR0=1;
121 3 rekey=0;
122 3 while(IRIN) //高電平
123 3 {rekey++;
124 4 if (rekey>10000) break;
125 4 }
126 3 TR0=0;
127 3 irdb[m++]=TH0;
128 3 irdb[m++]=TL0;
129 3 TL0=0x00; TH0=0x00;
130 3 TR0=1;
131 3 P0=zxm[3];
132 3 }
133 2
134 2 TR0=0;
135 2
136 2 rekey=0;
137 2
138 2 SBUF = 0xBB;while(!TI);TI=0;
139 2 SBUF= 0xAA; while(!TI);TI=0;
140 2
141 2 m=0;
142 2 while(m<4){
143 3
144 3 SBUF=leader[m++];while(!TI);TI=0;
145 3 SBUF=leader[m++];while(!TI);TI=0;
146 3 P0=zxm[4];
147 3 }
148 2 m=0;
149 2 while(m<140){
150 3 SBUF=irdb[m++];while(!TI);TI=0;
151 3 SBUF=irdb[m++];while(!TI);TI=0;
152 3 P0=zxm[5];
153 3 }
154 2 SBUF=0xaa;while(!TI);TI=0;
155 2 SBUF=0xbb;while(!TI);TI=0;
156 2 P0=zxm[6];
157 2 IRIN =1;
158 2 rekey=0;
159 2 while(rekey<500){rekey++;}
160 2 IROLD=0;
161 2 P0=zxm[7];
162 2 TI=0;
163 2 rekey=0;
164 2 k.r=0;
165 2 }
166 1 }
*** WARNING C280 IN LINE 59 OF REMOTE51_NEW.C: 'rdata': unreferenced local variable
*** WARNING C280 IN LINE 62 OF REMOTE51_NEW.C: 'n': unreferenced local variable
*** WARNING C280 IN LINE 62 OF REMOTE51_NEW.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 63 OF REMOTE51_NEW.C: 'seg': unreferenced local variable
*** WARNING C280 IN LINE 68 OF REMOTE51_NEW.C: 'str2': unreferenced local variable
167
168 unsigned long readir2(void)
169 { static bit IROLD=0;
170 1 bit IRNEW;
171 1 union myd rem;
172 1 IRIN =1;
173 1 IRNEW = IRIN;
174 1 if(IRNEW != IROLD)
C51 COMPILER V8.02 REMOTE51_NEW 04/30/2007 08:46:20 PAGE 4
175 1 {
176 2 rem.led[0]=TL0;
177 2 rem.led[2]=TH0;
178 2 TL0=0x00;
179 2 TH0=0x00;
180 2 TR1=1;
181 2 }
182 1 else
183 1 {
184 2 rem.r=0;
185 2 }
186 1 IROLD =IRNEW;
187 1 return rem.r;
188 1 }
189
190 void delay1(unsigned int nms)
191 {
192 1 while(nms--);
193 1 }
194
195 // 24---220us, 06---250us
196 void initTimer(unsigned char st0)
197 {
198 1 TMOD=0x01;
199 1 TH0=st0;
200 1 TL0=st0;
201 1 TR0=0;
202 1 ET0=0;
203 1 ET1=0;
204 1 }
205
206 void initTimer1(void)
207 {
208 1 TMOD =0x10;
209 1 TH1=0x00;
210 1 TL1=0x00;
211 1 TR1=0;
212 1 ET1=0;
213 1 //ET1=0;
214 1 }
215
216 unsigned long readir(void)
217 { unsigned char i;
218 1 unsigned int delay;
219 1 unsigned long rdata=0;
220 1 union myd rem;
221 1 IRIN = 1;
222 1 if(IRIN) return 0;
223 1 EA=0;i=0;
224 1 initTimer2();TF0=0;
*** WARNING C206 IN LINE 224 OF REMOTE51_NEW.C: 'initTimer2': missing function-prototype
225 1 while(IRIN==0);
226 1 /* {
227 1 while(TF0==0);
228 1 TF0=0;i++;
229 1 TH0=0xfc;TL0=0x18;
230 1 }
231 1 TR0=0;
232 1 if (i<6) return i;*/
233 1 i=32;
234 1 while(i--) //始接收
235 1 {
C51 COMPILER V8.02 REMOTE51_NEW 04/30/2007 08:46:20 PAGE 5
236 2 delay =80;
237 2 initTimer(D220U);
238 2 while(delay--) // 延時(shí)4.5ms~6.0ms
239 2 {
240 3 while(TF0==0);
241 3 TF0=0;if(IRIN==0) delay = 0;
242 3 }
243 2 TR0=0;
244 2 while(IRIN==0) IRIN = 1; //等待高電平
245 2 // 延時(shí)0.9ms begin
246 2 initTimer(D220U);
247 2 delay=6;
248 2 while(delay--)
249 2 {while(TF0==0);TF0=0;}
250 2 TR0=0;
251 2 // 延時(shí)0.9ms end
252 2 rdata <<=1;
253 2 IRIN =1;
254 2 if(IRIN)
255 2 rdata |= 0x1;
256 2 }
257 1 rem.r = rdata;
258 1 if(rem.r+1) {
259 2 if (((rem.led[0]+ rem.led[1])== 0xff) &&((rem.led[2]+ rem.led[3])== 0xff)) return rdata;
260 2 else return 0;
261 2 }
262 1 else return rdata;
263 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 880 ----
CONSTANT SIZE = 146 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 61
IDATA SIZE = ---- 142
BIT SIZE = 1 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 6 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -