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

📄 999miaodjs.c

📁 999秒数码管显示
💻 C
字号:
#include<reg51.h>
sbit Key_UP=P1^0;
sbit Key_DOWN=P1^1;
unsigned char KeyV,TempKeyV; 							   
sbit P35=P3^5;//数码管第5位
sbit P36=P3^6;//数码管第6位
sbit P37=P3^7;//数码管第7位
sbit JDQ=P2^0;//继电器
sbit beep=P2^1;//蜂鸣器
 unsigned int js;
 unsigned int ds;//倒计时初始时间 
 unsigned char jsflag;
static unsigned int i;
unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};

void Delay(unsigned int ii)
{
unsigned int jj;
for(;ii>0;ii--)
for(jj=0;jj<125;jj++)
{;}

}
void Delay500(unsigned int iii)
{
unsigned int jjj;
for(;iii>0;iii--)
for(jjj=0;jjj<60;jjj++)
{;}

}

  

void main()
{
    
	EA = 1;					//允许CPU中断
	ET0 = 1; 				//定时器0中断打开
	TMOD = 0x1;			//设定时器0为模式1,16位模式
	TH0=0xB1;
	TL0=0xDF;				//设定时值为20000us(20ms)
	TR0 = 1;
	ds=999;
	KeyV = 0;
	TempKeyV = 0;
	jsflag=0;


while(1);
  



}

//定时器0中断外理中键扫描和显示
void KeyAndDis_Time0(void) interrupt 1 using 2
{
  TH0=0xB1;
	TL0=0xDF;				//设定时值为20000us(20ms)
	if (!Key_UP)
    KeyV = 1;
  if (!Key_DOWN)
    KeyV = 2;

   if (KeyV!= 0)      //有键按下
    {
      Delay(10);   //延时防抖  按下10ms再测
      if (!Key_UP)
        TempKeyV = 1;
	
      if (!Key_DOWN)
        TempKeyV = 2;
		
		 if (KeyV == TempKeyV)   //两次值相等为确定接下了键
	   {
	   	   if (KeyV == 1){
		   jsflag=0;
		   				   if(ds==0){
						   ds=600;
						   }
						 	js=js+1;
							JDQ=0;   //继电器吸合
							if(js==45){
							beep=0;}
	if(js==50){
	js=0;
	 ds=ds-1;
	  beep=1;
	
	}
	  

						  }
						  	if(KeyV==2){
	  jsflag=1;
	   
	
	}
						  }
						 }




   if(jsflag==1){
   JDQ=1;
   }

   if(ds==0){
   JDQ=1;
   jsflag=1;
   KeyV=0;
   }
  
  P0=LEDDis[ds/100];
P35=0;
  Delay500(5);
	  P35=1;
  P0=LEDDis[(ds-(ds/100)*100)/10];
P36=0;
  Delay500(5);
 P36=1;
 P0=LEDDis[(ds-(ds/100)*100)-((ds-(ds/100)*100)/10)*10];
P37=0;
 Delay500(5);
  P37=1;

 






}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -