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

📄

📁 单片机开发系统延时间程序
💻
字号:
/******************************************************************
*                                                                 *
* ME500单片机开发系统延时间序,采用中断实现,程序简单易用,可以自由更改,
* 延时1秒到99999秒均可以实现。
*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       *
*                                                                 *
*******************************************************************/

#include <reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint  unsigned int

uchar  Count;

sbit DIN = P0^7;          //小数点

uchar code  LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
                          0x80,0x90,0xff};

uchar data  display[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

uchar code  scan_bit[] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

/*********************************************************
 延时函数
*********************************************************/
void Delay(uint num)//延时函数
{
  while( --num );
}

/********************************************************
 显示函数
*********************************************************/
play()
{
   uchar  i;
   for(i=0;i<8;i++)
   {
    P0=LEDData[display[i]];  //显示个位
    P2=scan_bit[i];
	if(scan_bit[i]==0xbf)
	DIN=0;                  //加小数点
    Delay(50);
   }
   P2=0xff;                 //关闭显示
}

/********************************************************
 主函数
*********************************************************/
main()
{
   P0=0xff;
   P2=0xff;
   Count=0x00;
   TMOD=0x01; 
   TH0=0x4c; TL0=0x00;      //50ms定时
   EA=1; ET0=1; TR0=1;

   while(1)  
   play();
}

/*********************************************************
  Time0中断函数
**********************************************************/
void Time0(void) interrupt 1 using 0
{
   TH0=0x4c;               //50ms定时
   TL0=0x00;
   Count++;
   if(Count==2)
   {
    Count=0;
	display[0]++;         //0.1S  
   }
   if(display[0]==10)
   {
    display[0]=0;
	display[1]++;         //个位
   }
   if(display[1]==10)
   {
    display[1]=0;
    display[2]++;         //十位
   }
   if(display[2]==10)
   {
    display[2]=0;
    display[3]++;         //百位
   }
   if(display[3]==10)
   {
    display[3]=0;
    display[4]++;         //千位
   }
   if(display[4]==10)
   {
    display[4]=0;
    display[5]++;         //万位
   }
   if(display[5]==10)
   {
    display[5]=0;
    display[6]++;        //十万位
   }
   if(display[6]==10)
   {
    display[6]=0;
    display[7]++;        //百万位
   }
   if(display[7]==10)
   {
    display[7]=0;
   }
}

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

⌨️ 快捷键说明

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