C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE MIMAIIC OBJECT MODULE PLACED IN mimaiic.OBJ COMPILER INVOKED BY: D:\´¦ÀíÈí¼þ\keil\C51\BIN\C51.EXE mimaiic.c BROWSE DEBUG OBJECTEXTEND line level source 1 /******************************************************************************* 2 ¡°ÌìÏéµç×Ó¡± ÇãÇé·îÏ× 3 www.txmcu.cn 4 www.txmcu.com 5 ******************************************************************************** 6 ¹¦Äܼü 7 S6---S15 Êý×Ö¼ü0-9 8 S16---¸ü¸ÄÃÜÂë S17---¸ü¸ÄÃÜÂëÍê±ÏºóÈ·ÈÏ 9 S18---ÖØÊÔÃÜÂë¡¢ÖØÐÂÉ趨 S19---¹Ø±ÕÃÜÂëËø 10 ³õʼÃÜÂ룺000000 ÃÜÂëλÊý£º6λ 11 ×¢Ò⣺µôµçºó£¬ËùÉèÃÜÂë»á¶ªÊ§£¬ÖØÐÂÉϵãʱ£¬ÃÜÂë»Ö¸´ÎªÔ­Ê¼µÄ000000 12 ÓëP1ÏàÁ¬µÄ8λ·¢¹âLEDµãÁÁ´ú±íËø±»´ò¿ª£»Ï¨Ãð´ú±íËø±»ËøÉÏ 13 14 ³ÌÐò¹¦ÄÜ£º ±¾³ÌÐò½áºÏÁË24C02´æ´¢Æ÷µÄ´æ´¢¹¦ÄÜ£¬¿ÉÒÔµôµç±£´æÃÜÂë¡£ 15 µÚÒ»´ÎÔËÐÐʱ£¬ÈôÊäÈë000000ԭʼÃÜÂëºóÎÞ·´Ó¦£¬¿ÉÒÔÊÔÑé׎«Ö÷³ÌÐòÖÐÇ°ÃæµÄ 16 һС¶Î±»×¢ÊÍÏ߯Á±ÎµÄ³ÌÐòǰµÄ×¢ÊÍÏßɾµô£¬È»ºóÖØÐ±àÒëÏÂÔØ£¨¿ÉÒÔ½«ÃÜÂ뻹ԭΪ000000£©¡£ 17 ´Ëºó£¬ÔÙ½«ÕâС¶Î³ÌÐòÆÁ±Îµô£¬ÔÙ±àÒëÏÂÔØ¡£·½¿ÉÕý³£Ê¹Óᣠ18 1¡¢¿ªËø£º 19 ÏÂÔØ³ÌÐòºó£¬Ö±½Ó°´Áù´ÎS7£¨¼´´ú±íÊý×Ö1£©£¬8λLEDÁÁ£¬Ëø±»´ò¿ª£¬ÊäÈëÃÜÂëʱ£¬ 20 ÁùλÊýÂë¹ÜÒÀ´ÎÏÔʾСºá¸Ü¡£ 21 2¡¢¸ü¸ÄÃÜÂ룺 22 Ö»Óе±¿ªËø£¨LEDÁÁ£©ºó£¬¸Ã¹¦ÄÜ·½¿ÉʹÓᣠ23 Ê×ÏȰ´Ï¸ü¸ÄÃÜÂë¼üS16£¬È»ºóÉèÖÃÏàÓ¦ÃÜÂ룬´ËʱÁùλÊýÂë¹Ü»áÏÔʾÉèÖÃÃÜÂë¶ÔÓ¦ 24 µÄÊý×Ö¡£×îºóÉèÖÃÍêÁùλºó£¬°´ÏÂS17È·ÈÏÃÜÂë¸ü¸Ä£¬´ËºóÐÂÃÜÂë¼´ÉúЧ¡£ 25 3¡¢ÖØÊÔÃÜÂ룺 26 µ±ÊäÈëÃÜÂëʱ£¬ÃÜÂëÊä´íºó°´Ï¼üS18£¬¿ÉÖØÐÂÊäÈëÁùλÃÜÂë¡£ 27 µ±ÉèÖÃÃÜÂëʱ£¬ÉèÖÃÖÐ;Ïë¸ü¸ÄÃÜÂ룬Ҳ¿É°´Ï´˼üÖØÐÂÉèÖᣠ28 4¡¢¹Ø±ÕÃÜÂëËø£º 29 °´ÏÂS19¼´¿É½«´ò¿ªµÄÃÜÂëËø¹Ø±Õ¡£ 30 ÍÆ¼ö³õ¼¶ÑÝʾ²½Ö裺ÊäÈëԭʼÃÜÂë000000---°´Ï¸ü¸ÄÃÜÂë°´¼üS16---°´0µ½9ÉèÖÃÃÜÂë---°´S17 31 È·ÈÏÃÜÂë¸ü¸Ä---°´S18¹Ø±ÕÃÜÂëËø---ÊäÈëеÄÃÜÂë´ò¿ªÃÜÂëËø 32 *******************************************************************************/ 33 #include 34 #include 35 #define uint unsigned int 36 #define uchar unsigned char 37 38 uchar old1,old2,old3,old4,old5,old6; //ԭʼÃÜÂë000000 39 uchar new1,new2,new3,new4,new5,new6; //ÿ´ÎMCU²É¼¯µ½µÄÃÜÂëÊäÈë 40 uchar a=16,b=16,c=16,d=16,e=16,f=16; //ËÍÈëÊýÂë¹ÜÏÔʾµÄ±äÁ¿ 41 uchar wei,key,temp; 42 43 bit allow,genggai,ok,wanbi,retry,close; //¸÷¸ö״̬λ 44 45 sbit dula=P2^6; 46 sbit wela=P2^7; 47 sbit beep=P2^3; 48 sbit sda=P2^0; //IO¿Ú¶¨Òå 49 sbit scl=P2^1; 50 51 unsigned char code table[]= 52 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 53 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40}; 54 55 /*****************IICоƬ24C02´æ´¢Æ÷Çý¶¯³ÌÐò************************************/ C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 2 56 57 void nop() 58 { 59 1 _nop_(); 60 1 _nop_(); 61 1 } 62 /////////24C02¶ÁдÇý¶¯³ÌÐò//////////////////// 63 void delay1(unsigned int m) 64 { unsigned int n; 65 1 for(n=0;n0;j--) 184 1 for(k=125;k>0;k--); 185 1 } 186 187 void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f) 188 { 189 1 dula=0; 190 1 P0=table[a]; 191 1 dula=1; 192 1 dula=0; 193 1 194 1 wela=0; 195 1 P0=0xfe; 196 1 wela=1; 197 1 wela=0; 198 1 delay(5); 199 1 200 1 P0=table[b]; 201 1 dula=1; 202 1 dula=0; 203 1 204 1 P0=0xfd; 205 1 wela=1; 206 1 wela=0; 207 1 delay(5); 208 1 209 1 P0=table[c]; 210 1 dula=1; 211 1 dula=0; 212 1 213 1 P0=0xfb; 214 1 wela=1; 215 1 wela=0; 216 1 delay(5); 217 1 218 1 P0=table[d]; 219 1 dula=1; 220 1 dula=0; 221 1 222 1 P0=0xf7; 223 1 wela=1; 224 1 wela=0; 225 1 delay(5); 226 1 227 1 P0=table[e]; 228 1 dula=1; 229 1 dula=0; 230 1 231 1 P0=0xef; 232 1 wela=1; 233 1 wela=0; 234 1 delay(5); 235 1 236 1 P0=table[f]; 237 1 dula=1; 238 1 dula=0; 239 1 240 1 P0=0xdf; C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 5 241 1 wela=1; 242 1 wela=0; 243 1 delay(5); 244 1 } 245 246 247 void keyscan() 248 { 249 1 { 250 2 P3=0xfe; 251 2 temp=P3; 252 2 temp=temp&0xf0; 253 2 if(temp!=0xf0) 254 2 { 255 3 delay(10); 256 3 if(temp!=0xf0) 257 3 { 258 4 temp=P3; 259 4 switch(temp) 260 4 { 261 5 case 0xee: 262 5 key=0; 263 5 wei++; 264 5 break; 265 5 266 5 case 0xde: 267 5 key=1; 268 5 wei++; 269 5 break; 270 5 271 5 case 0xbe: 272 5 key=2; 273 5 wei++; 274 5 break; 275 5 276 5 case 0x7e: 277 5 key=3; 278 5 wei++; 279 5 break; 280 5 } 281 4 while(temp!=0xf0) 282 4 { 283 5 temp=P3; 284 5 temp=temp&0xf0; 285 5 beep=0; 286 5 } 287 4 beep=1; 288 4 } 289 3 } 290 2 P3=0xfd; 291 2 temp=P3; 292 2 temp=temp&0xf0; 293 2 if(temp!=0xf0) 294 2 { 295 3 delay(10); 296 3 if(temp!=0xf0) 297 3 { 298 4 temp=P3; 299 4 switch(temp) 300 4 { 301 5 case 0xed: 302 5 key=4; C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 6 303 5 wei++; 304 5 break; 305 5 306 5 case 0xdd: 307 5 key=5; 308 5 wei++; 309 5 break; 310 5 311 5 case 0xbd: 312 5 key=6; 313 5 wei++; 314 5 break; 315 5 316 5 case 0x7d: 317 5 key=7; 318 5 wei++; 319 5 break; 320 5 } 321 4 while(temp!=0xf0) 322 4 { 323 5 temp=P3; 324 5 temp=temp&0xf0; 325 5 beep=0; 326 5 } 327 4 beep=1; 328 4 } 329 3 } 330 2 P3=0xfb; 331 2 temp=P3; 332 2 temp=temp&0xf0; 333 2 if(temp!=0xf0) 334 2 { 335 3 delay(10); 336 3 if(temp!=0xf0) 337 3 { 338 4 temp=P3; 339 4 switch(temp) 340 4 { 341 5 case 0xeb: 342 5 key=8; 343 5 wei++; 344 5 break; 345 5 346 5 case 0xdb: 347 5 key=9; 348 5 wei++; 349 5 break; 350 5 351 5 case 0xbb: 352 5 genggai=1; 353 5 wei=0; 354 5 break; 355 5 356 5 case 0x7b: 357 5 if(allow) 358 5 ok=1; 359 5 break; 360 5 } 361 4 while(temp!=0xf0) 362 4 { 363 5 temp=P3; 364 5 temp=temp&0xf0; C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 7 365 5 beep=0; 366 5 } 367 4 beep=1; 368 4 } 369 3 } 370 2 P3=0xf7; 371 2 temp=P3; 372 2 temp=temp&0xf0; 373 2 if(temp!=0xf0) 374 2 { 375 3 delay(10); 376 3 if(temp!=0xf0) 377 3 { 378 4 temp=P3; 379 4 switch(temp) 380 4 { 381 5 case 0xe7: 382 5 retry=1; 383 5 break; 384 5 385 5 case 0xd7: 386 5 close=1; 387 5 break; 388 5 } 389 4 while(temp!=0xf0) 390 4 { 391 5 temp=P3; 392 5 temp=temp&0xf0; 393 5 beep=0; 394 5 } 395 4 beep=1; 396 4 } 397 3 } 398 2 } 399 1 } 400 401 void shumima() //¶Ô°´¼ü²É¼¯À´µÄÊý¾Ý½øÐзÖÅä 402 { 403 1 if(!wanbi) 404 1 { 405 2 switch(wei) 406 2 { 407 3 case 1:new1=key; 408 3 if(!allow) a=17; 409 3 else a=key; break; 410 3 case 2:new2=key; 411 3 if(a==17) b=17; 412 3 else b=key; break; 413 3 case 3:new3=key; 414 3 if(a==17) c=17; 415 3 else c=key; break; 416 3 case 4:new4=key; 417 3 if(a==17) d=17; 418 3 else d=key; break; 419 3 case 5:new5=key; 420 3 if(a==17) e=17; 421 3 else e=key; break; 422 3 case 6:new6=key; 423 3 if(a==17) f=17; 424 3 else f=key; 425 3 wanbi=1; break; 426 3 } C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 8 427 2 } 428 1 } 429 430 void yanzheng() //ÑéÖ¤ÃÜÂëÊÇ·ñÕýÈ· 431 { 432 1 if(wanbi) //Ö»Óе±ÁùλÃÜÂë¾ùÊäÈëÍê±Ïºó·½½øÐÐÑéÖ¤ 433 1 { 434 2 if((new1==old1)&(new2==old2)&(new3==old3)&(new4==old4)&(new5==old5)&(new6==old6)) 435 2 allow=1; //µ±ÊäÈëµÄÃÜÂëÕýÈ·£¬»áµÃµ½alloweÖÃÒ» 436 2 } 437 1 } 438 439 void main() 440 { 441 1 442 1 init(); //³õʼ»¯24C02 443 1 /*********ÏÂÃæµÄһС¶Î³ÌÐòµÄ¹¦ÄÜΪ¸ñʽ»¯ÃÜÂë´æ´¢Çø¡£************ 444 1 ******µ±24c02ÖÐÕâЩ´æ´¢ÇøÓÉÓÚÆäËû³ÌÐòµÄÔËÐжøµ¼ÖÂ*************** 445 1 *******Ëù´æÊý¾Ý·¢ÉúÁ˱仯£¬»òÕßÃÜÂëÒÅÍüʱ£¬ ******************** 446 1 ******¿ÉÒÔɾµôÆäÇ°ÃæµÄ×¢ÊÍÏߣ¬È»ºóÖØÐ±àÒëÏÂÔØ¡£**************** 447 1 ******¶ø½«ÃÜÂ뻹ԭΪ000000ºó£¬Ç뽫ÏÂÃæµÄ³ÌÐòÓÃ****************** 448 1 ******×¢ÊÍÆÁ±Îµô£¬ÖØÐ±àÒë¡¢ÏÂÔØ£¬·½¿ÉÕý³£Ê¹ÓÃ****************/ 449 1 // write24c02(110,0x00); 450 1 // write24c02(111,0x00);//24c02µÄµÚ110µ½115µØÖ·µ¥Ôª×÷ΪÃÜÂë´æ´¢Çø 451 1 // write24c02(112,0x00); 452 1 // write24c02(113,0x00); 453 1 // write24c02(114,0x00); 454 1 // write24c02(115,0x00); 455 1 /*******************************************************************/ 456 1 457 1 458 1 old1=read24c02(110); 459 1 old2=read24c02(111); 460 1 old3=read24c02(112); 461 1 old4=read24c02(113); 462 1 old5=read24c02(114); 463 1 old6=read24c02(115); 464 1 465 1 while(1) 466 1 { 467 2 keyscan(); 468 2 shumima(); 469 2 yanzheng(); 470 2 if(allow) //ÑéÖ¤Íêºó£¬ÈôallowΪ1£¬Ôò¿ªËø 471 2 { 472 3 P1=0x00; 473 3 if(!genggai) 474 3 wanbi=0; 475 3 } 476 2 if(genggai) //µ±S16¸ü¸ÄÃÜÂë¼ü±»°´Ï£¬genggai»á±»ÖÃÒ» 477 2 { 478 3 if(allow) //ÈôÒѾ­°ÑËø´ò¿ª£¬²ÅÓиü¸ÄÃÜÂëµÄȨÏÞ 479 3 { 480 4 while(!wanbi) //µ±ÐµÄÁùλÃÜÂëûÓÐÉ趨Í꣬ÔòÒ»Ö±ÔÚÕâÀïÑ­»· 481 4 { 482 5 keyscan(); 483 5 shumima(); 484 5 if(retry|close) //¶øµ±Ì½²âµ½ÖØÊÔ¼üS18»òÕ߹رÕÃÜÂëËø¼üS19±»°´ÏÂʱ£¬ÔòÌø³ö 485 5 { wanbi=1; 486 6 break; 487 6 } 488 5 display(a,b,c,d,e,f); C51 COMPILER V8.02 MIMAIIC 07/14/2010 14:43:21 PAGE 9 489 5 } 490 4 } 491 3 } 492 2 if(ok) //¸ü¸ÄÃÜÂëʱ£¬µ±ËùÓÐÁùλÐÂÃÜÂë¾ù±»°´ÏÂʱ£¬¿ÉÒÔ°´Ï´˼ü£¬½áÊøÃÜÂë¸ü¸Ä 493 2 { //ÆäËûʱ¼ä°´Ï´˼üÎÞЧ 494 3 ok=0; wei=0; 495 3 genggai=0; 496 3 old1=new1;old2=new2;old3=new3; //´Ëʱ£¬¾ÉµÄÃÜÂ뽫±»´úÌæ 497 3 old4=new4;old5=new5;old6=new6; 498 3 //ÐÂÃÜÂëдÈë´æ´¢Çø¡£ 499 3 write24c02(110,old1); 500 3 write24c02(111,old2); 501 3 write24c02(112,old3); 502 3 write24c02(113,old4); 503 3 write24c02(114,old5); 504 3 write24c02(115,old6); 505 3 a=16;b=16;c=16;d=16;e=16;f=16; 506 3 } 507 2 if(retry) //µ±ÖØÊÔ°´¼üS18±»°´Ï£¬retry»á±»ÖÃλ 508 2 { 509 3 retry=0; wei=0;wanbi=0; 510 3 a=16;b=16;c=16;d=16;e=16;f=16; 511 3 new1=0;new2=0;new3=0;new4=0;new5=0;new6=0; 512 3 } 513 2 if(close) //µ±¹Ø±ÕÃÜÂëËø°´¼ü±»°´Ï£¬close»á±»ÖÃλ 514 2 { 515 3 close=0;genggai=0;//ËùÓбäÁ¿¾ù±»ÇåÁã¡£ 516 3 wei=0; wanbi=0; 517 3 allow=0; 518 3 P1=0xff; 519 3 a=16;b=16;c=16;d=16;e=16;f=16; 520 3 new1=0;new2=0;new3=0;new4=0;new5=0;new6=0; 521 3 } 522 2 display(a,b,c,d,e,f); //ʵʱÏÔʾ 523 2 } 524 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 1190 ---- CONSTANT SIZE = 18 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 21 6 IDATA SIZE = ---- ---- BIT SIZE = 6 ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)