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

📄 timer0_1ms.c

📁 按键程序讨论
💻 C
字号:
//
//  名称:
//  编写:niechao
//  日期:2012.08
//  修改:无
//  内容:1 Ms 延时子程序
#include<reg52.h>
#include"key.h"
#include"led.h"
 
 bit  Timer0_1msflag  = 0; //1ms时标
 unsigned char   OUT  = 0; //20ms时标
 unsigned char  OUT1  = 0; //40ms时标
 unsigned char  OUT2  = 0; //1s时标
//
// 
 unsigned char Tflag  = 0; //20ms计数
 unsigned char Tflag1 = 0; //40ms计数
 unsigned char Tflag2 = 0; //1s时标
 
//------------------------------------------------
//          1ms延时初始化函数
//------------------------------------------------ 
//注意总中断用主程序打开 EA = 1  用来增加灵活性
void Timer0Init(void) 
{
    TMOD &= 0xf0 ;      //定时器1通过外中断打开实
                        //际不用  
    TMOD |= 0x01 ;      //定时器0工作方式1
    TH0  =  0xfc ;      //定时器初始值12MHz晶振
    TL0  =  0x17 ;
    TR0  = 1 ;
    ET0  = 1 ;
    
} 

   

//------------------------------------------------
//          1ms延时中断
//------------------------------------------------ 


void Time0Isr(void) interrupt 1
{  

    TR0   =  0;
    TH0  =  0xfc ;          //定时器重新赋初值
    TL0  =  0x17 ;
    	
	
    Tflag++;
    Timer0_1msflag = 1;      //1MS时标标志位置位
    
	if(Tflag == 20)
      
	  {
       
	   Tflag=0;
       Tflag1++;  
	   Tflag2++;
	   OUT=1;        //20MS时标标志位

	  
       led_show();  //50HZ显示刷新速度
	  
	   }
	
    if(Tflag1 == 8)
      
	  {
       
	   Tflag1=0;  
	   OUT1=1;        //120MS时标标志位
       getkey();

	  }


    if(Tflag2 == 100)
    
	  {
       
	   Tflag2=0;
       OUT2=1;        //2S时标标志位 
	   
	  }
     
    Display(0,8);
    TR0=1; 
	 
}

⌨️ 快捷键说明

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