C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE CLOCKDINGSHI OBJECT MODULE PLACED IN clockdingshi.OBJ COMPILER INVOKED BY: D:\´¦ÀíÈí¼þ\keil\C51\BIN\C51.EXE clockdingshi.c BROWSE DEBUG OBJECTEXTEND line level source 1 //¸ÃÀý³ÌΪÊýÂë¹ÜÏÔʾ¿Éµ÷ÖÓ±í£¬Óõ½TX-1C¿ª·¢°åÖоØÕó¼üÅ̵ÄÉÏÈýÅŰ´¼ü¡£ 2 //ÈôÒª¸ü¸ÄʱÖÓ³õʼֵ£¨¼´Ê±ÖÓУ׼£©£¬¿ÉÏȰ´Ï¾ØÕó¼üÅÌÖеÄS16¼ü£¨µÚÈýÅŵÚÈýÁУ©£¬´ËʱʱÖÓ»áÔÝÍ£¡£ 3 //È»ºó°´S6---S15ÖеļüÐ޸ĽÃÕýµ±Ç°Öµ£¬S6--S15·Ö±ðÏȺó¶ÔÓ¦Êý×Ö0µ½9¡£ 4 //½ÃÕýÍêºó£¬°´ÏÂS17£¨µÚÈýÅÅ×îºóÒ»¸ö£©£¬Ê±ÖӿɼÌÐø¹¤×÷¡£ 5 //×¢Òâ¾§ÕñÐèΪ11.0592M¡£ 6 //ÈôΪÆäËûÊýÖµ¾§Õñ£¬ÇëºÏÀí¸Ä±äTH0ÓëTL0²ÎÊýÖµ£¬·ñÔò¼ÆÊ±»áÓкܴóÎó²î ¡£ 7 8 #include 9 10 #define uchar unsigned char 11 12 sbit dula=P2^6; 13 sbit wela=P2^7; 14 sbit beep=P2^3; 15 unsigned char j,k,a1,a0,b1,b0,c1,c0,s,f,m,key=10,temp,qq; 16 uchar shi20,shi10,fen20,fen10,miao20,miao10,ok=1,wei,dingshi,change,yidingshi; 17 uchar baoshi,baoshijieshu; 18 unsigned int pp; 19 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 20 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; 21 22 void delay(unsigned char i) 23 { 24 1 for(j=i;j>0;j--) 25 1 for(k=125;k>0;k--); 26 1 } 27 void display(uchar shi2,uchar shi1,uchar fen2,uchar fen1,uchar miao2,uchar miao1) 28 { 29 1 dula=0; 30 1 P0=table[shi2]; 31 1 dula=1; 32 1 dula=0; 33 1 34 1 wela=0; 35 1 P0=0xfe; 36 1 wela=1; 37 1 wela=0; 38 1 delay(5); 39 1 40 1 P0=table[shi1]|0x80; 41 1 dula=1; 42 1 dula=0; 43 1 44 1 P0=0xfd; 45 1 wela=1; 46 1 wela=0; 47 1 delay(5); 48 1 49 1 P0=table[fen2]; 50 1 dula=1; 51 1 dula=0; 52 1 53 1 P0=0xfb; 54 1 wela=1; 55 1 wela=0; C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 2 56 1 delay(5); 57 1 58 1 P0=table[fen1]|0x80; 59 1 dula=1; 60 1 dula=0; 61 1 62 1 P0=0xf7; 63 1 wela=1; 64 1 wela=0; 65 1 delay(5); 66 1 67 1 P0=table[miao2]; 68 1 dula=1; 69 1 dula=0; 70 1 71 1 P0=0xef; 72 1 wela=1; 73 1 wela=0; 74 1 delay(5); 75 1 76 1 P0=table[miao1]; 77 1 dula=1; 78 1 dula=0; 79 1 80 1 P0=0xdf; 81 1 wela=1; 82 1 wela=0; 83 1 delay(5); 84 1 } 85 86 void keyscan0() 87 { 88 1 P3=0xfb; 89 1 temp=P3; 90 1 temp=temp&0xf0; 91 1 if(temp!=0xf0) 92 1 { 93 2 delay(10); 94 2 if(temp!=0xf0) 95 2 { 96 3 temp=P3; 97 3 switch(temp) 98 3 { 99 4 case 0xbb: 100 4 ok=0; 101 4 change=1; 102 4 break; 103 4 104 4 case 0x7b: 105 4 ok=1; 106 4 change=0; 107 4 dingshi=0; 108 4 break; 109 4 } 110 3 111 3 } 112 2 } 113 1 P3=0xf7; 114 1 temp=P3; 115 1 temp=temp&0xf0; 116 1 if(temp!=0xf0) 117 1 { C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 3 118 2 delay(10); 119 2 if(temp!=0xf0) 120 2 { 121 3 temp=P3; 122 3 switch(temp) 123 3 { 124 4 case 0xe7: 125 4 ok=0; 126 4 dingshi=1; 127 4 break; 128 4 case 0xd7: 129 4 yidingshi=0; //È¡Ïû¶¨Ê± 130 4 break; 131 4 } 132 3 133 3 } 134 2 } 135 1 } 136 137 138 void keyscan() 139 { 140 1 { 141 2 P3=0xfe; 142 2 temp=P3; 143 2 temp=temp&0xf0; 144 2 if(temp!=0xf0) 145 2 { 146 3 delay(10); 147 3 if(temp!=0xf0) 148 3 { 149 4 temp=P3; 150 4 switch(temp) 151 4 { 152 5 case 0xee: 153 5 key=0; 154 5 wei++; 155 5 break; 156 5 157 5 case 0xde: 158 5 key=1; 159 5 wei++; 160 5 break; 161 5 162 5 case 0xbe: 163 5 key=2; 164 5 wei++; 165 5 break; 166 5 167 5 case 0x7e: 168 5 key=3; 169 5 wei++; 170 5 break; 171 5 } 172 4 while(temp!=0xf0) 173 4 { 174 5 temp=P3; 175 5 temp=temp&0xf0; 176 5 beep=0; 177 5 } 178 4 beep=1; 179 4 } C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 4 180 3 } 181 2 P3=0xfd; 182 2 temp=P3; 183 2 temp=temp&0xf0; 184 2 if(temp!=0xf0) 185 2 { 186 3 delay(10); 187 3 if(temp!=0xf0) 188 3 { 189 4 temp=P3; 190 4 switch(temp) 191 4 { 192 5 case 0xed: 193 5 key=4; 194 5 wei++; 195 5 break; 196 5 197 5 case 0xdd: 198 5 key=5; 199 5 wei++; 200 5 break; 201 5 202 5 case 0xbd: 203 5 key=6; 204 5 wei++; 205 5 break; 206 5 207 5 case 0x7d: 208 5 key=7; 209 5 wei++; 210 5 break; 211 5 } 212 4 while(temp!=0xf0) 213 4 { 214 5 temp=P3; 215 5 temp=temp&0xf0; 216 5 beep=0; 217 5 } 218 4 beep=1; 219 4 } 220 3 } 221 2 P3=0xfb; 222 2 temp=P3; 223 2 temp=temp&0xf0; 224 2 if(temp!=0xf0) 225 2 { 226 3 delay(10); 227 3 if(temp!=0xf0) 228 3 { 229 4 temp=P3; 230 4 switch(temp) 231 4 { 232 5 case 0xeb: 233 5 key=8; 234 5 wei++; 235 5 break; 236 5 237 5 case 0xdb: 238 5 key=9; 239 5 wei++; 240 5 break; 241 5 } C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 5 242 4 while(temp!=0xf0) 243 4 { 244 5 temp=P3; 245 5 temp=temp&0xf0; 246 5 beep=0; 247 5 } 248 4 beep=1; 249 4 } 250 3 } 251 2 } 252 1 } 253 254 void main() 255 { 256 1 TMOD=0x01; 257 1 258 1 TH0=(65536-46080)/256;// ÓÉÓÚ¾§ÕñΪ11.0592,¹ÊËù¼Ç´ÎÊýӦΪ46080£¬¼ÆÊ±Æ÷ÿ¸ô50000΢Ãë·¢ÆðÒ»´ÎÖжϡ£ 259 1 TL0=(65536-46080)%256;//46080µÄÀ´Àú£¬Îª50000*11.0592/12 260 1 ET0=1; 261 1 EA=1; 262 1 263 1 while(1) 264 1 { keyscan0(); 265 2 266 2 if(ok==1) 267 2 { TR0=1; 268 3 wei=0; 269 3 270 3 if(pp==20) 271 3 { pp=0; 272 4 m++; 273 4 if(m==60) 274 4 { 275 5 m=0; 276 5 f++; 277 5 if(f==60) 278 5 { 279 6 f=0; 280 6 s++; 281 6 if(s==24) //Ϊ24hÒ»¸öÑ­»·£¬ÈôÒª12h£¬Ö»ÐèÔڴ˸ÄΪ12¼´¿É¡£ 282 6 { 283 7 s=0; 284 7 } 285 6 } 286 5 } 287 4 } 288 3 289 3 a0=s%10; 290 3 a1=s/10; 291 3 b0=f%10; 292 3 b1=f/10; 293 3 c0=m%10; 294 3 c1=m/10; 295 3 display(a1,a0,b1,b0,c1,c0); 296 3 } 297 2 else 298 2 { 299 3 if(change==1) 300 3 { TR0=0; 301 4 keyscan(); 302 4 if(key!=10) 303 4 { C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 6 304 5 305 5 switch(wei) 306 5 { 307 6 case 1: if(key<3) //Сʱ×î¸ßλΪ2 308 6 a1=key; 309 6 else 310 6 wei--; 311 6 break; 312 6 case 2: if(a1==1|a1==0) 313 6 a0=key; 314 6 else 315 6 if(key<5) 316 6 a0=key; //µ±Ð¡Ê±×î¸ßλΪ2ʱ£¬µÍλ×î¸ßΪ4 317 6 break; 318 6 case 3: if(key<6) //·ÖÖÓ×î¸ßλΪ5 319 6 b1=key; 320 6 else 321 6 wei--; 322 6 break; 323 6 case 4: b0=key; break; 324 6 case 5: if(key<6) //Ãë×î¸ßλΪ5 325 6 c1=key; 326 6 else 327 6 wei--; 328 6 break; 329 6 case 6: c0=key; break; 330 6 } 331 5 key=10; 332 5 } 333 4 m=c1*10+c0; 334 4 f=b1*10+b0; 335 4 s=a1*10+a0; 336 4 display(a1,a0,b1,b0,c1,c0); 337 4 } 338 3 if(dingshi==1) 339 3 { 340 4 TR0=0; 341 4 display(shi20,shi10,fen20,fen10,miao20,miao10); 342 4 keyscan(); 343 4 if(key!=10) 344 4 { 345 5 switch(wei) 346 5 { 347 6 case 1: if(key<3) //Сʱ×î¸ßλΪ2 348 6 shi20=key; 349 6 else 350 6 wei--; 351 6 break; 352 6 case 2: if(a1==1|a1==0) 353 6 shi10=key; 354 6 else 355 6 if(key<5) 356 6 a0=key; //µ±Ð¡Ê±×î¸ßλΪ2ʱ£¬µÍλ×î¸ßΪ4 357 6 break; 358 6 case 3: if(key<6) //·ÖÖÓ×î¸ßλΪ5 359 6 fen20=key; 360 6 else 361 6 wei--; 362 6 break; 363 6 case 4: fen10=key; break; 364 6 case 5: if(key<6) //Ãë×î¸ßλΪ5 365 6 miao20=key; C51 COMPILER V8.02 CLOCKDINGSHI 06/22/2010 11:22:43 PAGE 7 366 6 else 367 6 wei--; 368 6 break; 369 6 case 6: miao10=key; break; 370 6 } 371 5 key=10; 372 5 } 373 4 yidingshi=1; 374 4 display(shi20,shi10,fen20,fen10,miao20,miao10); 375 4 } 376 3 } 377 2 if(yidingshi==1) 378 2 { 379 3 if((a1==shi20)&&(a0==shi10)&&(b1==fen20)&&(b0==fen10)&&(c1==miao20)&&(c0==miao10)) 380 3 beep=0; 381 3 } 382 2 if(((a1==shi20)&&(a0==shi10)&&(b1==fen20)&&(b0==fen10+1)&&(c1==miao20)&&(c0==miao10))||(yidingshi==0))//Ò -»·ÖÖÓ±¨Ê±Ìáʾ 383 2 beep=1; 384 2 } 385 1 } 386 387 void time0() interrupt 1 388 { TH0=(65536-46080)/256; 389 1 TL0=(65536-46080)%256; 390 1 pp++; 391 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 1105 ---- CONSTANT SIZE = 16 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 29 6 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)