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

📄 shumaguan.c

📁 数码管动态显示
💻 C
字号:
#include <reg51.h>
#define unchar unsigned char



/**************************全局变量定义*****************************/

unchar seg_count=0;

unsigned char data  display_date[4] =   {0x01,0x04,0x03,0x04} ;

/****************************函数声明*******************************/
void delay_us(unchar delay); // 延时us级




/**************
函数名:void display(uchar seg_count)
函数功能:将数据送到数码管中显示。
调用函数:被void timer0() interrupt 1函数调用。
**********************************/
void display( unchar i)
{
         
switch(i)
     {
    case 0:  P2=0xfe;     //通过seg_count函数的值判断选通那个数码管           
    		 P0=display_date[0]; 
	break;
    
    case 1:  P2=0xfd;
	         P0=display_date[1];           
    break;
    case 2:  P2=0xfb;
			
	         P0=display_date[2]; 
			         
    break;
             
    break;
    default: break; 
	 
  }
  
 }

/*****************************

函数名:void timer0() interruption 1
函数功能:数码管动态扫描中断,让数码管显示现在的时间
所用变量:seg_count,调用void display(uchar seg_count)
******************************/
void timer0() interrupt 1
{ 
   
   TF0=0;
   TH0=((65536-5000)/256);
   TL0=((65536-5000)%256); //定时器重装载。
   display(seg_count); 
   seg_count++;       
   if(seg_count>2)seg_count=0;   //当按键数大于3时清零
}  


/********************************************************************
*延时函数,us级
*函数名称:delay_us(unchar delay)
*说明:不精确延时
********************************************************************/
void delay_us(unchar delay)
{ 
 while(--delay);
}
/******************************************************************/



/****************************************/
void main()
{ 
 
 
     P2=0xff;
	 TMOD=0x11;
     TH0=((65536-5000)/256);
     TL0=((65536-5000)%256);
     EA=1;
     ET0=1;
	 TR0=1;
	 while(1);

 
 
}

⌨️ 快捷键说明

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