1030.lst
来自「单片机红外解码及无线解码的应用」· LST 代码 · 共 237 行
LST
237 行
C51 COMPILER V7.01 1030 12/12/2005 21:45:26 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE 1030
OBJECT MODULE PLACED IN 1030.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1030.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //xing 2005/12/11
2
3 #include <YAOKONG.h>
4
5 uchar message=0;
6 uchar serior[4]={0xAA,0X55,0XA5,0X00};
7 uchar VT=0;
8 uchar data1,data2,time;
9
10 void delay(void)
11 {
12 1 uchar j,k;
13 1 //for(i=0;i<1;i++)
14 1 for (j=0;j<50;j++)
15 1 for (k=0;k<50;k++);
16 1 }
17
18 void openTimer0(void)
19 {
20 1 time=0;
21 1 TH0=0x3C;
22 1 TL0=0xB0;
23 1 TR0=1;
24 1 }
25
26
27
28 void int0 (void) interrupt 0
29 {
30 1 if (message==waitedata1)
31 1 {
32 2 data1=dataBUS;
33 2
34 2 message=waitedata2;
35 2 openTimer0();
36 2 }
37 1 else
38 1 if (message==waitedata2)
39 1 {
40 2 data2=dataBUS;
41 2 TR0=0;//closeTimer0();
42 2 message=receiveOver;
43 2 }
44 1 }
45
46 void timer0 (void) interrupt 1
47 {
48 1 if (time<40) time++;
49 1 else
50 1 {
51 2 time=0;
52 2 message=waitedata1;
53 2 TR0=0;
54 2 }
55 1 }
C51 COMPILER V7.01 1030 12/12/2005 21:45:26 PAGE 2
56
57 void receive (void) interrupt 4
58 {
59 1 if (TI==1)
60 1 TI=0;
61 1 else
62 1 RI=0;
63 1 }
64
65
66
67
68
69 initial ()
70 {
71 1 P0=0X00;
72 1 P1&=0XC0;
73 1 data1=0;
74 1 data2=0;
75 1 SCON=0X50;
76 1 TMOD=0x21;
77 1 TH1=0xF3;//0xF3;2400
78 1 TL1=0xF3;
79 1 TR1=1;
80 1 IT0=1;//下降沿
81 1 PX0=1;
82 1 EA=1;
83 1 ES=1;
84 1 EX0=1;
85 1 ET0=1;
86 1 }
87
88
89 void sendstring (uchar *p ,uchar len)
90 {
91 1 uchar i;
92 1 for (i=0;i<len;i++)
93 1 {
94 2 SBUF=*(p++);
95 2 delay();
96 2 }
97 1 }
98
99 void delay1(void)
100 {
101 1 uchar j,k;
102 1 for (j=0;j<200;j++)
103 1 for (k=0;k<250;k++);
104 1 }
105
106 void action(void)
107 {
108 1 data1&=0X0F;
109 1 data2&=0X0F;
110 1 data2=data2+(data1<<4);
111 1 switch (data2)
112 1 {
113 2 case 0x31:
114 2 JK12=!JK12;
115 2 break;
116 2 case 0x34:
117 2 JK11=!JK11;
C51 COMPILER V7.01 1030 12/12/2005 21:45:26 PAGE 3
118 2 break;
119 2 case 0x32:
120 2 serior[3]=0x04;
121 2 sendstring (serior,4);
122 2 while(NOT_VT==0)
123 2 {
124 3 delay1();
125 3 sendstring (serior,4);
126 3 }
127 2 JK12=!JK12;
128 2 break;
129 2 case 0x38:
130 2 /*serior[3]=0x02;
131 2 sendstring (serior,4);
132 2 while(NOT_VT==0)
133 2 {
134 2 delay1();
135 2 sendstring (serior,4);
136 2 }*/
137 2 JK13=!JK13;
138 2 break;
139 2 case 0x01:
140 2 JK14=1;
141 2 while(NOT_VT==0);
142 2 JK14=0;
143 2 break;
144 2
145 2 default : //JK9=!JK9;
146 2 break;
147 2 }
148 1 message=waitedata1;
149 1 }
150
151 void temperature(void)
152 {
153 1 unsigned int temper ;
154 1 uchar tempture;
155 1 uchar giveout ;
156 1 temper=0;
157 1 giveout=0;
158 1 while(temperBit==1)
159 1 {
160 2 if (message==receiveOver)
161 2 {
162 3 action();
163 3 giveout=1;
164 3 }
165 2 }
166 1 while(temperBit==0)
167 1 {
168 2 if (message==receiveOver)
169 2 {
170 3 action();
171 3 giveout=1;
172 3 }
173 2 }
174 1 while(temperBit==1)
175 1 {
176 2 if (message==receiveOver)
177 2 {
178 3 action();
179 3 giveout=1;
C51 COMPILER V7.01 1030 12/12/2005 21:45:26 PAGE 4
180 3 }
181 2 else
182 2 temper++;
183 2 }
184 1 if (temper>300) temper=300;
185 1 else
186 1 if (temper<175) temper=175;
187 1 temper-=175;
188 1 tempture=temperatur[temper];
189 1 }
190
191 void main(void)
192 {
193 1 initial();
194 1 while(1)
195 1 {
196 2 if (message==receiveOver)
197 2 {
198 3 action();
199 3 }
200 2 else
201 2 temperature();
202 2
203 2 }
204 1
205 1 }
206
207
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 409 ----
CONSTANT SIZE = 127 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?