⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dy1clock_v1.01.lst

📁 《爱上单片机》配书光盘
💻 LST
📖 第 1 页 / 共 2 页
字号:
 200   1      }
 201          /**********************************************************************************************/	
 202          
 203          void turn(uchar i){
 204   1      			switch (i){//		
 205   2      				case 1://			
 206   2      					display1();		
 207   2      					break;//		
 208   2      				case 2://			
 209   2      					display2();		
 210   2      					break;//		
 211   2      				case 3://			
 212   2      					display3();		
 213   2      					break;//		
 214   2      				case 4://			
 215   2      					display4();		
 216   2      					break;//		
 217   2      				case 5://			
 218   2      					display5();		
 219   2      					break;//		
 220   2      				case 6://			
 221   2      					display6();		
 222   2      					break;//		
 223   2      				case 7://			
 224   2      					display7();		
 225   2      					break;//		
 226   2      				case 8://			
 227   2      					display8();		
 228   2      					break;//		
 229   2      				case 9://			
 230   2      					display9();		
 231   2      					break;//		
 232   2      				case 0://			
 233   2      					display0();		
 234   2      					break;//		
 235   2      			}
 236   1      }
 237          /**********************************************************************************************/	
 238            
 239          void main(void){   
 240   1          TMOD = 0x11;         // 定时/计数器0,1工作于方式1   
 241   1          TH0 = 0xd8;          // 预置定时常数55536(d8f0),产生10ms时基信号   
C51 COMPILER V6.12  DY1CLOCK_V1_01                                                         04/28/2009 20:48:57 PAGE 5   

 242   1          TL0 = 0xf0;   
 243   1          EA = 1;              // 开总中断   
 244   1          ET0 = 1;             // 定时/计数器0允许中断   
 245   1          TR0 = 1;             // 开闭定时/计数器0   
 246   1      while(1){
 247   2      
 248   2      unsigned char a,b;
 249   2      
 250   2      if(MENU == 0){	         
 251   3      	 SP_DIS = 150;
 252   3           turn(hou/10);
 253   3      	 delay_P2();
 254   3      	 displayN();
 255   3      	 delay_P2();
 256   3      	 turn(hou%10);
 257   3      	 delay_P2();
 258   3      	 displayN();
 259   3      	 delay_P2();
 260   3      	 ledb2 = 0; ledc2 = 0;
 261   3      	 delay_ms(SP4);
 262   3      	 ledb2 = 1; ledc2 = 1;
 263   3      	 delay_P2();
 264   3           turn(min/10);
 265   3      	 delay_P2();
 266   3      	 displayN();
 267   3      	 delay_P2();
 268   3      	 turn(min%10);
 269   3      	 delay_P2();
 270   3      	 displayN();
 271   3      
 272   3      	 if(key1 == 0 && key2 == 1){			
 273   4      		delay_ms(200);//去抖
 274   4      		if(key1 == 0 && key2 == 1){
 275   5      			MENU = 1;
 276   5      			while(key1 == 0 || key2 == 0){ ledg1 = 0;ledg2 = 0; }
 277   5      		}
 278   4      	}else{
 279   4      		delay_ms(SP3);
 280   4      	}     
 281   3      }
 282   2      /**********************************************************************************************/	
 283   2      
 284   2      if(MENU == 1){
 285   3      	SP_DIS = 1;
 286   3      	turn(hou/10);
 287   3      	displayN2();
 288   3      	if(key1 == 0 && key2 == 1){	
 289   4      		delay_ms(200);//去抖
 290   4      		if(key1 == 0 && key2 == 1){
 291   5      			MENU = 2;
 292   5      		}
 293   4      	}
 294   3      	if(key2 == 0 && key1 == 1){	
 295   4      		delay_ms(200);//去抖
 296   4      		if(key2 == 0 && key1 == 1){
 297   5      			a = hou/10;
 298   5      			b = hou%10;
 299   5      			a++;
 300   5      			if(a > 2){
 301   6      				a = 0;
 302   6      			}
 303   5      			hou = a*10 + b;
C51 COMPILER V6.12  DY1CLOCK_V1_01                                                         04/28/2009 20:48:57 PAGE 6   

 304   5      		}
 305   4      	}
 306   3      	while(key1 == 0 || key2 == 0){ }
 307   3      }
 308   2      /**********************************************************************************************/	
 309   2      
 310   2      if(MENU == 2){
 311   3      	turn(hou%10);
 312   3      	displayN2();
 313   3      	if(key1 == 0 && key2 == 1){	
 314   4      		delay_ms(200);//去抖
 315   4      		if(key1 == 0 && key2 == 1){
 316   5      			MENU = 3;
 317   5      		}
 318   4      	}
 319   3      	if(key2 == 0 && key1 == 1){	
 320   4      		delay_ms(200);//去抖
 321   4      		if(key2 == 0 && key1 == 1){
 322   5      			a = hou/10;
 323   5      			b = hou%10;
 324   5      			b++;
 325   5      			if(b > 9){
 326   6      				b = 0;
 327   6      			}
 328   5      			if(a > 1){
 329   6      				if(b > 3){
 330   7      					b = 0;
 331   7      				}
 332   6      			}
 333   5      			hou = a*10 + b;
 334   5      		}
 335   4      	}
 336   3      	while(key1 == 0 || key2 == 0){ }
 337   3      }   
 338   2      /**********************************************************************************************/	
 339   2      
 340   2      if(MENU == 3){
 341   3      	turn(min/10);
 342   3      	displayN2();
 343   3      	if(key1 == 0 && key2 == 1){	
 344   4      		delay_ms(200);//去抖
 345   4      		if(key1 == 0 && key2 == 1){
 346   5      			MENU = 4;
 347   5      		}
 348   4      	}
 349   3      	if(key2 == 0 && key1 == 1){	
 350   4      		delay_ms(200);//去抖
 351   4      		if(key2 == 0 && key1 == 1){
 352   5      			a = min/10;
 353   5      			b = min%10;
 354   5      			a++;
 355   5      			if(a > 5){
 356   6      				a = 0;
 357   6      			}
 358   5      			min = a*10 + b;
 359   5      		}
 360   4      	}
 361   3      	while(key1 == 0 || key2 == 0){ }
 362   3      }   
 363   2      /**********************************************************************************************/	
 364   2      
 365   2      if(MENU == 4){
C51 COMPILER V6.12  DY1CLOCK_V1_01                                                         04/28/2009 20:48:57 PAGE 7   

 366   3      	turn(min%10);
 367   3      	displayN2();
 368   3      	if(key1 == 0 && key2 == 1){	
 369   4      		delay_ms(200);//去抖
 370   4      		if(key1 == 0 && key2 == 1){
 371   5      			MENU = 0;
 372   5      		}
 373   4      	}
 374   3      	if(key2 == 0 && key1 == 1){	
 375   4      		delay_ms(200);//去抖
 376   4      		if(key2 == 0 && key1 == 1){
 377   5      			a = min/10;
 378   5      			b = min%10;
 379   5      			b++;
 380   5      			if(b > 9){
 381   6      				b = 0;
 382   6      			}
 383   5      			min = a*10 + b;
 384   5      			sec = 0;//调时完成后把秒清0
 385   5      		}
 386   4      	}
 387   3      	while(key1 == 0 || key2 == 0){ }
 388   3      }
 389   2      }      
 390   1      }   
 391          /**********************************************************************************************/	
 392             


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1247    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       2
   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 + -