📄 text1.lst
字号:
-xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,
162 0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0x0F,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xFF,0
-xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,
163 0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0xFE,0xF3,0x3F,0xFF,0x04,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0
-x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"油",1*/
164 };
165 /***********n(us)延时子程序***************/
166 void DelayUs(uint N)
167 {
168 1 uint x;
169 1 for(x=0; x<=N;x++);
170 1 }
171 /******************************************/
172 void main()
173 {
174 1 AUXR=0x80;
175 1 CLK_DIV=0;
176 1 EX0=1; //开放外部中断0
177 1 IT0=1; //中断0为边沿触发方式
178 1 IP=0x02; //设置中断优先级
179 1 TMOD=0x02; //定时器0方式2,8位重装载
180 1 TH0=0x80; //设定定时器初值
181 1 TL0=0x80;
182 1 KY=0;
183 1 EA=1; //开放中断
184 1 ET0=1; //开放定时器0中断
C51 COMPILER V9.00 TEXT1 05/13/2012 02:20:58 PAGE 5
185 1 TR0=1; //启动定时器0,开始计时*/
186 1 key=0; //初始化显示第一组文字
187 1 keyy=0;
188 1 P1M0=0x55; //0101 0101 /P1.0 P1 .2 P1.4 P1.6推挽输出
189 1 P1M1=0xAA;
190 1
191 1 while(1){//等待中断
192 2
193 2 if(key1==0){ //有键按下
194 3 DelayUs(50);
195 3 if(key1==0){
196 4 key++; //更换下一幅图片
197 4 if(key>7) key=0; //图片循环显示 根据显示的组数来定义 这里有9组 所以就要keyy>9
198 4 while(key1==0); //等待按键释放
199 4 }
200 3 }
201 2 if(num>10) //每中断10次切换
202 2 {
203 3 keyy++;
204 3 num=0;
205 3 }
206 2 if(keyy>7)keyy=0; //图片循环显示 根据显示的组数来定义 这里有9组 所以就要keyy>9
207 2 }
208 1 }
209
210 /*********文字显示子程序**********/
211
212 void display_word(unsigned char code *text)
213 {
214 1 unsigned char i,j=2; //j为图片起始位置 3 为第3个开始是图片 如果要显示高时32的大字 也属于图片格
-式
215 1 DelayUs(6300);
216 1
217 1 for(i=0;i<64;i++)
218 1 {
219 2
220 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
221 2 P3M1=0x1B;
222 2 if((key>=j)||(keyy>=j))
223 2 BUFF=(*(text+i*4+3));
224 2 else
225 2 BUFF=(*(text+128+i*2+1));
226 2 led4=0;
227 2 P1=~BUFF>>1;
228 2 P3M0=0x10; //0001 0000 //P3.4推挽输出 P3 .0 P3.3 P3.1输入高阻
229 2 P3M1=0x0B; //0000 1011
230 2 delay(1);
231 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
232 2 P3M1=0x1B; //0001 1011
233 2 led4=1;
234 2 P1=BUFF; //01010101 1357
235 2 P3M0=0x10; //0001 0000 //P3.4推挽输出 P3 .0 P3.3 P3.1输入高阻
236 2 P3M1=0x0B; //0000 1011
237 2 delay(1);
238 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
239 2 P3M1=0x1B; //0001 1011
240 2 if((key>=j)||(keyy>=j))
241 2 BUFF=(*(text+i*4+2));
242 2 else
243 2 BUFF=(*(text+128+i*2));
244 2 led3=0;
245 2 P1=~BUFF>>1;
C51 COMPILER V9.00 TEXT1 05/13/2012 02:20:58 PAGE 6
246 2 P3M0=0x08; //0000 1000 //P3.3推挽输出 P3 .0 P3.1 P3.4输入高阻
247 2 P3M1=0x13; //0001 0011
248 2 delay(1);
249 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
250 2 P3M1=0x1B; //0001 1011
251 2 led3=1;
252 2 P1=BUFF; //01010101 1357
253 2 P3M0=0x08; //0000 1000 //P3.3推挽输出 P3 .0 P3.1 P3.4输入高阻
254 2 P3M1=0x13; //0001 0011
255 2 delay(1);
256 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
257 2 P3M1=0x1B;
258 2 if((key>=j)||(keyy>=j))
259 2 BUFF=(*(text+i*4+1));
260 2 else
261 2 BUFF=(*(text+i*2+1));
262 2 led2=0;
263 2 P1=~BUFF>>1;
264 2 P3M0=0x02; //0000 0010 //P3.1推挽输出 P3 .0 P3.3 P3.4输入高阻
265 2 P3M1=0x19; //0001 1001
266 2 delay(1);
267 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
268 2 P3M1=0x1B; //0001 1011
269 2 led2=1;
270 2 P1=BUFF; //01010101 1357
271 2 P3M0=0x02; //0000 0010 //P3.1推挽输出 P3 .0 P3.3 P3.4输入高阻
272 2 P3M1=0x19; //0001 1001
273 2 delay(1);
274 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
275 2 P3M1=0x1B; //0001
276 2 if((key>=j)||(keyy>=j))
277 2 BUFF=(*(text+i*4));
278 2 else
279 2 BUFF=(*(text+i*2));
280 2 led1=0;
281 2 P1=~BUFF>>1;
282 2 P3M0=0x01; //0000 0001 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
283 2 P3M1=0x1A; //0001 1010
284 2 delay(1);
285 2 P3M0=0x00; //0000 0000 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
286 2 P3M1=0x1B; //0001 1011
287 2 led1=1;
288 2 P1=BUFF; //01010101 1357
289 2 P3M0=0x01; //0000 0001 //P3.0推挽输出 P3 .1 P3.3 P3.4输入高阻
290 2 P3M1=0x1A; //0001 1010
291 2 delay(1);
292 2
293 2 } }
294 /*********显示内容选择子程序**********/
295 void display(unsigned char t)
296 { keyy=0;
297 1 switch (t){ //通过按键选择显示内容
298 2 case 0: {display_word(text0);}break;
299 2 case 1: {display_word(text1);}break;
300 2 case 2: {display_word(text2);}break;
301 2 case 3: {display_word(text3);}break;
302 2 case 4: {display_word(text4);}break;
303 2 case 5: {display_word(text5);}break;
304 2 case 6: {display_word(text6);}break;
305 2 case 7: {display_word(text7);}break;
306 2 // case 8: {display_word(text8);}break;
307 2 // case 9: {display_word(text9);}break;
C51 COMPILER V9.00 TEXT1 05/13/2012 02:20:58 PAGE 7
308 2 // case 10:{display_word(text10);}break;
309 2 //default:{display_word(text1);}
310 2
311 2
312 2 }}
313 /*****************************************/
314 void display1(unsigned char y)
315 {
316 1 switch (y){ //通过按键选择显示内容
317 2 case 0: {display_word(text0);}break;
318 2 case 1: {display_word(text1);}break;
319 2 case 2: {display_word(text2);}break;
320 2 case 3: {display_word(text3);}break;
321 2 case 4: {display_word(text4);}break;
322 2 case 5: {display_word(text5);}break;
323 2 case 6: {display_word(text6);}break;
324 2 case 7: {display_word(text7);}break;
325 2 // case 8: {display_word(text8);}break;
326 2 // case 9: {display_word(text9);}break;
327 2 // case 10:{display_word(text10);}break;
328 2 }
329 1 }
330 /***************************************/
331 /*********延时子程序**********/
332 void delay(unsigned char n)
333 {
334 1 for(;n>0;n--){
335 2 DelayN=DelayTime;
336 2 while (DelayN);
337 2 }
338 1 }
339 /*********中断子程序**********/
340 void int0() interrupt 0 //使用外部中断0
341 {
342 1 KY=~KY;
343 1 if(KY==0)
344 1 {
345 2 DelayTime=TimeCount/1580;
346 2 TimeCount=0; //延时周期计数清零
347 2 if(key==0)
348 2 {
349 3 num++;
350 3 display1(keyy); //根据按键选择循环显示文字
351 3 }
352 2 else
353 2 {
354 3 display(key); //根据按键选择循环显示文字
355 3 }
356 2 }
357 1 }
358 void timer0() interrupt 1 //定时器0中断子程序
359 {
360 1 TimeCount++;
361 1 if (DelayN!=0)
362 1 DelayN--;
363 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 874 ----
CONSTANT SIZE = 2048 ----
XDATA SIZE = ---- ----
C51 COMPILER V9.00 TEXT1 05/13/2012 02:20:58 PAGE 8
PDATA SIZE = ---- ----
DATA SIZE = 13 4
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 + -