C51 COMPILER V8.02 JVZHENJIANPAN 06/22/2010 11:26:31 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE JVZHENJIANPAN OBJECT MODULE PLACED IN jvzhenjianpan.OBJ COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE jvzhenjianpan.c BROWSE DEBUG OBJECTEXTEND line level source 1 //4*4键盘检测程序,按下键后相应的代码显示在数码管上 2 #include 3 sbit beep=P2^3; 4 sbit dula=P2^6; 5 sbit wela=P2^7; 6 unsigned char i=100; 7 unsigned char j,k,temp,key; 8 void delay(unsigned char i) 9 { 10 1 for(j=i;j>0;j--) 11 1 for(k=125;k>0;k--); 12 1 } 13 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 14 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; 15 display(unsigned char num) 16 { 17 1 P0=table[num]; 18 1 dula=1; 19 1 dula=0; 20 1 P0=0xc0; 21 1 wela=1; 22 1 wela=0; 23 1 } 24 void main() 25 { 26 1 dula=0; 27 1 wela=0; 28 1 while(1) 29 1 { 30 2 P3=0xfe; 31 2 temp=P3; 32 2 temp=temp&0xf0; 33 2 if(temp!=0xf0) 34 2 { 35 3 delay(10); 36 3 if(temp!=0xf0) 37 3 { 38 4 temp=P3; 39 4 switch(temp) 40 4 { 41 5 case 0xee: 42 5 key=0; 43 5 break; 44 5 45 5 case 0xde: 46 5 key=1; 47 5 break; 48 5 49 5 case 0xbe: 50 5 key=2; 51 5 break; 52 5 53 5 case 0x7e: 54 5 key=3; 55 5 break; C51 COMPILER V8.02 JVZHENJIANPAN 06/22/2010 11:26:31 PAGE 2 56 5 } 57 4 while(temp!=0xf0) 58 4 { 59 5 temp=P3; 60 5 temp=temp&0xf0; 61 5 beep=0; 62 5 } 63 4 beep=1; 64 4 display(key); 65 4 P1=0xfe; 66 4 } 67 3 } 68 2 P3=0xfd; 69 2 temp=P3; 70 2 temp=temp&0xf0; 71 2 if(temp!=0xf0) 72 2 { 73 3 delay(10); 74 3 if(temp!=0xf0) 75 3 { 76 4 temp=P3; 77 4 switch(temp) 78 4 { 79 5 case 0xed: 80 5 key=4; 81 5 break; 82 5 83 5 case 0xdd: 84 5 key=5; 85 5 break; 86 5 87 5 case 0xbd: 88 5 key=6; 89 5 break; 90 5 91 5 case 0x7d: 92 5 key=7; 93 5 break; 94 5 } 95 4 while(temp!=0xf0) 96 4 { 97 5 temp=P3; 98 5 temp=temp&0xf0; 99 5 beep=0; 100 5 } 101 4 beep=1; 102 4 display(key); 103 4 } 104 3 } 105 2 P3=0xfb; 106 2 temp=P3; 107 2 temp=temp&0xf0; 108 2 if(temp!=0xf0) 109 2 { 110 3 delay(10); 111 3 if(temp!=0xf0) 112 3 { 113 4 temp=P3; 114 4 switch(temp) 115 4 { 116 5 case 0xeb: 117 5 key=8; C51 COMPILER V8.02 JVZHENJIANPAN 06/22/2010 11:26:31 PAGE 3 118 5 break; 119 5 120 5 case 0xdb: 121 5 key=9; 122 5 break; 123 5 124 5 case 0xbb: 125 5 key=10; 126 5 break; 127 5 128 5 case 0x7b: 129 5 key=11; 130 5 break; 131 5 } 132 4 while(temp!=0xf0) 133 4 { 134 5 temp=P3; 135 5 temp=temp&0xf0; 136 5 beep=0; 137 5 } 138 4 beep=1; 139 4 display(key); 140 4 } 141 3 } 142 2 P3=0xf7; 143 2 temp=P3; 144 2 temp=temp&0xf0; 145 2 if(temp!=0xf0) 146 2 { 147 3 delay(10); 148 3 if(temp!=0xf0) 149 3 { 150 4 temp=P3; 151 4 switch(temp) 152 4 { 153 5 case 0xe7: 154 5 key=12; 155 5 break; 156 5 157 5 case 0xd7: 158 5 key=13; 159 5 break; 160 5 161 5 case 0xb7: 162 5 key=14; 163 5 break; 164 5 165 5 case 0x77: 166 5 key=15; 167 5 break; 168 5 } 169 4 while(temp!=0xf0) 170 4 { 171 5 temp=P3; 172 5 temp=temp&0xf0; 173 5 beep=0; 174 5 } 175 4 beep=1; 176 4 display(key); 177 4 } 178 3 } 179 2 } C51 COMPILER V8.02 JVZHENJIANPAN 06/22/2010 11:26:31 PAGE 4 180 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 395 ---- CONSTANT SIZE = 16 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 5 ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)