📄 led.lst
字号:
C51 COMPILER V7.06 LED 01/14/2009 10:59:59 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<AT89X52.h>
2
3 unsigned char count;count1,count2;
4 unsigned int data time;
5 #define PWM_DELAY 60
6 #define OFF_DELAY 20
7 unsigned char data PWMR,PWMB,PWMG;
8
9 unsigned char DIP_P1;
10 //-------初始化函数------------------
11 void init_serialcomm( void )
12 {
13 1 SCON = 0x50 ;
14 1 TMOD=0x01;
15 1 TMOD |= 0x20 ;
16 1 TH1=0XFD;
17 1 TL1=0XFD;
18 1 TR1 = 1 ;
19 1 TH0=0Xff;
20 1 TL0=0X06;
21 1 TR0=1;
22 1 }
23 //----------延时函数-----------------
24 void DELAY(unsigned int MS)
25 {
26 1 unsigned char us,usn;
27 1 while(MS!=0)
28 1 {
29 2 usn = 2; //在12M晶振下接近1ms
30 2 while(usn!=0)
31 2 {
32 3 us=0xf9;
33 3 while (us!=0){us--;};
34 3 usn--;
35 3 }
36 2 MS--;
37 2 }
38 1 }
39
40
41
42
43 void sent_data(void )
44 {
45 1 unsigned char OPREG;
46 1 DIP_P1=P1&0X0F;
47 1 switch(DIP_P1)
48 1 {
49 2 case 1:PWMR=100; //红色
50 2 PWMB=0;
51 2 PWMG=0;
52 2
53 2 break;
54 2 case 2: PWMR=100; ////红色+绿色
55 2 PWMG=100;
C51 COMPILER V7.06 LED 01/14/2009 10:59:59 PAGE 2
56 2 PWMB=0;
57 2
58 2 break;
59 2
60 2 case 3: PWMR=0; ///+绿色
61 2 PWMG=100;
62 2 PWMB=0;
63 2
64 2 break;
65 2 case 4: PWMR=0; /////蓝色+绿色
66 2 PWMG=100;
67 2 PWMB=100;
68 2
69 2 break;
70 2 case 5: PWMR=0; /////蓝色
71 2 PWMG=0;
72 2 PWMB=100;
73 2
74 2 break;
75 2 case 6: PWMR=100; ////红色+蓝色
76 2 PWMG=0;
77 2 PWMB=100;
78 2
79 2 break;
80 2
81 2 case 7: PWMR=100; ////红色+蓝色+绿色
82 2 PWMG=100;
83 2 PWMB=100;
84 2
85 2 break;
86 2 case 8: break;
87 2 default:PWMG=0;
88 2 PWMB=0;
89 2 PWMR=0;
90 2 break;
91 2 }
92 1 OPREG=PWMR;
93 1 OPREG+=0X80;
94 1 SBUF=OPREG;
95 1 while(TI==0);
96 1 TI=0;
97 1 SBUF=PWMB;
98 1 while(TI==0);
99 1 TI=0;
100 1 SBUF=PWMG;
101 1 while(TI==0);
102 1 TI=0;
103 1 }
104
105
106
107 //------------------------------------------------
108 main()
109 {
110 1 P1=0XFF;
111 1 DIP_P1=P1&0X0F;
112 1 init_serialcomm(); //初始化串口
113 1 while(1)
114 1 {
115 2 for(PWMR=0;PWMR<=100;PWMR++) //红色
116 2 {
117 3 DELAY( PWM_DELAY );
C51 COMPILER V7.06 LED 01/14/2009 10:59:59 PAGE 3
118 3 sent_data( );
119 3 }
120 2 DELAY( 12000);
121 2 for(PWMR=100;PWMR>0;PWMR--)
122 2 {
123 3 DELAY( PWM_DELAY );
124 3 sent_data( );
125 3 }
126 2 DELAY( OFF_DELAY);
127 2 PWMG=0;
128 2 PWMB=0;
129 2 PWMR=0;
130 2 for(PWMR=0;PWMR<=100;PWMR++, PWMG++) //红色+绿色
131 2 {
132 3 DELAY( PWM_DELAY );
133 3 sent_data( );
134 3 }
135 2 DELAY( 12000);
136 2 for(PWMR=100;PWMR>0;PWMR--, PWMG--)
137 2 {
138 3 DELAY( PWM_DELAY );
139 3 sent_data( );
140 3 }
141 2 DELAY( OFF_DELAY);
142 2 PWMG=0;
143 2 PWMB=0;
144 2 PWMR=0;
145 2 for(PWMG=0;PWMG<=100;PWMG++) //绿色
146 2 {
147 3 DELAY( PWM_DELAY );
148 3 sent_data( );
149 3 }
150 2 DELAY( 12000);
151 2 for(PWMG=100;PWMG>0;PWMG--)
152 2
153 2 {
154 3 DELAY( PWM_DELAY );
155 3 sent_data( );
156 3 }
157 2 DELAY( OFF_DELAY);
158 2 PWMG=0;
159 2 PWMB=0;
160 2 PWMR=0;
161 2 for(PWMG=0;PWMG<=100;PWMG++) //蓝色+绿色
162 2 {
163 3 PWMB++ ;
164 3 DELAY( PWM_DELAY );
165 3 sent_data( );
166 3 }
167 2 DELAY( 12000);
168 2 for(PWMG=100;PWMG>0;PWMG--)
169 2 {
170 3 PWMB--;
171 3 DELAY( PWM_DELAY );
172 3 sent_data( );
173 3 }
174 2 DELAY( OFF_DELAY);
175 2 PWMG=0;
176 2 PWMB=0;
177 2 PWMR=0;
178 2 for(PWMB=0;PWMB<=100;PWMB++) //蓝色
179 2 {
C51 COMPILER V7.06 LED 01/14/2009 10:59:59 PAGE 4
180 3 DELAY( PWM_DELAY );
181 3 sent_data( );
182 3 }
183 2 DELAY( 12000);
184 2 for(PWMB=100;PWMB>0;PWMB--)
185 2 {
186 3
187 3 DELAY( PWM_DELAY );
188 3 sent_data( );
189 3 }
190 2 DELAY( OFF_DELAY);
191 2 PWMG=0;
192 2 PWMB=0;
193 2 PWMR=0;
194 2 for(PWMR=0;PWMR<=100;PWMR++, PWMB++) //红色+蓝色
195 2 {
196 3 DELAY( PWM_DELAY );
197 3 sent_data( );
198 3 }
199 2 DELAY( 12000);
200 2 for(PWMR=100;PWMR>0;PWMR--, PWMB--)
201 2 {
202 3 DELAY( PWM_DELAY );
203 3 sent_data( );
204 3 }
205 2 DELAY( OFF_DELAY);
206 2 PWMG=0;
207 2 PWMB=0;
208 2 PWMR=0;
209 2 for(PWMR=0;PWMR<=100;PWMR++,PWMB++,PWMG++) //红色+绿色+蓝色
210 2 {
211 3 DELAY( PWM_DELAY );
212 3 sent_data( );
213 3 }
214 2 DELAY( 12000);
215 2 for(PWMR=100;PWMR>0;PWMR--,PWMG--,PWMB--)
216 2 {
217 3 DELAY( PWM_DELAY );
218 3 sent_data( );
219 3 }
220 2 DELAY( OFF_DELAY);
221 2
222 2
223 2
224 2 }
225 1
226 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 566 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -