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

📄 3led_51.c

📁 一个简单的51 LED定时器程序
💻 C
字号:
#include  <reg52.h>   

sbit com0=P2^0;
sbit com1=P2^1;
sbit com2=P2^2;

code unsigned  char DispBuf[10]= {0x03,0x9f,0x25,0x0d,0x99,
          0x49,0x41,0x1f,0x01,0x09};
//函数声明
void  disp_selec(unsigned  char  seg);
/**************************************************
** 函数名称: dellay
** 入口参数:h(unsigned int型)
** 出口参数:无
** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS
****************************************************/
void dellay(unsigned int  h)
{
  while(h--);    //0.01MS
}
unsigned  char   time_temp;     //全局变量,定时器加1
unsigned  char   time_num0;      //全局变量,显示的数加1
unsigned  char   time_num1;
unsigned  char   time_num2;
/************主程序**************/
main()
{  
   time_num0=0;
   time_num1=0;
   time_num2=0;
   time_temp=0; 
   ET0=1;
   TMOD=1;               //16位定时器
   TH0=-50000/256;   //定时器赋值,定时约50毫秒
   TL0=-50000%256;
   TR0=1;
   EA=1;
   dellay(100);
   while(1)
   {
   	com0=0;com1=0;com2=1;disp_selec(time_num0);
   	com0=0;com1=1;com2=0;disp_selec(time_num1);
   	com0=1;com1=0;com2=0;disp_selec(time_num2);
   	}
        //单片机待机
} 
/**************************************************
** 函数名称: disp_selec
** 入口参数:bit_selec,seg
** 出口参数:无
** 功能描述: 选择相应数码管,进行显示
****************************************************/
void  disp_selec(unsigned  char  seg)
{
   P1=DispBuf[seg];
}

void time0() interrupt 1 using 0
{
  EA=0;
  time_temp++;
  if(time_temp>20)   //约1S
 {
  time_temp=0;
   
   if(time_num0>9)
   	{time_num0=0;
   	    if(time_num1>9)
   	       {  time_num1=0;
   	          if(time_num2>9)
                	{time_num2=0;   	 
   	              }
              else time_num2++;
   	       }
        else time_num1++;
   	}
   else time_num0++;
  }
   TH0=-50000/256; //定时器赋值
   TL0=-50000%256;
  EA=1;
}

⌨️ 快捷键说明

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